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-7 Date: Mon, 29 Jun 2026 12:24:20 GMT Message-ID: <178273586045.1.7281440524146620773.rpms-gcc-1418c181c1a6@fedoraproject.org> List-ID: X-Git-Repo: rpms/gcc X-Git-Branch: rhel-f41-base X-Git-Rev: 1418c181c1a6807419f24793d4813c031742e03c QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2NjCkJyYW5jaCA6 IHJoZWwtZjQxLWJhc2UKQ29tbWl0IDogMTQxOGMxODFjMWE2ODA3NDE5ZjI0NzkzZDQ4MTNjMDMx NzQyZTAzYwpBdXRob3IgOiBKYWt1YiBKZWxpbmVrIDxqYWt1YkBmZWRvcmFwcm9qZWN0Lm9yZz4K RGF0ZSAgIDogMjAwOS0wNi0wOVQxNDoyNjo1OSswMDowMApTdGF0cyAgOiArOTE3Ni8tODcgaW4g MTEgZmlsZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2dj Yy9jLzE0MThjMTgxYzFhNjgwNzQxOWYyNDc5M2Q0ODEzYzAzMTc0MmUwM2M/YnJhbmNoPXJoZWwt ZjQxLWJhc2UKCkxvZzoKNC40LjAtNwoKLS0tCmRpZmYgLS1naXQgYS8uY3ZzaWdub3JlIGIvLmN2 c2lnbm9yZQppbmRleCAyM2YyZjUyLi40ZTM5NTUwIDEwMDY0NAotLS0gYS8uY3ZzaWdub3JlCisr KyBiLy5jdnNpZ25vcmUKQEAgLTEsMiArMSwyIEBACiBmYXN0amFyLTAuOTcudGFyLmd6Ci1nY2Mt NC40LjAtMjAwOTA1MTQudGFyLmJ6MgorZ2NjLTQuNC4wLTIwMDkwNjA5LnRhci5iejIKCmRpZmYg LS1naXQgYS9nY2Muc3BlYyBiL2djYy5zcGVjCmluZGV4IDVjNzdiYmMuLjhlYmY4NDkgMTAwNjQ0 Ci0tLSBhL2djYy5zcGVjCisrKyBiL2djYy5zcGVjCkBAIC0xLDkgKzEsOSBAQAotJWdsb2JhbCBE QVRFIDIwMDkwNTE0Ci0lZ2xvYmFsIFNWTlJFViAxNDc1MjMKKyVnbG9iYWwgREFURSAyMDA5MDYw OQorJWdsb2JhbCBTVk5SRVYgMTQ4MzA4CiAlZ2xvYmFsIGdjY192ZXJzaW9uIDQuNC4wCiAjIE5v dGUsIGdjY19yZWxlYXNlIG11c3QgYmUgaW50ZWdlciwgaWYgeW91IHdhbnQgdG8gYWRkIHN1ZmZp eGVzIHRvCiAjICV7cmVsZWFzZX0sIGFwcGVuZCB0aGVtIGFmdGVyICV7Z2NjX3JlbGVhc2V9IG9u IFJlbGVhc2U6IGxpbmUuCi0lZ2xvYmFsIGdjY19yZWxlYXNlIDUKKyVnbG9iYWwgZ2NjX3JlbGVh c2UgNwogJWdsb2JhbCBfdW5wYWNrYWdlZF9maWxlc190ZXJtaW5hdGVfYnVpbGQgMAogJWdsb2Jh bCBtdWx0aWxpYl82NF9hcmNocyBzcGFyYzY0IHBwYzY0IHMzOTB4IHg4Nl82NAogJWdsb2JhbCBp bmNsdWRlX2dhcHBsZXR2aWV3ZXIgMQpAQCAtMTU3LDkgKzE1NywxMyBAQCBQYXRjaDI1OiBnY2M0 NC1wb3dlcjcucGF0Y2gKIFBhdGNoMjY6IGdjYzQ0LXBvd2VyNy0yLnBhdGNoCiBQYXRjaDI3OiBn Y2M0NC1wb3dlcjctMy5wYXRjaAogUGF0Y2gyODogZ2NjNDQtcHIzODc1Ny5wYXRjaAotUGF0Y2gy OTogZ2NjNDQtcHIzOTg1Ni5wYXRjaAotUGF0Y2gzMDogZ2NjNDQtbGlic3RkYysrLWRvY3MucGF0 Y2gKLVBhdGNoMzE6IGdjYzQ0LXByMzk5NDIucGF0Y2gKK1BhdGNoMjk6IGdjYzQ0LWxpYnN0ZGMr Ky1kb2NzLnBhdGNoCitQYXRjaDMwOiBnY2M0NC1hdG9tLW1uYXRpdmUucGF0Y2gKK1BhdGNoMzE6 IGdjYzQ0LWF0b20tbW92YmUucGF0Y2gKK1BhdGNoMzI6IGdjYzQ0LWl4ODYtaW5zbi1sZW5ndGgu cGF0Y2gKK1BhdGNoMzM6IGdjYzQ0LWJ1aWx0aW4tb2JqZWN0LXNpemUucGF0Y2gKK1BhdGNoMzQ6 IGdjYzQ0LWVwaWxvZ3VlLXVud2luZC5wYXRjaAorUGF0Y2gzNTogZ2NjNDQtdW53aW5kLWRlYnVn LWhvb2sucGF0Y2gKIAogUGF0Y2gxMDAwOiBmYXN0amFyLTAuOTctc2VnZmF1bHQucGF0Y2gKIApA QCAtNDY0LDExICs0NjgsMTUgQEAgd2hpY2ggYXJlIHJlcXVpcmVkIHRvIGNvbXBpbGUgd2l0aCB0 aGUgR05BVC4KICVwYXRjaDI2IC1wMCAtYiAucG93ZXI3LTJ+CiAlcGF0Y2gyNyAtcDAgLWIgLnBv d2VyNy0zfgogJXBhdGNoMjggLXAwIC1iIC5wcjM4NzU3fgotJXBhdGNoMjkgLXAwIC1iIC5wcjM5 ODU2fgogJWlmICV7YnVpbGRfbGlic3RkY3h4X2RvY3N9Ci0lcGF0Y2gzMCAtcDAgLWIgLmxpYnN0 ZGMrKy1kb2NzfgorJXBhdGNoMjkgLXAwIC1iIC5saWJzdGRjKystZG9jc34KICVlbmRpZgotJXBh dGNoMzEgLXAwIC1iIC5wcjM5OTQyfgorJXBhdGNoMzAgLXAwIC1iIC5hdG9tLW1uYXRpdmV+Cisl cGF0Y2gzMSAtcDAgLWIgLmF0b20tbW92YmV+CislcGF0Y2gzMiAtcDAgLWIgLml4ODYtaW5zbi1s ZW5ndGh+CislcGF0Y2gzMyAtcDAgLWIgLmJ1aWx0aW4tb2JqZWN0LXNpemV+CislcGF0Y2gzNCAt cDAgLWIgLmVwaWxvZ3VlLXVud2luZH4KKyVwYXRjaDM1IC1wMCAtYiAudW53aW5kLWRlYnVnLWhv b2t+CiAKICMgVGhpcyB0ZXN0Y2FzZSBkb2Vzbid0IGNvbXBpbGUuCiBybSBsaWJqYXZhL3Rlc3Rz dWl0ZS9saWJqYXZhLmxhbmcvUFIzNTAyMCoKQEAgLTE4MDMsNiArMTgxMSwyOSBAQCBmaQogJWRv YyBycG0uZG9jL2NoYW5nZWxvZ3MvbGlibXVkZmxhcC9DaGFuZ2VMb2cqCiAKICVjaGFuZ2Vsb2cK KyogVHVlIEp1biAgOSAyMDA5IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuNC4w LTcKKy0gdXBkYXRlIGZyb20gZ2NjLTRfNC1icmFuY2gKKyAgLSBQUnMgYWRhLzQwMTY2LCBib290 c3RyYXAvNDAwMjcsIGMrKy8zODA2NCwgYysrLzM5NzU0LCBjKysvNDAwMDcsCisJYysrLzQwMTM5 LCBjLzQwMTcyLCBjKysvNDAzMDYsIGMrKy80MDMwNywgYysrLzQwMzA4LCBjKysvNDAzMTEsCisJ YysrLzQwMzcwLCBjKysvNDAzNzIsIGMrKy80MDM3MywgZGVidWcvNDAxMDksIGZvcnRyYW4vMjI0 MjMsCisJZm9ydHJhbi8zODY1NCwgZm9ydHJhbi8zOTg5MywgZm9ydHJhbi80MDAxOSwgZm9ydHJh bi80MDE5NSwKKwlsaWJmb3J0cmFuLzI1NTYxLCBsaWJmb3J0cmFuLzM3NzU0LCBsaWJmb3J0cmFu LzM4NjY4LAorCWxpYmZvcnRyYW4vMzk2NjUsIGxpYmZvcnRyYW4vMzk2NjcsIGxpYmZvcnRyYW4v Mzk3MDIsCisJbGliZm9ydHJhbi8zOTcwOSwgbGliZm9ydHJhbi8zOTc4MiwgbGliZm9ydHJhbi80 MDMzNCwKKwlsaWJnZm9ydHJhbi8zOTY2NCwgbGliZ29tcC80MDE3NCwgbGlic3RkYysrLzM2MjEx LCBsaWJzdGRjKysvNDAxOTIsCisJbGlic3RkYysrLzQwMjk2LCBsaWJzdGRjKysvNDAyOTksIG1p ZGRsZS1lbmQvMzI5NTAsIG1pZGRsZS1lbmQvNDAxNDcsCisJbWlkZGxlLWVuZC80MDIwNCwgbWlk ZGxlLWVuZC80MDIzMywgbWlkZGxlLWVuZC80MDI1MiwKKwltaWRkbGUtZW5kLzQwMjkxLCBtaWRk bGUtZW5kLzQwMzI4LCBtaWRkbGUtZW5kLzQwMzQwLAorCXJ0bC1vcHRpbWl6YXRpb24vNDAxMDUs IHRhcmdldC80MDAxNywgdGFyZ2V0LzQwMTUzLCB0YXJnZXQvNDAyNjYsCisJdGVzdHN1aXRlLzM5 OTA3LCB0cmVlLW9wdGltaXphdGlvbi8zOTk5OSwgdHJlZS1vcHRpbWl6YXRpb24vNDAwODcsCisJ dHJlZS1vcHRpbWl6YXRpb24vNDAyMzgsIHRyZWUtb3B0aW1pemF0aW9uLzQwMjU0CistIHN1cHBv cnQgQXRvbSBmb3IgLW1hcmNoPW5hdGl2ZQorLSBhZGQgLW1tb3ZiZSBzdXBwb3J0IGZvciBBdG9t CistIGltcHJvdmUgaXg4NiBpbnN0cnVjdGlvbiBsZW5ndGggY29tcHV0YXRpb24sIHJlbW92ZSBz b21lIHVubmVlZGVkIHBhZGRpbmcKKy0gLURfRk9SVElGWV9TT1VSQ0UgaW1wcm92ZW1lbnRzCist IGVtaXQgYWNjdXJhdGUgZXBpbG9ndWUgdW53aW5kaW5nIGluZm9ybWF0aW9uCistIGFkZCB1bndp bmQgZGVidWcgaG9vayBmb3IgZ2RiCisKICogVGh1IE1heSAxNCAyMDA5IEpha3ViIEplbGluZWsg PGpha3ViQHJlZGhhdC5jb20+IDQuNC4wLTUKIC0gdXBkYXRlIGZyb20gZ2NjLTRfNC1icmFuY2gK ICAgLSBQUnMgYysrLzE3Mzk1LCBjLzM5OTgzLCBmb3J0cmFuLzM4ODYzLCBmb3J0cmFuLzM4OTU2 LCBmb3J0cmFuLzM5ODc5LAoKZGlmZiAtLWdpdCBhL2djYzQ0LWF0b20tbW5hdGl2ZS5wYXRjaCBi L2djYzQ0LWF0b20tbW5hdGl2ZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi45YzhhN2EzCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjNDQtYXRvbS1tbmF0aXZlLnBhdGNo CkBAIC0wLDAgKzEsNDMgQEAKKzIwMDktMDUtMjAgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVs LmNvbT4KKworCSogY29uZmlnL2kzODYvZHJpdmVyLWkzODYuYyAoaG9zdF9kZXRlY3RfbG9jYWxf Y3B1KTogQ2hlY2sKKwlleHRlbmRlZCBmYW1pbHkgYW5kIG1vZGVsIGZvciBJbnRlbCBwcm9jZXNz b3JzLiAgU3VwcG9ydCBJbnRlbAorCUF0b20uCisKKy0tLSBnY2MvY29uZmlnL2kzODYvZHJpdmVy LWkzODYuYwkocmV2aXNpb24gMTQ3NzM1KQorKysrIGdjYy9jb25maWcvaTM4Ni9kcml2ZXItaTM4 Ni5jCShyZXZpc2lvbiAxNDc3MzYpCitAQCAtMzk1LDkgKzM5NSwyMiBAQCBjb25zdCBjaGFyICpo b3N0X2RldGVjdF9sb2NhbF9jcHUgKGludCBhCisgCisgICBfX2NwdWlkICgxLCBlYXgsIGVieCwg ZWN4LCBlZHgpOworIAorLSAgLyogV2UgZG9uJ3QgY2FyZSBmb3IgZXh0ZW5kZWQgZmFtaWx5LiAg Ki8KKyAgIG1vZGVsID0gKGVheCA+PiA0KSAmIDB4MGY7CisgICBmYW1pbHkgPSAoZWF4ID4+IDgp ICYgMHgwZjsKKysgIGlmICh2ZW5kb3IgPT0gU0lHX0lOVEVMKQorKyAgICB7CisrICAgICAgdW5z aWduZWQgaW50IGV4dGVuZGVkX21vZGVsLCBleHRlbmRlZF9mYW1pbHk7CisrCisrICAgICAgZXh0 ZW5kZWRfbW9kZWwgPSAoZWF4ID4+IDEyKSAmIDB4ZjA7CisrICAgICAgZXh0ZW5kZWRfZmFtaWx5 ID0gKGVheCA+PiAyMCkgJiAweGZmOworKyAgICAgIGlmIChmYW1pbHkgPT0gMHgwZikKKysJewor KwkgIGZhbWlseSArPSBleHRlbmRlZF9mYW1pbHk7CisrCSAgbW9kZWwgKz0gZXh0ZW5kZWRfbW9k ZWw7CisrCX0KKysgICAgICBlbHNlIGlmIChmYW1pbHkgPT0gMHgwNikKKysJbW9kZWwgKz0gZXh0 ZW5kZWRfbW9kZWw7CisrICAgIH0KKyAKKyAgIGhhc19zc2UzID0gZWN4ICYgYml0X1NTRTM7Cisg ICBoYXNfc3NzZTMgPSBlY3ggJiBiaXRfU1NTRTM7CitAQCAtNDk2LDggKzUwOSw4IEBAIGNvbnN0 IGNoYXIgKmhvc3RfZGV0ZWN0X2xvY2FsX2NwdSAoaW50IGEKKyAgICAgICBicmVhazsKKyAgICAg Y2FzZSBQUk9DRVNTT1JfUEVOVElVTVBSTzoKKyAgICAgICBpZiAoaGFzX2xvbmdtb2RlKQorLQkv KiBJdCBpcyBDb3JlIDIgRHVvLiAgKi8KKy0JY3B1ID0gImNvcmUyIjsKKysJLyogSXQgaXMgQ29y ZSAyIG9yIEF0b20uICAqLworKwljcHUgPSAobW9kZWwgPT0gMjgpID8gImF0b20iIDogImNvcmUy IjsKKyAgICAgICBlbHNlIGlmIChhcmNoKQorIAl7CisgCSAgaWYgKGhhc19zc2UzKQoKZGlmZiAt LWdpdCBhL2djYzQ0LWF0b20tbW92YmUucGF0Y2ggYi9nY2M0NC1hdG9tLW1vdmJlLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0ZjU3YjEKLS0tIC9kZXYvbnVsbAor KysgYi9nY2M0NC1hdG9tLW1vdmJlLnBhdGNoCkBAIC0wLDAgKzEsMzAxIEBACisyMDA5LTA1LTIx ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisJICAgIFVyb3MgQml6amFrICA8dWJp empha0BnbWFpbC5jb20+CisKKwkqIGNvbmZpZy9pMzg2L2NwdWlkLmggKGJpdF9NT1ZCRSk6IE5l dy4KKworCSogY29uZmlnL2kzODYvZHJpdmVyLWkzODYuYyAoaG9zdF9kZXRlY3RfbG9jYWxfY3B1 KTogQ2hlY2sgbW92YmUuCisKKwkqIGNvbmZpZy9pMzg2L2kzODYuYyAoT1BUSU9OX01BU0tfSVNB X01PVkJFX1NFVCk6IE5ldy4KKwkoT1BUSU9OX01BU0tfSVNBX01PVkJFX1VOU0VUKTogTGlrZXdp c2UuCisJKGl4ODZfaGFuZGxlX29wdGlvbik6IEhhbmRsZSBPUFRfbW1vdmJlLgorCShpeDg2X3Rh cmdldF9zdHJpbmcpOiBBZGQgLW1tb3ZiZS4KKwkocHRhX2ZsYWdzKTogQWRkIFBUQV9NT1ZCRS4K KwkocHJvY2Vzc29yX2FsaWFzX3RhYmxlKTogQWRkIFBUQV9NT1ZCRSB0byAiYXRvbSIuCisJKG92 ZXJyaWRlX29wdGlvbnMpOiBIYW5kbGUgUFRBX01PVkJFLgorCisJKiBjb25maWcvaTM4Ni9pMzg2 LmggKFRBUkdFVF9NT1ZCRSk6IE5ldy4KKworCSogY29uZmlnL2kzODYvaTM4Ni5tZCAoYnN3YXBz aTIpOiBDaGVjayBUQVJHRVRfTU9WQkUuCisJKCpic3dhcHNpX21vdmJlKTogTmV3LgorCSgqYnN3 YXBkaV9tb3ZiZSk6IExpa2V3aXNlLgorCShic3dhcGRpMik6IFJlbmFtZWQgdG8gLi4uCisJKCpi c3dhcGRpXzEpOiBUaGlzLgorCShic3dhcGRpMik6IE5ldyBleHBhbmRlci4KKworCSogY29uZmln L2kzODYvaTM4Ni5vcHQgKG1tb3ZiZSk6IE5ldy4KKworCSogZG9jL2ludm9rZS50ZXhpOiBEb2N1 bWVudCAtbW1vdmJlLgorCisJKiBnY2MudGFyZ2V0L2kzODYvbW92YmUtMS5jOiBOZXcuCisJKiBn Y2MudGFyZ2V0L2kzODYvbW92YmUtMi5jOiBMaWtld2lzZS4KKworLS0tIGdjYy9kb2MvaW52b2tl LnRleGkJKHJldmlzaW9uIDE0Nzc3MikKKysrKyBnY2MvZG9jL2ludm9rZS50ZXhpCShyZXZpc2lv biAxNDc3NzMpCitAQCAtNTc3LDcgKzU3Nyw3IEBAIE9iamVjdGl2ZS1DIGFuZCBPYmplY3RpdmUt QysrIERpYWxlY3RzfS4KKyAtbW5vLXdpZGUtbXVsdGlwbHkgIC1tcnRkICAtbWFsaWduLWRvdWJs ZSBAZ29sCisgLW1wcmVmZXJyZWQtc3RhY2stYm91bmRhcnk9QHZhcntudW19CisgLW1pbmNvbWlu Zy1zdGFjay1ib3VuZGFyeT1AdmFye251bX0KKy0tbWNsZCAtbWN4MTYgLW1zYWhmIC1tcmVjaXAg QGdvbAorKy1tY2xkIC1tY3gxNiAtbXNhaGYgLW1tb3ZiZSAtbXJlY2lwIEBnb2wKKyAtbW1teCAg LW1zc2UgIC1tc3NlMiAtbXNzZTMgLW1zc3NlMyAtbXNzZTQuMSAtbXNzZTQuMiAtbXNzZTQgLW1h dnggQGdvbAorIC1tYWVzIC1tcGNsbXVsIEBnb2wKKyAtbXNzZTRhIC1tM2Rub3cgLW1wb3BjbnQg LW1hYm0gLW1zc2U1IEBnb2wKK0BAIC0xMTQ1OCw2ICsxMTQ1OCwxMSBAQCBTQUhGIGFyZSBsb2Fk IGFuZCBzdG9yZSBpbnN0cnVjdGlvbnMsIHJlCisgSW4gNjQtYml0IG1vZGUsIFNBSEYgaW5zdHJ1 Y3Rpb24gaXMgdXNlZCB0byBvcHRpbWl6ZSBAY29kZXtmbW9kfSwgQGNvZGV7ZHJlbX0KKyBvciBA Y29kZXtyZW1haW5kZXJ9IGJ1aWx0LWluIGZ1bmN0aW9uczogc2VlIEByZWZ7T3RoZXIgQnVpbHRp bnN9IGZvciBkZXRhaWxzLgorIAorK0BpdGVtIC1tbW92YmUKKytAb3BpbmRleCBtbW92YmUKKytU aGlzIG9wdGlvbiB3aWxsIGVuYWJsZSBHQ0MgdG8gdXNlIG1vdmJlIGluc3RydWN0aW9uIHRvIGlt cGxlbWVudAorK0Bjb2Rle19fYnVpbHRpbl9ic3dhcDMyfSBhbmQgQGNvZGV7X19idWlsdGluX2Jz d2FwNjR9LgorKworIEBpdGVtIC1tcmVjaXAKKyBAb3BpbmRleCBtcmVjaXAKKyBUaGlzIG9wdGlv biB3aWxsIGVuYWJsZSBHQ0MgdG8gdXNlIFJDUFNTIGFuZCBSU1FSVFNTIGluc3RydWN0aW9ucyAo YW5kIHRoZWlyCistLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvbW92YmUtMS5jCShy ZXZpc2lvbiAwKQorKysrIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L21vdmJlLTEuYwko cmV2aXNpb24gMTQ3NzczKQorQEAgLTAsMCArMSwxOCBAQAorKy8qIHsgZGctZG8gY29tcGlsZSB9 ICovCisrLyogeyBkZy1vcHRpb25zICItTzIgLW1tb3ZiZSIgfSAqLworKworK2V4dGVybiBpbnQg eDsKKysKKyt2b2lkCisrZm9vIChpbnQgaSkKKyt7CisrICB4ID0gX19idWlsdGluX2Jzd2FwMzIg KGkpOworK30KKysKKytpbnQKKytiYXIgKCkKKyt7CisrICByZXR1cm4gX19idWlsdGluX2Jzd2Fw MzIgKHgpOworK30KKysKKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgIm1v dmJlXFsgXHRcXSIgMiB9IH0gKi8KKy0tLSBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9t b3ZiZS0yLmMJKHJldmlzaW9uIDApCisrKysgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYv bW92YmUtMi5jCShyZXZpc2lvbiAxNDc3NzMpCitAQCAtMCwwICsxLDE5IEBACisrLyogeyBkZy1k byBjb21waWxlIH0gKi8KKysvKiB7IGRnLW9wdGlvbnMgIi1PMiAtbW1vdmJlIiB9ICovCisrCisr ZXh0ZXJuIGxvbmcgbG9uZyB4OworKworK3ZvaWQKKytmb28gKGxvbmcgbG9uZyBpKQorK3sKKysg IHggPSBfX2J1aWx0aW5fYnN3YXA2NCAoaSk7CisrfQorKworK2xvbmcgbG9uZworK2JhciAoKQor K3sKKysgIHJldHVybiBfX2J1aWx0aW5fYnN3YXA2NCAoeCk7CisrfQorKworKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAibW92YmVcWyBcdFxdIiA0IHsgdGFyZ2V0IGlscDMy IH0gfSB9ICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJtb3ZiZVxb IFx0XF0iIDIgeyB0YXJnZXQgbHA2NCB9IH0gfSAqLworLS0tIGdjYy9jb25maWcvaTM4Ni9pMzg2 LmgJKHJldmlzaW9uIDE0Nzc3MikKKysrKyBnY2MvY29uZmlnL2kzODYvaTM4Ni5oCShyZXZpc2lv biAxNDc3NzMpCitAQCAtNTksNiArNTksNyBAQCBzZWUgdGhlIGZpbGVzIENPUFlJTkczIGFuZCBD T1BZSU5HLlJVTlRJCisgI2RlZmluZSBUQVJHRVRfQUJNCU9QVElPTl9JU0FfQUJNCisgI2RlZmlu ZSBUQVJHRVRfUE9QQ05UCU9QVElPTl9JU0FfUE9QQ05UCisgI2RlZmluZSBUQVJHRVRfU0FIRglP UFRJT05fSVNBX1NBSEYKKysjZGVmaW5lIFRBUkdFVF9NT1ZCRQlPUFRJT05fSVNBX01PVkJFCisg I2RlZmluZSBUQVJHRVRfQUVTCU9QVElPTl9JU0FfQUVTCisgI2RlZmluZSBUQVJHRVRfUENMTVVM CU9QVElPTl9JU0FfUENMTVVMCisgI2RlZmluZSBUQVJHRVRfQ01QWENIRzE2QiBPUFRJT05fSVNB X0NYMTYKKy0tLSBnY2MvY29uZmlnL2kzODYvaTM4Ni5tZAkocmV2aXNpb24gMTQ3NzcyKQorKysr IGdjYy9jb25maWcvaTM4Ni9pMzg2Lm1kCShyZXZpc2lvbiAxNDc3NzMpCitAQCAtMTYxMDUsNyAr MTYxMDUsNyBAQCAoZGVmaW5lX2V4cGFuZCAiYnN3YXBzaTIiCisgCShic3dhcDpTSSAobWF0Y2hf b3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikpKV0KKyAgICIiCisgeworLSAgaWYg KCFUQVJHRVRfQlNXQVApCisrICBpZiAoIShUQVJHRVRfQlNXQVAgfHwgVEFSR0VUX01PVkJFKSkK KyAgICAgeworICAgICAgIHJ0eCB4ID0gb3BlcmFuZHNbMF07CisgCitAQCAtMTYxMTcsNiArMTYx MTcsMjEgQEAgKGRlZmluZV9leHBhbmQgImJzd2Fwc2kyIgorICAgICB9CisgfSkKKyAKKysoZGVm aW5lX2luc24gIipic3dhcHNpX21vdmJlIgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAi bm9uaW1tZWRpYXRlX29wZXJhbmQiICI9cixyLG0iKQorKwkoYnN3YXA6U0kgKG1hdGNoX29wZXJh bmQ6U0kgMSAibm9uaW1tZWRpYXRlX29wZXJhbmQiICIwLG0sciIpKSldCisrICAiVEFSR0VUX01P VkJFICYmICEoTUVNX1AgKG9wZXJhbmRzWzBdKSAmJiBNRU1fUCAob3BlcmFuZHNbMV0pKSIKKysg ICJACisrICAgIGJzd2FwXHQlMAorKyAgICBtb3ZiZVx0eyUxLCAlMHwlMCwgJTF9CisrICAgIG1v dmJlXHR7JTEsICUwfCUwLCAlMX0iCisrICBbKHNldF9hdHRyICJ0eXBlIiAiKixpbW92LGltb3Yi KQorKyAgIChzZXRfYXR0ciAibW9kcm0iICIqLDEsMSIpCisrICAgKHNldF9hdHRyICJwcmVmaXhf MGYiICIxIikKKysgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIiosMSwxIikKKysgICAoc2V0 X2F0dHIgImxlbmd0aCIgIjIsKiwqIikKKysgICAoc2V0X2F0dHIgIm1vZGUiICJTSSIpXSkKKysK KyAoZGVmaW5lX2luc24gIipic3dhcHNpXzEiCisgICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAw ICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQorIAkoYnN3YXA6U0kgKG1hdGNoX29wZXJhbmQ6U0kg MSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAiKSkpXQorQEAgLTE2MTQ1LDcgKzE2MTYwLDI5IEBAIChk ZWZpbmVfaW5zbiAiYnN3YXBoaV9sb3dwYXJ0IgorICAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiNCIp CisgICAgKHNldF9hdHRyICJtb2RlIiAiSEkiKV0pCisgCistKGRlZmluZV9pbnNuICJic3dhcGRp MiIKKysoZGVmaW5lX2V4cGFuZCAiYnN3YXBkaTIiCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpE SSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKKysJKGJzd2FwOkRJIChtYXRjaF9vcGVyYW5kOkRJ IDEgInJlZ2lzdGVyX29wZXJhbmQiICIiKSkpXQorKyAgIlRBUkdFVF82NEJJVCIKKysgICIiKQor KworKyhkZWZpbmVfaW5zbiAiKmJzd2FwZGlfbW92YmUiCisrICBbKHNldCAobWF0Y2hfb3BlcmFu ZDpESSAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIj1yLHIsbSIpCisrCShic3dhcDpESSAobWF0 Y2hfb3BlcmFuZDpESSAxICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIjAsbSxyIikpKV0KKysgICJU QVJHRVRfNjRCSVQgJiYgVEFSR0VUX01PVkJFCisrICAgJiYgIShNRU1fUCAob3BlcmFuZHNbMF0p ICYmIE1FTV9QIChvcGVyYW5kc1sxXSkpIgorKyAgIkAKKysgICAgYnN3YXBcdCUwCisrICAgIG1v dmJlXHR7JTEsICUwfCUwLCAlMX0KKysgICAgbW92YmVcdHslMSwgJTB8JTAsICUxfSIKKysgIFso c2V0X2F0dHIgInR5cGUiICIqLGltb3YsaW1vdiIpCisrICAgKHNldF9hdHRyICJtb2RybSIgIios MSwxIikKKysgICAoc2V0X2F0dHIgInByZWZpeF8wZiIgIjEiKQorKyAgIChzZXRfYXR0ciAicHJl Zml4X2V4dHJhIiAiKiwxLDEiKQorKyAgIChzZXRfYXR0ciAibGVuZ3RoIiAiMywqLCoiKQorKyAg IChzZXRfYXR0ciAibW9kZSIgIkRJIildKQorKworKyhkZWZpbmVfaW5zbiAiKmJzd2FwZGlfMSIK KyAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCisg CShic3dhcDpESSAobWF0Y2hfb3BlcmFuZDpESSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpKSld CisgICAiVEFSR0VUXzY0QklUIgorLS0tIGdjYy9jb25maWcvaTM4Ni9jcHVpZC5oCShyZXZpc2lv biAxNDc3NzIpCisrKysgZ2NjL2NvbmZpZy9pMzg2L2NwdWlkLmgJKHJldmlzaW9uIDE0Nzc3MykK K0BAIC0yOSw2ICsyOSw3IEBACisgI2RlZmluZSBiaXRfQ01QWENIRzE2QgkoMSA8PCAxMykKKyAj ZGVmaW5lIGJpdF9TU0U0XzEJKDEgPDwgMTkpCisgI2RlZmluZSBiaXRfU1NFNF8yCSgxIDw8IDIw KQorKyNkZWZpbmUgYml0X01PVkJFCSgxIDw8IDIyKQorICNkZWZpbmUgYml0X1BPUENOVAkoMSA8 PCAyMykKKyAjZGVmaW5lIGJpdF9BRVMJCSgxIDw8IDI1KQorICNkZWZpbmUgYml0X1hTQVZFCSgx IDw8IDI2KQorLS0tIGdjYy9jb25maWcvaTM4Ni9pMzg2Lm9wdAkocmV2aXNpb24gMTQ3NzcyKQor KysrIGdjYy9jb25maWcvaTM4Ni9pMzg2Lm9wdAkocmV2aXNpb24gMTQ3NzczKQorQEAgLTMzOSw2 ICszMzksMTAgQEAgbXNhaGYKKyBUYXJnZXQgUmVwb3J0IE1hc2soSVNBX1NBSEYpIFZhcihpeDg2 X2lzYV9mbGFncykgVmFyRXhpc3RzIFNhdmUKKyBTdXBwb3J0IGNvZGUgZ2VuZXJhdGlvbiBvZiBz YWhmIGluc3RydWN0aW9uIGluIDY0Yml0IHg4Ni02NCBjb2RlLgorIAorK21tb3ZiZQorK1Rhcmdl dCBSZXBvcnQgTWFzayhJU0FfTU9WQkUpIFZhcihpeDg2X2lzYV9mbGFncykgVmFyRXhpc3RzIFNh dmUKKytTdXBwb3J0IGNvZGUgZ2VuZXJhdGlvbiBvZiBtb3ZiZSBpbnN0cnVjdGlvbi4KKysKKyBt YWVzCisgVGFyZ2V0IFJlcG9ydCBNYXNrKElTQV9BRVMpIFZhcihpeDg2X2lzYV9mbGFncykgVmFy RXhpc3RzIFNhdmUKKyBTdXBwb3J0IEFFUyBidWlsdC1pbiBmdW5jdGlvbnMgYW5kIGNvZGUgZ2Vu ZXJhdGlvbgorLS0tIGdjYy9jb25maWcvaTM4Ni9kcml2ZXItaTM4Ni5jCShyZXZpc2lvbiAxNDc3 NzIpCisrKysgZ2NjL2NvbmZpZy9pMzg2L2RyaXZlci1pMzg2LmMJKHJldmlzaW9uIDE0Nzc3MykK K0BAIC0zNzgsNyArMzc4LDcgQEAgY29uc3QgY2hhciAqaG9zdF9kZXRlY3RfbG9jYWxfY3B1IChp bnQgYQorICAgLyogRXh0ZW5kZWQgZmVhdHVyZXMgKi8KKyAgIHVuc2lnbmVkIGludCBoYXNfbGFo Zl9sbSA9IDAsIGhhc19zc2U0YSA9IDA7CisgICB1bnNpZ25lZCBpbnQgaGFzX2xvbmdtb2RlID0g MCwgaGFzXzNkbm93cCA9IDAsIGhhc18zZG5vdyA9IDA7CistICB1bnNpZ25lZCBpbnQgaGFzX3Nz ZTRfMSA9IDAsIGhhc19zc2U0XzIgPSAwOworKyAgdW5zaWduZWQgaW50IGhhc19tb3ZiZSA9IDAs IGhhc19zc2U0XzEgPSAwLCBoYXNfc3NlNF8yID0gMDsKKyAgIHVuc2lnbmVkIGludCBoYXNfcG9w Y250ID0gMCwgaGFzX2FlcyA9IDAsIGhhc19hdnggPSAwOworICAgdW5zaWduZWQgaW50IGhhc19w Y2xtdWwgPSAwOworIAorQEAgLTQwOCw2ICs0MDgsNyBAQCBjb25zdCBjaGFyICpob3N0X2RldGVj dF9sb2NhbF9jcHUgKGludCBhCisgICBoYXNfc3NlNF8yID0gZWN4ICYgYml0X1NTRTRfMjsKKyAg IGhhc19hdnggPSBlY3ggJiBiaXRfQVZYOworICAgaGFzX2NtcHhjaGcxNmIgPSBlY3ggJiBiaXRf Q01QWENIRzE2QjsKKysgIGhhc19tb3ZiZSA9IGVjeCAmIGJpdF9NT1ZCRTsKKyAgIGhhc19wb3Bj bnQgPSBlY3ggJiBiaXRfUE9QQ05UOworICAgaGFzX2FlcyA9IGVjeCAmIGJpdF9BRVM7CisgICBo YXNfcGNsbXVsID0gZWN4ICYgYml0X1BDTE1VTDsKK0BAIC01OTcsNiArNTk4LDggQEAgY29uc3Qg Y2hhciAqaG9zdF9kZXRlY3RfbG9jYWxfY3B1IChpbnQgYQorIAlvcHRpb25zID0gY29uY2F0IChv cHRpb25zLCAiLW1jeDE2ICIsIE5VTEwpOworICAgICAgIGlmIChoYXNfbGFoZl9sbSkKKyAJb3B0 aW9ucyA9IGNvbmNhdCAob3B0aW9ucywgIi1tc2FoZiAiLCBOVUxMKTsKKysgICAgICBpZiAoaGFz X21vdmJlKQorKwlvcHRpb25zID0gY29uY2F0IChvcHRpb25zLCAiLW1tb3ZiZSAiLCBOVUxMKTsK KyAgICAgICBpZiAoaGFzX2FlcykKKyAJb3B0aW9ucyA9IGNvbmNhdCAob3B0aW9ucywgIi1tYWVz ICIsIE5VTEwpOworICAgICAgIGlmIChoYXNfcGNsbXVsKQorLS0tIGdjYy9jb25maWcvaTM4Ni9p Mzg2LmMJKHJldmlzaW9uIDE0Nzc3MikKKysrKyBnY2MvY29uZmlnL2kzODYvaTM4Ni5jCShyZXZp c2lvbiAxNDc3NzMpCitAQCAtMTk2NSw5ICsxOTY1LDExIEBAIHN0YXRpYyBpbnQgaXg4Nl9pc2Ff ZmxhZ3NfZXhwbGljaXQ7CisgCisgI2RlZmluZSBPUFRJT05fTUFTS19JU0FfQUJNX1NFVCBcCisg ICAoT1BUSU9OX01BU0tfSVNBX0FCTSB8IE9QVElPTl9NQVNLX0lTQV9QT1BDTlQpCisrCisgI2Rl ZmluZSBPUFRJT05fTUFTS19JU0FfUE9QQ05UX1NFVCBPUFRJT05fTUFTS19JU0FfUE9QQ05UCisg I2RlZmluZSBPUFRJT05fTUFTS19JU0FfQ1gxNl9TRVQgT1BUSU9OX01BU0tfSVNBX0NYMTYKKyAj ZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9TQUhGX1NFVCBPUFRJT05fTUFTS19JU0FfU0FIRgorKyNk ZWZpbmUgT1BUSU9OX01BU0tfSVNBX01PVkJFX1NFVCBPUFRJT05fTUFTS19JU0FfTU9WQkUKKyAK KyAvKiBEZWZpbmUgYSBzZXQgb2YgSVNBcyB3aGljaCBhcmVuJ3QgYXZhaWxhYmxlIHdoZW4gYSBn aXZlbiBJU0EgaXMKKyAgICBkaXNhYmxlZC4gIE1NWCBhbmQgU1NFIElTQXMgYXJlIGhhbmRsZWQg c2VwYXJhdGVseS4gICovCitAQCAtMjAwOSw2ICsyMDExLDcgQEAgc3RhdGljIGludCBpeDg2X2lz YV9mbGFnc19leHBsaWNpdDsKKyAjZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9QT1BDTlRfVU5TRVQg T1BUSU9OX01BU0tfSVNBX1BPUENOVAorICNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX0NYMTZfVU5T RVQgT1BUSU9OX01BU0tfSVNBX0NYMTYKKyAjZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9TQUhGX1VO U0VUIE9QVElPTl9NQVNLX0lTQV9TQUhGCisrI2RlZmluZSBPUFRJT05fTUFTS19JU0FfTU9WQkVf VU5TRVQgT1BUSU9OX01BU0tfSVNBX01PVkJFCisgCisgLyogVmVjdG9yaXphdGlvbiBsaWJyYXJ5 IGludGVyZmFjZSBhbmQgaGFuZGxlcnMuICAqLworIHRyZWUgKCppeDg2X3ZlY2xpYl9oYW5kbGVy KShlbnVtIGJ1aWx0X2luX2Z1bmN0aW9uLCB0cmVlLCB0cmVlKSA9IE5VTEw7CitAQCAtMjI5OSw2 ICsyMzAyLDE5IEBAIGl4ODZfaGFuZGxlX29wdGlvbiAoc2l6ZV90IGNvZGUsIGNvbnN0IGMKKyAJ fQorICAgICAgIHJldHVybiB0cnVlOworIAorKyAgICBjYXNlIE9QVF9tbW92YmU6CisrICAgICAg aWYgKHZhbHVlKQorKwl7CisrCSAgaXg4Nl9pc2FfZmxhZ3MgfD0gT1BUSU9OX01BU0tfSVNBX01P VkJFX1NFVDsKKysJICBpeDg2X2lzYV9mbGFnc19leHBsaWNpdCB8PSBPUFRJT05fTUFTS19JU0Ff TU9WQkVfU0VUOworKwl9CisrICAgICAgZWxzZQorKwl7CisrCSAgaXg4Nl9pc2FfZmxhZ3MgJj0g fk9QVElPTl9NQVNLX0lTQV9NT1ZCRV9VTlNFVDsKKysJICBpeDg2X2lzYV9mbGFnc19leHBsaWNp dCB8PSBPUFRJT05fTUFTS19JU0FfTU9WQkVfVU5TRVQ7CisrCX0KKysgICAgICByZXR1cm4gdHJ1 ZTsKKysKKyAgICAgY2FzZSBPUFRfbWFlczoKKyAgICAgICBpZiAodmFsdWUpCisgCXsKK0BAIC0y MzYxLDYgKzIzNzcsNyBAQCBpeDg2X3RhcmdldF9zdHJpbmcgKGludCBpc2EsIGludCBmbGFncywg CisgICAgIHsgIi1tbW14IiwJCU9QVElPTl9NQVNLX0lTQV9NTVggfSwKKyAgICAgeyAiLW1hYm0i LAkJT1BUSU9OX01BU0tfSVNBX0FCTSB9LAorICAgICB7ICItbXBvcGNudCIsCU9QVElPTl9NQVNL X0lTQV9QT1BDTlQgfSwKKysgICAgeyAiLW1tb3ZiZSIsCU9QVElPTl9NQVNLX0lTQV9NT1ZCRSB9 LAorICAgICB7ICItbWFlcyIsCQlPUFRJT05fTUFTS19JU0FfQUVTIH0sCisgICAgIHsgIi1tcGNs bXVsIiwJT1BUSU9OX01BU0tfSVNBX1BDTE1VTCB9LAorICAgfTsKK0BAIC0yNTc3LDcgKzI1OTQs OCBAQCBvdmVycmlkZV9vcHRpb25zIChib29sIG1haW5fYXJnc19wKQorICAgICAgIFBUQV9BRVMg PSAxIDw8IDE3LAorICAgICAgIFBUQV9QQ0xNVUwgPSAxIDw8IDE4LAorICAgICAgIFBUQV9BVlgg PSAxIDw8IDE5LAorLSAgICAgIFBUQV9GTUEgPSAxIDw8IDIwIAorKyAgICAgIFBUQV9GTUEgPSAx IDw8IDIwLAorKyAgICAgIFBUQV9NT1ZCRSA9IDEgPDwgMjEKKyAgICAgfTsKKyAKKyAgIHN0YXRp YyBzdHJ1Y3QgcHRhCitAQCAtMjYyMSw3ICsyNjM5LDcgQEAgb3ZlcnJpZGVfb3B0aW9ucyAoYm9v bCBtYWluX2FyZ3NfcCkKKyAJfCBQVEFfU1NTRTMgfCBQVEFfQ1gxNn0sCisgICAgICAgeyJhdG9t IiwgUFJPQ0VTU09SX0FUT00sIENQVV9BVE9NLAorIAlQVEFfNjRCSVQgfCBQVEFfTU1YIHwgUFRB X1NTRSB8IFBUQV9TU0UyIHwgUFRBX1NTRTMKKy0JfCBQVEFfU1NTRTMgfCBQVEFfQ1gxNn0sCisr CXwgUFRBX1NTU0UzIHwgUFRBX0NYMTYgfCBQVEFfTU9WQkV9LAorICAgICAgIHsiZ2VvZGUiLCBQ Uk9DRVNTT1JfR0VPREUsIENQVV9HRU9ERSwKKyAJUFRBX01NWCB8IFBUQV8zRE5PVyB8IFBUQV8z RE5PV19BIHxQVEFfUFJFRkVUQ0hfU1NFfSwKKyAgICAgICB7Ims2IiwgUFJPQ0VTU09SX0s2LCBD UFVfSzYsIFBUQV9NTVh9LAorQEAgLTI5MzUsNiArMjk1Myw5IEBAIG92ZXJyaWRlX29wdGlvbnMg KGJvb2wgbWFpbl9hcmdzX3ApCisgCWlmICghKFRBUkdFVF82NEJJVCAmJiAocHJvY2Vzc29yX2Fs aWFzX3RhYmxlW2ldLmZsYWdzICYgUFRBX05PX1NBSEYpKQorIAkgICAgJiYgIShpeDg2X2lzYV9m bGFnc19leHBsaWNpdCAmIE9QVElPTl9NQVNLX0lTQV9TQUhGKSkKKyAJICBpeDg2X2lzYV9mbGFn cyB8PSBPUFRJT05fTUFTS19JU0FfU0FIRjsKKysJaWYgKHByb2Nlc3Nvcl9hbGlhc190YWJsZVtp XS5mbGFncyAmIFBUQV9NT1ZCRQorKwkgICAgJiYgIShpeDg2X2lzYV9mbGFnc19leHBsaWNpdCAm IE9QVElPTl9NQVNLX0lTQV9NT1ZCRSkpCisrCSAgaXg4Nl9pc2FfZmxhZ3MgfD0gT1BUSU9OX01B U0tfSVNBX01PVkJFOworIAlpZiAocHJvY2Vzc29yX2FsaWFzX3RhYmxlW2ldLmZsYWdzICYgUFRB X0FFUworIAkgICAgJiYgIShpeDg2X2lzYV9mbGFnc19leHBsaWNpdCAmIE9QVElPTl9NQVNLX0lT QV9BRVMpKQorIAkgIGl4ODZfaXNhX2ZsYWdzIHw9IE9QVElPTl9NQVNLX0lTQV9BRVM7CgpkaWZm IC0tZ2l0IGEvZ2NjNDQtYnVpbHRpbi1vYmplY3Qtc2l6ZS5wYXRjaCBiL2djYzQ0LWJ1aWx0aW4t b2JqZWN0LXNpemUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2Rl MDNhMQotLS0gL2Rldi9udWxsCisrKyBiL2djYzQ0LWJ1aWx0aW4tb2JqZWN0LXNpemUucGF0Y2gK QEAgLTAsMCArMSw3NjQgQEAKKzIwMDktMDYtMDggIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRo YXQuY29tPgorCisJKiB0cmVlLW9iamVjdC1zaXplLmMgKGFkZHJfb2JqZWN0X3NpemUpOiBBZGQg T1NJIGFyZ3VtZW50LgorCUhhbmRsZSBhbHNvIElORElSRUNUX1JFRiB3aXRoIFNTQV9OQU1FIGlu c2lkZSBvZiBpdCBhcyBiYXNlIGFkZHJlc3MuCisJKGNvbXB1dGVfYnVpbHRpbl9vYmplY3Rfc2l6 ZSwgZXhwcl9vYmplY3Rfc2l6ZSk6IEFkanVzdCBjYWxsZXJzLgorCShwbHVzX3N0bXRfb2JqZWN0 X3NpemUpOiBDYWxsIGFkZHJfb2JqZWN0X3NpemUgaW5zdGVhZCBvZgorCWNvbXB1dGVfYnVpbHRp bl9vYmplY3Rfc2l6ZS4KKworCSogZ2NjLmRnL2J1aWx0aW4tb2JqZWN0LXNpemUtMi5jICh0ZXN0 MSk6IEFkanVzdCBleHBlY3RlZCByZXN1bHRzLgorCSogZ2NjLmRnL2J1aWx0aW4tb2JqZWN0LXNp emUtNC5jICh0ZXN0MSk6IEFkanVzdCBleHBlY3RlZCByZXN1bHRzLgorCSogZ2NjLmRnL2J1aWx0 aW4tb2JqZWN0LXNpemUtNi5jOiBOZXcgdGVzdC4KKworLS0tIGdjYy90ZXN0c3VpdGUvZ2NjLmRn L2J1aWx0aW4tb2JqZWN0LXNpemUtNC5jCShyZXZpc2lvbiAxNDgyNzgpCisrKysgZ2NjL3Rlc3Rz dWl0ZS9nY2MuZGcvYnVpbHRpbi1vYmplY3Qtc2l6ZS00LmMJKHJldmlzaW9uIDE0ODI3OSkKK0BA IC0xMzAsMTUgKzEzMCwxNSBAQCB0ZXN0MSAodm9pZCAqcSwgaW50IHgpCisgICAgIGFib3J0ICgp OyAgICAKKyAgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZ2YXJhWzVdLCAzKSAhPSAwKQor ICAgICBhYm9ydCAoKTsKKy0gIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZ2YXJhWzBdLmEs IDMpICE9IDApCisrICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmdmFyYVswXS5hLCAzKSAh PSBzaXplb2YgKHZhcmFbMF0uYSkpCisgICAgIGFib3J0ICgpOworLSAgaWYgKF9fYnVpbHRpbl9v YmplY3Rfc2l6ZSAoJnZhcmFbMTBdLmFbMF0sIDMpICE9IDApCisrICBpZiAoX19idWlsdGluX29i amVjdF9zaXplICgmdmFyYVsxMF0uYVswXSwgMykgIT0gc2l6ZW9mICh2YXJhWzBdLmEpKQorICAg ICBhYm9ydCAoKTsKKy0gIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZ2YXJhWzVdLmFbNF0s IDMpICE9IDApCisrICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmdmFyYVs1XS5hWzRdLCAz KSAhPSBzaXplb2YgKHZhcmFbMF0uYSkgLSA0KQorICAgICBhYm9ydCAoKTsKKy0gIGlmIChfX2J1 aWx0aW5fb2JqZWN0X3NpemUgKCZ2YXJhWzVdLmIsIDMpICE9IDApCisrICBpZiAoX19idWlsdGlu X29iamVjdF9zaXplICgmdmFyYVs1XS5iLCAzKSAhPSBzaXplb2YgKHZhcmFbMF0uYikpCisgICAg IGFib3J0ICgpOworLSAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoJnZhcmFbN10uY1s3XSwg MykgIT0gMCkKKysgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZ2YXJhWzddLmNbN10sIDMp ICE9IHNpemVvZiAodmFyYVswXS5jKSAtIDcpCisgICAgIGFib3J0ICgpOworICAgaWYgKF9fYnVp bHRpbl9vYmplY3Rfc2l6ZSAoemVyb2wsIDMpICE9IDApCisgICAgIGFib3J0ICgpOworLS0tIGdj Yy90ZXN0c3VpdGUvZ2NjLmRnL2J1aWx0aW4tb2JqZWN0LXNpemUtMi5jCShyZXZpc2lvbiAxNDgy NzgpCisrKysgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYnVpbHRpbi1vYmplY3Qtc2l6ZS0yLmMJKHJl dmlzaW9uIDE0ODI3OSkKK0BAIC0xMzAsMTUgKzEzMCwxNSBAQCB0ZXN0MSAodm9pZCAqcSwgaW50 IHgpCisgICAgIGFib3J0ICgpOyAgICAKKyAgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZ2 YXJhWzVdLCAxKSAhPSAoc2l6ZV90KSAtMSkKKyAgICAgYWJvcnQgKCk7CistICBpZiAoX19idWls dGluX29iamVjdF9zaXplICgmdmFyYVswXS5hLCAxKSAhPSAoc2l6ZV90KSAtMSkKKysgIGlmIChf X2J1aWx0aW5fb2JqZWN0X3NpemUgKCZ2YXJhWzBdLmEsIDEpICE9IHNpemVvZiAodmFyYVswXS5h KSkKKyAgICAgYWJvcnQgKCk7CistICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmdmFyYVsx MF0uYVswXSwgMSkgIT0gKHNpemVfdCkgLTEpCisrICBpZiAoX19idWlsdGluX29iamVjdF9zaXpl ICgmdmFyYVsxMF0uYVswXSwgMSkgIT0gc2l6ZW9mICh2YXJhWzBdLmEpKQorICAgICBhYm9ydCAo KTsKKy0gIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZ2YXJhWzVdLmFbNF0sIDEpICE9IChz aXplX3QpIC0xKQorKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoJnZhcmFbNV0uYVs0XSwg MSkgIT0gc2l6ZW9mICh2YXJhWzBdLmEpIC0gNCkKKyAgICAgYWJvcnQgKCk7CistICBpZiAoX19i dWlsdGluX29iamVjdF9zaXplICgmdmFyYVs1XS5iLCAxKSAhPSAoc2l6ZV90KSAtMSkKKysgIGlm IChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZ2YXJhWzVdLmIsIDEpICE9IHNpemVvZiAodmFyYVsw XS5iKSkKKyAgICAgYWJvcnQgKCk7CistICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmdmFy YVs3XS5jWzddLCAxKSAhPSAoc2l6ZV90KSAtMSkKKysgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3Np emUgKCZ2YXJhWzddLmNbN10sIDEpICE9IHNpemVvZiAodmFyYVswXS5jKSAtIDcpCisgICAgIGFi b3J0ICgpOworICAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoemVyb2wsIDEpICE9IDApCisg ICAgIGFib3J0ICgpOworLS0tIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL2J1aWx0aW4tb2JqZWN0LXNp emUtNi5jCShyZXZpc2lvbiAwKQorKysrIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL2J1aWx0aW4tb2Jq ZWN0LXNpemUtNi5jCShyZXZpc2lvbiAxNDgyNzkpCitAQCAtMCwwICsxLDQzNSBAQAorKy8qIHsg ZGctZG8gcnVuIH0gKi8KKysvKiB7IGRnLW9wdGlvbnMgIi1PMiIgfSAqLworKworK3R5cGVkZWYg X19TSVpFX1RZUEVfXyBzaXplX3Q7CisrZXh0ZXJuIHZvaWQgYWJvcnQgKHZvaWQpOworK2V4dGVy biB2b2lkIGV4aXQgKGludCk7CisrZXh0ZXJuIHZvaWQgKm1hbGxvYyAoc2l6ZV90KTsKKytleHRl cm4gdm9pZCBmcmVlICh2b2lkICopOworKworK3N0cnVjdCBBCisreworKyAgY2hhciBhWzEwXTsK KysgIGludCBiOworKyAgY2hhciBjWzEwXTsKKyt9OworKworK3ZvaWQKKytfX2F0dHJpYnV0ZV9f ICgobm9pbmxpbmUpKQorK3Rlc3QxIChzdHJ1Y3QgQSAqcCkKKyt7CisrICBjaGFyICpjOworKyAg aWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoJnAtPmEsIDApICE9IChzaXplX3QpIC0xKQorKyAg ICBhYm9ydCAoKTsKKysgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZwLT5hWzBdLCAwKSAh PSAoc2l6ZV90KSAtMSkKKysgICAgYWJvcnQgKCk7CisrICBpZiAoX19idWlsdGluX29iamVjdF9z aXplICgmcC0+YVszXSwgMCkgIT0gKHNpemVfdCkgLTEpCisrICAgIGFib3J0ICgpOworKyAgaWYg KF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoJnAtPmIsIDApICE9IChzaXplX3QpIC0xKQorKyAgICBh Ym9ydCAoKTsKKysgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZwLT5jLCAwKSAhPSAoc2l6 ZV90KSAtMSkKKysgICAgYWJvcnQgKCk7CisrICBjID0gcC0+YTsKKysgIGlmIChfX2J1aWx0aW5f b2JqZWN0X3NpemUgKGMsIDApICE9IChzaXplX3QpIC0xKQorKyAgICBhYm9ydCAoKTsKKysgIGMg PSAmcC0+YVswXTsKKysgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKGMsIDApICE9IChzaXpl X3QpIC0xKQorKyAgICBhYm9ydCAoKTsKKysgIGMgPSAmcC0+YVszXTsKKysgIGlmIChfX2J1aWx0 aW5fb2JqZWN0X3NpemUgKGMsIDApICE9IChzaXplX3QpIC0xKQorKyAgICBhYm9ydCAoKTsKKysg IGMgPSAoY2hhciAqKSAmcC0+YjsKKysgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKGMsIDAp ICE9IChzaXplX3QpIC0xKQorKyAgICBhYm9ydCAoKTsKKysgIGMgPSAoY2hhciAqKSAmcC0+YzsK KysgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKGMsIDApICE9IChzaXplX3QpIC0xKQorKyAg ICBhYm9ydCAoKTsKKysgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZwLT5hLCAxKSAhPSBz aXplb2YgKHAtPmEpKQorKyAgICBhYm9ydCAoKTsKKysgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3Np emUgKCZwLT5hWzBdLCAxKSAhPSBzaXplb2YgKHAtPmEpKQorKyAgICBhYm9ydCAoKTsKKysgIGlm IChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZwLT5hWzNdLCAxKSAhPSBzaXplb2YgKHAtPmEpIC0g MykKKysgICAgYWJvcnQgKCk7CisrICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmcC0+Yiwg MSkgIT0gc2l6ZW9mIChwLT5iKSkKKysgICAgYWJvcnQgKCk7CisrICBpZiAoX19idWlsdGluX29i amVjdF9zaXplICgmcC0+YywgMSkgIT0gKHNpemVfdCkgLTEpCisrICAgIGFib3J0ICgpOworKyAg YyA9IHAtPmE7CisrICBpZiAoX19idWlsdGluX29iamVjdF9zaXplIChjLCAxKSAhPSBzaXplb2Yg KHAtPmEpKQorKyAgICBhYm9ydCAoKTsKKysgIGMgPSAmcC0+YVswXTsKKysgIGlmIChfX2J1aWx0 aW5fb2JqZWN0X3NpemUgKGMsIDEpICE9IHNpemVvZiAocC0+YSkpCisrICAgIGFib3J0ICgpOwor KyAgYyA9ICZwLT5hWzNdOworKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoYywgMSkgIT0g c2l6ZW9mIChwLT5hKSAtIDMpCisrICAgIGFib3J0ICgpOworKyAgYyA9IChjaGFyICopICZwLT5i OworKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoYywgMSkgIT0gc2l6ZW9mIChwLT5iKSkK KysgICAgYWJvcnQgKCk7CisrICBjID0gKGNoYXIgKikgJnAtPmM7CisrICBpZiAoX19idWlsdGlu X29iamVjdF9zaXplIChjLCAxKSAhPSAoc2l6ZV90KSAtMSkKKysgICAgYWJvcnQgKCk7CisrICBp ZiAoX19idWlsdGluX29iamVjdF9zaXplICgmcC0+YSwgMikgIT0gMCkKKysgICAgYWJvcnQgKCk7 CisrICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmcC0+YVswXSwgMikgIT0gMCkKKysgICAg YWJvcnQgKCk7CisrICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmcC0+YVszXSwgMikgIT0g MCkKKysgICAgYWJvcnQgKCk7CisrICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmcC0+Yiwg MikgIT0gMCkKKysgICAgYWJvcnQgKCk7CisrICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgm cC0+YywgMikgIT0gMCkKKysgICAgYWJvcnQgKCk7CisrICBjID0gcC0+YTsKKysgIGlmIChfX2J1 aWx0aW5fb2JqZWN0X3NpemUgKGMsIDIpICE9IDApCisrICAgIGFib3J0ICgpOworKyAgYyA9ICZw LT5hWzBdOworKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoYywgMikgIT0gMCkKKysgICAg YWJvcnQgKCk7CisrICBjID0gJnAtPmFbM107CisrICBpZiAoX19idWlsdGluX29iamVjdF9zaXpl IChjLCAyKSAhPSAwKQorKyAgICBhYm9ydCAoKTsKKysgIGMgPSAoY2hhciAqKSAmcC0+YjsKKysg IGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKGMsIDIpICE9IDApCisrICAgIGFib3J0ICgpOwor KyAgYyA9IChjaGFyICopICZwLT5jOworKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoYywg MikgIT0gMCkKKysgICAgYWJvcnQgKCk7CisrICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgm cC0+YSwgMykgIT0gc2l6ZW9mIChwLT5hKSkKKysgICAgYWJvcnQgKCk7CisrICBpZiAoX19idWls dGluX29iamVjdF9zaXplICgmcC0+YVswXSwgMykgIT0gc2l6ZW9mIChwLT5hKSkKKysgICAgYWJv cnQgKCk7CisrICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmcC0+YVszXSwgMykgIT0gc2l6 ZW9mIChwLT5hKSAtIDMpCisrICAgIGFib3J0ICgpOworKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rf c2l6ZSAoJnAtPmIsIDMpICE9IHNpemVvZiAocC0+YikpCisrICAgIGFib3J0ICgpOworKyAgaWYg KF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoJnAtPmMsIDMpICE9IDApCisrICAgIGFib3J0ICgpOwor KyAgYyA9IHAtPmE7CisrICBpZiAoX19idWlsdGluX29iamVjdF9zaXplIChjLCAzKSAhPSBzaXpl b2YgKHAtPmEpKQorKyAgICBhYm9ydCAoKTsKKysgIGMgPSAmcC0+YVswXTsKKysgIGlmIChfX2J1 aWx0aW5fb2JqZWN0X3NpemUgKGMsIDMpICE9IHNpemVvZiAocC0+YSkpCisrICAgIGFib3J0ICgp OworKyAgYyA9ICZwLT5hWzNdOworKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoYywgMykg IT0gc2l6ZW9mIChwLT5hKSAtIDMpCisrICAgIGFib3J0ICgpOworKyAgYyA9IChjaGFyICopICZw LT5iOworKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoYywgMykgIT0gc2l6ZW9mIChwLT5i KSkKKysgICAgYWJvcnQgKCk7CisrICBjID0gKGNoYXIgKikgJnAtPmM7CisrICBpZiAoX19idWls dGluX29iamVjdF9zaXplIChjLCAzKSAhPSAwKQorKyAgICBhYm9ydCAoKTsKKyt9CisrCisrdm9p ZAorK19fYXR0cmlidXRlX18gKChub2lubGluZSkpCisrdGVzdDIgKHZvaWQpCisreworKyAgY2hh ciAqYzsKKysgIHNpemVfdCBzID0gMiAqIHNpemVvZiAoc3RydWN0IEEpOworKyAgc3RydWN0IEEg KnAgPSBtYWxsb2MgKDIgKiBzaXplb2YgKHN0cnVjdCBBKSk7CisrICBpZiAoX19idWlsdGluX29i amVjdF9zaXplICgmcC0+YSwgMCkgIT0gcykKKysgICAgYWJvcnQgKCk7CisrICBpZiAoX19idWls dGluX29iamVjdF9zaXplICgmcC0+YVswXSwgMCkgIT0gcykKKysgICAgYWJvcnQgKCk7CisrICBp ZiAoX19idWlsdGluX29iamVjdF9zaXplICgmcC0+YVszXSwgMCkgIT0gcyAtIDMpCisrICAgIGFi b3J0ICgpOworKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoJnAtPmIsIDApICE9IHMgLSBf X2J1aWx0aW5fb2Zmc2V0b2YgKHN0cnVjdCBBLCBiKSkKKysgICAgYWJvcnQgKCk7CisrICBpZiAo X19idWlsdGluX29iamVjdF9zaXplICgmcC0+YywgMCkgIT0gcyAtIF9fYnVpbHRpbl9vZmZzZXRv ZiAoc3RydWN0IEEsIGMpKQorKyAgICBhYm9ydCAoKTsKKysgIGMgPSBwLT5hOworKyAgaWYgKF9f YnVpbHRpbl9vYmplY3Rfc2l6ZSAoYywgMCkgIT0gcykKKysgICAgYWJvcnQgKCk7CisrICBjID0g JnAtPmFbMF07CisrICBpZiAoX19idWlsdGluX29iamVjdF9zaXplIChjLCAwKSAhPSBzKQorKyAg ICBhYm9ydCAoKTsKKysgIGMgPSAmcC0+YVszXTsKKysgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3Np emUgKGMsIDApICE9IHMgLSAzKQorKyAgICBhYm9ydCAoKTsKKysgIGMgPSAoY2hhciAqKSAmcC0+ YjsKKysgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKGMsIDApICE9IHMgLSBfX2J1aWx0aW5f b2Zmc2V0b2YgKHN0cnVjdCBBLCBiKSkKKysgICAgYWJvcnQgKCk7CisrICBjID0gKGNoYXIgKikg JnAtPmM7CisrICBpZiAoX19idWlsdGluX29iamVjdF9zaXplIChjLCAwKSAhPSBzIC0gX19idWls dGluX29mZnNldG9mIChzdHJ1Y3QgQSwgYykpCisrICAgIGFib3J0ICgpOworKyAgaWYgKF9fYnVp bHRpbl9vYmplY3Rfc2l6ZSAoJnAtPmEsIDEpICE9IHNpemVvZiAocC0+YSkpCisrICAgIGFib3J0 ICgpOworKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoJnAtPmFbMF0sIDEpICE9IHNpemVv ZiAocC0+YSkpCisrICAgIGFib3J0ICgpOworKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAo JnAtPmFbM10sIDEpICE9IHNpemVvZiAocC0+YSkgLSAzKQorKyAgICBhYm9ydCAoKTsKKysgIGlm IChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZwLT5iLCAxKSAhPSBzaXplb2YgKHAtPmIpKQorKyAg ICBhYm9ydCAoKTsKKysgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZwLT5jLCAxKSAhPSBz IC0gX19idWlsdGluX29mZnNldG9mIChzdHJ1Y3QgQSwgYykpCisrICAgIGFib3J0ICgpOworKyAg YyA9IHAtPmE7CisrICBpZiAoX19idWlsdGluX29iamVjdF9zaXplIChjLCAxKSAhPSBzaXplb2Yg KHAtPmEpKQorKyAgICBhYm9ydCAoKTsKKysgIGMgPSAmcC0+YVswXTsKKysgIGlmIChfX2J1aWx0 aW5fb2JqZWN0X3NpemUgKGMsIDEpICE9IHNpemVvZiAocC0+YSkpCisrICAgIGFib3J0ICgpOwor KyAgYyA9ICZwLT5hWzNdOworKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoYywgMSkgIT0g c2l6ZW9mIChwLT5hKSAtIDMpCisrICAgIGFib3J0ICgpOworKyAgYyA9IChjaGFyICopICZwLT5i OworKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoYywgMSkgIT0gc2l6ZW9mIChwLT5iKSkK KysgICAgYWJvcnQgKCk7CisrICBjID0gKGNoYXIgKikgJnAtPmM7CisrICBpZiAoX19idWlsdGlu X29iamVjdF9zaXplIChjLCAxKSAhPSBzIC0gX19idWlsdGluX29mZnNldG9mIChzdHJ1Y3QgQSwg YykpCisrICAgIGFib3J0ICgpOworKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoJnAtPmEs IDIpICE9IHMpCisrICAgIGFib3J0ICgpOworKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAo JnAtPmFbMF0sIDIpICE9IHMpCisrICAgIGFib3J0ICgpOworKyAgaWYgKF9fYnVpbHRpbl9vYmpl Y3Rfc2l6ZSAoJnAtPmFbM10sIDIpICE9IHMgLSAzKQorKyAgICBhYm9ydCAoKTsKKysgIGlmIChf X2J1aWx0aW5fb2JqZWN0X3NpemUgKCZwLT5iLCAyKSAhPSBzIC0gX19idWlsdGluX29mZnNldG9m IChzdHJ1Y3QgQSwgYikpCisrICAgIGFib3J0ICgpOworKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rf c2l6ZSAoJnAtPmMsIDIpICE9IHMgLSBfX2J1aWx0aW5fb2Zmc2V0b2YgKHN0cnVjdCBBLCBjKSkK KysgICAgYWJvcnQgKCk7CisrICBjID0gcC0+YTsKKysgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3Np emUgKGMsIDIpICE9IHMpCisrICAgIGFib3J0ICgpOworKyAgYyA9ICZwLT5hWzBdOworKyAgaWYg KF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoYywgMikgIT0gcykKKysgICAgYWJvcnQgKCk7CisrICBj ID0gJnAtPmFbM107CisrICBpZiAoX19idWlsdGluX29iamVjdF9zaXplIChjLCAyKSAhPSBzIC0g MykKKysgICAgYWJvcnQgKCk7CisrICBjID0gKGNoYXIgKikgJnAtPmI7CisrICBpZiAoX19idWls dGluX29iamVjdF9zaXplIChjLCAyKSAhPSBzIC0gX19idWlsdGluX29mZnNldG9mIChzdHJ1Y3Qg QSwgYikpCisrICAgIGFib3J0ICgpOworKyAgYyA9IChjaGFyICopICZwLT5jOworKyAgaWYgKF9f YnVpbHRpbl9vYmplY3Rfc2l6ZSAoYywgMikgIT0gcyAtIF9fYnVpbHRpbl9vZmZzZXRvZiAoc3Ry dWN0IEEsIGMpKQorKyAgICBhYm9ydCAoKTsKKysgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUg KCZwLT5hLCAzKSAhPSBzaXplb2YgKHAtPmEpKQorKyAgICBhYm9ydCAoKTsKKysgIGlmIChfX2J1 aWx0aW5fb2JqZWN0X3NpemUgKCZwLT5hWzBdLCAzKSAhPSBzaXplb2YgKHAtPmEpKQorKyAgICBh Ym9ydCAoKTsKKysgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZwLT5hWzNdLCAzKSAhPSBz aXplb2YgKHAtPmEpIC0gMykKKysgICAgYWJvcnQgKCk7CisrICBpZiAoX19idWlsdGluX29iamVj dF9zaXplICgmcC0+YiwgMykgIT0gc2l6ZW9mIChwLT5iKSkKKysgICAgYWJvcnQgKCk7CisrICBp ZiAoX19idWlsdGluX29iamVjdF9zaXplICgmcC0+YywgMykgIT0gcyAtIF9fYnVpbHRpbl9vZmZz ZXRvZiAoc3RydWN0IEEsIGMpKQorKyAgICBhYm9ydCAoKTsKKysgIGMgPSBwLT5hOworKyAgaWYg KF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoYywgMykgIT0gc2l6ZW9mIChwLT5hKSkKKysgICAgYWJv cnQgKCk7CisrICBjID0gJnAtPmFbMF07CisrICBpZiAoX19idWlsdGluX29iamVjdF9zaXplIChj LCAzKSAhPSBzaXplb2YgKHAtPmEpKQorKyAgICBhYm9ydCAoKTsKKysgIGMgPSAmcC0+YVszXTsK KysgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKGMsIDMpICE9IHNpemVvZiAocC0+YSkgLSAz KQorKyAgICBhYm9ydCAoKTsKKysgIGMgPSAoY2hhciAqKSAmcC0+YjsKKysgIGlmIChfX2J1aWx0 aW5fb2JqZWN0X3NpemUgKGMsIDMpICE9IHNpemVvZiAocC0+YikpCisrICAgIGFib3J0ICgpOwor KyAgYyA9IChjaGFyICopICZwLT5jOworKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoYywg MykgIT0gcyAtIF9fYnVpbHRpbl9vZmZzZXRvZiAoc3RydWN0IEEsIGMpKQorKyAgICBhYm9ydCAo KTsKKysgIGZyZWUgKHApOworK30KKysKKyt2b2lkCisrX19hdHRyaWJ1dGVfXyAoKG5vaW5saW5l KSkKKyt0ZXN0MyAodm9pZCkKKyt7CisrICBjaGFyICpjOworKyAgc2l6ZV90IHM7CisrICBzdHJ1 Y3QgQSAqcCA9IG1hbGxvYyAoNCk7CisrICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmcC0+ YSwgMCkgIT0gNCkKKysgICAgYWJvcnQgKCk7CisrICBpZiAoX19idWlsdGluX29iamVjdF9zaXpl ICgmcC0+YVswXSwgMCkgIT0gNCkKKysgICAgYWJvcnQgKCk7CisrICBpZiAoX19idWlsdGluX29i amVjdF9zaXplICgmcC0+YVszXSwgMCkgIT0gMSkKKysgICAgYWJvcnQgKCk7CisrICBpZiAoX19i dWlsdGluX29iamVjdF9zaXplICgmcC0+YiwgMCkgIT0gMCkKKysgICAgYWJvcnQgKCk7CisrICBp ZiAoX19idWlsdGluX29iamVjdF9zaXplICgmcC0+YywgMCkgIT0gMCkKKysgICAgYWJvcnQgKCk7 CisrICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmcC0+YSwgMSkgIT0gNCkKKysgICAgYWJv cnQgKCk7CisrICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmcC0+YVswXSwgMSkgIT0gNCkK KysgICAgYWJvcnQgKCk7CisrICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmcC0+YVszXSwg MSkgIT0gMSkKKysgICAgYWJvcnQgKCk7CisrICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgm cC0+YiwgMSkgIT0gMCkKKysgICAgYWJvcnQgKCk7CisrICBpZiAoX19idWlsdGluX29iamVjdF9z aXplICgmcC0+YywgMSkgIT0gMCkKKysgICAgYWJvcnQgKCk7CisrICBmcmVlIChwKTsKKysgIHMg PSBfX2J1aWx0aW5fb2Zmc2V0b2YgKHN0cnVjdCBBLCBjKSArIDQ7CisrICBwID0gbWFsbG9jIChz KTsKKysgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZwLT5hLCAwKSAhPSBzKQorKyAgICBh Ym9ydCAoKTsKKysgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZwLT5hWzBdLCAwKSAhPSBz KQorKyAgICBhYm9ydCAoKTsKKysgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZwLT5hWzNd LCAwKSAhPSBzIC0gMykKKysgICAgYWJvcnQgKCk7CisrICBpZiAoX19idWlsdGluX29iamVjdF9z aXplICgmcC0+YiwgMCkgIT0gcyAtIF9fYnVpbHRpbl9vZmZzZXRvZiAoc3RydWN0IEEsIGIpKQor KyAgICBhYm9ydCAoKTsKKysgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZwLT5jLCAwKSAh PSA0KQorKyAgICBhYm9ydCAoKTsKKysgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZwLT5h LCAxKSAhPSBzaXplb2YgKHAtPmEpKQorKyAgICBhYm9ydCAoKTsKKysgIGlmIChfX2J1aWx0aW5f b2JqZWN0X3NpemUgKCZwLT5hWzBdLCAxKSAhPSBzaXplb2YgKHAtPmEpKQorKyAgICBhYm9ydCAo KTsKKysgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZwLT5hWzNdLCAxKSAhPSBzaXplb2Yg KHAtPmEpIC0gMykKKysgICAgYWJvcnQgKCk7CisrICBpZiAoX19idWlsdGluX29iamVjdF9zaXpl ICgmcC0+YiwgMSkgIT0gc2l6ZW9mIChwLT5iKSkKKysgICAgYWJvcnQgKCk7CisrICBpZiAoX19i dWlsdGluX29iamVjdF9zaXplICgmcC0+YywgMSkgIT0gNCkKKysgICAgYWJvcnQgKCk7CisrICBm cmVlIChwKTsKKyt9CisrCisrc3RydWN0IEIKKyt7CisrICBzdHJ1Y3QgQSBhWzRdOworK307Cisr Cisrdm9pZAorK19fYXR0cmlidXRlX18gKChub2lubGluZSkpCisrdGVzdDQgKHN0cnVjdCBCICpx LCBpbnQgaSkKKyt7CisrICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmcS0+YVsyXS5hWzJd LCAxKSAhPSBzaXplb2YgKHEtPmFbMF0uYSkgLSAyKQorKyAgICBhYm9ydCAoKTsKKysgIGlmIChf X2J1aWx0aW5fb2JqZWN0X3NpemUgKCZxLT5hWzJdLmNbMl0sIDEpICE9IHNpemVvZiAocS0+YVsw XS5jKSAtIDIpCisrICAgIGFib3J0ICgpOworKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAo JnEtPmFbM10uYVsyXSwgMSkgIT0gc2l6ZW9mIChxLT5hWzBdLmEpIC0gMikKKysgICAgYWJvcnQg KCk7CisrICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmcS0+YVszXS5jWzJdLCAxKSAhPSBz aXplb2YgKHEtPmFbMF0uYykgLSAyKQorKyAgICBhYm9ydCAoKTsKKysgIGlmIChfX2J1aWx0aW5f b2JqZWN0X3NpemUgKCZxLT5hW2ldLmFbMl0sIDEpICE9IHNpemVvZiAocS0+YVswXS5hKSAtIDIp CisrICAgIGFib3J0ICgpOworKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoJnEtPmFbaV0u Y1syXSwgMSkgIT0gc2l6ZW9mIChxLT5hWzBdLmMpIC0gMikKKysgICAgYWJvcnQgKCk7CisrfQor KworK3N0cnVjdCBDCisreworKyAgY2hhciBhWzEwXTsKKysgIGNoYXIgYjsKKyt9OworKworK3Zv aWQKKytfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUpKQorK3Rlc3Q1IChzdHJ1Y3QgQyAqYykKKyt7 CisrICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmYy0+YiwgMCkgIT0gKHNpemVfdCkgLTEp CisrICAgIGFib3J0ICgpOworKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoJmMtPmIsIDEp ICE9IDEpCisrICAgIGFib3J0ICgpOworKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoJmMt PmIsIDIpICE9IDApCisrICAgIGFib3J0ICgpOworKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6 ZSAoJmMtPmIsIDMpICE9IDEpCisrICAgIGFib3J0ICgpOworK30KKysKKytzdHJ1Y3QgRAorK3sK KysgIGludCBpOworKyAgc3RydWN0IEQxCisrICB7CisrICAgIGNoYXIgYjsKKysgICAgY2hhciBh WzEwXTsKKysgIH0gajsKKyt9OworKworK3ZvaWQKKytfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUp KQorK3Rlc3Q2IChzdHJ1Y3QgRCAqZCkKKyt7CisrICBpZiAoX19idWlsdGluX29iamVjdF9zaXpl ICgmZC0+ai5hWzNdLCAwKSAhPSAoc2l6ZV90KSAtMSkKKysgICAgYWJvcnQgKCk7CisrICBpZiAo X19idWlsdGluX29iamVjdF9zaXplICgmZC0+ai5hWzNdLCAxKSAhPSBzaXplb2YgKGQtPmouYSkg LSAzKQorKyAgICBhYm9ydCAoKTsKKysgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZkLT5q LmFbM10sIDIpICE9IDApCisrICAgIGFib3J0ICgpOworKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rf c2l6ZSAoJmQtPmouYVszXSwgMykgIT0gc2l6ZW9mIChkLT5qLmEpIC0gMykKKysgICAgYWJvcnQg KCk7CisrfQorKworK3N0cnVjdCBFCisreworKyAgaW50IGk7CisrICBzdHJ1Y3QgRTEKKysgIHsK KysgICAgY2hhciBiOworKyAgICBjaGFyIGFbMTBdOworKyAgfSBqWzFdOworK307CisrCisrdm9p ZAorK19fYXR0cmlidXRlX18gKChub2lubGluZSkpCisrdGVzdDcgKHN0cnVjdCBFICplKQorK3sK KysgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZlLT5qWzBdLmFbM10sIDApICE9IChzaXpl X3QpIC0xKQorKyAgICBhYm9ydCAoKTsKKysgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZl LT5qWzBdLmFbM10sIDEpICE9IHNpemVvZiAoZS0+alswXS5hKSAtIDMpCisrICAgIGFib3J0ICgp OworKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoJmUtPmpbMF0uYVszXSwgMikgIT0gMCkK KysgICAgYWJvcnQgKCk7CisrICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmZS0+alswXS5h WzNdLCAzKSAhPSBzaXplb2YgKGUtPmpbMF0uYSkgLSAzKQorKyAgICBhYm9ydCAoKTsKKysgIGlm IChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKChjaGFyICopICZlLT5qWzBdLCAwKSAhPSAoc2l6ZV90 KSAtMSkKKysgICAgYWJvcnQgKCk7CisrICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgoY2hh ciAqKSAmZS0+alswXSwgMSkgIT0gKHNpemVfdCkgLTEpCisrICAgIGFib3J0ICgpOworKyAgaWYg KF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoKGNoYXIgKikgJmUtPmpbMF0sIDIpICE9IDApCisrICAg IGFib3J0ICgpOworKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoKGNoYXIgKikgJmUtPmpb MF0sIDMpICE9IDApCisrICAgIGFib3J0ICgpOworK30KKysKKyt1bmlvbiBGCisreworKyAgY2hh ciBhWzFdOworKyAgc3RydWN0IEYxCisrICB7CisrICAgIGNoYXIgYjsKKysgICAgY2hhciBjWzEw XTsKKysgIH0gZDsKKyt9OworKworK3ZvaWQKKytfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUpKQor K3Rlc3Q4ICh1bmlvbiBGICpmKQorK3sKKysgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZm LT5kLmNbM10sIDApICE9IChzaXplX3QpIC0xKQorKyAgICBhYm9ydCAoKTsKKysgIGlmIChfX2J1 aWx0aW5fb2JqZWN0X3NpemUgKCZmLT5kLmNbM10sIDEpICE9IHNpemVvZiAoZi0+ZC5jKSAtIDMp CisrICAgIGFib3J0ICgpOworKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoJmYtPmQuY1sz XSwgMikgIT0gMCkKKysgICAgYWJvcnQgKCk7CisrICBpZiAoX19idWlsdGluX29iamVjdF9zaXpl ICgmZi0+ZC5jWzNdLCAzKSAhPSBzaXplb2YgKGYtPmQuYykgLSAzKQorKyAgICBhYm9ydCAoKTsK Kyt9CisrCisraW50CisrbWFpbiAodm9pZCkKKyt7CisrICBzdHJ1Y3QgQSBhLCAqcCA9ICZhOwor KyAgaW50IGkgPSAxOworKyAgX19hc20gKCIiIDogIityIiAocCkpOworKyAgdGVzdDEgKHApOwor KyAgdGVzdDIgKCk7CisrICB0ZXN0MyAoKTsKKysgIHN0cnVjdCBCIGIsICpxID0gJmI7CisrICBf X2FzbSAoIiIgOiAiK3IiIChxKSwgIityIiAoaSkpOworKyAgdGVzdDQgKHEsIGkpOworKyAgc3Ry dWN0IEMgYywgKmNwID0gJmM7CisrICBfX2FzbSAoIiIgOiAiK3IiIChjcCkpOworKyAgdGVzdDUg KGNwKTsKKysgIHN0cnVjdCBEIGQsICpkcCA9ICZkOworKyAgX19hc20gKCIiIDogIityIiAoZHAp KTsKKysgIHRlc3Q2IChkcCk7CisrICBzdHJ1Y3QgRSBlLCAqZXAgPSAmZTsKKysgIF9fYXNtICgi IiA6ICIrciIgKGVwKSk7CisrICB0ZXN0NyAoZXApOworKyAgdW5pb24gRiBmLCAqZnAgPSAmZjsK KysgIF9fYXNtICgiIiA6ICIrciIgKGZwKSk7CisrICB0ZXN0OCAoZnApOworKyAgZXhpdCAoMCk7 CisrfQorLS0tIGdjYy90cmVlLW9iamVjdC1zaXplLmMJKHJldmlzaW9uIDE0ODI3OCkKKysrKyBn Y2MvdHJlZS1vYmplY3Qtc2l6ZS5jCShyZXZpc2lvbiAxNDgyNzkpCitAQCAtNDMsNyArNDMsOCBA QCBzdHJ1Y3Qgb2JqZWN0X3NpemVfaW5mbworIHN0YXRpYyB1bnNpZ25lZCBIT1NUX1dJREVfSU5U IHVua25vd25bNF0gPSB7IC0xLCAtMSwgMCwgMCB9OworIAorIHN0YXRpYyB0cmVlIGNvbXB1dGVf b2JqZWN0X29mZnNldCAoY29uc3RfdHJlZSwgY29uc3RfdHJlZSk7Cistc3RhdGljIHVuc2lnbmVk IEhPU1RfV0lERV9JTlQgYWRkcl9vYmplY3Rfc2l6ZSAoY29uc3RfdHJlZSwgaW50KTsKKytzdGF0 aWMgdW5zaWduZWQgSE9TVF9XSURFX0lOVCBhZGRyX29iamVjdF9zaXplIChzdHJ1Y3Qgb2JqZWN0 X3NpemVfaW5mbyAqLAorKwkJCQkJCWNvbnN0X3RyZWUsIGludCk7Cisgc3RhdGljIHVuc2lnbmVk IEhPU1RfV0lERV9JTlQgYWxsb2Nfb2JqZWN0X3NpemUgKGNvbnN0X2dpbXBsZSwgaW50KTsKKyBz dGF0aWMgdHJlZSBwYXNzX3Rocm91Z2hfY2FsbCAoY29uc3RfZ2ltcGxlKTsKKyBzdGF0aWMgdm9p ZCBjb2xsZWN0X29iamVjdF9zaXplc19mb3IgKHN0cnVjdCBvYmplY3Rfc2l6ZV9pbmZvICosIHRy ZWUpOworQEAgLTE1Miw5ICsxNTMsMTAgQEAgY29tcHV0ZV9vYmplY3Rfb2Zmc2V0IChjb25zdF90 cmVlIGV4cHIsIAorICAgIElmIHVua25vd24sIHJldHVybiB1bmtub3duW29iamVjdF9zaXplX3R5 cGVdLiAgKi8KKyAKKyBzdGF0aWMgdW5zaWduZWQgSE9TVF9XSURFX0lOVAorLWFkZHJfb2JqZWN0 X3NpemUgKGNvbnN0X3RyZWUgcHRyLCBpbnQgb2JqZWN0X3NpemVfdHlwZSkKKythZGRyX29iamVj dF9zaXplIChzdHJ1Y3Qgb2JqZWN0X3NpemVfaW5mbyAqb3NpLCBjb25zdF90cmVlIHB0ciwKKysJ CSAgaW50IG9iamVjdF9zaXplX3R5cGUpCisgeworLSAgdHJlZSBwdF92YXI7CisrICB0cmVlIHB0 X3ZhciwgcHRfdmFyX3NpemUgPSBOVUxMX1RSRUUsIHZhcl9zaXplLCBieXRlczsKKyAKKyAgIGdj Y19hc3NlcnQgKFRSRUVfQ09ERSAocHRyKSA9PSBBRERSX0VYUFIpOworIAorQEAgLTE2Myw1OCAr MTY1LDE3MCBAQCBhZGRyX29iamVjdF9zaXplIChjb25zdF90cmVlIHB0ciwgaW50IG9iCisgICAg IHB0X3ZhciA9IGdldF9iYXNlX2FkZHJlc3MgKHB0X3Zhcik7CisgCisgICBpZiAocHRfdmFyCist ICAgICAgJiYgKFNTQV9WQVJfUCAocHRfdmFyKSB8fCBUUkVFX0NPREUgKHB0X3ZhcikgPT0gU1RS SU5HX0NTVCkKKy0gICAgICAmJiBUWVBFX1NJWkVfVU5JVCAoVFJFRV9UWVBFIChwdF92YXIpKQor LSAgICAgICYmIGhvc3RfaW50ZWdlcnAgKFRZUEVfU0laRV9VTklUIChUUkVFX1RZUEUgKHB0X3Zh cikpLCAxKQorLSAgICAgICYmICh1bnNpZ25lZCBIT1NUX1dJREVfSU5UKQorLQkgdHJlZV9sb3df Y3N0IChUWVBFX1NJWkVfVU5JVCAoVFJFRV9UWVBFIChwdF92YXIpKSwgMSkgPCBvZmZzZXRfbGlt aXQpCisrICAgICAgJiYgVFJFRV9DT0RFIChwdF92YXIpID09IElORElSRUNUX1JFRgorKyAgICAg ICYmIFRSRUVfQ09ERSAoVFJFRV9PUEVSQU5EIChwdF92YXIsIDApKSA9PSBTU0FfTkFNRQorKyAg ICAgICYmIFBPSU5URVJfVFlQRV9QIChUUkVFX1RZUEUgKFRSRUVfT1BFUkFORCAocHRfdmFyLCAw KSkpKQorKyAgICB7CisrICAgICAgdW5zaWduZWQgSE9TVF9XSURFX0lOVCBzejsKKysKKysgICAg ICBpZiAoIW9zaSkKKysJc3ogPSBjb21wdXRlX2J1aWx0aW5fb2JqZWN0X3NpemUgKFRSRUVfT1BF UkFORCAocHRfdmFyLCAwKSwKKysJCQkJCSAgb2JqZWN0X3NpemVfdHlwZSk7CisrICAgICAgZWxz ZQorKwl7CisrCSAgdHJlZSB2YXIgPSBUUkVFX09QRVJBTkQgKHB0X3ZhciwgMCk7CisrCSAgaWYg KG9zaS0+cGFzcyA9PSAwKQorKwkgICAgY29sbGVjdF9vYmplY3Rfc2l6ZXNfZm9yIChvc2ksIHZh cik7CisrCSAgaWYgKGJpdG1hcF9iaXRfcCAoY29tcHV0ZWRbb2JqZWN0X3NpemVfdHlwZV0sCisr CQkJICAgIFNTQV9OQU1FX1ZFUlNJT04gKHZhcikpKQorKwkgICAgc3ogPSBvYmplY3Rfc2l6ZXNb b2JqZWN0X3NpemVfdHlwZV1bU1NBX05BTUVfVkVSU0lPTiAodmFyKV07CisrCSAgZWxzZQorKwkg ICAgc3ogPSB1bmtub3duW29iamVjdF9zaXplX3R5cGVdOworKwl9CisrCisrICAgICAgaWYgKHN6 ICE9IHVua25vd25bb2JqZWN0X3NpemVfdHlwZV0gJiYgc3ogPCBvZmZzZXRfbGltaXQpCisrCXB0 X3Zhcl9zaXplID0gc2l6ZV9pbnQgKHN6KTsKKysgICAgfQorKyAgZWxzZSBpZiAocHRfdmFyCisr CSAgICYmIChTU0FfVkFSX1AgKHB0X3ZhcikgfHwgVFJFRV9DT0RFIChwdF92YXIpID09IFNUUklO R19DU1QpCisrCSAgICYmIFRZUEVfU0laRV9VTklUIChUUkVFX1RZUEUgKHB0X3ZhcikpCisrCSAg ICYmIGhvc3RfaW50ZWdlcnAgKFRZUEVfU0laRV9VTklUIChUUkVFX1RZUEUgKHB0X3ZhcikpLCAx KQorKwkgICAmJiAodW5zaWduZWQgSE9TVF9XSURFX0lOVCkKKysJICAgICAgdHJlZV9sb3dfY3N0 IChUWVBFX1NJWkVfVU5JVCAoVFJFRV9UWVBFIChwdF92YXIpKSwgMSkKKysJICAgICAgPCBvZmZz ZXRfbGltaXQpCisrICAgIHB0X3Zhcl9zaXplID0gVFlQRV9TSVpFX1VOSVQgKFRSRUVfVFlQRSAo cHRfdmFyKSk7CisrICBlbHNlCisrICAgIHJldHVybiB1bmtub3duW29iamVjdF9zaXplX3R5cGVd OworKworKyAgaWYgKHB0X3ZhciAhPSBUUkVFX09QRVJBTkQgKHB0ciwgMCkpCisgICAgIHsKKy0g ICAgICB0cmVlIGJ5dGVzOworKyAgICAgIHRyZWUgdmFyOworIAorLSAgICAgIGlmIChwdF92YXIg IT0gVFJFRV9PUEVSQU5EIChwdHIsIDApKQorKyAgICAgIGlmIChvYmplY3Rfc2l6ZV90eXBlICYg MSkKKyAJeworLQkgIHRyZWUgdmFyOworKwkgIHZhciA9IFRSRUVfT1BFUkFORCAocHRyLCAwKTsK KyAKKy0JICBpZiAob2JqZWN0X3NpemVfdHlwZSAmIDEpCisrCSAgd2hpbGUgKHZhciAhPSBwdF92 YXIKKysJCSAmJiBUUkVFX0NPREUgKHZhcikgIT0gQklUX0ZJRUxEX1JFRgorKwkJICYmIFRSRUVf Q09ERSAodmFyKSAhPSBDT01QT05FTlRfUkVGCisrCQkgJiYgVFJFRV9DT0RFICh2YXIpICE9IEFS UkFZX1JFRgorKwkJICYmIFRSRUVfQ09ERSAodmFyKSAhPSBBUlJBWV9SQU5HRV9SRUYKKysJCSAm JiBUUkVFX0NPREUgKHZhcikgIT0gUkVBTFBBUlRfRVhQUgorKwkJICYmIFRSRUVfQ09ERSAodmFy KSAhPSBJTUFHUEFSVF9FWFBSKQorKwkgICAgdmFyID0gVFJFRV9PUEVSQU5EICh2YXIsIDApOwor KwkgIGlmICh2YXIgIT0gcHRfdmFyICYmIFRSRUVfQ09ERSAodmFyKSA9PSBBUlJBWV9SRUYpCisr CSAgICAgIHZhciA9IFRSRUVfT1BFUkFORCAodmFyLCAwKTsKKysJICBpZiAoISBUWVBFX1NJWkVf VU5JVCAoVFJFRV9UWVBFICh2YXIpKQorKwkgICAgICB8fCAhIGhvc3RfaW50ZWdlcnAgKFRZUEVf U0laRV9VTklUIChUUkVFX1RZUEUgKHZhcikpLCAxKQorKwkgICAgICB8fCAocHRfdmFyX3NpemUK KysJCSAgJiYgdHJlZV9pbnRfY3N0X2x0IChwdF92YXJfc2l6ZSwKKysJCQkJICAgICAgVFlQRV9T SVpFX1VOSVQgKFRSRUVfVFlQRSAodmFyKSkpKSkKKysJICAgIHZhciA9IHB0X3ZhcjsKKysJICBl bHNlIGlmICh2YXIgIT0gcHRfdmFyICYmIFRSRUVfQ09ERSAocHRfdmFyKSA9PSBJTkRJUkVDVF9S RUYpCisgCSAgICB7CistCSAgICAgIHZhciA9IFRSRUVfT1BFUkFORCAocHRyLCAwKTsKKy0KKy0J ICAgICAgd2hpbGUgKHZhciAhPSBwdF92YXIKKy0JCSAgICAgICYmIFRSRUVfQ09ERSAodmFyKSAh PSBCSVRfRklFTERfUkVGCistCQkgICAgICAmJiBUUkVFX0NPREUgKHZhcikgIT0gQ09NUE9ORU5U X1JFRgorLQkJICAgICAgJiYgVFJFRV9DT0RFICh2YXIpICE9IEFSUkFZX1JFRgorLQkJICAgICAg JiYgVFJFRV9DT0RFICh2YXIpICE9IEFSUkFZX1JBTkdFX1JFRgorLQkJICAgICAgJiYgVFJFRV9D T0RFICh2YXIpICE9IFJFQUxQQVJUX0VYUFIKKy0JCSAgICAgICYmIFRSRUVfQ09ERSAodmFyKSAh PSBJTUFHUEFSVF9FWFBSKQorLQkJdmFyID0gVFJFRV9PUEVSQU5EICh2YXIsIDApOworLQkgICAg ICBpZiAodmFyICE9IHB0X3ZhciAmJiBUUkVFX0NPREUgKHZhcikgPT0gQVJSQVlfUkVGKQorLQkJ dmFyID0gVFJFRV9PUEVSQU5EICh2YXIsIDApOworLQkgICAgICBpZiAoISBUWVBFX1NJWkVfVU5J VCAoVFJFRV9UWVBFICh2YXIpKQorLQkJICB8fCAhIGhvc3RfaW50ZWdlcnAgKFRZUEVfU0laRV9V TklUIChUUkVFX1RZUEUgKHZhcikpLCAxKQorLQkJICB8fCB0cmVlX2ludF9jc3RfbHQgKFRZUEVf U0laRV9VTklUIChUUkVFX1RZUEUgKHB0X3ZhcikpLAorLQkJCQkgICAgICBUWVBFX1NJWkVfVU5J VCAoVFJFRV9UWVBFICh2YXIpKSkpCisrCSAgICAgIHRyZWUgdiA9IHZhcjsKKysJICAgICAgLyog Rm9yICZYLT5mbGQsIGNvbXB1dGUgb2JqZWN0IHNpemUgb25seSBpZiBmbGQgaXNuJ3QgdGhlIGxh c3QKKysJCSBmaWVsZCwgYXMgc3RydWN0IHsgaW50IGk7IGNoYXIgY1sxXTsgfSBpcyBvZnRlbiB1 c2VkIGluc3RlYWQKKysJCSBvZiBmbGV4aWJsZSBhcnJheSBtZW1iZXIuICAqLworKwkgICAgICB3 aGlsZSAodiAmJiB2ICE9IHB0X3ZhcikKKysJCXN3aXRjaCAoVFJFRV9DT0RFICh2KSkKKysJCSAg eworKwkJICBjYXNlIEFSUkFZX1JFRjoKKysJCSAgICBpZiAoVFlQRV9TSVpFX1VOSVQgKFRSRUVf VFlQRSAoVFJFRV9PUEVSQU5EICh2LCAwKSkpCisrCQkJJiYgVFJFRV9DT0RFIChUUkVFX09QRVJB TkQgKHYsIDEpKSA9PSBJTlRFR0VSX0NTVCkKKysJCSAgICAgIHsKKysJCQl0cmVlIGRvbWFpbgor KwkJCSAgPSBUWVBFX0RPTUFJTiAoVFJFRV9UWVBFIChUUkVFX09QRVJBTkQgKHYsIDApKSk7Cisr CQkJaWYgKGRvbWFpbgorKwkJCSAgICAmJiBUWVBFX01BWF9WQUxVRSAoZG9tYWluKQorKwkJCSAg ICAmJiBUUkVFX0NPREUgKFRZUEVfTUFYX1ZBTFVFIChkb21haW4pKQorKwkJCSAgICAgICA9PSBJ TlRFR0VSX0NTVAorKwkJCSAgICAmJiB0cmVlX2ludF9jc3RfbHQgKFRSRUVfT1BFUkFORCAodiwg MSksCisrCQkJCQkJVFlQRV9NQVhfVkFMVUUgKGRvbWFpbikpKQorKwkJCSAgeworKwkJCSAgICB2 ID0gTlVMTF9UUkVFOworKwkJCSAgICBicmVhazsKKysJCQkgIH0KKysJCSAgICAgIH0KKysJCSAg ICB2ID0gVFJFRV9PUEVSQU5EICh2LCAwKTsKKysJCSAgICBicmVhazsKKysJCSAgY2FzZSBSRUFM UEFSVF9FWFBSOgorKwkJICBjYXNlIElNQUdQQVJUX0VYUFI6CisrCQkgICAgdiA9IE5VTExfVFJF RTsKKysJCSAgICBicmVhazsKKysJCSAgY2FzZSBDT01QT05FTlRfUkVGOgorKwkJICAgIGlmICgo VFJFRV9DT0RFIChUUkVFX1RZUEUgKFRSRUVfT1BFUkFORCAodiwgMCkpKQorKwkJCSA9PSBSRUNP UkRfVFlQRQorKwkJCSAmJiBUUkVFX0NIQUlOIChUUkVFX09QRVJBTkQgKHYsIDEpKSkKKysJCQl8 fCBUUkVFX0NPREUgKFRSRUVfVFlQRSAodikpICE9IEFSUkFZX1RZUEUpCisrCQkgICAgICB2ID0g TlVMTF9UUkVFOworKwkJICAgIGVsc2UKKysJCSAgICAgIHsKKysJCQlpZiAoVFJFRV9DT0RFIChU UkVFX1RZUEUgKFRSRUVfT1BFUkFORCAodiwgMCkpKQorKwkJCSAgICA9PSBSRUNPUkRfVFlQRSkK KysJCQkgIHYgPSBUUkVFX09QRVJBTkQgKHYsIDApOworKwkJCXdoaWxlICh2ICYmIHYgIT0gcHRf dmFyICYmIFRSRUVfQ09ERSAodikgPT0gQ09NUE9ORU5UX1JFRikKKysJCQkgIGlmIChUUkVFX0NP REUgKFRSRUVfVFlQRSAodikpICE9IFVOSU9OX1RZUEUKKysJCQkgICAgICAmJiBUUkVFX0NPREUg KFRSRUVfVFlQRSAodikpICE9IFFVQUxfVU5JT05fVFlQRSkKKysJCQkgICAgYnJlYWs7CisrCQkJ ICBlbHNlCisrCQkJICAgIHYgPSBUUkVFX09QRVJBTkQgKHYsIDApOworKwkJCWlmICh2ICYmIHYg IT0gcHRfdmFyKQorKwkJCSAgdiA9IE5VTExfVFJFRTsKKysJCQllbHNlCisrCQkJICB2ID0gcHRf dmFyOworKwkJICAgICAgfQorKwkJICAgIGJyZWFrOworKwkJICBkZWZhdWx0OgorKwkJICAgIHYg PSBwdF92YXI7CisrCQkgICAgYnJlYWs7CisrCQkgIH0KKysJICAgICAgaWYgKHYgPT0gcHRfdmFy KQorIAkJdmFyID0gcHRfdmFyOworIAkgICAgfQorLQkgIGVsc2UKKy0JICAgIHZhciA9IHB0X3Zh cjsKKysJfQorKyAgICAgIGVsc2UKKysJdmFyID0gcHRfdmFyOworIAorLQkgIGJ5dGVzID0gY29t cHV0ZV9vYmplY3Rfb2Zmc2V0IChUUkVFX09QRVJBTkQgKHB0ciwgMCksIHZhcik7CistCSAgaWYg KGJ5dGVzICE9IGVycm9yX21hcmtfbm9kZSkKKysgICAgICBpZiAodmFyICE9IHB0X3ZhcikKKysJ dmFyX3NpemUgPSBUWVBFX1NJWkVfVU5JVCAoVFJFRV9UWVBFICh2YXIpKTsKKysgICAgICBlbHNl IGlmICghcHRfdmFyX3NpemUpCisrCXJldHVybiB1bmtub3duW29iamVjdF9zaXplX3R5cGVdOwor KyAgICAgIGVsc2UKKysJdmFyX3NpemUgPSBwdF92YXJfc2l6ZTsKKysgICAgICBieXRlcyA9IGNv bXB1dGVfb2JqZWN0X29mZnNldCAoVFJFRV9PUEVSQU5EIChwdHIsIDApLCB2YXIpOworKyAgICAg IGlmIChieXRlcyAhPSBlcnJvcl9tYXJrX25vZGUpCisrCXsKKysJICBpZiAoVFJFRV9DT0RFIChi eXRlcykgPT0gSU5URUdFUl9DU1QKKysJICAgICAgJiYgdHJlZV9pbnRfY3N0X2x0ICh2YXJfc2l6 ZSwgYnl0ZXMpKQorKwkgICAgYnl0ZXMgPSBzaXplX3plcm9fbm9kZTsKKysJICBlbHNlCisrCSAg ICBieXRlcyA9IHNpemVfYmlub3AgKE1JTlVTX0VYUFIsIHZhcl9zaXplLCBieXRlcyk7CisrCX0K KysgICAgICBpZiAodmFyICE9IHB0X3ZhcgorKwkgICYmIHB0X3Zhcl9zaXplCisrCSAgJiYgVFJF RV9DT0RFIChwdF92YXIpID09IElORElSRUNUX1JFRgorKwkgICYmIGJ5dGVzICE9IGVycm9yX21h cmtfbm9kZSkKKysJeworKwkgIHRyZWUgYnl0ZXMyID0gY29tcHV0ZV9vYmplY3Rfb2Zmc2V0IChU UkVFX09QRVJBTkQgKHB0ciwgMCksIHB0X3Zhcik7CisrCSAgaWYgKGJ5dGVzMiAhPSBlcnJvcl9t YXJrX25vZGUpCisgCSAgICB7CistCSAgICAgIGlmIChUUkVFX0NPREUgKGJ5dGVzKSA9PSBJTlRF R0VSX0NTVAorLQkJICAmJiB0cmVlX2ludF9jc3RfbHQgKFRZUEVfU0laRV9VTklUIChUUkVFX1RZ UEUgKHZhcikpLCBieXRlcykpCistCQlieXRlcyA9IHNpemVfemVyb19ub2RlOworKwkgICAgICBp ZiAoVFJFRV9DT0RFIChieXRlczIpID09IElOVEVHRVJfQ1NUCisrCQkgICYmIHRyZWVfaW50X2Nz dF9sdCAocHRfdmFyX3NpemUsIGJ5dGVzMikpCisrCQlieXRlczIgPSBzaXplX3plcm9fbm9kZTsK KyAJICAgICAgZWxzZQorLQkJYnl0ZXMgPSBzaXplX2Jpbm9wIChNSU5VU19FWFBSLAorLQkJCQkg ICAgVFlQRV9TSVpFX1VOSVQgKFRSRUVfVFlQRSAodmFyKSksIGJ5dGVzKTsKKysJCWJ5dGVzMiA9 IHNpemVfYmlub3AgKE1JTlVTX0VYUFIsIHZhcl9zaXplLCBieXRlczIpOworKwkgICAgICBieXRl cyA9IHNpemVfYmlub3AgKE1JTl9FWFBSLCBieXRlcywgYnl0ZXMyKTsKKyAJICAgIH0KKyAJfQor LSAgICAgIGVsc2UKKy0JYnl0ZXMgPSBUWVBFX1NJWkVfVU5JVCAoVFJFRV9UWVBFIChwdF92YXIp KTsKKy0KKy0gICAgICBpZiAoaG9zdF9pbnRlZ2VycCAoYnl0ZXMsIDEpKQorLQlyZXR1cm4gdHJl ZV9sb3dfY3N0IChieXRlcywgMSk7CisgICAgIH0KKysgIGVsc2UgaWYgKCFwdF92YXJfc2l6ZSkK KysgICAgcmV0dXJuIHVua25vd25bb2JqZWN0X3NpemVfdHlwZV07CisrICBlbHNlCisrICAgIGJ5 dGVzID0gcHRfdmFyX3NpemU7CisrCisrICBpZiAoaG9zdF9pbnRlZ2VycCAoYnl0ZXMsIDEpKQor KyAgICByZXR1cm4gdHJlZV9sb3dfY3N0IChieXRlcywgMSk7CisgCisgICByZXR1cm4gdW5rbm93 bltvYmplY3Rfc2l6ZV90eXBlXTsKKyB9CitAQCAtMzMyLDExICs0NDYsMTEgQEAgY29tcHV0ZV9i dWlsdGluX29iamVjdF9zaXplICh0cmVlIHB0ciwgaQorICAgICBpbml0X29mZnNldF9saW1pdCAo KTsKKyAKKyAgIGlmIChUUkVFX0NPREUgKHB0cikgPT0gQUREUl9FWFBSKQorLSAgICByZXR1cm4g YWRkcl9vYmplY3Rfc2l6ZSAocHRyLCBvYmplY3Rfc2l6ZV90eXBlKTsKKysgICAgcmV0dXJuIGFk ZHJfb2JqZWN0X3NpemUgKE5VTEwsIHB0ciwgb2JqZWN0X3NpemVfdHlwZSk7CisgCisgICBpZiAo VFJFRV9DT0RFIChwdHIpID09IFNTQV9OQU1FCistCSAgICYmIFBPSU5URVJfVFlQRV9QIChUUkVF X1RZUEUgKHB0cikpCistCSAgICYmIG9iamVjdF9zaXplc1tvYmplY3Rfc2l6ZV90eXBlXSAhPSBO VUxMKQorKyAgICAgICYmIFBPSU5URVJfVFlQRV9QIChUUkVFX1RZUEUgKHB0cikpCisrICAgICAg JiYgb2JqZWN0X3NpemVzW29iamVjdF9zaXplX3R5cGVdICE9IE5VTEwpCisgICAgIHsKKyAgICAg ICBpZiAoIWJpdG1hcF9iaXRfcCAoY29tcHV0ZWRbb2JqZWN0X3NpemVfdHlwZV0sIFNTQV9OQU1F X1ZFUlNJT04gKHB0cikpKQorIAl7CitAQCAtNDc3LDcgKzU5MSw3IEBAIGV4cHJfb2JqZWN0X3Np emUgKHN0cnVjdCBvYmplY3Rfc2l6ZV9pbmYKKyAJICAgICAgfHwgIVBPSU5URVJfVFlQRV9QIChU UkVFX1RZUEUgKHZhbHVlKSkpOworIAorICAgaWYgKFRSRUVfQ09ERSAodmFsdWUpID09IEFERFJf RVhQUikKKy0gICAgYnl0ZXMgPSBhZGRyX29iamVjdF9zaXplICh2YWx1ZSwgb2JqZWN0X3NpemVf dHlwZSk7CisrICAgIGJ5dGVzID0gYWRkcl9vYmplY3Rfc2l6ZSAob3NpLCB2YWx1ZSwgb2JqZWN0 X3NpemVfdHlwZSk7CisgICBlbHNlCisgICAgIGJ5dGVzID0gdW5rbm93bltvYmplY3Rfc2l6ZV90 eXBlXTsKKyAKK0BAIC02MzMsNyArNzQ3LDcgQEAgcGx1c19zdG10X29iamVjdF9zaXplIChzdHJ1 Y3Qgb2JqZWN0X3NpegorIAkgIHVuc2lnbmVkIEhPU1RfV0lERV9JTlQgb2ZmID0gdHJlZV9sb3df Y3N0IChvcDEsIDEpOworIAorICAgICAgICAgICAvKiBvcDAgd2lsbCBiZSBBRERSX0VYUFIgaGVy ZS4gICovCistCSAgYnl0ZXMgPSBjb21wdXRlX2J1aWx0aW5fb2JqZWN0X3NpemUgKG9wMCwgb2Jq ZWN0X3NpemVfdHlwZSk7CisrCSAgYnl0ZXMgPSBhZGRyX29iamVjdF9zaXplIChvc2ksIG9wMCwg b2JqZWN0X3NpemVfdHlwZSk7CisgCSAgaWYgKGJ5dGVzID09IHVua25vd25bb2JqZWN0X3NpemVf dHlwZV0pCisgCSAgICA7CisgCSAgZWxzZSBpZiAob2ZmID4gb2Zmc2V0X2xpbWl0KQoKZGlmZiAt LWdpdCBhL2djYzQ0LWVwaWxvZ3VlLXVud2luZC5wYXRjaCBiL2djYzQ0LWVwaWxvZ3VlLXVud2lu ZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOGMwMDYxCi0tLSAv ZGV2L251bGwKKysrIGIvZ2NjNDQtZXBpbG9ndWUtdW53aW5kLnBhdGNoCkBAIC0wLDAgKzEsMzEw NyBAQAorMjAwOS0wNi0wOCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CisKKwkq IGR3YXJmMm91dC5jIChlbWl0X2NmYV9yZW1lbWJlcik6IE5ldyB2YXJpYWJsZS4KKwkoYWRkX2Zk ZV9jZmkpOiBJZiBlbWl0X2NmYV9yZW1lbWJlciwgcmVjdXJzZSB0byBhZGQKKwlEV19DRkFfcmVt ZW1iZXJfc3RhdGUgZmlyc3QuCisJKGR3YXJmMm91dF9iZWdpbl9lcGlsb2d1ZSk6IERvbid0IGFk ZF9mZGVfY2ZpIERXX0NGQV9yZW1lbWJlcl9zdGF0ZSwKKwlpbnN0ZWFkIGp1c3Qgc2V0IGVtaXRf Y2ZhX3JlbWVtYmVyLgorCisyMDA5LTA2LTA4ICBBZGFtIE5lbWV0ICA8YW5lbWV0QGNhdml1bW5l dHdvcmtzLmNvbT4KKworCSoganVtcC5jIChyZXR1cm5qdW1wX3ApOiBIYW5kbGUgZGVsYXllZCBi cmFuY2hlcy4gIEFkZCBtaXNzaW5nCisJZnVuY3Rpb24gY29tbWVudC4KKworMjAwOS0wNi0wNSAg TmF0aGFuIEZyb3lkICA8ZnJveWRuakBjb2Rlc291cmNlcnkuY29tPgorCisJKiBjb25maWcvcnM2 MDAwL3BwYy1hc20uaDogUHJvdGVjdCBhdXRvLWhvc3QuaCBpbmNsdXNpb24gYW5kCisJQ0ZJXyog ZGVmaW5pdGlvbnMgd2l0aCBJTl9HQ0MuCisKKzIwMDktMDYtMDQgIEpha3ViIEplbGluZWsgIDxq YWt1YkByZWRoYXQuY29tPgorCisJKiBjb25maWcvczM5MC9zMzkwLmMgKGdsb2JhbF9ub3Rfc3Bl Y2lhbF9yZWdub19wKTogTmV3IHN0YXRpYyBpbmxpbmUuCisJKHNhdmVfZ3Bycyk6IERvbid0IHRl bGwgdW53aW5kZXIgd2hlbiBhIGdsb2JhbCByZWdpc3RlciBpcyBzYXZlZC4KKwkoczM5MF9lbWl0 X2VwaWxvZ3VlKTogRW1pdCBuZWVkZWQgZXBpbG9ndWUgdW53aW5kIGluZm8uCisKKzIwMDktMDYt MDMgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgorCisJKiBjb25maWcvcnM2MDAw L3JzNjAwMC5jIChyczYwMDBfZW1pdF9zdGFja19yZXNldCk6IFJldHVybiBnZW5lcmF0ZWQKKwlp bnNuIGlmIGl0IGlzIGNoYW5naW5nIHNwLiAgVXNlIGdlbl9hZGQzX2luc24gaW5zdGVhZCBvZgor CWNvbmRpdGlvbmFsbHkgZ2VuX2FkZHNpMyBhbmQgZ2VuX2FkZGRpMy4KKwkob2Zmc2V0X2JlbG93 X3JlZF96b25lX3ApOiBOZXcgc3RhdGljIGlubGluZSBmdW5jdGlvbi4KKwkocnM2MDAwX2VtaXRf ZXBpbG9ndWUpOiBFbWl0IG5lZWRlZCBlcGlsb2d1ZSB1bndpbmQgaW5mby4KKwlVc2UgZ2VuX2Fk ZDNfaW5zbiBpbnN0ZWFkIG9mIGNvbmRpdGlvbmFsbHkgZ2VuX2FkZHNpMyBhbmQgZ2VuX2FkZGRp My4KKwkqIGNvbmZpZy9yczYwMDAvcHBjLWFzbS5oOiBJbmNsdWRlIGF1dG8taG9zdC5oLgorCShD RklfU1RBUlRQUk9DLCBDRklfRU5EUFJPQywgQ0ZJX0RFRl9DRkFfUkVHSVNURVIsIENGSV9PRkZT RVQsCisJQ0ZJX1JFU1RPUkUpOiBEZWZpbmUuCisJKiBjb25maWcvcnM2MDAwL2NydHJlc3hncHIu YXNtOiBBZGQgdW53aW5kIGluZm8uCisJKiBjb25maWcvcnM2MDAwL2NydHJlc3hmcHIuYXNtOiBM aWtld2lzZS4KKwkqIGNvbmZpZy9yczYwMDAvY3J0cmVzZ3ByLmFzbTogTGlrZXdpc2UuCisJKiBj b25maWcvcnM2MDAwL2NydHJlc2Zwci5hc206IExpa2V3aXNlLgorCSogY29uZmlnL3JzNjAwMC9j cnRzYXZncHIuYXNtOiBMaWtld2lzZS4KKwkqIGNvbmZpZy9yczYwMDAvY3J0c2F2ZnByLmFzbTog TGlrZXdpc2UuCisKKzIwMDktMDYtMDEgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29t PgorCisJKiBjb25maWcvaTM4Ni9pMzg2LmMgKHF1ZXVlZF9jZmFfcmVzdG9yZXMpOiBOZXcgc3Rh dGljIHZhcmlhYmxlLgorCShpeDg2X2FkZF9jZmFfcmVzdG9yZV9ub3RlLCBpeDg2X2FkZF9xdWV1 ZWRfY2ZhX3Jlc3RvcmVfbm90ZXMpOiBOZXcKKwlmdW5jdGlvbnMuCisJKHByb19lcGlsb2d1ZV9h ZGp1c3Rfc3RhY2spOiBDYWxsIGl4ODZfYWRkX3F1ZXVlZF9jZmFfcmVzdG9yZV9ub3Rlcy4KKwko aXg4Nl9lbWl0X3Jlc3RvcmVfcmVnX3VzaW5nX3BvcCk6IEFkZCBSRURfT0ZGU0VUIGFyZ3VtZW50 LgorCVNldCBSVFhfRlJBTUVfUkVMQVRFRF9QIGltbWVkaWF0ZWx5IGFmdGVyIGFkZGluZyBhIFJF R19DRkFfKiBub3RlLgorCUNhbGwgaXg4Nl9hZGRfY2ZhX3Jlc3RvcmVfbm90ZSBpbnN0ZWFkIG9m IGFkZGluZyBSRUdfQ0ZBX09GRlNFVAorCW5vdGUgdW5jb25kaXRpb25hbGx5LgorCShpeDg2X2Vt aXRfcmVzdG9yZV9yZWdzX3VzaW5nX21vdik6IExpa2V3aXNlLgorCShpeDg2X2VtaXRfcmVzdG9y ZV9zc2VfcmVnc191c2luZ19tb3YpOiBMaWtld2lzZS4KKwkoaXg4Nl9lbWl0X3Jlc3RvcmVfcmVn c191c2luZ19wb3ApOiBBZGQgUkVEX09GRlNFVCBhcmd1bWVudCwgcGFzcworCWl0IHRocm91Z2gg dG8gaXg4Nl9lbWl0X3Jlc3RvcmVfcmVnX3VzaW5nX3BvcC4KKwkoaXg4Nl9lbWl0X2xlYXZlKTog QWRkIFJFRF9PRkZTRVQgYXJndW1lbnQuICBDYWxsCisJaXg4Nl9hZGRfcXVldWVkX2NmYV9yZXN0 b3JlX25vdGVzLiAgQ2FsbCBpeDg2X2FkZF9jZmFfcmVzdG9yZV9ub3RlCisJaW5zdGVhZCBvZiBh ZGRpbmcgUkVHX0NGQV9PRkZTRVQgbm90ZSB1bmNvbmRpdGlvbmFsbHkuCisJKGl4ODZfZXhwYW5k X2VwaWxvZ3VlKTogQ29tcHV0ZSBSRURfT0ZGU0VULCBwYXNzIGl0IGRvd24gdG8KKwl0aGUgYWJv dmUgZnVuY3Rpb25zLiAgQ2FsbCBpeDg2X2FkZF9xdWV1ZWRfY2ZhX3Jlc3RvcmVfbm90ZXMgd2hl bgorCW5lZWRlZC4KKworCSogY29uZmlnL2kzODYvaTM4Ni5oIChzdHJ1Y3QgbWFjaGluZV9jZmFf c3RhdGUsCisJc3RydWN0IG1hY2hpbmVfZnVuY3Rpb24pOiBHdWFyZCB3aXRoIGlmbmRlZiBVU0VE X0ZPUl9UQVJHRVQKKwlpbnN0ZWFkIG9mIG5vdCBJTl9MSUJHQ0MyIGFuZCBub3QgaW4gSU5fVEFS R0VUX0xJQlMuCisKKwlQUiBtaWRkbGUtZW5kLzQwMzE2CisJKiByZWNvZy5jIChwZWVwMl9yZWlu aXRfc3RhdGUpOiBOZXcgZnVuY3Rpb24uCisJKHBlZXBob2xlMl9pbml0X3N0YXRlKTogVXNlIGl0 IGF0IHRoZSBlbmQgb2YgYSBiYXNpYyBibG9jayBhbmQgYWxzbworCXdoZW4gc2VlaW5nIGEgUlRY X0ZSQU1FX1JFTEFURURfUCBpbnNuLgorCisyMDA5LTA1LTMxICBKYWt1YiBKZWxpbmVrICA8amFr dWJAcmVkaGF0LmNvbT4KKworCVBSIG1pZGRsZS1lbmQvNDAzMDQKKwkqIGNvbmZpZy9pMzg2L2kz ODYuYyAocHJvX2VwaWxvZ3VlX2FkanVzdF9zdGFjayk6IE1hcmsgaW5zbnMKKwlmcmFtZSByZWxh dGVkIGV2ZW4gaWYgIXNldF9jZmEgJiYgc3R5bGUgPCAwLgorCisyMDA5LTA1LTI5ICBSaWNoYXJk IEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgorCisJKiBjZmdjbGVhbnVwLmMgKHRyeV9jcm9z c2p1bXBfdG9fZWRnZSk6IE9ubHkgc2tpcCBwYXN0CisJTk9URV9JTlNOX0JBU0lDX0JMT0NLLgor CSogY2ZnbGF5b3V0LmMgKGR1cGxpY2F0ZV9pbnNuX2NoYWluKTogQ29weSBlcGlsb2d1ZSBpbnNu IG1hcmtzLgorCUR1cGxpY2F0ZSBOT1RFX0lOU05fRVBJTE9HVUVfQkVHIG5vdGVzLgorCSogY2Zn cnRsLmMgKGNhbl9kZWxldGVfbm90ZV9wKTogQWxsb3cgTk9URV9JTlNOX0VQSUxPR1VFX0JFRwor CXRvIGJlIGRlbGV0ZWQuCisJKiBkd2FyZjJvdXQuYyAoc3RydWN0IGNmYV9sb2MpOiBDaGFuZ2Ug aW5kaXJlY3QgZmllbGQgdG8gYml0ZmllbGQsCisJYWRkIGluX3VzZSBmaWVsZC4KKwkoYWRkX2Nm aSk6IERpc2FibGUgY2hlY2sgcmVkZWZpbmluZyBjZmEgYXdheSBmcm9tIGRyYXAuCisJKGxvb2t1 cF9jZmFfMSk6IEFkZCByZW1lbWJlciBhcmd1bWVudDsgaGFuZGxlIHJlbWVtYmVyL3Jlc3RvcmUu CisJKGxvb2t1cF9jZmEpOiBQYXNzIHJlbWVtYmVyIGFyZ3VtZW50LgorCShjZmFfcmVtZW1iZXIp OiBOZXcuCisJKGNvbXB1dGVfYmFycmllcl9hcmdzX3NpemVfMSk6IFJlbW92ZSBzaWJjYWxsIGNo ZWNrLgorCShkd2FyZjJvdXRfZnJhbWVfZGVidWdfZGVmX2NmYSk6IE5ldy4KKwkoZHdhcmYyb3V0 X2ZyYW1lX2RlYnVnX2FkanVzdF9jZmEpOiBOZXcuCisJKGR3YXJmMm91dF9mcmFtZV9kZWJ1Z19j ZmFfb2Zmc2V0KTogTmV3LgorCShkd2FyZjJvdXRfZnJhbWVfZGVidWdfY2ZhX3JlZ2lzdGVyKTog TmV3LgorCShkd2FyZjJvdXRfZnJhbWVfZGVidWdfY2ZhX3Jlc3RvcmUpOiBOZXcuCisJKGR3YXJm Mm91dF9mcmFtZV9kZWJ1Zyk6IEhhbmRsZSBSRUdfQ0ZBXyogbm90ZXMuCisJKGR3YXJmMm91dF9i ZWdpbl9lcGlsb2d1ZSk6IE5ldy4KKwkoZHdhcmYyb3V0X2ZyYW1lX2RlYnVnX3Jlc3RvcmVfc3Rh dGUpOiBOZXcuCisJKGR3X2NmaV9vcHJuZDFfZGVzYyk6IEhhbmRsZSBEV19DRkFfcmVtZW1iZXJf c3RhdGUsCisJRFdfQ0ZBX3Jlc3RvcmVfc3RhdGUuCisJKG91dHB1dF9jZmlfZGlyZWN0aXZlKTog TGlrZXdpc2UuCisJKGNvbnZlcnRfY2ZhX3RvX2ZiX2xvY19saXN0KTogTGlrZXdpc2UuCisJKGR3 X2NmaV9vcHJuZDFfZGVzYyk6IEhhbmRsZSBEV19DRkFfcmVzdG9yZS4KKwkqIGR3YXJmMm91dC5o OiBVcGRhdGUuCisJKiBlbWl0LXJ0bC5jICh0cnlfc3BsaXQpOiBEb24ndCBzcGxpdCBSVFhfRlJB TUVfUkVMQVRFRF9QLgorCShjb3B5X2luc25fMSk6IEVhcmx5IG91dCBmb3IgbnVsbC4KKwkqIGZp bmFsLmMgKGZpbmFsX3NjYW5faW5zbik6IENhbGwgZHdhcmYyb3V0X2JlZ2luX2VwaWxvZ3VlCisJ YW5kIGR3YXJmMm91dF9mcmFtZV9kZWJ1Z19yZXN0b3JlX3N0YXRlLgorCSogZnVuY3Rpb24uYyAo cHJvbG9ndWUsIGVwaWxvZ3VlLCBzaWJjYWxsX2VwaWxvZ3VlKTogUmVtb3ZlLgorCShwcm9sb2d1 ZV9pbnNuX2hhc2gsIGVwaWxvZ3VlX2luc25faGFzaCk6IE5ldy4KKwkoZnJlZV9hZnRlcl9jb21w aWxhdGlvbik6IEFkanVzdCBmcmVlaW5nIGFjY29yZGluZ2x5LgorCShyZWNvcmRfaW5zbnMpOiBD cmVhdGUgaGFzaCB0YWJsZSBpZiBuZWVkZWQ7IHB1c2ggaW5zbnMgaW50bworCWhhc2ggaW5zdGVh ZCBvZiBhcnJheS4KKwkobWF5YmVfY29weV9lcGlsb2d1ZV9pbnNuKTogTmV3LgorCShjb250YWlu cyk6IFNlYXJjaCBoYXNoIHRhYmxlIGluc3RlYWQgb2YgYXJyYXkuCisJKHNpYmNhbGxfZXBpbG9n dWVfY29udGFpbnMpOiBSZW1vdmUuCisJKHRocmVhZF9wcm9sb2d1ZV9hbmRfZXBpbG9ndWVfaW5z bnMpOiBTcGxpdCBlaF9yZXR1cm4gaW5zbnMKKwlhbmQgbWFyayB0aGVtIGFzIGVwaWxvZ3Vlcy4K KwkocmVwb3NpdGlvbl9wcm9sb2d1ZV9hbmRfZXBpbG9ndWVfbm90ZXMpOiBSZXdyaXRlIGVwaWxv Z3VlCisJc2Nhbm5pbmcgaW4gdGVybXMgb2YgYmFzaWMgYmxvY2tzLgorCSogaW5zbi1ub3Rlcy5k ZWYgKENGQV9SRVNUT1JFX1NUQVRFKTogTmV3LgorCSoganVtcC5jIChyZXR1cm5qdW1wX3BfMSk6 IEFjY2VwdCBFSF9SRVRVUk4uCisJKGVoX3JldHVybmp1bXBfcF8xLCBlaF9yZXR1cm5qdW1wX3Ap OiBOZXcuCisJKiByZWctbm90ZXMuZGVmIChDRkFfREVGX0NGQSwgQ0ZBX0FESlVTVF9DRkEsIENG QV9PRkZTRVQsCisJQ0ZBX1JFR0lTVEVSLCBDRkFfUkVTVE9SRSk6IE5ldy4KKwkqIHJ0bC5kZWYg KEVIX1JFVFVSTik6IE5ldy4KKwkqIHJ0bC5oIChlaF9yZXR1cm5qdW1wX3AsIG1heWJlX2NvcHlf ZXBpbG9ndWVfaW5zbik6IERlY2xhcmUuCisKKwkqIGNvbmZpZy9iZmluL2JmaW4ubWQgKFVOU1BF Q19WT0xBVElMRV9FSF9SRVRVUk4pOiBSZW1vdmUuCisJKGVoX3JldHVybl9pbnRlcm5hbCk6IFVz ZSBlaF9yZXR1cm4gcnR4OyBzcGxpdCB3LyBlcGlsb2d1ZS4KKworCSogY29uZmlnL2kzODYvaTM4 Ni5jIChnZW5fcHVzaCk6IFVwZGF0ZSBjZmEgc3RhdGUuCisJKHByb19lcGlsb2d1ZV9hZGp1c3Rf c3RhY2spOiBBZGQgc2V0X2NmYSBhcmd1bWVudC4gIFdoZW4gdHJ1ZSwKKwlhZGQgYSBDRkFfQURK VVNUX0NGQSBub3RlLgorCShpeDg2X2R3YXJmX2hhbmRsZV9mcmFtZV91bnNwZWMpOiBSZW1vdmUu CisJKGl4ODZfZXhwYW5kX3Byb2xvZ3VlKTogVXBkYXRlIGNmYSBzdGF0ZS4KKwkoaXg4Nl9lbWl0 X3Jlc3RvcmVfcmVnX3VzaW5nX3BvcCk6IE5ldy4KKwkoaXg4Nl9lbWl0X3Jlc3RvcmVfcmVnc191 c2luZ19wb3ApOiBOZXcuCisJKGl4ODZfZW1pdF9sZWF2ZSk6IE5ldy4KKwkoaXg4Nl9lbWl0X3Jl c3RvcmVfcmVnc191c2luZ19tb3YpOiBBZGQgQ0ZBX1JFU1RPUkUgbm90ZXMuCisJKGl4ODZfZXhw YW5kX2VwaWxvZ3VlKTogQWRkIG5vdGVzIGZvciB1bndpbmRpbmcgdGhlIGVwaWxvZ3VlLgorCSog Y29uZmlnL2kzODYvaTM4Ni5oIChzdHJ1Y3QgbWFjaGluZV9jZmFfc3RhdGUpOiBOZXcuCisJKGl4 ODZfY2ZhX3N0YXRlKTogTmV3LgorCSogY29uZmlnL2kzODYvaTM4Ni5tZCAoVU5TUEVDX0VIX1JF VFVSTik6IFJlbW92ZS4KKwkoZWhfcmV0dXJuX2ludGVybmFsKTogTWVyZ2UgZnJvbSBlaF9yZXR1 cm5fPG1vZGU+LAorCXVzZSBlaF9yZXR1cm4gcnR4LCBzcGxpdCB3LyBlcGlsb2d1ZS4KKworLS0t IGdjYy9ydGwuZGVmLmpqCTIwMDktMDEtMTQgMTI6MDY6MjkuMDAwMDAwMDAwICswMTAwCisrKysg Z2NjL3J0bC5kZWYJMjAwOS0wNi0wOSAwODo1ODowNC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0yODEs NiArMjgxLDEwIEBAIERFRl9SVExfRVhQUihDQUxMLCAiY2FsbCIsICJlZSIsIFJUWF9FWFQKKyAK KyBERUZfUlRMX0VYUFIoUkVUVVJOLCAicmV0dXJuIiwgIiIsIFJUWF9FWFRSQSkKKyAKKysvKiBT cGVjaWFsIGZvciBFSCByZXR1cm4gZnJvbSBzdWJyb3V0aW5lLiAgKi8KKysKKytERUZfUlRMX0VY UFIoRUhfUkVUVVJOLCAiZWhfcmV0dXJuIiwgIiIsIFJUWF9FWFRSQSkKKysKKyAvKiBDb25kaXRp b25hbCB0cmFwLgorICAgIE9wZXJhbmQgMSBpcyB0aGUgY29uZGl0aW9uLgorICAgIE9wZXJhbmQg MiBpcyB0aGUgdHJhcCBjb2RlLgorLS0tIGdjYy9jZmdsYXlvdXQuYy5qagkyMDA5LTAxLTE0IDEy OjA2OjI5LjAwMDAwMDAwMCArMDEwMAorKysrIGdjYy9jZmdsYXlvdXQuYwkyMDA5LTA2LTA5IDA4 OjU4OjA0LjAwMDAwMDAwMCArMDIwMAorQEAgLTExMTIsNyArMTExMiw3IEBAIGNmZ19sYXlvdXRf Y2FuX2R1cGxpY2F0ZV9iYl9wIChjb25zdF9iYXMKKyBydHgKKyBkdXBsaWNhdGVfaW5zbl9jaGFp biAocnR4IGZyb20sIHJ0eCB0bykKKyB7CistICBydHggaW5zbiwgbGFzdDsKKysgIHJ0eCBpbnNu LCBsYXN0LCBjb3B5OworIAorICAgLyogQXZvaWQgdXBkYXRpbmcgb2YgYm91bmRhcmllcyBvZiBw cmV2aW91cyBiYXNpYyBibG9jay4gIFRoZQorICAgICAgbm90ZSB3aWxsIGdldCByZW1vdmVkIGZy b20gaW5zbiBzdHJlYW0gaW4gZml4dXAuICAqLworQEAgLTExMzMsNyArMTEzMyw4IEBAIGR1cGxp Y2F0ZV9pbnNuX2NoYWluIChydHggZnJvbSwgcnR4IHRvKQorIAkgIGlmIChHRVRfQ09ERSAoUEFU VEVSTiAoaW5zbikpID09IEFERFJfVkVDCisgCSAgICAgIHx8IEdFVF9DT0RFIChQQVRURVJOIChp bnNuKSkgPT0gQUREUl9ESUZGX1ZFQykKKyAJICAgIGJyZWFrOworLQkgIGVtaXRfY29weV9vZl9p bnNuX2FmdGVyIChpbnNuLCBnZXRfbGFzdF9pbnNuICgpKTsKKysJICBjb3B5ID0gZW1pdF9jb3B5 X29mX2luc25fYWZ0ZXIgKGluc24sIGdldF9sYXN0X2luc24gKCkpOworKyAgICAgICAgICBtYXli ZV9jb3B5X2VwaWxvZ3VlX2luc24gKGluc24sIGNvcHkpOworIAkgIGJyZWFrOworIAorIAljYXNl IENPREVfTEFCRUw6CitAQCAtMTE1MywyMyArMTE1NCwxOCBAQCBkdXBsaWNhdGVfaW5zbl9jaGFp biAocnR4IGZyb20sIHJ0eCB0bykKKyAJICAgIGNhc2UgTk9URV9JTlNOX0RFTEVURUQ6CisgCSAg ICBjYXNlIE5PVEVfSU5TTl9ERUxFVEVEX0xBQkVMOgorIAkgICAgICAvKiBObyBwcm9ibGVtIHRv IHN0cmlwIHRoZXNlLiAgKi8KKy0JICAgIGNhc2UgTk9URV9JTlNOX0VQSUxPR1VFX0JFRzoKKy0J ICAgICAgLyogRGVidWcgY29kZSBleHBlY3QgdGhlc2Ugbm90ZXMgdG8gZXhpc3QganVzdCBvbmNl LgorLQkJIEtlZXAgdGhlbSBpbiB0aGUgbWFzdGVyIGNvcHkuCistCQkgPz8/IEl0IHByb2JhYmx5 IG1ha2VzIG1vcmUgc2Vuc2UgdG8gZHVwbGljYXRlIHRoZW0gZm9yIGVhY2gKKy0JCSBlcGlsb2d1 ZSBjb3B5LiAgKi8KKyAJICAgIGNhc2UgTk9URV9JTlNOX0ZVTkNUSU9OX0JFRzoKKyAJICAgICAg LyogVGhlcmUgaXMgYWx3YXlzIGp1c3Qgc2luZ2xlIGVudHJ5IHRvIGZ1bmN0aW9uLiAgKi8KKyAJ ICAgIGNhc2UgTk9URV9JTlNOX0JBU0lDX0JMT0NLOgorIAkgICAgICBicmVhazsKKyAKKysJICAg IGNhc2UgTk9URV9JTlNOX0VQSUxPR1VFX0JFRzoKKyAJICAgIGNhc2UgTk9URV9JTlNOX1NXSVRD SF9URVhUX1NFQ1RJT05TOgorIAkgICAgICBlbWl0X25vdGVfY29weSAoaW5zbik7CisgCSAgICAg IGJyZWFrOworIAorIAkgICAgZGVmYXVsdDoKKy0JICAgICAgLyogQWxsIG90aGVyIG5vdGVzIHNo b3VsZCBoYXZlIGFscmVhZHkgYmVlbiBlbGltaW5hdGVkLgorLQkgICAgICAgKi8KKysJICAgICAg LyogQWxsIG90aGVyIG5vdGVzIHNob3VsZCBoYXZlIGFscmVhZHkgYmVlbiBlbGltaW5hdGVkLiAg Ki8KKyAJICAgICAgZ2NjX3VucmVhY2hhYmxlICgpOworIAkgICAgfQorIAkgIGJyZWFrOworLS0t IGdjYy9pbnNuLW5vdGVzLmRlZi5qagkyMDA5LTAxLTE0IDEyOjA2OjI5LjAwMDAwMDAwMCArMDEw MAorKysrIGdjYy9pbnNuLW5vdGVzLmRlZgkyMDA5LTA2LTA5IDA4OjU4OjA0LjAwMDAwMDAwMCAr MDIwMAorQEAgLTcwLDQgKzcwLDggQEAgSU5TTl9OT1RFIChCQVNJQ19CTE9DSykKKyAgICBiZXR3 ZWVuIGhvdCBhbmQgY29sZCB0ZXh0IHNlY3Rpb25zLiAgKi8KKyBJTlNOX05PVEUgKFNXSVRDSF9U RVhUX1NFQ1RJT05TKQorIAorKy8qIE1hcmsgdGhlIHJlc3RvcmUgcG9pbnQgYWZ0ZXIgYW4gZXBp bG9ndWUgY2hhbmdlZCBDRkkgZGF0YS4gIFVzZWQgb25seQorKyAgIHdoZW4gYW4gZXBpbG9ndWUg YXBwZWFycyBpbiB0aGUgbWlkZGxlIG9mIGEgZnVuY3Rpb24uICAqLworK0lOU05fTk9URSAoQ0ZB X1JFU1RPUkVfU1RBVEUpCisrCisgI3VuZGVmIElOU05fTk9URQorLS0tIGdjYy9jZmdjbGVhbnVw LmMuamoJMjAwOS0wMS0xNCAxMjowNjoyOS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnY2MvY2ZnY2xl YW51cC5jCTIwMDktMDYtMDkgMDg6NTg6MDQuMDAwMDAwMDAwICswMjAwCitAQCAtMTY3Miw4ICsx NjcyLDcgQEAgdHJ5X2Nyb3NzanVtcF90b19lZGdlIChpbnQgbW9kZSwgZWRnZSBlMQorICAgLyog U2tpcCBwb3NzaWJsZSBiYXNpYyBibG9jayBoZWFkZXIuICAqLworICAgaWYgKExBQkVMX1AgKG5l d3BvczEpKQorICAgICBuZXdwb3MxID0gTkVYVF9JTlNOIChuZXdwb3MxKTsKKy0KKy0gIGlmIChO T1RFX1AgKG5ld3BvczEpKQorKyAgaWYgKE5PVEVfSU5TTl9CQVNJQ19CTE9DS19QIChuZXdwb3Mx KSkKKyAgICAgbmV3cG9zMSA9IE5FWFRfSU5TTiAobmV3cG9zMSk7CisgCisgICByZWRpcmVjdF9m cm9tID0gc3BsaXRfYmxvY2sgKHNyYzEsIFBSRVZfSU5TTiAobmV3cG9zMSkpLT5zcmM7CistLS0g Z2NjL3JlZy1ub3Rlcy5kZWYuamoJMjAwOS0wMy0wNCAxMjoxNToyOS4wMDAwMDAwMDAgKzAxMDAK KysrKyBnY2MvcmVnLW5vdGVzLmRlZgkyMDA5LTA2LTA5IDA4OjU4OjA1LjAwMDAwMDAwMCArMDIw MAorQEAgLTExOCw2ICsxMTgsNDEgQEAgUkVHX05PVEUgKEJSX1BSRUQpCisgICAgaW5zdGVhZCBv ZiBpbnR1aXRpb24uICAqLworIFJFR19OT1RFIChGUkFNRV9SRUxBVEVEX0VYUFIpCisgCisrLyog QXR0YWNoZWQgdG8gaW5zbnMgdGhhdCBhcmUgUlRYX0ZSQU1FX1JFTEFURURfUCwgYnV0IGFyZSB0 b28gY29tcGxleAorKyAgIGZvciBGUkFNRV9SRUxBVEVEX0VYUFIgaW50dWl0aW9uLiAgVGhlIGlu c24ncyBmaXJzdCBwYXR0ZXJuIG11c3QgYmUKKysgICBhIFNFVCwgYW5kIHRoZSBkZXN0aW5hdGlv biBtdXN0IGJlIHRoZSBDRkEgcmVnaXN0ZXIuICBUaGUgYXR0YWNoZWQKKysgICBydHggaXMgYW4g ZXhwcmVzc2lvbiB0aGF0IGRlZmluZXMgdGhlIENGQS4gIEluIHRoZSBzaW1wbGVzdCBjYXNlLCB0 aGUKKysgICBydHggY291bGQgYmUganVzdCB0aGUgc3RhY2tfcG9pbnRlcl9ydHg7IG1vcmUgY29t bW9uIHdvdWxkIGJlIGEgUExVUworKyAgIHdpdGggYSBiYXNlIHJlZ2lzdGVyIGFuZCBhIGNvbnN0 YW50IG9mZnNldC4gIEluIHRoZSBtb3N0IGNvbXBsaWNhdGVkCisrICAgY2FzZXMsIHRoaXMgd2ls bCByZXN1bHQgaW4gYSBEV19DRkFfZGVmX2NmYV9leHByZXNzaW9uIHdpdGggdGhlIHJ0eAorKyAg IGV4cHJlc3Npb24gcmVuZGVyZWQgaW4gYSBkd2FyZiBsb2NhdGlvbiBleHByZXNzaW9uLiAgKi8K KytSRUdfTk9URSAoQ0ZBX0RFRl9DRkEpCisrCisrLyogQXR0YWNoZWQgdG8gaW5zbnMgdGhhdCBh cmUgUlRYX0ZSQU1FX1JFTEFURURfUCwgYnV0IGFyZSB0b28gY29tcGxleAorKyAgIGZvciBGUkFN RV9SRUxBVEVEX0VYUFIgaW50dWl0aW9uLiAgVGhpcyBub3RlIGFkanVzdHMgdGhlIGV4cHJlc3Np b24KKysgICBmcm9tIHdoaWNoIHRoZSBDRkEgaXMgY29tcHV0ZWQuICBUaGUgYXR0YWNoZWQgcnR4 IGRlZmluZXMgYSBuZXcgQ0ZBCisrICAgZXhwcmVzc2lvbiwgcmVsYXRpdmUgdG8gdGhlIG9sZCBD RkEgZXhwcmVzc2lvbi4gIFRoaXMgcnR4IG11c3QgYmUgb2YKKysgICB0aGUgZm9ybSAoU0VUIG5l dy1jZmEtcmVnIChQTFVTIG9sZC1jZmEtcmVnIGNvbnN0X2ludCkpLiAgSWYgdGhlIG5vdGUKKysg ICBydHggaXMgTlVMTCwgd2UgdXNlIHRoZSBmaXJzdCBTRVQgb2YgdGhlIGluc24uICAqLworK1JF R19OT1RFIChDRkFfQURKVVNUX0NGQSkKKysKKysvKiBTaW1pbGFyIHRvIEZSQU1FX1JFTEFURURf RVhQUiwgd2l0aCB0aGUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB0aGF0CisrICAgdGhpcyBpcyBh IHNhdmUgdG8gbWVtb3J5LCBpLmUuIHdpbGwgcmVzdWx0IGluIERXX0NGQV9vZmZzZXQgb3IgdGhl CisrICAgbGlrZS4gIFRoZSBwYXR0ZXJuIG9yIHRoZSBpbnNuIHNob3VsZCBiZSBhIHNpbXBsZSBz dG9yZSByZWxhdGl2ZSB0bworKyAgIHRoZSBDRkEuICAqLworK1JFR19OT1RFIChDRkFfT0ZGU0VU KQorKworKy8qIFNpbWlsYXIgdG8gRlJBTUVfUkVMQVRFRF9FWFBSLCB3aXRoIHRoZSBhZGRpdGlv bmFsIGluZm9ybWF0aW9uIHRoYXQgdGhpcworKyAgIGlzIGEgc2F2ZSB0byBhIHJlZ2lzdGVyLCBp LmUuIHdpbGwgcmVzdWx0IGluIERXX0NGQV9yZWdpc3Rlci4gIFRoZSBpbnNuCisrICAgb3IgdGhl IHBhdHRlcm4gc2hvdWxkIGJlIHNpbXBsZSByZWctcmVnIG1vdmUuICAqLworK1JFR19OT1RFIChD RkFfUkVHSVNURVIpCisrCisrLyogQXR0YWNoZWQgdG8gaW5zbnMgdGhhdCBhcmUgUlRYX0ZSQU1F X1JFTEFURURfUCwgd2l0aCB0aGUgaW5mb3JtYXRpb24KKysgICB0aGF0IHRoaXMgaXMgYSByZXN0 b3JlIG9wZXJhdGlvbiwgaS5lLiB3aWxsIHJlc3VsdCBpbiBEV19DRkFfcmVzdG9yZQorKyAgIG9y IHRoZSBsaWtlLiAgRWl0aGVyIHRoZSBhdHRhY2hlZCBydHgsIG9yIHRoZSBkZXN0aW5hdGlvbiBv ZiB0aGUgaW5zbidzCisrICAgZmlyc3QgcGF0dGVybiBpcyB0aGUgcmVnaXN0ZXIgdG8gYmUgcmVz dG9yZWQuICAqLworK1JFR19OT1RFIChDRkFfUkVTVE9SRSkKKysKKyAvKiBJbmRpY2F0ZXMgdGhh dCBSRUcgaG9sZHMgdGhlIGV4Y2VwdGlvbiBjb250ZXh0IGZvciB0aGUgZnVuY3Rpb24uCisgICAg VGhpcyBjb250ZXh0IGlzIHNoYXJlZCBieSBpbmxpbmUgZnVuY3Rpb25zLCBzbyB0aGUgY29kZSB0 byBhY3F1aXJlCisgICAgdGhlIHJlYWwgZXhjZXB0aW9uIGNvbnRleHQgaXMgZGVsYXllZCB1bnRp bCBhZnRlciBpbmxpbmluZy4gICovCistLS0gZ2NjL2NvbmZpZy9pMzg2L2kzODYubWQuamoJMjAw OS0wMy0xNyAyMDowNDoxMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnY2MvY29uZmlnL2kzODYvaTM4 Ni5tZAkyMDA5LTA2LTA5IDA4OjU4OjA0LjAwMDAwMDAwMCArMDIwMAorQEAgLTg0LDcgKzg0LDYg QEAgKGRlZmluZV9jb25zdGFudHMKKyAgICAoVU5TUEVDX0FERF9DQVJSWQkJMzQpCisgICAgKFVO U1BFQ19GTERDVwkJMzUpCisgICAgKFVOU1BFQ19SRVAJCQkzNikKKy0gICAoVU5TUEVDX0VIX1JF VFVSTgkJMzcpCisgICAgKFVOU1BFQ19MRF9NUElDCQkzOCkJOyBsb2FkX21hY2hvX3BpY2Jhc2UK KyAgICAoVU5TUEVDX1RSVU5DX05PT1AJCTM5KQorIAorQEAgLTE1Mzc5LDIxICsxNTM3OCwxNiBA QCAoZGVmaW5lX2V4cGFuZCAiZWhfcmV0dXJuIgorICAgdG1wID0gZ2VuX3J0eF9NRU0gKFBtb2Rl LCB0bXApOworICAgZW1pdF9tb3ZlX2luc24gKHRtcCwgcmEpOworIAorLSAgaWYgKFBtb2RlID09 IFNJbW9kZSkKKy0gICAgZW1pdF9qdW1wX2luc24gKGdlbl9laF9yZXR1cm5fc2kgKHNhKSk7Cist ICBlbHNlCistICAgIGVtaXRfanVtcF9pbnNuIChnZW5fZWhfcmV0dXJuX2RpIChzYSkpOworKyAg ZW1pdF9qdW1wX2luc24gKGdlbl9laF9yZXR1cm5faW50ZXJuYWwgKCkpOworICAgZW1pdF9iYXJy aWVyICgpOworICAgRE9ORTsKKyB9KQorIAorLShkZWZpbmVfaW5zbl9hbmRfc3BsaXQgImVoX3Jl dHVybl88bW9kZT4iCistICBbKHNldCAocGMpCistICAgICAgICAodW5zcGVjIFsobWF0Y2hfb3Bl cmFuZDpQIDAgInJlZ2lzdGVyX29wZXJhbmQiICJjIildCistCSAgICAgICAgIFVOU1BFQ19FSF9S RVRVUk4pKV0KKysoZGVmaW5lX2luc25fYW5kX3NwbGl0ICJlaF9yZXR1cm5faW50ZXJuYWwiCisr ICBbKGVoX3JldHVybildCisgICAiIgorICAgIiMiCistICAicmVsb2FkX2NvbXBsZXRlZCIKKysg ICJlcGlsb2d1ZV9jb21wbGV0ZWQiCisgICBbKGNvbnN0X2ludCAwKV0KKyAgICJpeDg2X2V4cGFu ZF9lcGlsb2d1ZSAoMik7IERPTkU7IikKKyAKKy0tLSBnY2MvY29uZmlnL2kzODYvaTM4Ni5oLmpq CTIwMDktMDQtMTQgMTU6NTE6MzYuMDAwMDAwMDAwICswMjAwCisrKysgZ2NjL2NvbmZpZy9pMzg2 L2kzODYuaAkyMDA5LTA2LTA5IDA5OjA4OjUwLjAwMDAwMDAwMCArMDIwMAorQEAgLTI0MDYsNiAr MjQwNiwxNSBAQCBlbnVtIGl4ODZfc3RhY2tfc2xvdAorIAwKKyAjZGVmaW5lIEZBU1RDQUxMX1BS RUZJWCAnQCcKKyAMCisrLyogTWFjaGluZSBzcGVjaWZpYyBDRkEgdHJhY2tpbmcgZHVyaW5nIHBy b2xvZ3VlL2VwaWxvZ3VlIGdlbmVyYXRpb24uICAqLworKworKyNpZm5kZWYgVVNFRF9GT1JfVEFS R0VUCisrc3RydWN0IG1hY2hpbmVfY2ZhX3N0YXRlIEdUWSgoKSkKKyt7CisrICBydHggcmVnOwor KyAgSE9TVF9XSURFX0lOVCBvZmZzZXQ7CisrfTsKKysKKyBzdHJ1Y3QgbWFjaGluZV9mdW5jdGlv biBHVFkoKCkpCisgeworICAgc3RydWN0IHN0YWNrX2xvY2FsX2VudHJ5ICpzdGFja19sb2NhbHM7 CitAQCAtMjQzNCw3ICsyNDQzLDkgQEAgc3RydWN0IG1hY2hpbmVfZnVuY3Rpb24gR1RZKCgpKQor ICAgLyogVGhpcyB2YWx1ZSBpcyB1c2VkIGZvciBhbWQ2NCB0YXJnZXRzIGFuZCBzcGVjaWZpZXMg dGhlIGN1cnJlbnQgYWJpCisgICAgICB0byBiZSB1c2VkLiBNU19BQkkgbWVhbnMgbXMgYWJpLiBP dGhlcndpc2UgU1lTVl9BQkkgbWVhbnMgc3lzdiBhYmkuICAqLworICAgaW50IGNhbGxfYWJpOwor KyAgc3RydWN0IG1hY2hpbmVfY2ZhX3N0YXRlIGNmYTsKKyB9OworKyNlbmRpZgorIAorICNkZWZp bmUgaXg4Nl9zdGFja19sb2NhbHMgKGNmdW4tPm1hY2hpbmUtPnN0YWNrX2xvY2FscykKKyAjZGVm aW5lIGl4ODZfdmFyYXJnc19ncHJfc2l6ZSAoY2Z1bi0+bWFjaGluZS0+dmFyYXJnc19ncHJfc2l6 ZSkKK0BAIC0yNDUwLDYgKzI0NjEsNyBAQCBzdHJ1Y3QgbWFjaGluZV9mdW5jdGlvbiBHVFkoKCkp CisgICAgUkVHX1NQIGlzIGxpdmUuICAqLworICNkZWZpbmUgaXg4Nl9jdXJyZW50X2Z1bmN0aW9u X2NhbGxzX3Rsc19kZXNjcmlwdG9yIFwKKyAgIChpeDg2X3Rsc19kZXNjcmlwdG9yX2NhbGxzX2V4 cGFuZGVkX2luX2NmdW4gJiYgZGZfcmVnc19ldmVyX2xpdmVfcCAoU1BfUkVHKSkKKysjZGVmaW5l IGl4ODZfY2ZhX3N0YXRlICgmY2Z1bi0+bWFjaGluZS0+Y2ZhKQorIAorIC8qIENvbnRyb2wgYmVo YXZpb3Igb2YgeDg2X2ZpbGVfc3RhcnQuICAqLworICNkZWZpbmUgWDg2X0ZJTEVfU1RBUlRfVkVS U0lPTl9ESVJFQ1RJVkUgZmFsc2UKKy0tLSBnY2MvY29uZmlnL2kzODYvaTM4Ni5jLmpqCTIwMDkt MDYtMDkgMDg6MTY6MDAuMDAwMDAwMDAwICswMjAwCisrKysgZ2NjL2NvbmZpZy9pMzg2L2kzODYu YwkyMDA5LTA2LTA5IDA5OjA5OjE0LjAwMDAwMDAwMCArMDIwMAorQEAgLTc0ODAsNiArNzQ4MCw5 IEBAIG91dHB1dF9zZXRfZ290IChydHggZGVzdCwgcnR4IGxhYmVsIEFUVFIKKyBzdGF0aWMgcnR4 CisgZ2VuX3B1c2ggKHJ0eCBhcmcpCisgeworKyAgaWYgKGl4ODZfY2ZhX3N0YXRlLT5yZWcgPT0g c3RhY2tfcG9pbnRlcl9ydHgpCisrICAgIGl4ODZfY2ZhX3N0YXRlLT5vZmZzZXQgKz0gVU5JVFNf UEVSX1dPUkQ7CisrCisgICByZXR1cm4gZ2VuX3J0eF9TRVQgKFZPSURtb2RlLAorIAkJICAgICAg Z2VuX3J0eF9NRU0gKFBtb2RlLAorIAkJCQkgICBnZW5fcnR4X1BSRV9ERUMgKFBtb2RlLAorQEAg LTc1MzksOCArNzU0Miw3IEBAIGl4ODZfc2F2ZV9yZWcgKHVuc2lnbmVkIGludCByZWdubywgaW50 IG0KKyAJfQorICAgICB9CisgCistICBpZiAoY3J0bC0+ZHJhcF9yZWcKKy0gICAgICAmJiByZWdu byA9PSBSRUdOTyAoY3J0bC0+ZHJhcF9yZWcpKQorKyAgaWYgKGNydGwtPmRyYXBfcmVnICYmIHJl Z25vID09IFJFR05PIChjcnRsLT5kcmFwX3JlZykpCisgICAgIHJldHVybiAxOworIAorICAgcmV0 dXJuIChkZl9yZWdzX2V2ZXJfbGl2ZV9wIChyZWdubykKK0BAIC03ODY5LDYgKzc4NzEsNDkgQEAg aXg4Nl9lbWl0X3NhdmVfc3NlX3JlZ3NfdXNpbmdfbW92IChydHggcAorICAgICAgIH0KKyB9Cisg Cisrc3RhdGljIEdUWSgoKSkgcnR4IHF1ZXVlZF9jZmFfcmVzdG9yZXM7CisrCisrLyogQWRkIGEg UkVHX0NGQV9SRVNUT1JFIFJFRyBub3RlIHRvIElOU04gb3IgcXVldWUgdGhlbSB1bnRpbCBuZXh0 IHN0YWNrCisrICAgbWFuaXB1bGF0aW9uIGluc24uICBEb24ndCBhZGQgaXQgaWYgdGhlIHByZXZp b3VzbHkKKysgICBzYXZlZCB2YWx1ZSB3aWxsIGJlIGxlZnQgdW50b3VjaGVkIHdpdGhpbiBzdGFj ayByZWQtem9uZSB0aWxsIHJldHVybiwKKysgICBhcyB1bndpbmRlcnMgY2FuIGZpbmQgdGhlIHNh bWUgdmFsdWUgaW4gdGhlIHJlZ2lzdGVyIGFuZAorKyAgIG9uIHRoZSBzdGFjay4gICovCisrCisr c3RhdGljIHZvaWQKKytpeDg2X2FkZF9jZmFfcmVzdG9yZV9ub3RlIChydHggaW5zbiwgcnR4IHJl ZywgSE9TVF9XSURFX0lOVCByZWRfb2Zmc2V0KQorK3sKKysgIGlmIChUQVJHRVRfUkVEX1pPTkUK KysgICAgICAmJiAhVEFSR0VUXzY0QklUX01TX0FCSQorKyAgICAgICYmIHJlZF9vZmZzZXQgKyBS RURfWk9ORV9TSVpFID49IDAKKysgICAgICAmJiBjcnRsLT5hcmdzLnBvcHNfYXJncyA8IDY1NTM2 KQorKyAgICByZXR1cm47CisrCisrICBpZiAoaW5zbikKKysgICAgeworKyAgICAgIGFkZF9yZWdf bm90ZSAoaW5zbiwgUkVHX0NGQV9SRVNUT1JFLCByZWcpOworKyAgICAgIFJUWF9GUkFNRV9SRUxB VEVEX1AgKGluc24pID0gMTsKKysgICAgfQorKyAgZWxzZQorKyAgICBxdWV1ZWRfY2ZhX3Jlc3Rv cmVzCisrICAgICAgPSBhbGxvY19FWFBSX0xJU1QgKFJFR19DRkFfUkVTVE9SRSwgcmVnLCBxdWV1 ZWRfY2ZhX3Jlc3RvcmVzKTsKKyt9CisrCisrLyogQWRkIHF1ZXVlZCBSRUdfQ0ZBX1JFU1RPUkUg bm90ZXMgaWYgYW55IHRvIElOU04uICAqLworKworK3N0YXRpYyB2b2lkCisraXg4Nl9hZGRfcXVl dWVkX2NmYV9yZXN0b3JlX25vdGVzIChydHggaW5zbikKKyt7CisrICBydHggbGFzdDsKKysgIGlm ICghcXVldWVkX2NmYV9yZXN0b3JlcykKKysgICAgcmV0dXJuOworKyAgZm9yIChsYXN0ID0gcXVl dWVkX2NmYV9yZXN0b3JlczsgWEVYUCAobGFzdCwgMSk7IGxhc3QgPSBYRVhQIChsYXN0LCAxKSkK KysgICAgOworKyAgWEVYUCAobGFzdCwgMSkgPSBSRUdfTk9URVMgKGluc24pOworKyAgUkVHX05P VEVTIChpbnNuKSA9IHF1ZXVlZF9jZmFfcmVzdG9yZXM7CisrICBxdWV1ZWRfY2ZhX3Jlc3RvcmVz ID0gTlVMTF9SVFg7CisrICBSVFhfRlJBTUVfUkVMQVRFRF9QIChpbnNuKSA9IDE7CisrfQorKwor IC8qIEV4cGFuZCBwcm9sb2d1ZSBvciBlcGlsb2d1ZSBzdGFjayBhZGp1c3RtZW50LgorICAgIFRo ZSBwYXR0ZXJuIGV4aXN0IHRvIHB1dCBhIGRlcGVuZGVuY3kgb24gYWxsIGVicC1iYXNlZCBtZW1v cnkgYWNjZXNzZXMuCisgICAgU1RZTEUgc2hvdWxkIGJlIG5lZ2F0aXZlIGlmIGluc3RydWN0aW9u cyBzaG91bGQgYmUgbWFya2VkIGFzIGZyYW1lIHJlbGF0ZWQsCitAQCAtNzg3Niw3ICs3OTIxLDgg QEAgaXg4Nl9lbWl0X3NhdmVfc3NlX3JlZ3NfdXNpbmdfbW92IChydHggcAorICAgIG90aGVyd2lz ZS4gICovCisgCisgc3RhdGljIHZvaWQKKy1wcm9fZXBpbG9ndWVfYWRqdXN0X3N0YWNrIChydHgg ZGVzdCwgcnR4IHNyYywgcnR4IG9mZnNldCwgaW50IHN0eWxlKQorK3Byb19lcGlsb2d1ZV9hZGp1 c3Rfc3RhY2sgKHJ0eCBkZXN0LCBydHggc3JjLCBydHggb2Zmc2V0LAorKwkJCSAgIGludCBzdHls ZSwgYm9vbCBzZXRfY2ZhKQorIHsKKyAgIHJ0eCBpbnNuOworIAorQEAgLTc4OTksNyArNzk0NSwy NCBAQCBwcm9fZXBpbG9ndWVfYWRqdXN0X3N0YWNrIChydHggZGVzdCwgcnR4CisgICAgICAgaW5z biA9IGVtaXRfaW5zbiAoZ2VuX3Byb19lcGlsb2d1ZV9hZGp1c3Rfc3RhY2tfcmV4NjRfMiAoZGVz dCwgc3JjLCByMTEsCisgCQkJCQkJCSAgICAgICBvZmZzZXQpKTsKKyAgICAgfQorLSAgaWYgKHN0 eWxlIDwgMCkKKysKKysgIGlmIChzdHlsZSA+PSAwKQorKyAgICBpeDg2X2FkZF9xdWV1ZWRfY2Zh X3Jlc3RvcmVfbm90ZXMgKGluc24pOworKworKyAgaWYgKHNldF9jZmEpCisrICAgIHsKKysgICAg ICBydHggcjsKKysKKysgICAgICBnY2NfYXNzZXJ0IChpeDg2X2NmYV9zdGF0ZS0+cmVnID09IHNy Yyk7CisrICAgICAgaXg4Nl9jZmFfc3RhdGUtPm9mZnNldCArPSBJTlRWQUwgKG9mZnNldCk7Cisr ICAgICAgaXg4Nl9jZmFfc3RhdGUtPnJlZyA9IGRlc3Q7CisrICAgIAorKyAgICAgIHIgPSBnZW5f cnR4X1BMVVMgKFBtb2RlLCBzcmMsIG9mZnNldCk7CisrICAgICAgciA9IGdlbl9ydHhfU0VUIChW T0lEbW9kZSwgZGVzdCwgcik7CisrICAgICAgYWRkX3JlZ19ub3RlIChpbnNuLCBSRUdfQ0ZBX0FE SlVTVF9DRkEsIHIpOworKyAgICAgIFJUWF9GUkFNRV9SRUxBVEVEX1AgKGluc24pID0gMTsKKysg ICAgfQorKyAgZWxzZSBpZiAoc3R5bGUgPCAwKQorICAgICBSVFhfRlJBTUVfUkVMQVRFRF9QIChp bnNuKSA9IDE7CisgfQorIAorQEAgLTgwMzUsMzAgKzgwOTgsNiBAQCBpeDg2X2ludGVybmFsX2Fy Z19wb2ludGVyICh2b2lkKQorICAgcmV0dXJuIHZpcnR1YWxfaW5jb21pbmdfYXJnc19ydHg7Cisg fQorIAorLS8qIEhhbmRsZSB0aGUgVEFSR0VUX0RXQVJGX0hBTkRMRV9GUkFNRV9VTlNQRUMgaG9v ay4KKy0gICBUaGlzIGlzIGNhbGxlZCBmcm9tIGR3YXJmMm91dC5jIHRvIGVtaXQgY2FsbCBmcmFt ZSBpbnN0cnVjdGlvbnMKKy0gICBmb3IgZnJhbWUtcmVsYXRlZCBpbnNucyBjb250YWluaW5nIFVO U1BFQ3MgYW5kIFVOU1BFQ19WT0xBVElMRXMuICovCistc3RhdGljIHZvaWQKKy1peDg2X2R3YXJm X2hhbmRsZV9mcmFtZV91bnNwZWMgKGNvbnN0IGNoYXIgKmxhYmVsLCBydHggcGF0dGVybiwgaW50 IGluZGV4KQorLXsKKy0gIHJ0eCB1bnNwZWMgPSBTRVRfU1JDIChwYXR0ZXJuKTsKKy0gIGdjY19h c3NlcnQgKEdFVF9DT0RFICh1bnNwZWMpID09IFVOU1BFQyk7CistCistICBzd2l0Y2ggKGluZGV4 KQorLSAgICB7CistICAgIGNhc2UgVU5TUEVDX1JFR19TQVZFOgorLSAgICAgIGR3YXJmMm91dF9y ZWdfc2F2ZV9yZWcgKGxhYmVsLCBYVkVDRVhQICh1bnNwZWMsIDAsIDApLAorLQkJCSAgICAgIFNF VF9ERVNUIChwYXR0ZXJuKSk7CistICAgICAgYnJlYWs7CistICAgIGNhc2UgVU5TUEVDX0RFRl9D RkE6CistICAgICAgZHdhcmYyb3V0X2RlZl9jZmEgKGxhYmVsLCBSRUdOTyAoU0VUX0RFU1QgKHBh dHRlcm4pKSwKKy0JCQkgSU5UVkFMIChYVkVDRVhQICh1bnNwZWMsIDAsIDApKSk7CistICAgICAg YnJlYWs7CistICAgIGRlZmF1bHQ6CistICAgICAgZ2NjX3VucmVhY2hhYmxlICgpOworLSAgICB9 CistfQorLQorIC8qIEZpbmFsaXplIHN0YWNrX3JlYWxpZ25fbmVlZGVkIGZsYWcsIHdoaWNoIHdp bGwgZ3VpZGUgcHJvbG9ndWUvZXBpbG9ndWUKKyAgICB0byBiZSBnZW5lcmF0ZWQgaW4gY29ycmVj dCBmb3JtLiAgKi8KKyBzdGF0aWMgdm9pZCAKK0BAIC04MTAyLDYgKzgxNDEsMTAgQEAgaXg4Nl9l eHBhbmRfcHJvbG9ndWUgKHZvaWQpCisgICAvKiBEUkFQIHNob3VsZCBub3QgY29leGlzdCB3aXRo IHN0YWNrX3JlYWxpZ25fZnAgKi8KKyAgIGdjY19hc3NlcnQgKCEoY3J0bC0+ZHJhcF9yZWcgJiYg c3RhY2tfcmVhbGlnbl9mcCkpOworIAorKyAgLyogSW5pdGlhbGl6ZSBDRkEgc3RhdGUgZm9yIGJl Zm9yZSB0aGUgcHJvbG9ndWUuICAqLworKyAgaXg4Nl9jZmFfc3RhdGUtPnJlZyA9IHN0YWNrX3Bv aW50ZXJfcnR4OworKyAgaXg4Nl9jZmFfc3RhdGUtPm9mZnNldCA9IElOQ09NSU5HX0ZSQU1FX1NQ X09GRlNFVDsKKysKKyAgIGl4ODZfY29tcHV0ZV9mcmFtZV9sYXlvdXQgKCZmcmFtZSk7CisgCisg ICAvKiBFbWl0IHByb2xvZ3VlIGNvZGUgdG8gYWRqdXN0IHN0YWNrIGFsaWdubWVudCBhbmQgc2V0 dXAgRFJBUCwgaW4gY2FzZQorQEAgLTgxMzEsNiArODE3NCw3IEBAIGl4ODZfZXhwYW5kX3Byb2xv Z3VlICh2b2lkKQorIAorICAgICAgIGluc24gPSBlbWl0X2luc24gKGdlbl9ydHhfU0VUIChWT0lE bW9kZSwgeSwgeCkpOworICAgICAgIFJUWF9GUkFNRV9SRUxBVEVEX1AgKGluc24pID0gMTsgCisr ICAgICAgaXg4Nl9jZmFfc3RhdGUtPnJlZyA9IGNydGwtPmRyYXBfcmVnOworIAorICAgICAgIC8q IEFsaWduIHRoZSBzdGFjay4gICovCisgICAgICAgaW5zbiA9IGVtaXRfaW5zbiAoKCppeDg2X2dl bl9hbmRzcCkgKHN0YWNrX3BvaW50ZXJfcnR4LAorQEAgLTgxNTksNiArODIwMyw5IEBAIGl4ODZf ZXhwYW5kX3Byb2xvZ3VlICh2b2lkKQorIAorICAgICAgIGluc24gPSBlbWl0X21vdmVfaW5zbiAo aGFyZF9mcmFtZV9wb2ludGVyX3J0eCwgc3RhY2tfcG9pbnRlcl9ydHgpOworICAgICAgIFJUWF9G UkFNRV9SRUxBVEVEX1AgKGluc24pID0gMTsKKysKKysgICAgICBpZiAoaXg4Nl9jZmFfc3RhdGUt PnJlZyA9PSBzdGFja19wb2ludGVyX3J0eCkKKysgICAgICAgIGl4ODZfY2ZhX3N0YXRlLT5yZWcg PSBoYXJkX2ZyYW1lX3BvaW50ZXJfcnR4OworICAgICB9CisgCisgICBpZiAoc3RhY2tfcmVhbGln bl9mcCkKK0BAIC04MTk3LDcgKzgyNDQsOCBAQCBpeDg2X2V4cGFuZF9wcm9sb2d1ZSAodm9pZCkK KyAgICAgOworICAgZWxzZSBpZiAoISBUQVJHRVRfU1RBQ0tfUFJPQkUgfHwgYWxsb2NhdGUgPCBD SEVDS19TVEFDS19MSU1JVCkKKyAgICAgcHJvX2VwaWxvZ3VlX2FkanVzdF9zdGFjayAoc3RhY2tf cG9pbnRlcl9ydHgsIHN0YWNrX3BvaW50ZXJfcnR4LAorLQkJCSAgICAgICBHRU5fSU5UICgtYWxs b2NhdGUpLCAtMSk7CisrCQkJICAgICAgIEdFTl9JTlQgKC1hbGxvY2F0ZSksIC0xLAorKwkJCSAg ICAgICBpeDg2X2NmYV9zdGF0ZS0+cmVnID09IHN0YWNrX3BvaW50ZXJfcnR4KTsKKyAgIGVsc2UK KyAgICAgeworICAgICAgIC8qIE9ubHkgdmFsaWQgZm9yIFdpbjMyLiAgKi8KK0BAIC04MjI1LDEx ICs4MjczLDE1IEBAIGl4ODZfZXhwYW5kX3Byb2xvZ3VlICh2b2lkKQorICAgICAgIGVsc2UKKyAJ aW5zbiA9IGdlbl9hbGxvY2F0ZV9zdGFja193b3JrZXJfMzIgKGVheCwgZWF4KTsKKyAgICAgICBp bnNuID0gZW1pdF9pbnNuIChpbnNuKTsKKy0gICAgICBSVFhfRlJBTUVfUkVMQVRFRF9QIChpbnNu KSA9IDE7CistICAgICAgdCA9IGdlbl9ydHhfUExVUyAoUG1vZGUsIHN0YWNrX3BvaW50ZXJfcnR4 LCBHRU5fSU5UICgtYWxsb2NhdGUpKTsKKy0gICAgICB0ID0gZ2VuX3J0eF9TRVQgKFZPSURtb2Rl LCBzdGFja19wb2ludGVyX3J0eCwgdCk7CistICAgICAgUkVHX05PVEVTIChpbnNuKSA9IGdlbl9y dHhfRVhQUl9MSVNUIChSRUdfRlJBTUVfUkVMQVRFRF9FWFBSLAorLQkJCQkJICAgIHQsIFJFR19O T1RFUyAoaW5zbikpOworKworKyAgICAgIGlmIChpeDg2X2NmYV9zdGF0ZS0+cmVnID09IHN0YWNr X3BvaW50ZXJfcnR4KQorKwl7CisrCSAgaXg4Nl9jZmFfc3RhdGUtPm9mZnNldCArPSBhbGxvY2F0 ZTsKKysJICB0ID0gZ2VuX3J0eF9QTFVTIChQbW9kZSwgc3RhY2tfcG9pbnRlcl9ydHgsIEdFTl9J TlQgKC1hbGxvY2F0ZSkpOworKwkgIHQgPSBnZW5fcnR4X1NFVCAoVk9JRG1vZGUsIHN0YWNrX3Bv aW50ZXJfcnR4LCB0KTsKKysJICBhZGRfcmVnX25vdGUgKGluc24sIFJFR19DRkFfQURKVVNUX0NG QSwgdCk7CisrCSAgUlRYX0ZSQU1FX1JFTEFURURfUCAoaW5zbikgPSAxOworKwl9CisgCisgICAg ICAgaWYgKGVheF9saXZlKQorIAl7CitAQCAtODMzNiwxOCArODM4OCwxMDQgQEAgaXg4Nl9leHBh bmRfcHJvbG9ndWUgKHZvaWQpCisgICAgIGVtaXRfaW5zbiAoZ2VuX2NsZCAoKSk7CisgfQorIAor Ky8qIEVtaXQgY29kZSB0byByZXN0b3JlIFJFRyB1c2luZyBhIFBPUCBpbnNuLiAgKi8KKysKKytz dGF0aWMgdm9pZAorK2l4ODZfZW1pdF9yZXN0b3JlX3JlZ191c2luZ19wb3AgKHJ0eCByZWcsIEhP U1RfV0lERV9JTlQgcmVkX29mZnNldCkKKyt7CisrICBydHggaW5zbiA9IGVtaXRfaW5zbiAoaXg4 Nl9nZW5fcG9wMSAocmVnKSk7CisrCisrICBpZiAoaXg4Nl9jZmFfc3RhdGUtPnJlZyA9PSBjcnRs LT5kcmFwX3JlZworKyAgICAgICYmIFJFR05PIChyZWcpID09IFJFR05PIChjcnRsLT5kcmFwX3Jl ZykpCisrICAgIHsKKysgICAgICAvKiBQcmV2aW91c2x5IHdlJ2QgcmVwcmVzZW50ZWQgdGhlIENG QSBhcyBhbiBleHByZXNzaW9uCisrCSBsaWtlICooJWVicCAtIDgpLiAgV2UndmUganVzdCBwb3Bw ZWQgdGhhdCB2YWx1ZSBmcm9tCisrCSB0aGUgc3RhY2ssIHdoaWNoIG1lYW5zIHdlIG5lZWQgdG8g cmVzZXQgdGhlIENGQSB0bworKwkgdGhlIGRyYXAgcmVnaXN0ZXIuICBUaGlzIHdpbGwgcmVtYWlu IHVudGlsIHdlIHJlc3RvcmUKKysJIHRoZSBzdGFjayBwb2ludGVyLiAgKi8KKysgICAgICBhZGRf cmVnX25vdGUgKGluc24sIFJFR19DRkFfREVGX0NGQSwgcmVnKTsKKysgICAgICBSVFhfRlJBTUVf UkVMQVRFRF9QIChpbnNuKSA9IDE7CisrICAgICAgcmV0dXJuOworKyAgICB9CisrCisrICBpZiAo aXg4Nl9jZmFfc3RhdGUtPnJlZyA9PSBzdGFja19wb2ludGVyX3J0eCkKKysgICAgeworKyAgICAg IGl4ODZfY2ZhX3N0YXRlLT5vZmZzZXQgLT0gVU5JVFNfUEVSX1dPUkQ7CisrICAgICAgYWRkX3Jl Z19ub3RlIChpbnNuLCBSRUdfQ0ZBX0FESlVTVF9DRkEsCisrCQkgICAgY29weV9ydHggKFhWRUNF WFAgKFBBVFRFUk4gKGluc24pLCAwLCAxKSkpOworKyAgICAgIFJUWF9GUkFNRV9SRUxBVEVEX1Ag KGluc24pID0gMTsKKysgICAgfQorKworKyAgLyogV2hlbiB0aGUgZnJhbWUgcG9pbnRlciBpcyB0 aGUgQ0ZBLCBhbmQgd2UgcG9wIGl0LCB3ZSBhcmUKKysgICAgIHN3YXBwaW5nIGJhY2sgdG8gdGhl IHN0YWNrIHBvaW50ZXIgYXMgdGhlIENGQS4gIFRoaXMgaGFwcGVucworKyAgICAgZm9yIHN0YWNr IGZyYW1lcyB0aGF0IGRvbid0IGFsbG9jYXRlIG90aGVyIGRhdGEsIHNvIHdlIGFzc3VtZQorKyAg ICAgdGhlIHN0YWNrIHBvaW50ZXIgaXMgbm93IHBvaW50aW5nIGF0IHRoZSByZXR1cm4gYWRkcmVz cywgaS5lLgorKyAgICAgdGhlIGZ1bmN0aW9uIGVudHJ5IHN0YXRlLCB3aGljaCBtYWtlcyB0aGUg b2Zmc2V0IGJlIDEgd29yZC4gICovCisrICBlbHNlIGlmIChpeDg2X2NmYV9zdGF0ZS0+cmVnID09 IGhhcmRfZnJhbWVfcG9pbnRlcl9ydHgKKysJICAgJiYgcmVnID09IGhhcmRfZnJhbWVfcG9pbnRl cl9ydHgpCisrICAgIHsKKysgICAgICBpeDg2X2NmYV9zdGF0ZS0+cmVnID0gc3RhY2tfcG9pbnRl cl9ydHg7CisrICAgICAgaXg4Nl9jZmFfc3RhdGUtPm9mZnNldCA9IFVOSVRTX1BFUl9XT1JEOwor KworKyAgICAgIGFkZF9yZWdfbm90ZSAoaW5zbiwgUkVHX0NGQV9ERUZfQ0ZBLAorKwkJICAgIGdl bl9ydHhfUExVUyAoUG1vZGUsIHN0YWNrX3BvaW50ZXJfcnR4LAorKwkJCQkgIEdFTl9JTlQgKFVO SVRTX1BFUl9XT1JEKSkpOworKyAgICAgIFJUWF9GUkFNRV9SRUxBVEVEX1AgKGluc24pID0gMTsK KysgICAgfQorKworKyAgaXg4Nl9hZGRfY2ZhX3Jlc3RvcmVfbm90ZSAoaW5zbiwgcmVnLCByZWRf b2Zmc2V0KTsKKyt9CisrCisrLyogRW1pdCBjb2RlIHRvIHJlc3RvcmUgc2F2ZWQgcmVnaXN0ZXJz IHVzaW5nIFBPUCBpbnNucy4gICovCisrCisrc3RhdGljIHZvaWQKKytpeDg2X2VtaXRfcmVzdG9y ZV9yZWdzX3VzaW5nX3BvcCAoSE9TVF9XSURFX0lOVCByZWRfb2Zmc2V0KQorK3sKKysgIGludCBy ZWdubzsKKysKKysgIGZvciAocmVnbm8gPSAwOyByZWdubyA8IEZJUlNUX1BTRVVET19SRUdJU1RF UjsgcmVnbm8rKykKKysgICAgaWYgKCFTU0VfUkVHTk9fUCAocmVnbm8pICYmIGl4ODZfc2F2ZV9y ZWcgKHJlZ25vLCBmYWxzZSkpCisrICAgICAgeworKwlpeDg2X2VtaXRfcmVzdG9yZV9yZWdfdXNp bmdfcG9wIChnZW5fcnR4X1JFRyAoUG1vZGUsIHJlZ25vKSwKKysJCQkJCSByZWRfb2Zmc2V0KTsK KysJcmVkX29mZnNldCArPSBVTklUU19QRVJfV09SRDsKKysgICAgICB9CisrfQorKworKy8qIEVt aXQgY29kZSBhbmQgbm90ZXMgZm9yIHRoZSBMRUFWRSBpbnN0cnVjdGlvbi4gICovCisrCisrc3Rh dGljIHZvaWQKKytpeDg2X2VtaXRfbGVhdmUgKEhPU1RfV0lERV9JTlQgcmVkX29mZnNldCkKKyt7 CisrICBydHggaW5zbiA9IGVtaXRfaW5zbiAoaXg4Nl9nZW5fbGVhdmUgKCkpOworKworKyAgaXg4 Nl9hZGRfcXVldWVkX2NmYV9yZXN0b3JlX25vdGVzIChpbnNuKTsKKysKKysgIGlmIChpeDg2X2Nm YV9zdGF0ZS0+cmVnID09IGhhcmRfZnJhbWVfcG9pbnRlcl9ydHgpCisrICAgIHsKKysgICAgICBh ZGRfcmVnX25vdGUgKGluc24sIFJFR19DRkFfQURKVVNUX0NGQSwgCisrCQkgICAgY29weV9ydHgg KFhWRUNFWFAgKFBBVFRFUk4gKGluc24pLCAwLCAwKSkpOworKyAgICAgIFJUWF9GUkFNRV9SRUxB VEVEX1AgKGluc24pID0gMTsKKysgICAgICBpeDg2X2FkZF9jZmFfcmVzdG9yZV9ub3RlIChpbnNu LCBoYXJkX2ZyYW1lX3BvaW50ZXJfcnR4LCByZWRfb2Zmc2V0KTsKKysgICAgfQorK30KKysKKyAv KiBFbWl0IGNvZGUgdG8gcmVzdG9yZSBzYXZlZCByZWdpc3RlcnMgdXNpbmcgTU9WIGluc25zLiAg Rmlyc3QgcmVnaXN0ZXIKKyAgICBpcyByZXN0b3JlZCBmcm9tIFBPSU5URVIgKyBPRkZTRVQuICAq LworIHN0YXRpYyB2b2lkCisgaXg4Nl9lbWl0X3Jlc3RvcmVfcmVnc191c2luZ19tb3YgKHJ0eCBw b2ludGVyLCBIT1NUX1dJREVfSU5UIG9mZnNldCwKKysJCQkJICBIT1NUX1dJREVfSU5UIHJlZF9v ZmZzZXQsCisgCQkJCSAgaW50IG1heWJlX2VoX3JldHVybikKKyB7CistICBpbnQgcmVnbm87Cisr ICB1bnNpZ25lZCBpbnQgcmVnbm87CisgICBydHggYmFzZV9hZGRyZXNzID0gZ2VuX3J0eF9NRU0g KFBtb2RlLCBwb2ludGVyKTsKKysgIHJ0eCBpbnNuOworIAorICAgZm9yIChyZWdubyA9IDA7IHJl Z25vIDwgRklSU1RfUFNFVURPX1JFR0lTVEVSOyByZWdubysrKQorICAgICBpZiAoIVNTRV9SRUdO T19QIChyZWdubykgJiYgaXg4Nl9zYXZlX3JlZyAocmVnbm8sIG1heWJlX2VoX3JldHVybikpCisg ICAgICAgeworKwlydHggcmVnID0gZ2VuX3J0eF9SRUcgKFBtb2RlLCByZWdubyk7CisrCisgCS8q IEVuc3VyZSB0aGF0IGFkanVzdF9hZGRyZXNzIHdvbid0IGJlIGZvcmNlZCB0byBwcm9kdWNlIHBv aW50ZXIKKyAJICAgb3V0IG9mIHJhbmdlIGFsbG93ZWQgYnkgeDg2LTY0IGluc3RydWN0aW9uIHNl dC4gICovCisgCWlmIChUQVJHRVRfNjRCSVQgJiYgb2Zmc2V0ICE9IHRydW5jX2ludF9mb3JfbW9k ZSAob2Zmc2V0LCBTSW1vZGUpKQorQEAgLTgzNjAsOSArODQ5OCwyNSBAQCBpeDg2X2VtaXRfcmVz dG9yZV9yZWdzX3VzaW5nX21vdiAocnR4IHBvCisgCSAgICBiYXNlX2FkZHJlc3MgPSBnZW5fcnR4 X01FTSAoUG1vZGUsIHIxMSk7CisgCSAgICBvZmZzZXQgPSAwOworIAkgIH0KKy0JZW1pdF9tb3Zl X2luc24gKGdlbl9ydHhfUkVHIChQbW9kZSwgcmVnbm8pLAorLQkgICAgICAgICAgICAgICAgYWRq dXN0X2FkZHJlc3MgKGJhc2VfYWRkcmVzcywgUG1vZGUsIG9mZnNldCkpOworKwlpbnNuID0gZW1p dF9tb3ZlX2luc24gKHJlZywKKysJCQkgICAgICAgYWRqdXN0X2FkZHJlc3MgKGJhc2VfYWRkcmVz cywgUG1vZGUsIG9mZnNldCkpOworIAlvZmZzZXQgKz0gVU5JVFNfUEVSX1dPUkQ7CisrCisrICAg ICAgICBpZiAoaXg4Nl9jZmFfc3RhdGUtPnJlZyA9PSBjcnRsLT5kcmFwX3JlZworKwkgICAgJiYg cmVnbm8gPT0gUkVHTk8gKGNydGwtPmRyYXBfcmVnKSkKKysJICB7CisrCSAgICAvKiBQcmV2aW91 c2x5IHdlJ2QgcmVwcmVzZW50ZWQgdGhlIENGQSBhcyBhbiBleHByZXNzaW9uCisrCSAgICAgICBs aWtlICooJWVicCAtIDgpLiAgV2UndmUganVzdCBwb3BwZWQgdGhhdCB2YWx1ZSBmcm9tCisrCSAg ICAgICB0aGUgc3RhY2ssIHdoaWNoIG1lYW5zIHdlIG5lZWQgdG8gcmVzZXQgdGhlIENGQSB0bwor KwkgICAgICAgdGhlIGRyYXAgcmVnaXN0ZXIuICBUaGlzIHdpbGwgcmVtYWluIHVudGlsIHdlIHJl c3RvcmUKKysJICAgICAgIHRoZSBzdGFjayBwb2ludGVyLiAgKi8KKysJICAgIGFkZF9yZWdfbm90 ZSAoaW5zbiwgUkVHX0NGQV9ERUZfQ0ZBLCByZWcpOworKwkgICAgUlRYX0ZSQU1FX1JFTEFURURf UCAoaW5zbikgPSAxOworKwkgIH0KKysJZWxzZQorKwkgIGl4ODZfYWRkX2NmYV9yZXN0b3JlX25v dGUgKE5VTExfUlRYLCByZWcsIHJlZF9vZmZzZXQpOworKworKwlyZWRfb2Zmc2V0ICs9IFVOSVRT X1BFUl9XT1JEOworICAgICAgIH0KKyB9CisgCitAQCAtODM3MCwxNSArODUyNCwxOCBAQCBpeDg2 X2VtaXRfcmVzdG9yZV9yZWdzX3VzaW5nX21vdiAocnR4IHBvCisgICAgaXMgcmVzdG9yZWQgZnJv bSBQT0lOVEVSICsgT0ZGU0VULiAgKi8KKyBzdGF0aWMgdm9pZAorIGl4ODZfZW1pdF9yZXN0b3Jl X3NzZV9yZWdzX3VzaW5nX21vdiAocnR4IHBvaW50ZXIsIEhPU1RfV0lERV9JTlQgb2Zmc2V0LAor KwkJCQkgICAgICBIT1NUX1dJREVfSU5UIHJlZF9vZmZzZXQsCisgCQkJCSAgICAgIGludCBtYXli ZV9laF9yZXR1cm4pCisgeworICAgaW50IHJlZ25vOworICAgcnR4IGJhc2VfYWRkcmVzcyA9IGdl bl9ydHhfTUVNIChUSW1vZGUsIHBvaW50ZXIpOworLSAgcnR4IG1lbTsKKysgIHJ0eCBtZW0sIGlu c247CisgCisgICBmb3IgKHJlZ25vID0gMDsgcmVnbm8gPCBGSVJTVF9QU0VVRE9fUkVHSVNURVI7 IHJlZ25vKyspCisgICAgIGlmIChTU0VfUkVHTk9fUCAocmVnbm8pICYmIGl4ODZfc2F2ZV9yZWcg KHJlZ25vLCBtYXliZV9laF9yZXR1cm4pKQorICAgICAgIHsKKysJcnR4IHJlZyA9IGdlbl9ydHhf UkVHIChUSW1vZGUsIHJlZ25vKTsKKysKKyAJLyogRW5zdXJlIHRoYXQgYWRqdXN0X2FkZHJlc3Mg d29uJ3QgYmUgZm9yY2VkIHRvIHByb2R1Y2UgcG9pbnRlcgorIAkgICBvdXQgb2YgcmFuZ2UgYWxs b3dlZCBieSB4ODYtNjQgaW5zdHJ1Y3Rpb24gc2V0LiAgKi8KKyAJaWYgKFRBUkdFVF82NEJJVCAm JiBvZmZzZXQgIT0gdHJ1bmNfaW50X2Zvcl9tb2RlIChvZmZzZXQsIFNJbW9kZSkpCitAQCAtODM5 Myw4ICs4NTUwLDEyIEBAIGl4ODZfZW1pdF9yZXN0b3JlX3NzZV9yZWdzX3VzaW5nX21vdiAocnQK KyAJICB9CisgCW1lbSA9IGFkanVzdF9hZGRyZXNzIChiYXNlX2FkZHJlc3MsIFRJbW9kZSwgb2Zm c2V0KTsKKyAJc2V0X21lbV9hbGlnbiAobWVtLCAxMjgpOworLQllbWl0X21vdmVfaW5zbiAoZ2Vu X3J0eF9SRUcgKFRJbW9kZSwgcmVnbm8pLCBtZW0pOworKwlpbnNuID0gZW1pdF9tb3ZlX2luc24g KHJlZywgbWVtKTsKKyAJb2Zmc2V0ICs9IDE2OworKworKwlpeDg2X2FkZF9jZmFfcmVzdG9yZV9u b3RlIChOVUxMX1JUWCwgcmVnLCByZWRfb2Zmc2V0KTsKKysKKysJcmVkX29mZnNldCArPSAxNjsK KyAgICAgICB9CisgfQorIAorQEAgLTg0MDMsMTAgKzg1NjQsMTEgQEAgaXg4Nl9lbWl0X3Jlc3Rv cmVfc3NlX3JlZ3NfdXNpbmdfbW92IChydAorIHZvaWQKKyBpeDg2X2V4cGFuZF9lcGlsb2d1ZSAo aW50IHN0eWxlKQorIHsKKy0gIGludCByZWdubzsKKyAgIGludCBzcF92YWxpZDsKKyAgIHN0cnVj dCBpeDg2X2ZyYW1lIGZyYW1lOworLSAgSE9TVF9XSURFX0lOVCBvZmZzZXQ7CisrICBIT1NUX1dJ REVfSU5UIG9mZnNldCwgcmVkX29mZnNldDsKKysgIHN0cnVjdCBtYWNoaW5lX2NmYV9zdGF0ZSBj ZmFfc3RhdGVfc2F2ZSA9ICppeDg2X2NmYV9zdGF0ZTsKKysgIGJvb2wgdXNpbmdfZHJhcDsKKyAK KyAgIGl4ODZfZmluYWxpemVfc3RhY2tfcmVhbGlnbl9mbGFncyAoKTsKKyAKK0BAIC04NDIyLDYg Kzg1ODQsOSBAQCBpeDg2X2V4cGFuZF9lcGlsb2d1ZSAoaW50IHN0eWxlKQorICAgaWYgKGZyYW1l X3BvaW50ZXJfbmVlZGVkICYmIGZyYW1lLnJlZF96b25lX3NpemUpCisgICAgIGVtaXRfaW5zbiAo Z2VuX21lbW9yeV9ibG9ja2FnZSAoKSk7IAorIAorKyAgdXNpbmdfZHJhcCA9IGNydGwtPmRyYXBf cmVnICYmIGNydGwtPnN0YWNrX3JlYWxpZ25fbmVlZGVkOworKyAgZ2NjX2Fzc2VydCAoIXVzaW5n X2RyYXAgfHwgaXg4Nl9jZmFfc3RhdGUtPnJlZyA9PSBjcnRsLT5kcmFwX3JlZyk7CisrCisgICAv KiBDYWxjdWxhdGUgc3RhcnQgb2Ygc2F2ZWQgcmVnaXN0ZXJzIHJlbGF0aXZlIHRvIGVicC4gIFNw ZWNpYWwgY2FyZQorICAgICAgbXVzdCBiZSB0YWtlbiBmb3IgdGhlIG5vcm1hbCByZXR1cm4gY2Fz ZSBvZiBhIGZ1bmN0aW9uIHVzaW5nCisgICAgICBlaF9yZXR1cm46IHRoZSBlYXggYW5kIGVkeCBy ZWdpc3RlcnMgYXJlIG1hcmtlZCBhcyBzYXZlZCwgYnV0IG5vdAorQEAgLTg0MzIsNiArODU5Nywx OSBAQCBpeDg2X2V4cGFuZF9lcGlsb2d1ZSAoaW50IHN0eWxlKQorICAgb2Zmc2V0ICo9IC1VTklU U19QRVJfV09SRDsKKyAgIG9mZnNldCAtPSBmcmFtZS5uc3NlcmVncyAqIDE2ICsgZnJhbWUucGFk ZGluZzA7CisgCisrICAvKiBDYWxjdWxhdGUgc3RhcnQgb2Ygc2F2ZWQgcmVnaXN0ZXJzIHJlbGF0 aXZlIHRvIGVzcCBvbiBlbnRyeSBvZiB0aGUKKysgICAgIGZ1bmN0aW9uLiAgV2hlbiByZWFsaWdu aW5nIHN0YWNrLCB0aGlzIG5lZWRzIHRvIGJlIHRoZSBtb3N0IG5lZ2F0aXZlCisrICAgICB2YWx1 ZSBwb3NzaWJsZSBhdCBydW50aW1lLiAgKi8KKysgIHJlZF9vZmZzZXQgPSBvZmZzZXQ7CisrICBp ZiAodXNpbmdfZHJhcCkKKysgICAgcmVkX29mZnNldCAtPSBjcnRsLT5zdGFja19hbGlnbm1lbnRf bmVlZGVkIC8gQklUU19QRVJfVU5JVAorKwkJICArIFVOSVRTX1BFUl9XT1JEOworKyAgZWxzZSBp ZiAoc3RhY2tfcmVhbGlnbl9mcCkKKysgICAgcmVkX29mZnNldCAtPSBjcnRsLT5zdGFja19hbGln bm1lbnRfbmVlZGVkIC8gQklUU19QRVJfVU5JVAorKwkJICAtIFVOSVRTX1BFUl9XT1JEOworKyAg aWYgKGZyYW1lX3BvaW50ZXJfbmVlZGVkKQorKyAgICByZWRfb2Zmc2V0IC09IFVOSVRTX1BFUl9X T1JEOworKworICAgLyogSWYgd2UncmUgb25seSByZXN0b3Jpbmcgb25lIHJlZ2lzdGVyIGFuZCBz cCBpcyBub3QgdmFsaWQgdGhlbgorICAgICAgdXNpbmcgYSBtb3ZlIGluc3RydWN0aW9uIHRvIHJl c3RvcmUgdGhlIHJlZ2lzdGVyIHNpbmNlIGl0J3MKKyAgICAgIGxlc3Mgd29yayB0aGFuIHJlbG9h ZGluZyBzcCBhbmQgcG9wcGluZyB0aGUgcmVnaXN0ZXIuCitAQCAtODQ0Niw3ICs4NjI0LDggQEAg aXg4Nl9leHBhbmRfZXBpbG9ndWUgKGludCBzdHlsZSkKKyAgICAgICB8fCAoVEFSR0VUX0VQSUxP R1VFX1VTSU5HX01PVkUKKyAJICAmJiBjZnVuLT5tYWNoaW5lLT51c2VfZmFzdF9wcm9sb2d1ZV9l cGlsb2d1ZQorIAkgICYmICgoZnJhbWUubnJlZ3MgKyBmcmFtZS5uc3NlcmVncykgPiAxIHx8IGZy YW1lLnRvX2FsbG9jYXRlKSkKKy0gICAgICB8fCAoZnJhbWVfcG9pbnRlcl9uZWVkZWQgJiYgIShm cmFtZS5ucmVncyArIGZyYW1lLm5zc2VyZWdzKSAmJiBmcmFtZS50b19hbGxvY2F0ZSkKKysgICAg ICB8fCAoZnJhbWVfcG9pbnRlcl9uZWVkZWQgJiYgIShmcmFtZS5ucmVncyArIGZyYW1lLm5zc2Vy ZWdzKQorKwkgICYmIGZyYW1lLnRvX2FsbG9jYXRlKQorICAgICAgIHx8IChmcmFtZV9wb2ludGVy X25lZWRlZCAmJiBUQVJHRVRfVVNFX0xFQVZFCisgCSAgJiYgY2Z1bi0+bWFjaGluZS0+dXNlX2Zh c3RfcHJvbG9ndWVfZXBpbG9ndWUKKyAJICAmJiAoZnJhbWUubnJlZ3MgKyBmcmFtZS5uc3NlcmVn cykgPT0gMSkKK0BAIC04NDY2LDIyICs4NjQ1LDMyIEBAIGl4ODZfZXhwYW5kX2VwaWxvZ3VlIChp bnQgc3R5bGUpCisgCSAgfHwgc3RhY2tfcmVhbGlnbl9mcCkKKyAJeworIAkgIGl4ODZfZW1pdF9y ZXN0b3JlX3NzZV9yZWdzX3VzaW5nX21vdiAoc3RhY2tfcG9pbnRlcl9ydHgsCistCQkJCQkgICAg ICAgIGZyYW1lLnRvX2FsbG9jYXRlLCBzdHlsZSA9PSAyKTsKKysJCQkJCQlmcmFtZS50b19hbGxv Y2F0ZSwgcmVkX29mZnNldCwKKysJCQkJCQlzdHlsZSA9PSAyKTsKKyAJICBpeDg2X2VtaXRfcmVz dG9yZV9yZWdzX3VzaW5nX21vdiAoc3RhY2tfcG9pbnRlcl9ydHgsCisgCQkJCQkgICAgZnJhbWUu dG9fYWxsb2NhdGUKKyAJCQkJCSAgICArIGZyYW1lLm5zc2VyZWdzICogMTYKKysJCQkJCSAgICAr IGZyYW1lLnBhZGRpbmcwLAorKwkJCQkJICAgIHJlZF9vZmZzZXQKKysJCQkJCSAgICArIGZyYW1l Lm5zc2VyZWdzICogMTYKKyAJCQkJCSAgICArIGZyYW1lLnBhZGRpbmcwLCBzdHlsZSA9PSAyKTsK KyAJfQorICAgICAgIGVsc2UKKyAgICAgICAgIHsKKyAJICBpeDg2X2VtaXRfcmVzdG9yZV9zc2Vf cmVnc191c2luZ19tb3YgKGhhcmRfZnJhbWVfcG9pbnRlcl9ydHgsCistCQkJCQkgICAgICAgIG9m ZnNldCwgc3R5bGUgPT0gMik7CisrCQkJCQkJb2Zmc2V0LCByZWRfb2Zmc2V0LAorKwkJCQkJCXN0 eWxlID09IDIpOworIAkgIGl4ODZfZW1pdF9yZXN0b3JlX3JlZ3NfdXNpbmdfbW92IChoYXJkX2Zy YW1lX3BvaW50ZXJfcnR4LAorIAkJCQkJICAgIG9mZnNldAorIAkJCQkJICAgICsgZnJhbWUubnNz ZXJlZ3MgKiAxNgorKwkJCQkJICAgICsgZnJhbWUucGFkZGluZzAsCisrCQkJCQkgICAgcmVkX29m ZnNldAorKwkJCQkJICAgICsgZnJhbWUubnNzZXJlZ3MgKiAxNgorIAkJCQkJICAgICsgZnJhbWUu cGFkZGluZzAsIHN0eWxlID09IDIpOworICAgICAgICAgfQorIAorKyAgICAgIHJlZF9vZmZzZXQg LT0gb2Zmc2V0OworKworICAgICAgIC8qIGVoX3JldHVybiBlcGlsb2d1ZXMgbmVlZCAlZWN4IGFk ZGVkIHRvIHRoZSBzdGFjayBwb2ludGVyLiAgKi8KKyAgICAgICBpZiAoc3R5bGUgPT0gMikKKyAJ eworQEAgLTg0OTQsMTMgKzg2ODMsMjkgQEAgaXg4Nl9leHBhbmRfZXBpbG9ndWUgKGludCBzdHls ZSkKKyAJICAgIHsKKyAJICAgICAgdG1wID0gZ2VuX3J0eF9QTFVTIChQbW9kZSwgaGFyZF9mcmFt ZV9wb2ludGVyX3J0eCwgc2EpOworIAkgICAgICB0bXAgPSBwbHVzX2NvbnN0YW50ICh0bXAsIFVO SVRTX1BFUl9XT1JEKTsKKy0JICAgICAgZW1pdF9pbnNuIChnZW5fcnR4X1NFVCAoVk9JRG1vZGUs IHNhLCB0bXApKTsKKysJICAgICAgdG1wID0gZW1pdF9pbnNuIChnZW5fcnR4X1NFVCAoVk9JRG1v ZGUsIHNhLCB0bXApKTsKKyAKKyAJICAgICAgdG1wID0gZ2VuX3J0eF9NRU0gKFBtb2RlLCBoYXJk X2ZyYW1lX3BvaW50ZXJfcnR4KTsKKy0JICAgICAgZW1pdF9tb3ZlX2luc24gKGhhcmRfZnJhbWVf cG9pbnRlcl9ydHgsIHRtcCk7CisrCSAgICAgIHRtcCA9IGVtaXRfbW92ZV9pbnNuIChoYXJkX2Zy YW1lX3BvaW50ZXJfcnR4LCB0bXApOworKworKwkgICAgICAvKiBOb3RlIHRoYXQgd2UgdXNlIFNB IGFzIGEgdGVtcG9yYXJ5IENGQSwgYXMgdGhlIHJldHVybgorKwkJIGFkZHJlc3MgaXMgYXQgdGhl IHByb3BlciBwbGFjZSByZWxhdGl2ZSB0byBpdC4gIFdlCisrCQkgcHJldGVuZCB0aGlzIGhhcHBl bnMgYXQgdGhlIEZQIHJlc3RvcmUgaW5zbiBiZWNhdXNlCisrCQkgcHJpb3IgdG8gdGhpcyBpbnNu IHRoZSBGUCB3b3VsZCBiZSBzdG9yZWQgYXQgdGhlIHdyb25nCisrCQkgb2Zmc2V0IHJlbGF0aXZl IHRvIFNBLCBhbmQgYWZ0ZXIgdGhpcyBpbnNuIHdlIGhhdmUgbm8KKysJCSBvdGhlciByZWFzb25h YmxlIHJlZ2lzdGVyIHRvIHVzZSBmb3IgdGhlIENGQS4gIFdlIGRvbid0CisrCQkgYm90aGVyIHJl c2V0dGluZyB0aGUgQ0ZBIHRvIHRoZSBTUCBmb3IgdGhlIGR1cmF0aW9uIG9mCisrCQkgdGhlIHJl dHVybiBpbnNuLiAgKi8KKysJICAgICAgYWRkX3JlZ19ub3RlICh0bXAsIFJFR19DRkFfREVGX0NG QSwKKysJCQkgICAgcGx1c19jb25zdGFudCAoc2EsIFVOSVRTX1BFUl9XT1JEKSk7CisrCSAgICAg IGl4ODZfYWRkX3F1ZXVlZF9jZmFfcmVzdG9yZV9ub3RlcyAodG1wKTsKKysJICAgICAgYWRkX3Jl Z19ub3RlICh0bXAsIFJFR19DRkFfUkVTVE9SRSwgaGFyZF9mcmFtZV9wb2ludGVyX3J0eCk7Cisr CSAgICAgIFJUWF9GUkFNRV9SRUxBVEVEX1AgKHRtcCkgPSAxOworKwkgICAgICBpeDg2X2NmYV9z dGF0ZS0+cmVnID0gc2E7CisrCSAgICAgIGl4ODZfY2ZhX3N0YXRlLT5vZmZzZXQgPSBVTklUU19Q RVJfV09SRDsKKyAKKyAJICAgICAgcHJvX2VwaWxvZ3VlX2FkanVzdF9zdGFjayAoc3RhY2tfcG9p bnRlcl9ydHgsIHNhLAorLQkJCQkJIGNvbnN0MF9ydHgsIHN0eWxlKTsKKysJCQkJCSBjb25zdDBf cnR4LCBzdHlsZSwgZmFsc2UpOworIAkgICAgfQorIAkgIGVsc2UKKyAJICAgIHsKK0BAIC04NTA5 LDcgKzg3MTQsMTggQEAgaXg4Nl9leHBhbmRfZXBpbG9ndWUgKGludCBzdHlsZSkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgZnJhbWUubnJlZ3MgKiBVTklUU19Q RVJfV09SRAorIAkJCQkJICsgZnJhbWUubnNzZXJlZ3MgKiAxNgorIAkJCQkJICsgZnJhbWUucGFk ZGluZzApKTsKKy0JICAgICAgZW1pdF9pbnNuIChnZW5fcnR4X1NFVCAoVk9JRG1vZGUsIHN0YWNr X3BvaW50ZXJfcnR4LCB0bXApKTsKKysJICAgICAgdG1wID0gZW1pdF9pbnNuIChnZW5fcnR4X1NF VCAoVk9JRG1vZGUsIHN0YWNrX3BvaW50ZXJfcnR4LCB0bXApKTsKKysJICAgICAgaXg4Nl9hZGRf cXVldWVkX2NmYV9yZXN0b3JlX25vdGVzICh0bXApOworKworKwkgICAgICBnY2NfYXNzZXJ0IChp eDg2X2NmYV9zdGF0ZS0+cmVnID09IHN0YWNrX3BvaW50ZXJfcnR4KTsKKysJICAgICAgaWYgKGl4 ODZfY2ZhX3N0YXRlLT5vZmZzZXQgIT0gVU5JVFNfUEVSX1dPUkQpCisrCQl7CisrCQkgIGl4ODZf Y2ZhX3N0YXRlLT5vZmZzZXQgPSBVTklUU19QRVJfV09SRDsKKysJCSAgYWRkX3JlZ19ub3RlICh0 bXAsIFJFR19DRkFfREVGX0NGQSwKKysJCQkJcGx1c19jb25zdGFudCAoc3RhY2tfcG9pbnRlcl9y dHgsCisrCQkJCQkgICAgICAgVU5JVFNfUEVSX1dPUkQpKTsKKysJCSAgUlRYX0ZSQU1FX1JFTEFU RURfUCAodG1wKSA9IDE7CisrCQl9CisgCSAgICB9CisgCX0KKyAgICAgICBlbHNlIGlmICghZnJh bWVfcG9pbnRlcl9uZWVkZWQpCitAQCAtODUxOCwxOCArODczNCwxOCBAQCBpeDg2X2V4cGFuZF9l cGlsb2d1ZSAoaW50IHN0eWxlKQorIAkJCQkJICAgICsgZnJhbWUubnJlZ3MgKiBVTklUU19QRVJf V09SRAorIAkJCQkJICAgICsgZnJhbWUubnNzZXJlZ3MgKiAxNgorIAkJCQkJICAgICsgZnJhbWUu cGFkZGluZzApLAorLQkJCQkgICBzdHlsZSk7CisrCQkJCSAgIHN0eWxlLCAhdXNpbmdfZHJhcCk7 CisgICAgICAgLyogSWYgbm90IGFuIGkzODYsIG1vdiAmIHBvcCBpcyBmYXN0ZXIgdGhhbiAibGVh dmUiLiAgKi8KKyAgICAgICBlbHNlIGlmIChUQVJHRVRfVVNFX0xFQVZFIHx8IG9wdGltaXplX2Z1 bmN0aW9uX2Zvcl9zaXplX3AgKGNmdW4pCisgCSAgICAgICB8fCAhY2Z1bi0+bWFjaGluZS0+dXNl X2Zhc3RfcHJvbG9ndWVfZXBpbG9ndWUpCistCWVtaXRfaW5zbiAoKCppeDg2X2dlbl9sZWF2ZSkg KCkpOworKwlpeDg2X2VtaXRfbGVhdmUgKHJlZF9vZmZzZXQpOworICAgICAgIGVsc2UKKyAJewor IAkgIHByb19lcGlsb2d1ZV9hZGp1c3Rfc3RhY2sgKHN0YWNrX3BvaW50ZXJfcnR4LAorIAkJCQkg ICAgIGhhcmRfZnJhbWVfcG9pbnRlcl9ydHgsCistCQkJCSAgICAgY29uc3QwX3J0eCwgc3R5bGUp OworKwkJCQkgICAgIGNvbnN0MF9ydHgsIHN0eWxlLCAhdXNpbmdfZHJhcCk7CisgCistCSAgZW1p dF9pbnNuICgoKml4ODZfZ2VuX3BvcDEpIChoYXJkX2ZyYW1lX3BvaW50ZXJfcnR4KSk7CisrCSAg aXg4Nl9lbWl0X3Jlc3RvcmVfcmVnX3VzaW5nX3BvcCAoaGFyZF9mcmFtZV9wb2ludGVyX3J0eCwg cmVkX29mZnNldCk7CisgCX0KKyAgICAgfQorICAgZWxzZQorQEAgLTg1NDcsMzIgKzg3NjMsMzYg QEAgaXg4Nl9leHBhbmRfZXBpbG9ndWUgKGludCBzdHlsZSkKKyAgICAgICAgICAgZ2NjX2Fzc2Vy dCAoIXN0YWNrX3JlYWxpZ25fZnApOworIAkgIHByb19lcGlsb2d1ZV9hZGp1c3Rfc3RhY2sgKHN0 YWNrX3BvaW50ZXJfcnR4LAorIAkJCQkgICAgIGhhcmRfZnJhbWVfcG9pbnRlcl9ydHgsCistCQkJ CSAgICAgR0VOX0lOVCAob2Zmc2V0KSwgc3R5bGUpOworKwkJCQkgICAgIEdFTl9JTlQgKG9mZnNl dCksIHN0eWxlLCBmYWxzZSk7CisgICAgICAgICAgIGl4ODZfZW1pdF9yZXN0b3JlX3NzZV9yZWdz X3VzaW5nX21vdiAoc3RhY2tfcG9pbnRlcl9ydHgsCistCQkJCQkgICAgICAgIGZyYW1lLnRvX2Fs bG9jYXRlLCBzdHlsZSA9PSAyKTsKKysJCQkJCQlmcmFtZS50b19hbGxvY2F0ZSwgcmVkX29mZnNl dCwKKysJCQkJCQlzdHlsZSA9PSAyKTsKKyAJICBwcm9fZXBpbG9ndWVfYWRqdXN0X3N0YWNrIChz dGFja19wb2ludGVyX3J0eCwgc3RhY2tfcG9pbnRlcl9ydHgsCistCQkJCSAgICAgR0VOX0lOVCAo ZnJhbWUubnNzZXJlZ3MgKiAxNiksIHN0eWxlKTsKKysJCQkJICAgICBHRU5fSU5UIChmcmFtZS5u c3NlcmVncyAqIDE2KSwKKysJCQkJICAgICBzdHlsZSwgZmFsc2UpOworIAl9CisgICAgICAgZWxz ZSBpZiAoZnJhbWUudG9fYWxsb2NhdGUgfHwgZnJhbWUubnNzZXJlZ3MpCisgCXsKKyAgICAgICAg ICAgaXg4Nl9lbWl0X3Jlc3RvcmVfc3NlX3JlZ3NfdXNpbmdfbW92IChzdGFja19wb2ludGVyX3J0 eCwKKy0JCQkJCSAgICAgICAgZnJhbWUudG9fYWxsb2NhdGUsCisrCQkJCQkJZnJhbWUudG9fYWxs b2NhdGUsIHJlZF9vZmZzZXQsCisgCQkJCQkJc3R5bGUgPT0gMik7CisgCSAgcHJvX2VwaWxvZ3Vl X2FkanVzdF9zdGFjayAoc3RhY2tfcG9pbnRlcl9ydHgsIHN0YWNrX3BvaW50ZXJfcnR4LAorIAkJ CQkgICAgIEdFTl9JTlQgKGZyYW1lLnRvX2FsbG9jYXRlCisgCQkJCSAgICAgCSAgICAgICsgZnJh bWUubnNzZXJlZ3MgKiAxNgorLQkJCQkJICAgICAgKyBmcmFtZS5wYWRkaW5nMCksIHN0eWxlKTsK KysJCQkJCSAgICAgICsgZnJhbWUucGFkZGluZzApLCBzdHlsZSwKKysJCQkJICAgICAhdXNpbmdf ZHJhcCAmJiAhZnJhbWVfcG9pbnRlcl9uZWVkZWQpOworIAl9CisgCistICAgICAgZm9yIChyZWdu byA9IDA7IHJlZ25vIDwgRklSU1RfUFNFVURPX1JFR0lTVEVSOyByZWdubysrKQorLQlpZiAoIVNT RV9SRUdOT19QIChyZWdubykgJiYgaXg4Nl9zYXZlX3JlZyAocmVnbm8sIGZhbHNlKSkKKy0JICBl bWl0X2luc24gKCgqaXg4Nl9nZW5fcG9wMSkgKGdlbl9ydHhfUkVHIChQbW9kZSwgcmVnbm8pKSk7 CisrICAgICAgaXg4Nl9lbWl0X3Jlc3RvcmVfcmVnc191c2luZ19wb3AgKHJlZF9vZmZzZXQgKyBm cmFtZS5uc3NlcmVncyAqIDE2CisrCQkJCQkrIGZyYW1lLnBhZGRpbmcwKTsKKysgICAgICByZWRf b2Zmc2V0IC09IG9mZnNldDsKKysKKyAgICAgICBpZiAoZnJhbWVfcG9pbnRlcl9uZWVkZWQpCisg CXsKKyAJICAvKiBMZWF2ZSByZXN1bHRzIGluIHNob3J0ZXIgZGVwZW5kZW5jeSBjaGFpbnMgb24g Q1BVcyB0aGF0IGFyZQorIAkgICAgIGFibGUgdG8gZ3JvayBpdCBmYXN0LiAgKi8KKyAJICBpZiAo VEFSR0VUX1VTRV9MRUFWRSkKKy0JICAgIGVtaXRfaW5zbiAoKCppeDg2X2dlbl9sZWF2ZSkgKCkp OworKwkgICAgaXg4Nl9lbWl0X2xlYXZlIChyZWRfb2Zmc2V0KTsKKyAJICBlbHNlCisgICAgICAg ICAgICAgeworICAgICAgICAgICAgICAgLyogRm9yIHN0YWNrIHJlYWxpZ25lZCByZWFsbHkgaGFw cGVucywgcmVjb3ZlciBzdGFjayAKK0BAIC04NTgxLDQ3ICs4ODAxLDcxIEBAIGl4ODZfZXhwYW5k X2VwaWxvZ3VlIChpbnQgc3R5bGUpCisgICAgICAgICAgICAgICBpZiAoc3RhY2tfcmVhbGlnbl9m cCkKKyAJCXByb19lcGlsb2d1ZV9hZGp1c3Rfc3RhY2sgKHN0YWNrX3BvaW50ZXJfcnR4LAorIAkJ CQkJICAgaGFyZF9mcmFtZV9wb2ludGVyX3J0eCwKKy0JCQkJCSAgIGNvbnN0MF9ydHgsIHN0eWxl KTsKKy0JICAgICAgZW1pdF9pbnNuICgoKml4ODZfZ2VuX3BvcDEpIChoYXJkX2ZyYW1lX3BvaW50 ZXJfcnR4KSk7CisrCQkJCQkgICBjb25zdDBfcnR4LCBzdHlsZSwgIXVzaW5nX2RyYXApOworKwkg ICAgICBpeDg2X2VtaXRfcmVzdG9yZV9yZWdfdXNpbmdfcG9wIChoYXJkX2ZyYW1lX3BvaW50ZXJf cnR4LAorKwkJCQkJICAgICAgIHJlZF9vZmZzZXQpOworICAgICAgICAgICAgIH0KKyAJfQorICAg ICB9CisgCistICBpZiAoY3J0bC0+ZHJhcF9yZWcgJiYgY3J0bC0+c3RhY2tfcmVhbGlnbl9uZWVk ZWQpCisrICBpZiAodXNpbmdfZHJhcCkKKyAgICAgeworICAgICAgIGludCBwYXJhbV9wdHJfb2Zm c2V0ID0gKGNhbGxfdXNlZF9yZWdzW1JFR05PIChjcnRsLT5kcmFwX3JlZyldCisgCQkJICAgICAg PyAwIDogVU5JVFNfUEVSX1dPUkQpOworKyAgICAgIHJ0eCBpbnNuOworKworICAgICAgIGdjY19h c3NlcnQgKHN0YWNrX3JlYWxpZ25fZHJhcCk7CistICAgICAgZW1pdF9pbnNuICgoKml4ODZfZ2Vu X2FkZDMpIChzdGFja19wb2ludGVyX3J0eCwKKy0JCQkJICAgY3J0bC0+ZHJhcF9yZWcsCistCQkJ CSAgIEdFTl9JTlQgKC0oVU5JVFNfUEVSX1dPUkQKKy0JCQkJCSAgICAgICsgcGFyYW1fcHRyX29m ZnNldCkpKSk7CistICAgICAgaWYgKCFjYWxsX3VzZWRfcmVnc1tSRUdOTyAoY3J0bC0+ZHJhcF9y ZWcpXSkKKy0JZW1pdF9pbnNuICgoKml4ODZfZ2VuX3BvcDEpIChjcnRsLT5kcmFwX3JlZykpOwor LSAgICAgIAorKworKyAgICAgIGluc24gPSBlbWl0X2luc24gKCgqaXg4Nl9nZW5fYWRkMykgKHN0 YWNrX3BvaW50ZXJfcnR4LAorKwkJCQkJICBjcnRsLT5kcmFwX3JlZywKKysJCQkJCSAgR0VOX0lO VCAoLShVTklUU19QRVJfV09SRAorKwkJCQkJCSAgICAgKyBwYXJhbV9wdHJfb2Zmc2V0KSkpKTsK KysKKysgICAgICBpeDg2X2NmYV9zdGF0ZS0+cmVnID0gc3RhY2tfcG9pbnRlcl9ydHg7CisrICAg ICAgaXg4Nl9jZmFfc3RhdGUtPm9mZnNldCA9IFVOSVRTX1BFUl9XT1JEICsgcGFyYW1fcHRyX29m ZnNldDsKKysKKysgICAgICBhZGRfcmVnX25vdGUgKGluc24sIFJFR19DRkFfREVGX0NGQSwKKysJ CSAgICBnZW5fcnR4X1BMVVMgKFBtb2RlLCBpeDg2X2NmYV9zdGF0ZS0+cmVnLAorKwkJCQkgIEdF Tl9JTlQgKGl4ODZfY2ZhX3N0YXRlLT5vZmZzZXQpKSk7CisrICAgICAgUlRYX0ZSQU1FX1JFTEFU RURfUCAoaW5zbikgPSAxOworKworKyAgICAgIGlmIChwYXJhbV9wdHJfb2Zmc2V0KQorKwlpeDg2 X2VtaXRfcmVzdG9yZV9yZWdfdXNpbmdfcG9wIChjcnRsLT5kcmFwX3JlZywgLVVOSVRTX1BFUl9X T1JEKTsKKyAgICAgfQorIAorICAgLyogU2liY2FsbCBlcGlsb2d1ZXMgZG9uJ3Qgd2FudCBhIHJl dHVybiBpbnN0cnVjdGlvbi4gICovCisgICBpZiAoc3R5bGUgPT0gMCkKKy0gICAgcmV0dXJuOwor KyAgICB7CisrICAgICAgKml4ODZfY2ZhX3N0YXRlID0gY2ZhX3N0YXRlX3NhdmU7CisrICAgICAg cmV0dXJuOworKyAgICB9CisgCisgICBpZiAoY3J0bC0+YXJncy5wb3BzX2FyZ3MgJiYgY3J0bC0+ YXJncy5zaXplKQorICAgICB7CisgICAgICAgcnR4IHBvcGMgPSBHRU5fSU5UIChjcnRsLT5hcmdz LnBvcHNfYXJncyk7CisgCistICAgICAgLyogaTM4NiBjYW4gb25seSBwb3AgNjRLIGJ5dGVzLiAg SWYgYXNrZWQgdG8gcG9wIG1vcmUsIHBvcAorLQkgcmV0dXJuIGFkZHJlc3MsIGRvIGV4cGxpY2l0 IGFkZCwgYW5kIGp1bXAgaW5kaXJlY3RseSB0byB0aGUKKy0JIGNhbGxlci4gICovCisrICAgICAg LyogaTM4NiBjYW4gb25seSBwb3AgNjRLIGJ5dGVzLiAgSWYgYXNrZWQgdG8gcG9wIG1vcmUsIHBv cCByZXR1cm4KKysJIGFkZHJlc3MsIGRvIGV4cGxpY2l0IGFkZCwgYW5kIGp1bXAgaW5kaXJlY3Rs eSB0byB0aGUgY2FsbGVyLiAgKi8KKyAKKyAgICAgICBpZiAoY3J0bC0+YXJncy5wb3BzX2FyZ3Mg Pj0gNjU1MzYpCisgCXsKKyAJICBydHggZWN4ID0gZ2VuX3J0eF9SRUcgKFNJbW9kZSwgQ1hfUkVH KTsKKysJICBydHggaW5zbjsKKyAKKyAJICAvKiBUaGVyZSBpcyBubyAicGFzY2FsIiBjYWxsaW5n IGNvbnZlbnRpb24gaW4gYW55IDY0Yml0IEFCSS4gICovCisgCSAgZ2NjX2Fzc2VydCAoIVRBUkdF VF82NEJJVCk7CisgCistCSAgZW1pdF9pbnNuIChnZW5fcG9wc2kxIChlY3gpKTsKKy0JICBlbWl0 X2luc24gKGdlbl9hZGRzaTMgKHN0YWNrX3BvaW50ZXJfcnR4LCBzdGFja19wb2ludGVyX3J0eCwg cG9wYykpOworKwkgIGluc24gPSBlbWl0X2luc24gKGdlbl9wb3BzaTEgKGVjeCkpOworKwkgIGl4 ODZfY2ZhX3N0YXRlLT5vZmZzZXQgLT0gVU5JVFNfUEVSX1dPUkQ7CisrCisrCSAgYWRkX3JlZ19u b3RlIChpbnNuLCBSRUdfQ0ZBX0FESlVTVF9DRkEsCisrCQkJY29weV9ydHggKFhWRUNFWFAgKFBB VFRFUk4gKGluc24pLCAwLCAxKSkpOworKwkgIGFkZF9yZWdfbm90ZSAoaW5zbiwgUkVHX0NGQV9S RUdJU1RFUiwKKysJCQlnZW5fcnR4X1NFVCAoVk9JRG1vZGUsIGVjeCwgcGNfcnR4KSk7CisrCSAg UlRYX0ZSQU1FX1JFTEFURURfUCAoaW5zbikgPSAxOworKworKwkgIHByb19lcGlsb2d1ZV9hZGp1 c3Rfc3RhY2sgKHN0YWNrX3BvaW50ZXJfcnR4LCBzdGFja19wb2ludGVyX3J0eCwKKysJCQkJICAg ICBwb3BjLCAtMSwgdHJ1ZSk7CisgCSAgZW1pdF9qdW1wX2luc24gKGdlbl9yZXR1cm5faW5kaXJl Y3RfaW50ZXJuYWwgKGVjeCkpOworIAl9CisgICAgICAgZWxzZQorQEAgLTg2MjksNiArODg3Mywx MCBAQCBpeDg2X2V4cGFuZF9lcGlsb2d1ZSAoaW50IHN0eWxlKQorICAgICB9CisgICBlbHNlCisg ICAgIGVtaXRfanVtcF9pbnNuIChnZW5fcmV0dXJuX2ludGVybmFsICgpKTsKKysKKysgIC8qIFJl c3RvcmUgdGhlIHN0YXRlIGJhY2sgdG8gdGhlIHN0YXRlIGZyb20gdGhlIHByb2xvZ3VlLAorKyAg ICAgc28gdGhhdCBpdCdzIGNvcnJlY3QgZm9yIHRoZSBuZXh0IGVwaWxvZ3VlLiAgKi8KKysgICpp eDg2X2NmYV9zdGF0ZSA9IGNmYV9zdGF0ZV9zYXZlOworIH0KKyAKKyAvKiBSZXNldCBmcm9tIHRo ZSBmdW5jdGlvbidzIHBvdGVudGlhbCBtb2RpZmljYXRpb25zLiAgKi8KK0BAIC0yOTc2MCw4ICsz MDAwOCw2IEBAIGl4ODZfZW51bV92YV9saXN0IChpbnQgaWR4LCBjb25zdCBjaGFyICoKKyAjZGVm aW5lIFRBUkdFVF9VUERBVEVfU1RBQ0tfQk9VTkRBUlkgaXg4Nl91cGRhdGVfc3RhY2tfYm91bmRh cnkKKyAjdW5kZWYgVEFSR0VUX0dFVF9EUkFQX1JUWAorICNkZWZpbmUgVEFSR0VUX0dFVF9EUkFQ X1JUWCBpeDg2X2dldF9kcmFwX3J0eAorLSN1bmRlZiBUQVJHRVRfRFdBUkZfSEFORExFX0ZSQU1F X1VOU1BFQworLSNkZWZpbmUgVEFSR0VUX0RXQVJGX0hBTkRMRV9GUkFNRV9VTlNQRUMgaXg4Nl9k d2FyZl9oYW5kbGVfZnJhbWVfdW5zcGVjCisgI3VuZGVmIFRBUkdFVF9TVFJJQ1RfQVJHVU1FTlRf TkFNSU5HCisgI2RlZmluZSBUQVJHRVRfU1RSSUNUX0FSR1VNRU5UX05BTUlORyBob29rX2Jvb2xf Q1VNVUxBVElWRV9BUkdTX3RydWUKKyAKKy0tLSBnY2MvY29uZmlnL3JzNjAwMC9jcnRyZXN4Z3By LmFzbS5qagkyMDA5LTA0LTE0IDE1OjUyOjI0LjAwMDAwMDAwMCArMDIwMAorKysrIGdjYy9jb25m aWcvcnM2MDAwL2NydHJlc3hncHIuYXNtCTIwMDktMDYtMDkgMDk6MTA6MjQuMDAwMDAwMDAwICsw MjAwCitAQCAtMzgsMjcgKzM4LDY4IEBACisgLyogQ2FsbGVkIHdpdGggcjExIHBvaW50aW5nIHRv IHRoZSBzdGFjayBoZWFkZXIgd29yZCBvZiB0aGUgY2FsbGVyIG9mIHRoZSAqLworIC8qIGZ1bmN0 aW9uLCBqdXN0IGJleW9uZCB0aGUgZW5kIG9mIHRoZSBpbnRlZ2VyIHJlc3RvcmUgYXJlYS4gICov CisgCisrQ0ZJX1NUQVJUUFJPQworK0NGSV9ERUZfQ0ZBX1JFR0lTVEVSICgxMSkKKytDRklfT0ZG U0VUICg2NSwgNCkKKytDRklfT0ZGU0VUICgxNCwgLTcyKQorK0NGSV9PRkZTRVQgKDE1LCAtNjgp CisrQ0ZJX09GRlNFVCAoMTYsIC02NCkKKytDRklfT0ZGU0VUICgxNywgLTYwKQorK0NGSV9PRkZT RVQgKDE4LCAtNTYpCisrQ0ZJX09GRlNFVCAoMTksIC01MikKKytDRklfT0ZGU0VUICgyMCwgLTQ4 KQorK0NGSV9PRkZTRVQgKDIxLCAtNDQpCisrQ0ZJX09GRlNFVCAoMjIsIC00MCkKKytDRklfT0ZG U0VUICgyMywgLTM2KQorK0NGSV9PRkZTRVQgKDI0LCAtMzIpCisrQ0ZJX09GRlNFVCAoMjUsIC0y OCkKKytDRklfT0ZGU0VUICgyNiwgLTI0KQorK0NGSV9PRkZTRVQgKDI3LCAtMjApCisrQ0ZJX09G RlNFVCAoMjgsIC0xNikKKytDRklfT0ZGU0VUICgyOSwgLTEyKQorK0NGSV9PRkZTRVQgKDMwLCAt OCkKKytDRklfT0ZGU0VUICgzMSwgLTQpCisgSElEREVOX0ZVTkMoX3Jlc3RncHJfMTRfeCkJbHd6 CTE0LC03MigxMSkJLyogcmVzdG9yZSBncCByZWdpc3RlcnMgKi8KKytDRklfUkVTVE9SRSAoMTQp CisgSElEREVOX0ZVTkMoX3Jlc3RncHJfMTVfeCkJbHd6CTE1LC02OCgxMSkKKytDRklfUkVTVE9S RSAoMTUpCisgSElEREVOX0ZVTkMoX3Jlc3RncHJfMTZfeCkJbHd6CTE2LC02NCgxMSkKKytDRklf UkVTVE9SRSAoMTYpCisgSElEREVOX0ZVTkMoX3Jlc3RncHJfMTdfeCkJbHd6CTE3LC02MCgxMSkK KytDRklfUkVTVE9SRSAoMTcpCisgSElEREVOX0ZVTkMoX3Jlc3RncHJfMThfeCkJbHd6CTE4LC01 NigxMSkKKytDRklfUkVTVE9SRSAoMTgpCisgSElEREVOX0ZVTkMoX3Jlc3RncHJfMTlfeCkJbHd6 CTE5LC01MigxMSkKKytDRklfUkVTVE9SRSAoMTkpCisgSElEREVOX0ZVTkMoX3Jlc3RncHJfMjBf eCkJbHd6CTIwLC00OCgxMSkKKytDRklfUkVTVE9SRSAoMjApCisgSElEREVOX0ZVTkMoX3Jlc3Rn cHJfMjFfeCkJbHd6CTIxLC00NCgxMSkKKytDRklfUkVTVE9SRSAoMjEpCisgSElEREVOX0ZVTkMo X3Jlc3RncHJfMjJfeCkJbHd6CTIyLC00MCgxMSkKKytDRklfUkVTVE9SRSAoMjIpCisgSElEREVO X0ZVTkMoX3Jlc3RncHJfMjNfeCkJbHd6CTIzLC0zNigxMSkKKytDRklfUkVTVE9SRSAoMjMpCisg SElEREVOX0ZVTkMoX3Jlc3RncHJfMjRfeCkJbHd6CTI0LC0zMigxMSkKKytDRklfUkVTVE9SRSAo MjQpCisgSElEREVOX0ZVTkMoX3Jlc3RncHJfMjVfeCkJbHd6CTI1LC0yOCgxMSkKKytDRklfUkVT VE9SRSAoMjUpCisgSElEREVOX0ZVTkMoX3Jlc3RncHJfMjZfeCkJbHd6CTI2LC0yNCgxMSkKKytD RklfUkVTVE9SRSAoMjYpCisgSElEREVOX0ZVTkMoX3Jlc3RncHJfMjdfeCkJbHd6CTI3LC0yMCgx MSkKKytDRklfUkVTVE9SRSAoMjcpCisgSElEREVOX0ZVTkMoX3Jlc3RncHJfMjhfeCkJbHd6CTI4 LC0xNigxMSkKKytDRklfUkVTVE9SRSAoMjgpCisgSElEREVOX0ZVTkMoX3Jlc3RncHJfMjlfeCkJ bHd6CTI5LC0xMigxMSkKKytDRklfUkVTVE9SRSAoMjkpCisgSElEREVOX0ZVTkMoX3Jlc3RncHJf MzBfeCkJbHd6CTMwLC04KDExKQorK0NGSV9SRVNUT1JFICgzMCkKKyBISURERU5fRlVOQyhfcmVz dGdwcl8zMV94KQlsd3oJMCw0KDExKQorIAkJCQlsd3oJMzEsLTQoMTEpCisrQ0ZJX1JFU1RPUkUg KDMxKQorIAkJCQltdGxyCTAKKytDRklfUkVTVE9SRSAoNjUpCisgCQkJCW1yCTEsMTEKKytDRklf REVGX0NGQV9SRUdJU1RFUiAoMSkKKyAJCQkJYmxyCisgRlVOQ19FTkQoX3Jlc3RncHJfMzFfeCkK KyBGVU5DX0VORChfcmVzdGdwcl8zMF94KQorQEAgLTc4LDUgKzExOSw2IEBAIEZVTkNfRU5EKF9y ZXN0Z3ByXzE3X3gpCisgRlVOQ19FTkQoX3Jlc3RncHJfMTZfeCkKKyBGVU5DX0VORChfcmVzdGdw cl8xNV94KQorIEZVTkNfRU5EKF9yZXN0Z3ByXzE0X3gpCisrQ0ZJX0VORFBST0MKKyAKKyAjZW5k aWYKKy0tLSBnY2MvY29uZmlnL3JzNjAwMC9jcnRyZXNmcHIuYXNtLmpqCTIwMDktMDQtMTQgMTU6 NTI6MzAuMDAwMDAwMDAwICswMjAwCisrKysgZ2NjL2NvbmZpZy9yczYwMDAvY3J0cmVzZnByLmFz bQkyMDA5LTA2LTA5IDA5OjEwOjI0LjAwMDAwMDAwMCArMDIwMAorQEAgLTM4LDYgKzM4LDcgQEAK KyAvKiBDYWxsZWQgd2l0aCByMTEgcG9pbnRpbmcgdG8gdGhlIHN0YWNrIGhlYWRlciB3b3JkIG9m IHRoZSBjYWxsZXIgb2YgdGhlICovCisgLyogZnVuY3Rpb24sIGp1c3QgYmV5b25kIHRoZSBlbmQg b2YgdGhlIGZsb2F0aW5nIHBvaW50IHNhdmUgYXJlYS4gICovCisgCisrQ0ZJX1NUQVJUUFJPQwor IEhJRERFTl9GVU5DKF9yZXN0ZnByXzE0KQlsZmQJMTQsLTE0NCgxMSkJLyogcmVzdG9yZSBmcCBy ZWdpc3RlcnMgKi8KKyBISURERU5fRlVOQyhfcmVzdGZwcl8xNSkJbGZkCTE1LC0xMzYoMTEpCisg SElEREVOX0ZVTkMoX3Jlc3RmcHJfMTYpCWxmZAkxNiwtMTI4KDExKQorQEAgLTc1LDUgKzc2LDYg QEAgRlVOQ19FTkQoX3Jlc3RmcHJfMTcpCisgRlVOQ19FTkQoX3Jlc3RmcHJfMTYpCisgRlVOQ19F TkQoX3Jlc3RmcHJfMTUpCisgRlVOQ19FTkQoX3Jlc3RmcHJfMTQpCisrQ0ZJX0VORFBST0MKKyAK KyAjZW5kaWYKKy0tLSBnY2MvY29uZmlnL3JzNjAwMC9jcnRzYXZmcHIuYXNtLmpqCTIwMDktMDQt MTQgMTU6NTI6MjQuMDAwMDAwMDAwICswMjAwCisrKysgZ2NjL2NvbmZpZy9yczYwMDAvY3J0c2F2 ZnByLmFzbQkyMDA5LTA2LTA5IDA5OjEwOjI0LjAwMDAwMDAwMCArMDIwMAorQEAgLTM4LDYgKzM4 LDcgQEAKKyAvKiBDYWxsZWQgd2l0aCByMTEgcG9pbnRpbmcgdG8gdGhlIHN0YWNrIGhlYWRlciB3 b3JkIG9mIHRoZSBjYWxsZXIgb2YgdGhlICovCisgLyogZnVuY3Rpb24sIGp1c3QgYmV5b25kIHRo ZSBlbmQgb2YgdGhlIGZsb2F0aW5nIHBvaW50IHNhdmUgYXJlYS4gICovCisgCisrQ0ZJX1NUQVJU UFJPQworIEhJRERFTl9GVU5DKF9zYXZlZnByXzE0KQlzdGZkCTE0LC0xNDQoMTEpCS8qIHNhdmUg ZnAgcmVnaXN0ZXJzICovCisgSElEREVOX0ZVTkMoX3NhdmVmcHJfMTUpCXN0ZmQJMTUsLTEzNigx MSkKKyBISURERU5fRlVOQyhfc2F2ZWZwcl8xNikJc3RmZAkxNiwtMTI4KDExKQorQEAgLTc1LDUg Kzc2LDYgQEAgRlVOQ19FTkQoX3NhdmVmcHJfMTcpCisgRlVOQ19FTkQoX3NhdmVmcHJfMTYpCisg RlVOQ19FTkQoX3NhdmVmcHJfMTUpCisgRlVOQ19FTkQoX3NhdmVmcHJfMTQpCisrQ0ZJX0VORFBS T0MKKyAKKyAjZW5kaWYKKy0tLSBnY2MvY29uZmlnL3JzNjAwMC9wcGMtYXNtLmguamoJMjAwOS0w MS0xNCAxMjozMzowMy4wMDAwMDAwMDAgKzAxMDAKKysrKyBnY2MvY29uZmlnL3JzNjAwMC9wcGMt YXNtLmgJMjAwOS0wNi0wOSAwOToyMDowNC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0xNzIsNiArMTcy LDI1IEBAIEdMVUUoLkwsbmFtZSk6IFwKKyAJLnNpemUgRlVOQ19OQU1FKG5hbWUpLEdMVUUoLkws bmFtZSktRlVOQ19OQU1FKG5hbWUpCisgI2VuZGlmCisgCisrI2lmZGVmIElOX0dDQworKy8qIEZv ciBIQVZFX0dBU19DRklfRElSRUNUSVZFLiAgKi8KKysjaW5jbHVkZSAiYXV0by1ob3N0LmgiCisr CisrI2lmZGVmIEhBVkVfR0FTX0NGSV9ESVJFQ1RJVkUKKysjIGRlZmluZSBDRklfU1RBUlRQUk9D CQkJLmNmaV9zdGFydHByb2MKKysjIGRlZmluZSBDRklfRU5EUFJPQwkJCS5jZmlfZW5kcHJvYwor KyMgZGVmaW5lIENGSV9PRkZTRVQocmVnLCBvZmYpCQkuY2ZpX29mZnNldCByZWcsIG9mZgorKyMg ZGVmaW5lIENGSV9ERUZfQ0ZBX1JFR0lTVEVSKHJlZykJLmNmaV9kZWZfY2ZhX3JlZ2lzdGVyIHJl ZworKyMgZGVmaW5lIENGSV9SRVNUT1JFKHJlZykJCS5jZmlfcmVzdG9yZSByZWcKKysjZWxzZQor KyMgZGVmaW5lIENGSV9TVEFSVFBST0MKKysjIGRlZmluZSBDRklfRU5EUFJPQworKyMgZGVmaW5l IENGSV9PRkZTRVQocmVnLCBvZmYpCisrIyBkZWZpbmUgQ0ZJX0RFRl9DRkFfUkVHSVNURVIocmVn KQorKyMgZGVmaW5lIENGSV9SRVNUT1JFKHJlZykKKysjZW5kaWYKKysjZW5kaWYKKysKKyAjaWYg ZGVmaW5lZCBfX2xpbnV4X18KKyAJLnNlY3Rpb24gLm5vdGUuR05VLXN0YWNrCisgCS5wcmV2aW91 cworLS0tIGdjYy9jb25maWcvcnM2MDAwL2NydHNhdmdwci5hc20uamoJMjAwOS0wNC0xNCAxNTo1 MjoyMi4wMDAwMDAwMDAgKzAyMDAKKysrKyBnY2MvY29uZmlnL3JzNjAwMC9jcnRzYXZncHIuYXNt CTIwMDktMDYtMDkgMDk6MTA6MjQuMDAwMDAwMDAwICswMjAwCitAQCAtMzgsNiArMzgsNyBAQAor IC8qIENhbGxlZCB3aXRoIHIxMSBwb2ludGluZyB0byB0aGUgc3RhY2sgaGVhZGVyIHdvcmQgb2Yg dGhlIGNhbGxlciBvZiB0aGUgKi8KKyAvKiBmdW5jdGlvbiwganVzdCBiZXlvbmQgdGhlIGVuZCBv ZiB0aGUgaW50ZWdlciBzYXZlIGFyZWEuICAqLworIAorK0NGSV9TVEFSVFBST0MKKyBISURERU5f RlVOQyhfc2F2ZWdwcl8xNCkJc3R3CTE0LC03MigxMSkJLyogc2F2ZSBncCByZWdpc3RlcnMgKi8K KyBISURERU5fRlVOQyhfc2F2ZWdwcl8xNSkJc3R3CTE1LC02OCgxMSkKKyBISURERU5fRlVOQyhf c2F2ZWdwcl8xNikJc3R3CTE2LC02NCgxMSkKK0BAIC03NSw1ICs3Niw2IEBAIEZVTkNfRU5EKF9z YXZlZ3ByXzE3KQorIEZVTkNfRU5EKF9zYXZlZ3ByXzE2KQorIEZVTkNfRU5EKF9zYXZlZ3ByXzE1 KQorIEZVTkNfRU5EKF9zYXZlZ3ByXzE0KQorK0NGSV9FTkRQUk9DCisgCisgI2VuZGlmCistLS0g Z2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLmMuamoJMjAwOS0wMy0xOSAxNzoxNzoyMy4wMDAwMDAw MDAgKzAxMDAKKysrKyBnY2MvY29uZmlnL3JzNjAwMC9yczYwMDAuYwkyMDA5LTA2LTA5IDA5OjEw OjI0LjAwMDAwMDAwMCArMDIwMAorQEAgLTc4Miw3ICs3ODIsNyBAQCBzdGF0aWMgY29uc3QgY2hh ciAqcnM2MDAwX21hbmdsZV90eXBlIChjCisgZXh0ZXJuIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVf c3BlYyByczYwMDBfYXR0cmlidXRlX3RhYmxlW107Cisgc3RhdGljIHZvaWQgcnM2MDAwX3NldF9k ZWZhdWx0X3R5cGVfYXR0cmlidXRlcyAodHJlZSk7Cisgc3RhdGljIHJ0eCByczYwMDBfc2F2cmVz X3JvdXRpbmVfc3ltIChyczYwMDBfc3RhY2tfdCAqLCBib29sLCBib29sLCBib29sKTsKKy1zdGF0 aWMgdm9pZCByczYwMDBfZW1pdF9zdGFja19yZXNldCAocnM2MDAwX3N0YWNrX3QgKiwgcnR4LCBy dHgsIGludCwgYm9vbCk7Cisrc3RhdGljIHJ0eCByczYwMDBfZW1pdF9zdGFja19yZXNldCAocnM2 MDAwX3N0YWNrX3QgKiwgcnR4LCBydHgsIGludCwgYm9vbCk7Cisgc3RhdGljIHJ0eCByczYwMDBf bWFrZV9zYXZyZXNfcnR4IChyczYwMDBfc3RhY2tfdCAqLCBydHgsIGludCwKKyAJCQkJICAgZW51 bSBtYWNoaW5lX21vZGUsIGJvb2wsIGJvb2wsIGJvb2wpOworIHN0YXRpYyBib29sIHJzNjAwMF9y ZWdfbGl2ZV9vcl9waWNfb2Zmc2V0X3AgKGludCk7CitAQCAtMTU5MTgsNyArMTU5MTgsNyBAQCBy czYwMDBfc2F2cmVzX3JvdXRpbmVfc3ltIChyczYwMDBfc3RhY2tfCisgICAgc3RhY2sgcG9pbnRl ciwgYnV0IG1vdmUgdGhlIGJhc2Ugb2YgdGhlIGZyYW1lIGludG8gcjExIGZvciB1c2UgYnkKKyAg ICBvdXQtb2YtbGluZSByZWdpc3RlciByZXN0b3JlIHJvdXRpbmVzLiAgKi8KKyAKKy1zdGF0aWMg dm9pZAorK3N0YXRpYyBydHgKKyByczYwMDBfZW1pdF9zdGFja19yZXNldCAocnM2MDAwX3N0YWNr X3QgKmluZm8sCisgCQkJIHJ0eCBzcF9yZWdfcnR4LCBydHggZnJhbWVfcmVnX3J0eCwKKyAJCQkg aW50IHNwX29mZnNldCwgYm9vbCBzYXZyZXMpCitAQCAtMTU5MzUsMTAgKzE1OTM1LDEwIEBAIHJz NjAwMF9lbWl0X3N0YWNrX3Jlc2V0IChyczYwMDBfc3RhY2tfdCAKKyAgICAgeworICAgICAgIHJz NjAwMF9lbWl0X3N0YWNrX3RpZSAoKTsKKyAgICAgICBpZiAoc3Bfb2Zmc2V0ICE9IDApCistCWVt aXRfaW5zbiAoZ2VuX2FkZHNpMyAoc3BfcmVnX3J0eCwgZnJhbWVfcmVnX3J0eCwKKy0JCQkgICAg ICAgR0VOX0lOVCAoc3Bfb2Zmc2V0KSkpOworKwlyZXR1cm4gZW1pdF9pbnNuIChnZW5fYWRkc2kz IChzcF9yZWdfcnR4LCBmcmFtZV9yZWdfcnR4LAorKwkJCQkgICAgICBHRU5fSU5UIChzcF9vZmZz ZXQpKSk7CisgICAgICAgZWxzZSBpZiAoIXNhdnJlcykKKy0JZW1pdF9tb3ZlX2luc24gKHNwX3Jl Z19ydHgsIGZyYW1lX3JlZ19ydHgpOworKwlyZXR1cm4gZW1pdF9tb3ZlX2luc24gKHNwX3JlZ19y dHgsIGZyYW1lX3JlZ19ydHgpOworICAgICB9CisgICBlbHNlIGlmIChzcF9vZmZzZXQgIT0gMCkK KyAgICAgeworQEAgLTE1OTUwLDEyICsxNTk1MCwxMiBAQCByczYwMDBfZW1pdF9zdGFja19yZXNl dCAocnM2MDAwX3N0YWNrX3QgCisgCQkgICAgICA/IGdlbl9ydHhfUkVHIChQbW9kZSwgMTEpCisg CQkgICAgICA6IHNwX3JlZ19ydHgpOworIAorLSAgICAgIGVtaXRfaW5zbiAoVEFSR0VUXzMyQklU CistCQkgPyBnZW5fYWRkc2kzIChkZXN0X3JlZywgc3BfcmVnX3J0eCwKKy0JCQkgICAgICAgR0VO X0lOVCAoc3Bfb2Zmc2V0KSkKKy0JCSA6IGdlbl9hZGRkaTMgKGRlc3RfcmVnLCBzcF9yZWdfcnR4 LAorLQkJCSAgICAgICBHRU5fSU5UIChzcF9vZmZzZXQpKSk7CisrICAgICAgcnR4IGluc24gPSBl bWl0X2luc24gKGdlbl9hZGQzX2luc24gKGRlc3RfcmVnLCBzcF9yZWdfcnR4LAorKwkJCQkJICAg R0VOX0lOVCAoc3Bfb2Zmc2V0KSkpOworKyAgICAgIGlmICghc2F2cmVzKQorKwlyZXR1cm4gaW5z bjsKKyAgICAgfQorKyAgcmV0dXJuIE5VTExfUlRYOworIH0KKyAKKyAvKiBDb25zdHJ1Y3QgYSBw YXJhbGxlbCBydHggZGVzY3JpYmluZyB0aGUgZWZmZWN0IG9mIGEgY2FsbCB0byBhbgorQEAgLTE2 ODcwLDEyICsxNjg3MCwxOSBAQCByczYwMDBfcmVzdG9yZV9zYXZlZF9jciAocnR4IHJlZywgaW50 IHVzCisgCX0KKyB9CisgCistLyogRW1pdCBmdW5jdGlvbiBlcGlsb2d1ZSBhcyBpbnNucy4KKysv KiBSZXR1cm4gdHJ1ZSBpZiBPRkZTRVQgZnJvbSBzdGFjayBwb2ludGVyIGNhbiBiZSBjbG9iYmVy ZWQgYnkgc2lnbmFscy4KKysgICBWLjQgZG9lc24ndCBoYXZlIGFueSBzdGFjayBjdXNoaW9uLCBB SVggQUJJcyBoYXZlIDIyMCBvciAyODggYnl0ZXMKKysgICBiZWxvdyBzdGFjayBwb2ludGVyIG5v dCBjbG9iZXJyZWQgYnkgc2lnbmFscy4gICovCisrCisrc3RhdGljIGlubGluZSBib29sCisrb2Zm c2V0X2JlbG93X3JlZF96b25lX3AgKEhPU1RfV0lERV9JTlQgb2Zmc2V0KQorK3sKKysgIHJldHVy biBvZmZzZXQgPCAoREVGQVVMVF9BQkkgPT0gQUJJX1Y0CisrCQkgICA/IDAKKysJCSAgIDogVEFS R0VUXzMyQklUID8gLTIyMCA6IC0yODgpOworK30KKyAKKy0gICBBdCBwcmVzZW50LCBkd2FyZjJv dXRfZnJhbWVfZGVidWdfZXhwciBkb2Vzbid0IHVuZGVyc3RhbmQKKy0gICByZWdpc3RlciByZXN0 b3Jlcywgc28gd2UgZG9uJ3QgYm90aGVyIHNldHRpbmcgUlRYX0ZSQU1FX1JFTEFURURfUAorLSAg IGFueXdoZXJlIGluIHRoZSBlcGlsb2d1ZS4gIE1vc3Qgb2YgdGhlIGluc25zIGJlbG93IHdvdWxk IGluIGFueSBjYXNlCistICAgbmVlZCBzcGVjaWFsIG5vdGVzIHRvIGV4cGxhaW4gd2hlcmUgcjEx IGlzIGluIHJlbGF0aW9uIHRvIHRoZSBzdGFjay4gICovCisrLyogRW1pdCBmdW5jdGlvbiBlcGls b2d1ZSBhcyBpbnNucy4gICovCisgCisgdm9pZAorIHJzNjAwMF9lbWl0X2VwaWxvZ3VlIChpbnQg c2liY2FsbCkKK0BAIC0xNjg5MSw2ICsxNjg5OCw4IEBAIHJzNjAwMF9lbWl0X2VwaWxvZ3VlIChp bnQgc2liY2FsbCkKKyAgIGludCBzcF9vZmZzZXQgPSAwOworICAgcnR4IHNwX3JlZ19ydHggPSBn ZW5fcnR4X1JFRyAoUG1vZGUsIDEpOworICAgcnR4IGZyYW1lX3JlZ19ydHggPSBzcF9yZWdfcnR4 OworKyAgcnR4IGNmYV9yZXN0b3JlcyA9IE5VTExfUlRYOworKyAgcnR4IGluc247CisgICBlbnVt IG1hY2hpbmVfbW9kZSByZWdfbW9kZSA9IFBtb2RlOworICAgaW50IHJlZ19zaXplID0gVEFSR0VU XzMyQklUID8gNCA6IDg7CisgICBpbnQgaTsKK0BAIC0xNzAzMSw3ICsxNzA0MCw3IEBAIHJzNjAw MF9lbWl0X2VwaWxvZ3VlIChpbnQgc2liY2FsbCkKKyAgICAgICAmJiBpbmZvLT5hbHRpdmVjX3Np emUgIT0gMAorICAgICAgICYmIChBTFdBWVNfUkVTVE9SRV9BTFRJVkVDX0JFRk9SRV9QT1AKKyAJ ICB8fCAoREVGQVVMVF9BQkkgIT0gQUJJX1Y0CistCSAgICAgICYmIGluZm8tPmFsdGl2ZWNfc2F2 ZV9vZmZzZXQgPCAoVEFSR0VUXzMyQklUID8gLTIyMCA6IC0yODgpKSkpCisrCSAgICAgICYmIG9m ZnNldF9iZWxvd19yZWRfem9uZV9wIChpbmZvLT5hbHRpdmVjX3NhdmVfb2Zmc2V0KSkpKQorICAg ICB7CisgICAgICAgaW50IGk7CisgCitAQCAtMTcwNDgsNyArMTcwNTcsNyBAQCByczYwMDBfZW1p dF9lcGlsb2d1ZSAoaW50IHNpYmNhbGwpCisgICAgICAgZm9yIChpID0gaW5mby0+Zmlyc3RfYWx0 aXZlY19yZWdfc2F2ZTsgaSA8PSBMQVNUX0FMVElWRUNfUkVHTk87ICsraSkKKyAJaWYgKGluZm8t PnZyc2F2ZV9tYXNrICYgQUxUSVZFQ19SRUdfQklUIChpKSkKKyAJICB7CistCSAgICBydHggYWRk ciwgYXJlZywgbWVtOworKwkgICAgcnR4IGFkZHIsIGFyZWcsIG1lbSwgcmVnOworIAorIAkgICAg YXJlZyA9IGdlbl9ydHhfUkVHIChQbW9kZSwgMCk7CisgCSAgICBlbWl0X21vdmVfaW5zbgorQEAg LTE3MDYwLDcgKzE3MDY5LDEzIEBAIHJzNjAwMF9lbWl0X2VwaWxvZ3VlIChpbnQgc2liY2FsbCkK KyAJICAgIGFkZHIgPSBnZW5fcnR4X1BMVVMgKFBtb2RlLCBmcmFtZV9yZWdfcnR4LCBhcmVnKTsK KyAJICAgIG1lbSA9IGdlbl9mcmFtZV9tZW0gKFY0U0ltb2RlLCBhZGRyKTsKKyAKKy0JICAgIGVt aXRfbW92ZV9pbnNuIChnZW5fcnR4X1JFRyAoVjRTSW1vZGUsIGkpLCBtZW0pOworKwkgICAgcmVn ID0gZ2VuX3J0eF9SRUcgKFY0U0ltb2RlLCBpKTsKKysJICAgIGVtaXRfbW92ZV9pbnNuIChyZWcs IG1lbSk7CisrCSAgICBpZiAob2Zmc2V0X2JlbG93X3JlZF96b25lX3AgKGluZm8tPmFsdGl2ZWNf c2F2ZV9vZmZzZXQKKysJCQkJCSArIChpIC0gaW5mby0+Zmlyc3RfYWx0aXZlY19yZWdfc2F2ZSkK KysJCQkJCSAgICogMTYpKQorKwkgICAgICBjZmFfcmVzdG9yZXMgPSBhbGxvY19FWFBSX0xJU1Qg KFJFR19DRkFfUkVTVE9SRSwgcmVnLAorKwkJCQkJICAgICAgY2ZhX3Jlc3RvcmVzKTsKKyAJICB9 CisgICAgIH0KKyAKK0BAIC0xNzA3MCw3ICsxNzA4NSw3IEBAIHJzNjAwMF9lbWl0X2VwaWxvZ3Vl IChpbnQgc2liY2FsbCkKKyAgICAgICAmJiBpbmZvLT52cnNhdmVfbWFzayAhPSAwCisgICAgICAg JiYgKEFMV0FZU19SRVNUT1JFX0FMVElWRUNfQkVGT1JFX1BPUAorIAkgIHx8IChERUZBVUxUX0FC SSAhPSBBQklfVjQKKy0JICAgICAgJiYgaW5mby0+dnJzYXZlX3NhdmVfb2Zmc2V0IDwgKFRBUkdF VF8zMkJJVCA/IC0yMjAgOiAtMjg4KSkpKQorKwkgICAgICAmJiBvZmZzZXRfYmVsb3dfcmVkX3pv bmVfcCAoaW5mby0+dnJzYXZlX3NhdmVfb2Zmc2V0KSkpKQorICAgICB7CisgICAgICAgcnR4IGFk ZHIsIG1lbSwgcmVnOworIAorQEAgLTE3MDk2LDYgKzE3MTExLDcgQEAgcnM2MDAwX2VtaXRfZXBp bG9ndWUgKGludCBzaWJjYWxsKQorICAgICAgIGVtaXRfaW5zbiAoZ2VuZXJhdGVfc2V0X3Zyc2F2 ZSAocmVnLCBpbmZvLCAxKSk7CisgICAgIH0KKyAKKysgIGluc24gPSBOVUxMX1JUWDsKKyAgIC8q IElmIHdlIGhhdmUgYSBsYXJnZSBzdGFjayBmcmFtZSwgcmVzdG9yZSB0aGUgb2xkIHN0YWNrIHBv aW50ZXIKKyAgICAgIHVzaW5nIHRoZSBiYWNrY2hhaW4uICAqLworICAgaWYgKHVzZV9iYWNrY2hh aW5fdG9fcmVzdG9yZV9zcCkKK0BAIC0xNzEwNyw4ICsxNzEyMyw4IEBAIHJzNjAwMF9lbWl0X2Vw aWxvZ3VlIChpbnQgc2liY2FsbCkKKyAJICBpZiAoREVGQVVMVF9BQkkgPT0gQUJJX1Y0KQorIAkg ICAgZnJhbWVfcmVnX3J0eCA9IGdlbl9ydHhfUkVHIChQbW9kZSwgMTEpOworIAorLQkgIGVtaXRf bW92ZV9pbnNuIChmcmFtZV9yZWdfcnR4LAorLQkJCSAgZ2VuX3J0eF9NRU0gKFBtb2RlLCBzcF9y ZWdfcnR4KSk7CisrCSAgaW5zbiA9IGVtaXRfbW92ZV9pbnNuIChmcmFtZV9yZWdfcnR4LAorKwkJ CQkgZ2VuX3J0eF9NRU0gKFBtb2RlLCBzcF9yZWdfcnR4KSk7CisgCSAgc3Bfb2Zmc2V0ID0gMDsK KyAJfQorICAgICAgIGVsc2UgaWYgKEFMV0FZU19SRVNUT1JFX0FMVElWRUNfQkVGT1JFX1BPUAor QEAgLTE3MTE3LDcgKzE3MTMzLDcgQEAgcnM2MDAwX2VtaXRfZXBpbG9ndWUgKGludCBzaWJjYWxs KQorIAk7CisgICAgICAgZWxzZQorIAl7CistCSAgZW1pdF9tb3ZlX2luc24gKHNwX3JlZ19ydHgs IGZyYW1lX3JlZ19ydHgpOworKwkgIGluc24gPSBlbWl0X21vdmVfaW5zbiAoc3BfcmVnX3J0eCwg ZnJhbWVfcmVnX3J0eCk7CisgCSAgZnJhbWVfcmVnX3J0eCA9IHNwX3JlZ19ydHg7CisgCX0KKyAg ICAgfQorQEAgLTE3MTI5LDM4ICsxNzE0NSw0MiBAQCByczYwMDBfZW1pdF9lcGlsb2d1ZSAoaW50 IHNpYmNhbGwpCisgICAgICAgaWYgKERFRkFVTFRfQUJJID09IEFCSV9WNCkKKyAJZnJhbWVfcmVn X3J0eCA9IGdlbl9ydHhfUkVHIChQbW9kZSwgMTEpOworIAorLSAgICAgIGVtaXRfaW5zbiAoVEFS R0VUXzMyQklUCistCQkgPyBnZW5fYWRkc2kzIChmcmFtZV9yZWdfcnR4LCBoYXJkX2ZyYW1lX3Bv aW50ZXJfcnR4LAorLQkJCSAgICAgICBHRU5fSU5UIChpbmZvLT50b3RhbF9zaXplKSkKKy0JCSA6 IGdlbl9hZGRkaTMgKGZyYW1lX3JlZ19ydHgsIGhhcmRfZnJhbWVfcG9pbnRlcl9ydHgsCistCQkJ ICAgICAgIEdFTl9JTlQgKGluZm8tPnRvdGFsX3NpemUpKSk7CisrICAgICAgaW5zbiA9IGVtaXRf aW5zbiAoZ2VuX2FkZDNfaW5zbiAoZnJhbWVfcmVnX3J0eCwgaGFyZF9mcmFtZV9wb2ludGVyX3J0 eCwKKysJCQkJICAgICAgIEdFTl9JTlQgKGluZm8tPnRvdGFsX3NpemUpKSk7CisgICAgICAgc3Bf b2Zmc2V0ID0gMDsKKyAgICAgfQorICAgZWxzZSBpZiAoaW5mby0+cHVzaF9wCisgCSAgICYmIERF RkFVTFRfQUJJICE9IEFCSV9WNAorIAkgICAmJiAhY3J0bC0+Y2FsbHNfZWhfcmV0dXJuKQorICAg ICB7CistICAgICAgZW1pdF9pbnNuIChUQVJHRVRfMzJCSVQKKy0JCSA/IGdlbl9hZGRzaTMgKHNw X3JlZ19ydHgsIHNwX3JlZ19ydHgsCistCQkJICAgICAgIEdFTl9JTlQgKGluZm8tPnRvdGFsX3Np emUpKQorLQkJIDogZ2VuX2FkZGRpMyAoc3BfcmVnX3J0eCwgc3BfcmVnX3J0eCwKKy0JCQkgICAg ICAgR0VOX0lOVCAoaW5mby0+dG90YWxfc2l6ZSkpKTsKKysgICAgICBpbnNuID0gZW1pdF9pbnNu IChnZW5fYWRkM19pbnNuIChzcF9yZWdfcnR4LCBzcF9yZWdfcnR4LAorKwkJCQkgICAgICAgR0VO X0lOVCAoaW5mby0+dG90YWxfc2l6ZSkpKTsKKyAgICAgICBzcF9vZmZzZXQgPSAwOworICAgICB9 CisrICBpZiAoaW5zbiAmJiBmcmFtZV9yZWdfcnR4ID09IHNwX3JlZ19ydHgpCisrICAgIHsKKysg ICAgICBpZiAoY2ZhX3Jlc3RvcmVzKQorKwl7CisrCSAgUkVHX05PVEVTIChpbnNuKSA9IGNmYV9y ZXN0b3JlczsKKysJICBjZmFfcmVzdG9yZXMgPSBOVUxMX1JUWDsKKysJfQorKyAgICAgIGFkZF9y ZWdfbm90ZSAoaW5zbiwgUkVHX0NGQV9ERUZfQ0ZBLCBzcF9yZWdfcnR4KTsKKysgICAgICBSVFhf RlJBTUVfUkVMQVRFRF9QIChpbnNuKSA9IDE7CisrICAgIH0KKyAKKyAgIC8qIFJlc3RvcmUgQWx0 aVZlYyByZWdpc3RlcnMgaWYgd2UgaGF2ZSBub3QgZG9uZSBzbyBhbHJlYWR5LiAgKi8KKyAgIGlm ICghQUxXQVlTX1JFU1RPUkVfQUxUSVZFQ19CRUZPUkVfUE9QCisgICAgICAgJiYgVEFSR0VUX0FM VElWRUNfQUJJCisgICAgICAgJiYgaW5mby0+YWx0aXZlY19zaXplICE9IDAKKyAgICAgICAmJiAo REVGQVVMVF9BQkkgPT0gQUJJX1Y0CistCSAgfHwgaW5mby0+YWx0aXZlY19zYXZlX29mZnNldCA+ PSAoVEFSR0VUXzMyQklUID8gLTIyMCA6IC0yODgpKSkKKysJICB8fCAhb2Zmc2V0X2JlbG93X3Jl ZF96b25lX3AgKGluZm8tPmFsdGl2ZWNfc2F2ZV9vZmZzZXQpKSkKKyAgICAgeworICAgICAgIGlu dCBpOworIAorICAgICAgIGZvciAoaSA9IGluZm8tPmZpcnN0X2FsdGl2ZWNfcmVnX3NhdmU7IGkg PD0gTEFTVF9BTFRJVkVDX1JFR05POyArK2kpCisgCWlmIChpbmZvLT52cnNhdmVfbWFzayAmIEFM VElWRUNfUkVHX0JJVCAoaSkpCisgCSAgeworLQkgICAgcnR4IGFkZHIsIGFyZWcsIG1lbTsKKysJ ICAgIHJ0eCBhZGRyLCBhcmVnLCBtZW0sIHJlZzsKKyAKKyAJICAgIGFyZWcgPSBnZW5fcnR4X1JF RyAoUG1vZGUsIDApOworIAkgICAgZW1pdF9tb3ZlX2luc24KK0BAIC0xNzE3Miw3ICsxNzE5Miwx MSBAQCByczYwMDBfZW1pdF9lcGlsb2d1ZSAoaW50IHNpYmNhbGwpCisgCSAgICBhZGRyID0gZ2Vu X3J0eF9QTFVTIChQbW9kZSwgZnJhbWVfcmVnX3J0eCwgYXJlZyk7CisgCSAgICBtZW0gPSBnZW5f ZnJhbWVfbWVtIChWNFNJbW9kZSwgYWRkcik7CisgCistCSAgICBlbWl0X21vdmVfaW5zbiAoZ2Vu X3J0eF9SRUcgKFY0U0ltb2RlLCBpKSwgbWVtKTsKKysJICAgIHJlZyA9IGdlbl9ydHhfUkVHIChW NFNJbW9kZSwgaSk7CisrCSAgICBlbWl0X21vdmVfaW5zbiAocmVnLCBtZW0pOworKwkgICAgaWYg KERFRkFVTFRfQUJJID09IEFCSV9WNCkKKysJICAgICAgY2ZhX3Jlc3RvcmVzID0gYWxsb2NfRVhQ Ul9MSVNUIChSRUdfQ0ZBX1JFU1RPUkUsIHJlZywKKysJCQkJCSAgICAgIGNmYV9yZXN0b3Jlcyk7 CisgCSAgfQorICAgICB9CisgCitAQCAtMTcxODIsNyArMTcyMDYsNyBAQCByczYwMDBfZW1pdF9l cGlsb2d1ZSAoaW50IHNpYmNhbGwpCisgICAgICAgJiYgVEFSR0VUX0FMVElWRUNfVlJTQVZFCisg ICAgICAgJiYgaW5mby0+dnJzYXZlX21hc2sgIT0gMAorICAgICAgICYmIChERUZBVUxUX0FCSSA9 PSBBQklfVjQKKy0JICB8fCBpbmZvLT52cnNhdmVfc2F2ZV9vZmZzZXQgPj0gKFRBUkdFVF8zMkJJ VCA/IC0yMjAgOiAtMjg4KSkpCisrCSAgfHwgIW9mZnNldF9iZWxvd19yZWRfem9uZV9wIChpbmZv LT52cnNhdmVfc2F2ZV9vZmZzZXQpKSkKKyAgICAgeworICAgICAgIHJ0eCBhZGRyLCBtZW0sIHJl ZzsKKyAKK0BAIC0xNzIxNSw3ICsxNzIzOSw4IEBAIHJzNjAwMF9lbWl0X2VwaWxvZ3VlIChpbnQg c2liY2FsbCkKKyAgICAgICBlbWl0X21vdmVfaW5zbiAoZ2VuX3J0eF9SRUcgKFNJbW9kZSwgMTIp LCBtZW0pOworICAgICB9CisgCistICAvKiBTZXQgTFIgaGVyZSB0byB0cnkgdG8gb3ZlcmxhcCBy ZXN0b3JlcyBiZWxvdy4gICovCisrICAvKiBTZXQgTFIgaGVyZSB0byB0cnkgdG8gb3ZlcmxhcCBy ZXN0b3JlcyBiZWxvdy4gIExSIGlzIGFsd2F5cyBzYXZlZAorKyAgICAgYWJvdmUgaW5jb21pbmcg c3RhY2ssIHNvIGl0IG5ldmVyIG5lZWRzIFJFR19DRkFfUkVTVE9SRS4gICovCisgICBpZiAocmVz dG9yZV9scikKKyAgICAgZW1pdF9tb3ZlX2luc24gKGdlbl9ydHhfUkVHIChQbW9kZSwgTFJfUkVH Tk8pLAorIAkJICAgIGdlbl9ydHhfUkVHIChQbW9kZSwgMCkpOworQEAgLTE3Mjk3LDcgKzE3MzIy LDcgQEAgcnM2MDAwX2VtaXRfZXBpbG9ndWUgKGludCBzaWJjYWxsKQorIAkgIGZvciAoaSA9IDA7 IGkgPCAzMiAtIGluZm8tPmZpcnN0X2dwX3JlZ19zYXZlOyBpKyspCisgCSAgICBpZiAocnM2MDAw X3JlZ19saXZlX29yX3BpY19vZmZzZXRfcCAoaW5mby0+Zmlyc3RfZ3BfcmVnX3NhdmUgKyBpKSkK KyAJICAgICAgeworLQkJcnR4IG9mZnNldCwgYWRkciwgbWVtOworKwkJcnR4IG9mZnNldCwgYWRk ciwgbWVtLCByZWc7CisgCisgCQkvKiBXZSdyZSBkb2luZyBhbGwgdGhpcyB0byBlbnN1cmUgdGhh dCB0aGUgaW1tZWRpYXRlIG9mZnNldAorIAkJICAgZml0cyBpbnRvIHRoZSBpbW1lZGlhdGUgZmll bGQgb2YgJ2V2bGRkJy4gICovCitAQCAtMTczMDYsOSArMTczMzEsMjQgQEAgcnM2MDAwX2VtaXRf ZXBpbG9ndWUgKGludCBzaWJjYWxsKQorIAkJb2Zmc2V0ID0gR0VOX0lOVCAoc3BlX29mZnNldCAr IHJlZ19zaXplICogaSk7CisgCQlhZGRyID0gZ2VuX3J0eF9QTFVTIChQbW9kZSwgZnJhbWVfcmVn X3J0eCwgb2Zmc2V0KTsKKyAJCW1lbSA9IGdlbl9ydHhfTUVNIChWMlNJbW9kZSwgYWRkcik7Cisr CQlyZWcgPSBnZW5fcnR4X1JFRyAocmVnX21vZGUsIGluZm8tPmZpcnN0X2dwX3JlZ19zYXZlICsg aSk7CisrCisrCQlpbnNuID0gZW1pdF9tb3ZlX2luc24gKHJlZywgbWVtKTsKKysJCWlmIChERUZB VUxUX0FCSSA9PSBBQklfVjQpCisrCQkgIHsKKysJCSAgICBpZiAoZnJhbWVfcG9pbnRlcl9uZWVk ZWQKKysJCQkmJiBpbmZvLT5maXJzdF9ncF9yZWdfc2F2ZSArIGkKKysJCQkgICA9PSBIQVJEX0ZS QU1FX1BPSU5URVJfUkVHTlVNKQorKwkJICAgICAgeworKwkJCWFkZF9yZWdfbm90ZSAoaW5zbiwg UkVHX0NGQV9ERUZfQ0ZBLAorKwkJCQkgICAgICBwbHVzX2NvbnN0YW50IChmcmFtZV9yZWdfcnR4 LAorKwkJCQkJCSAgICAgc3Bfb2Zmc2V0KSk7CisrCQkJUlRYX0ZSQU1FX1JFTEFURURfUCAoaW5z bikgPSAxOworKwkJICAgICAgfQorIAorLQkJZW1pdF9tb3ZlX2luc24gKGdlbl9ydHhfUkVHIChy ZWdfbW9kZSwgaW5mby0+Zmlyc3RfZ3BfcmVnX3NhdmUgKyBpKSwKKy0JCQkJbWVtKTsKKysJCSAg ICBjZmFfcmVzdG9yZXMgPSBhbGxvY19FWFBSX0xJU1QgKFJFR19DRkFfUkVTVE9SRSwgcmVnLAor KwkJCQkJCSAgICBjZmFfcmVzdG9yZXMpOworKwkJICB9CisgCSAgICAgIH0KKyAJfQorICAgICAg IGVsc2UKK0BAIC0xNzMyMCw3ICsxNzM2MCw2IEBAIHJzNjAwMF9lbWl0X2VwaWxvZ3VlIChpbnQg c2liY2FsbCkKKyAJCQkJCS8qc2F2ZXA9Ki9mYWxzZSwgLypncHI9Ki90cnVlLAorIAkJCQkJLypl eGl0cD0qL3RydWUpOworIAkgIGVtaXRfanVtcF9pbnNuIChwYXIpOworLQorIAkgIC8qIFdlIGRv bid0IHdhbnQgYW55Ym9keSBlbHNlIGVtaXR0aW5nIHRoaW5ncyBhZnRlciB3ZSBqdW1wZWQKKyAJ ICAgICBiYWNrLiAgKi8KKyAJICByZXR1cm47CitAQCAtMTczNDksOCArMTczODgsMTUgQEAgcnM2 MDAwX2VtaXRfZXBpbG9ndWUgKGludCBzaWJjYWxsKQorICAgICAgIGlmIChjYW5fdXNlX2V4aXQp CisgCXsKKyAJICBpZiAoaW5mby0+Y3Jfc2F2ZV9wKQorLQkgICAgcnM2MDAwX3Jlc3RvcmVfc2F2 ZWRfY3IgKGdlbl9ydHhfUkVHIChTSW1vZGUsIDEyKSwKKy0JCQkJICAgICB1c2luZ19tdGNyX211 bHRpcGxlKTsKKysJICAgIHsKKysJICAgICAgcnM2MDAwX3Jlc3RvcmVfc2F2ZWRfY3IgKGdlbl9y dHhfUkVHIChTSW1vZGUsIDEyKSwKKysJCQkJICAgICAgIHVzaW5nX210Y3JfbXVsdGlwbGUpOwor KwkgICAgICBpZiAoREVGQVVMVF9BQkkgPT0gQUJJX1Y0KQorKwkJY2ZhX3Jlc3RvcmVzCisrCQkg ID0gYWxsb2NfRVhQUl9MSVNUIChSRUdfQ0ZBX1JFU1RPUkUsCisrCQkJCSAgICAgZ2VuX3J0eF9S RUcgKFNJbW9kZSwgQ1IyX1JFR05PKSwKKysJCQkJICAgICBjZmFfcmVzdG9yZXMpOworKwkgICAg fQorIAorIAkgIGVtaXRfanVtcF9pbnNuIChwYXIpOworIAorQEAgLTE3MzU4LDggKzE3NDA0LDIy IEBAIHJzNjAwMF9lbWl0X2VwaWxvZ3VlIChpbnQgc2liY2FsbCkKKyAJICAgICBiYWNrLiAgKi8K KyAJICByZXR1cm47CisgCX0KKy0gICAgICBlbHNlCistCWVtaXRfaW5zbiAocGFyKTsKKysKKysg ICAgICBpbnNuID0gZW1pdF9pbnNuIChwYXIpOworKyAgICAgIGlmIChERUZBVUxUX0FCSSA9PSBB QklfVjQpCisrCXsKKysJICBpZiAoZnJhbWVfcG9pbnRlcl9uZWVkZWQpCisrCSAgICB7CisrCSAg ICAgIGFkZF9yZWdfbm90ZSAoaW5zbiwgUkVHX0NGQV9ERUZfQ0ZBLAorKwkJCSAgICBwbHVzX2Nv bnN0YW50IChmcmFtZV9yZWdfcnR4LCBzcF9vZmZzZXQpKTsKKysJICAgICAgUlRYX0ZSQU1FX1JF TEFURURfUCAoaW5zbikgPSAxOworKwkgICAgfQorKworKwkgIGZvciAoaSA9IGluZm8tPmZpcnN0 X2dwX3JlZ19zYXZlOyBpIDwgMzI7IGkrKykKKysJICAgIGNmYV9yZXN0b3JlcworKwkgICAgICA9 IGFsbG9jX0VYUFJfTElTVCAoUkVHX0NGQV9SRVNUT1JFLAorKwkJCQkgZ2VuX3J0eF9SRUcgKHJl Z19tb2RlLCBpKSwgY2ZhX3Jlc3RvcmVzKTsKKysJfQorICAgICB9CisgICBlbHNlIGlmICh1c2lu Z19sb2FkX211bHRpcGxlKQorICAgICB7CitAQCAtMTczNzIsMTMgKzE3NDMyLDIwIEBAIHJzNjAw MF9lbWl0X2VwaWxvZ3VlIChpbnQgc2liY2FsbCkKKyAJCQkJCSAgICArIHNwX29mZnNldAorIAkJ CQkJICAgICsgcmVnX3NpemUgKiBpKSk7CisgCSAgcnR4IG1lbSA9IGdlbl9mcmFtZV9tZW0gKHJl Z19tb2RlLCBhZGRyKTsKKysJICBydHggcmVnID0gZ2VuX3J0eF9SRUcgKHJlZ19tb2RlLCBpbmZv LT5maXJzdF9ncF9yZWdfc2F2ZSArIGkpOworIAorLQkgIFJUVkVDX0VMVCAocCwgaSkgPQorLQkg ICAgZ2VuX3J0eF9TRVQgKFZPSURtb2RlLAorLQkJCSBnZW5fcnR4X1JFRyAocmVnX21vZGUsIGlu Zm8tPmZpcnN0X2dwX3JlZ19zYXZlICsgaSksCistCQkJIG1lbSk7CisrCSAgUlRWRUNfRUxUIChw LCBpKSA9IGdlbl9ydHhfU0VUIChWT0lEbW9kZSwgcmVnLCBtZW0pOworKwkgIGlmIChERUZBVUxU X0FCSSA9PSBBQklfVjQpCisrCSAgICBjZmFfcmVzdG9yZXMgPSBhbGxvY19FWFBSX0xJU1QgKFJF R19DRkFfUkVTVE9SRSwgcmVnLAorKwkJCQkJICAgIGNmYV9yZXN0b3Jlcyk7CisrCX0KKysgICAg ICBpbnNuID0gZW1pdF9pbnNuIChnZW5fcnR4X1BBUkFMTEVMIChWT0lEbW9kZSwgcCkpOworKyAg ICAgIGlmIChERUZBVUxUX0FCSSA9PSBBQklfVjQgJiYgZnJhbWVfcG9pbnRlcl9uZWVkZWQpCisr CXsKKysJICBhZGRfcmVnX25vdGUgKGluc24sIFJFR19DRkFfREVGX0NGQSwKKysJCQlwbHVzX2Nv bnN0YW50IChmcmFtZV9yZWdfcnR4LCBzcF9vZmZzZXQpKTsKKysJICBSVFhfRlJBTUVfUkVMQVRF RF9QIChpbnNuKSA9IDE7CisgCX0KKy0gICAgICBlbWl0X2luc24gKGdlbl9ydHhfUEFSQUxMRUwg KFZPSURtb2RlLCBwKSk7CisgICAgIH0KKyAgIGVsc2UKKyAgICAgeworQEAgLTE3MzkwLDkgKzE3 NDU3LDIzIEBAIHJzNjAwMF9lbWl0X2VwaWxvZ3VlIChpbnQgc2liY2FsbCkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBzcF9vZmZzZXQKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyByZWdfc2l6ZSAqIGkpKTsK KyAgICAgICAgICAgICBydHggbWVtID0gZ2VuX2ZyYW1lX21lbSAocmVnX21vZGUsIGFkZHIpOwor KwkgICAgcnR4IHJlZyA9IGdlbl9ydHhfUkVHIChyZWdfbW9kZSwgaW5mby0+Zmlyc3RfZ3BfcmVn X3NhdmUgKyBpKTsKKysKKysJICAgIGluc24gPSBlbWl0X21vdmVfaW5zbiAocmVnLCBtZW0pOwor KwkgICAgaWYgKERFRkFVTFRfQUJJID09IEFCSV9WNCkKKysJICAgICAgeworKwkgICAgICAgIGlm IChmcmFtZV9wb2ludGVyX25lZWRlZAorKwkJICAgICYmIGluZm8tPmZpcnN0X2dwX3JlZ19zYXZl ICsgaQorKwkJICAgICAgID09IEhBUkRfRlJBTUVfUE9JTlRFUl9SRUdOVU0pCisrCQkgIHsKKysJ CSAgICBhZGRfcmVnX25vdGUgKGluc24sIFJFR19DRkFfREVGX0NGQSwKKysJCQkJICBwbHVzX2Nv bnN0YW50IChmcmFtZV9yZWdfcnR4LCBzcF9vZmZzZXQpKTsKKysJCSAgICBSVFhfRlJBTUVfUkVM QVRFRF9QIChpbnNuKSA9IDE7CisrCQkgIH0KKyAKKy0gICAgICAgICAgICBlbWl0X21vdmVfaW5z biAoZ2VuX3J0eF9SRUcgKHJlZ19tb2RlLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaW5mby0+Zmlyc3RfZ3BfcmVnX3NhdmUgKyBpKSwgbWVtKTsKKysJCWNmYV9y ZXN0b3JlcyA9IGFsbG9jX0VYUFJfTElTVCAoUkVHX0NGQV9SRVNUT1JFLCByZWcsCisrCQkJCQkJ Y2ZhX3Jlc3RvcmVzKTsKKysJICAgICAgfQorICAgICAgICAgICB9CisgICAgIH0KKyAKK0BAIC0x NzQwMiwzNiArMTc0ODMsNTIgQEAgcnM2MDAwX2VtaXRfZXBpbG9ndWUgKGludCBzaWJjYWxsKQor ICAgICAgIGlmICgoZGZfcmVnc19ldmVyX2xpdmVfcCAoaW5mby0+Zmlyc3RfZnBfcmVnX3NhdmUr aSkKKyAJICAgJiYgISBjYWxsX3VzZWRfcmVnc1tpbmZvLT5maXJzdF9mcF9yZWdfc2F2ZStpXSkp CisgCXsKKy0JICBydHggYWRkciwgbWVtOworKwkgIHJ0eCBhZGRyLCBtZW0sIHJlZzsKKyAJICBh ZGRyID0gZ2VuX3J0eF9QTFVTIChQbW9kZSwgZnJhbWVfcmVnX3J0eCwKKyAJCQkgICAgICAgR0VO X0lOVCAoaW5mby0+ZnBfc2F2ZV9vZmZzZXQKKyAJCQkJCSsgc3Bfb2Zmc2V0CisgCQkJCQkrIDgg KiBpKSk7CisgCSAgbWVtID0gZ2VuX2ZyYW1lX21lbSAoKChUQVJHRVRfSEFSRF9GTE9BVCAmJiBU QVJHRVRfRE9VQkxFX0ZMT0FUKQorIAkJCQkgPyBERm1vZGUgOiBTRm1vZGUpLCBhZGRyKTsKKysJ ICByZWcgPSBnZW5fcnR4X1JFRyAoKChUQVJHRVRfSEFSRF9GTE9BVCAmJiBUQVJHRVRfRE9VQkxF X0ZMT0FUKQorKwkJCSAgICAgICA/IERGbW9kZSA6IFNGbW9kZSksCisrCQkJICAgICBpbmZvLT5m aXJzdF9mcF9yZWdfc2F2ZSArIGkpOworIAorLSAJICBlbWl0X21vdmVfaW5zbiAoZ2VuX3J0eF9S RUcgKCgoVEFSR0VUX0hBUkRfRkxPQVQgCistCQkJCQkgJiYgVEFSR0VUX0RPVUJMRV9GTE9BVCkK Ky0JCQkJICAgICAgICA/IERGbW9kZSA6IFNGbW9kZSksCistCQkJCSAgICAgICBpbmZvLT5maXJz dF9mcF9yZWdfc2F2ZSArIGkpLAorLQkJCSAgbWVtKTsKKysgCSAgZW1pdF9tb3ZlX2luc24gKHJl ZywgbWVtKTsKKysJICBpZiAoREVGQVVMVF9BQkkgPT0gQUJJX1Y0KQorKwkgICAgY2ZhX3Jlc3Rv cmVzID0gYWxsb2NfRVhQUl9MSVNUIChSRUdfQ0ZBX1JFU1RPUkUsIHJlZywKKysJCQkJCSAgICBj ZmFfcmVzdG9yZXMpOworIAl9CisgCisgICAvKiBJZiB3ZSBzYXZlZCBjciwgcmVzdG9yZSBpdCBo ZXJlLiAgSnVzdCB0aG9zZSB0aGF0IHdlcmUgdXNlZC4gICovCisgICBpZiAoaW5mby0+Y3Jfc2F2 ZV9wKQorLSAgICByczYwMDBfcmVzdG9yZV9zYXZlZF9jciAoZ2VuX3J0eF9SRUcgKFNJbW9kZSwg MTIpLCB1c2luZ19tdGNyX211bHRpcGxlKTsKKysgICAgeworKyAgICAgIHJzNjAwMF9yZXN0b3Jl X3NhdmVkX2NyIChnZW5fcnR4X1JFRyAoU0ltb2RlLCAxMiksIHVzaW5nX210Y3JfbXVsdGlwbGUp OworKyAgICAgIGlmIChERUZBVUxUX0FCSSA9PSBBQklfVjQpCisrCWNmYV9yZXN0b3JlcworKwkg ID0gYWxsb2NfRVhQUl9MSVNUIChSRUdfQ0ZBX1JFU1RPUkUsIGdlbl9ydHhfUkVHIChTSW1vZGUs IENSMl9SRUdOTyksCisrCQkJICAgICBjZmFfcmVzdG9yZXMpOworKyAgICB9CisgCisgICAvKiBJ ZiB0aGlzIGlzIFYuNCwgdW53aW5kIHRoZSBzdGFjayBwb2ludGVyIGFmdGVyIGFsbCBvZiB0aGUg bG9hZHMKKyAgICAgIGhhdmUgYmVlbiBkb25lLiAgKi8KKy0gIHJzNjAwMF9lbWl0X3N0YWNrX3Jl c2V0IChpbmZvLCBzcF9yZWdfcnR4LCBmcmFtZV9yZWdfcnR4LAorLQkJCSAgIHNwX29mZnNldCwg IXJlc3RvcmluZ19GUFJzX2lubGluZSk7CisrICBpbnNuID0gcnM2MDAwX2VtaXRfc3RhY2tfcmVz ZXQgKGluZm8sIHNwX3JlZ19ydHgsIGZyYW1lX3JlZ19ydHgsCisrCQkJCSAgc3Bfb2Zmc2V0LCAh cmVzdG9yaW5nX0ZQUnNfaW5saW5lKTsKKysgIGlmIChpbnNuKQorKyAgICB7CisrICAgICAgaWYg KGNmYV9yZXN0b3JlcykKKysJeworKwkgIFJFR19OT1RFUyAoaW5zbikgPSBjZmFfcmVzdG9yZXM7 CisrCSAgY2ZhX3Jlc3RvcmVzID0gTlVMTF9SVFg7CisrCX0KKysgICAgICBhZGRfcmVnX25vdGUg KGluc24sIFJFR19DRkFfREVGX0NGQSwgc3BfcmVnX3J0eCk7CisrICAgICAgUlRYX0ZSQU1FX1JF TEFURURfUCAoaW5zbikgPSAxOworKyAgICB9CisgCisgICBpZiAoY3J0bC0+Y2FsbHNfZWhfcmV0 dXJuKQorICAgICB7CisgICAgICAgcnR4IHNhID0gRUhfUkVUVVJOX1NUQUNLQURKX1JUWDsKKy0g ICAgICBlbWl0X2luc24gKFRBUkdFVF8zMkJJVAorLQkJID8gZ2VuX2FkZHNpMyAoc3BfcmVnX3J0 eCwgc3BfcmVnX3J0eCwgc2EpCistCQkgOiBnZW5fYWRkZGkzIChzcF9yZWdfcnR4LCBzcF9yZWdf cnR4LCBzYSkpOworKyAgICAgIGVtaXRfaW5zbiAoZ2VuX2FkZDNfaW5zbiAoc3BfcmVnX3J0eCwg c3BfcmVnX3J0eCwgc2EpKTsKKyAgICAgfQorIAorICAgaWYgKCFzaWJjYWxsKQorLS0tIGdjYy9j b25maWcvcnM2MDAwL2NydHJlc3hmcHIuYXNtLmpqCTIwMDktMDQtMTQgMTU6NTI6MjUuMDAwMDAw MDAwICswMjAwCisrKysgZ2NjL2NvbmZpZy9yczYwMDAvY3J0cmVzeGZwci5hc20JMjAwOS0wNi0w OSAwOToxMDoyNC4wMDAwMDAwMDAgKzAyMDAKK0BAIC00MCwyNyArNDAsNjggQEAKKyAvKiBJbiBh ZGRpdGlvbiB0byByZXN0b3JpbmcgdGhlIGZwIHJlZ2lzdGVycywgaXQgd2lsbCByZXR1cm4gdG8g dGhlIGNhbGxlcidzICovCisgLyogY2FsbGVyICovCisgCisrQ0ZJX1NUQVJUUFJPQworK0NGSV9E RUZfQ0ZBX1JFR0lTVEVSICgxMSkKKytDRklfT0ZGU0VUICg2NSwgNCkKKytDRklfT0ZGU0VUICg0 NiwgLTE0NCkKKytDRklfT0ZGU0VUICg0NywgLTEzNikKKytDRklfT0ZGU0VUICg0OCwgLTEyOCkK KytDRklfT0ZGU0VUICg0OSwgLTEyMCkKKytDRklfT0ZGU0VUICg1MCwgLTExMikKKytDRklfT0ZG U0VUICg1MSwgLTEwNCkKKytDRklfT0ZGU0VUICg1MiwgLTk2KQorK0NGSV9PRkZTRVQgKDUzLCAt ODgpCisrQ0ZJX09GRlNFVCAoNTQsIC04MCkKKytDRklfT0ZGU0VUICg1NSwgLTcyKQorK0NGSV9P RkZTRVQgKDU2LCAtNjQpCisrQ0ZJX09GRlNFVCAoNTcsIC01NikKKytDRklfT0ZGU0VUICg1OCwg LTQ4KQorK0NGSV9PRkZTRVQgKDU5LCAtNDApCisrQ0ZJX09GRlNFVCAoNjAsIC0zMikKKytDRklf T0ZGU0VUICg2MSwgLTI0KQorK0NGSV9PRkZTRVQgKDYyLCAtMTYpCisrQ0ZJX09GRlNFVCAoNjMs IC04KQorIEhJRERFTl9GVU5DKF9yZXN0ZnByXzE0X3gpCWxmZAkxNCwtMTQ0KDExKQkvKiByZXN0 b3JlIGZwIHJlZ2lzdGVycyAqLworK0NGSV9SRVNUT1JFICg0NikKKyBISURERU5fRlVOQyhfcmVz dGZwcl8xNV94KQlsZmQJMTUsLTEzNigxMSkKKytDRklfUkVTVE9SRSAoNDcpCisgSElEREVOX0ZV TkMoX3Jlc3RmcHJfMTZfeCkJbGZkCTE2LC0xMjgoMTEpCisrQ0ZJX1JFU1RPUkUgKDQ4KQorIEhJ RERFTl9GVU5DKF9yZXN0ZnByXzE3X3gpCWxmZAkxNywtMTIwKDExKQorK0NGSV9SRVNUT1JFICg0 OSkKKyBISURERU5fRlVOQyhfcmVzdGZwcl8xOF94KQlsZmQJMTgsLTExMigxMSkKKytDRklfUkVT VE9SRSAoNTApCisgSElEREVOX0ZVTkMoX3Jlc3RmcHJfMTlfeCkJbGZkCTE5LC0xMDQoMTEpCisr Q0ZJX1JFU1RPUkUgKDUxKQorIEhJRERFTl9GVU5DKF9yZXN0ZnByXzIwX3gpCWxmZAkyMCwtOTYo MTEpCisrQ0ZJX1JFU1RPUkUgKDUyKQorIEhJRERFTl9GVU5DKF9yZXN0ZnByXzIxX3gpCWxmZAky MSwtODgoMTEpCisrQ0ZJX1JFU1RPUkUgKDUzKQorIEhJRERFTl9GVU5DKF9yZXN0ZnByXzIyX3gp CWxmZAkyMiwtODAoMTEpCisrQ0ZJX1JFU1RPUkUgKDU0KQorIEhJRERFTl9GVU5DKF9yZXN0ZnBy XzIzX3gpCWxmZAkyMywtNzIoMTEpCisrQ0ZJX1JFU1RPUkUgKDU1KQorIEhJRERFTl9GVU5DKF9y ZXN0ZnByXzI0X3gpCWxmZAkyNCwtNjQoMTEpCisrQ0ZJX1JFU1RPUkUgKDU2KQorIEhJRERFTl9G VU5DKF9yZXN0ZnByXzI1X3gpCWxmZAkyNSwtNTYoMTEpCisrQ0ZJX1JFU1RPUkUgKDU3KQorIEhJ RERFTl9GVU5DKF9yZXN0ZnByXzI2X3gpCWxmZAkyNiwtNDgoMTEpCisrQ0ZJX1JFU1RPUkUgKDU4 KQorIEhJRERFTl9GVU5DKF9yZXN0ZnByXzI3X3gpCWxmZAkyNywtNDAoMTEpCisrQ0ZJX1JFU1RP UkUgKDU5KQorIEhJRERFTl9GVU5DKF9yZXN0ZnByXzI4X3gpCWxmZAkyOCwtMzIoMTEpCisrQ0ZJ X1JFU1RPUkUgKDYwKQorIEhJRERFTl9GVU5DKF9yZXN0ZnByXzI5X3gpCWxmZAkyOSwtMjQoMTEp CisrQ0ZJX1JFU1RPUkUgKDYxKQorIEhJRERFTl9GVU5DKF9yZXN0ZnByXzMwX3gpCWxmZAkzMCwt MTYoMTEpCisrQ0ZJX1JFU1RPUkUgKDYyKQorIEhJRERFTl9GVU5DKF9yZXN0ZnByXzMxX3gpCWx3 egkwLDQoMTEpCisgCQkJCWxmZAkzMSwtOCgxMSkKKytDRklfUkVTVE9SRSAoNjMpCisgCQkJCW10 bHIJMAorK0NGSV9SRVNUT1JFICg2NSkKKyAJCQkJbXIJMSwxMQorK0NGSV9ERUZfQ0ZBX1JFR0lT VEVSICgxKQorIAkJCQlibHIKKyBGVU5DX0VORChfcmVzdGZwcl8zMV94KQorIEZVTkNfRU5EKF9y ZXN0ZnByXzMwX3gpCitAQCAtODAsNSArMTIxLDYgQEAgRlVOQ19FTkQoX3Jlc3RmcHJfMTdfeCkK KyBGVU5DX0VORChfcmVzdGZwcl8xNl94KQorIEZVTkNfRU5EKF9yZXN0ZnByXzE1X3gpCisgRlVO Q19FTkQoX3Jlc3RmcHJfMTRfeCkKKytDRklfRU5EUFJPQworIAorICNlbmRpZgorLS0tIGdjYy9j b25maWcvcnM2MDAwL2NydHJlc2dwci5hc20uamoJMjAwOS0wNC0xNCAxNTo1MjoyNC4wMDAwMDAw MDAgKzAyMDAKKysrKyBnY2MvY29uZmlnL3JzNjAwMC9jcnRyZXNncHIuYXNtCTIwMDktMDYtMDkg MDk6MTA6MjQuMDAwMDAwMDAwICswMjAwCitAQCAtMzgsNiArMzgsNyBAQAorIC8qIENhbGxlZCB3 aXRoIHIxMSBwb2ludGluZyB0byB0aGUgc3RhY2sgaGVhZGVyIHdvcmQgb2YgdGhlIGNhbGxlciBv ZiB0aGUgKi8KKyAvKiBmdW5jdGlvbiwganVzdCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgaW50ZWdl ciByZXN0b3JlIGFyZWEuICAqLworIAorK0NGSV9TVEFSVFBST0MKKyBISURERU5fRlVOQyhfcmVz dGdwcl8xNCkJbHd6CTE0LC03MigxMSkJLyogcmVzdG9yZSBncCByZWdpc3RlcnMgKi8KKyBISURE RU5fRlVOQyhfcmVzdGdwcl8xNSkJbHd6CTE1LC02OCgxMSkKKyBISURERU5fRlVOQyhfcmVzdGdw cl8xNikJbHd6CTE2LC02NCgxMSkKK0BAIC03NSw1ICs3Niw2IEBAIEZVTkNfRU5EKF9yZXN0Z3By XzE3KQorIEZVTkNfRU5EKF9yZXN0Z3ByXzE2KQorIEZVTkNfRU5EKF9yZXN0Z3ByXzE1KQorIEZV TkNfRU5EKF9yZXN0Z3ByXzE0KQorK0NGSV9FTkRQUk9DCisgCisgI2VuZGlmCistLS0gZ2NjL2Nv bmZpZy9zMzkwL3MzOTAuYy5qagkyMDA5LTAzLTA0IDEyOjEyOjMwLjAwMDAwMDAwMCArMDEwMAor KysrIGdjYy9jb25maWcvczM5MC9zMzkwLmMJMjAwOS0wNi0wOSAwOToxOToyMC4wMDAwMDAwMDAg KzAyMDAKK0BAIC03NDI4LDYgKzc0MjgsMjEgQEAgcmVzdG9yZV9mcHIgKHJ0eCBiYXNlLCBpbnQg b2Zmc2V0LCBpbnQgcgorICAgcmV0dXJuIGVtaXRfbW92ZV9pbnNuIChnZW5fcnR4X1JFRyAoREZt b2RlLCByZWdudW0pLCBhZGRyKTsKKyB9CisgCisrLyogUmV0dXJuIHRydWUgaWYgUkVHTk8gaXMg YSBnbG9iYWwgcmVnaXN0ZXIsIGJ1dCBub3Qgb25lCisrICAgb2YgdGhlIHNwZWNpYWwgb25lcyB0 aGF0IG5lZWQgdG8gYmUgc2F2ZWQvcmVzdG9yZWQgaW4gYW55d2F5LiAgKi8KKysKKytzdGF0aWMg aW5saW5lIGJvb2wKKytnbG9iYWxfbm90X3NwZWNpYWxfcmVnbm9fcCAoaW50IHJlZ25vKQorK3sK KysgIHJldHVybiAoZ2xvYmFsX3JlZ3NbcmVnbm9dCisrCSAgLyogVGhlc2UgcmVnaXN0ZXJzIGFy ZSBzcGVjaWFsIGFuZCBuZWVkIHRvIGJlCisrCSAgICAgcmVzdG9yZWQgaW4gYW55IGNhc2UuICAq LworKwkgICYmICEocmVnbm8gPT0gU1RBQ0tfUE9JTlRFUl9SRUdOVU0KKysJICAgICAgIHx8IHJl Z25vID09IFJFVFVSTl9SRUdOVU0KKysJICAgICAgIHx8IHJlZ25vID09IEJBU0VfUkVHTlVNCisr CSAgICAgICB8fCAoZmxhZ19waWMgJiYgcmVnbm8gPT0gKGludClQSUNfT0ZGU0VUX1RBQkxFX1JF R05VTSkpKTsKKyt9CisrCisgLyogR2VuZXJhdGUgaW5zbiB0byBzYXZlIHJlZ2lzdGVycyBGSVJT VCB0byBMQVNUIGludG8KKyAgICB0aGUgcmVnaXN0ZXIgc2F2ZSBhcmVhIGxvY2F0ZWQgYXQgb2Zm c2V0IE9GRlNFVAorICAgIHJlbGF0aXZlIHRvIHJlZ2lzdGVyIEJBU0UuICAqLworQEAgLTc0NTEs NyArNzQ2Niw4IEBAIHNhdmVfZ3BycyAocnR4IGJhc2UsIGludCBvZmZzZXQsIGludCBmaXIKKyAg ICAgICBlbHNlCisgICAgICAgICBpbnNuID0gZ2VuX21vdnNpIChhZGRyLCBnZW5fcnR4X1JFRyAo UG1vZGUsIGZpcnN0KSk7CisgCistICAgICAgUlRYX0ZSQU1FX1JFTEFURURfUCAoaW5zbikgPSAx OworKyAgICAgIGlmICghZ2xvYmFsX25vdF9zcGVjaWFsX3JlZ25vX3AgKGZpcnN0KSkKKysJUlRY X0ZSQU1FX1JFTEFURURfUCAoaW5zbikgPSAxOworICAgICAgIHJldHVybiBpbnNuOworICAgICB9 CisgCitAQCAtNzQ4MSwzMCArNzQ5Nyw0MSBAQCBzYXZlX2dwcnMgKHJ0eCBiYXNlLCBpbnQgb2Zm c2V0LCBpbnQgZmlyCisgICAgICBzZXQsIGV2ZW4gaWYgaXQgZG9lcyBub3QuICBUaGVyZWZvcmUg d2UgZW1pdCBhIG5ldyBwYXR0ZXJuCisgICAgICB3aXRob3V0IHRob3NlIHJlZ2lzdGVycyBhcyBS RUdfRlJBTUVfUkVMQVRFRF9FWFBSIG5vdGUuICAqLworIAorLSAgaWYgKGZpcnN0ID49IDYpCisr ICBpZiAoZmlyc3QgPj0gNiAmJiAhZ2xvYmFsX25vdF9zcGVjaWFsX3JlZ25vX3AgKGZpcnN0KSkK KyAgICAgeworICAgICAgIHJ0eCBwYXQgPSBQQVRURVJOIChpbnNuKTsKKyAKKyAgICAgICBmb3Ig KGkgPSAwOyBpIDwgWFZFQ0xFTiAocGF0LCAwKTsgaSsrKQorLQlpZiAoR0VUX0NPREUgKFhWRUNF WFAgKHBhdCwgMCwgaSkpID09IFNFVCkKKysJaWYgKEdFVF9DT0RFIChYVkVDRVhQIChwYXQsIDAs IGkpKSA9PSBTRVQKKysJICAgICYmICFnbG9iYWxfbm90X3NwZWNpYWxfcmVnbm9fcCAoUkVHTk8g KFNFVF9TUkMgKFhWRUNFWFAgKHBhdCwKKysJCQkJCQkJCSAgICAgMCwgaSkpKSkpCisgCSAgUlRY X0ZSQU1FX1JFTEFURURfUCAoWFZFQ0VYUCAocGF0LCAwLCBpKSkgPSAxOworIAorICAgICAgIFJU WF9GUkFNRV9SRUxBVEVEX1AgKGluc24pID0gMTsKKyAgICAgfQorICAgZWxzZSBpZiAobGFzdCA+ PSA2KQorICAgICB7CistICAgICAgYWRkciA9IHBsdXNfY29uc3RhbnQgKGJhc2UsIG9mZnNldCAr ICg2IC0gZmlyc3QpICogVU5JVFNfUEVSX1dPUkQpOworKyAgICAgIGludCBzdGFydDsKKysKKysg ICAgICBmb3IgKHN0YXJ0ID0gZmlyc3QgPj0gNiA/IGZpcnN0IDogNjsgc3RhcnQgPD0gbGFzdDsg c3RhcnQrKykKKysJaWYgKCFnbG9iYWxfbm90X3NwZWNpYWxfcmVnbm9fcCAoc3RhcnQpKQorKwkg IGJyZWFrOworKworKyAgICAgIGlmIChzdGFydCA+IGxhc3QpCisrCXJldHVybiBpbnNuOworKwor KyAgICAgIGFkZHIgPSBwbHVzX2NvbnN0YW50IChiYXNlLCBvZmZzZXQgKyAoc3RhcnQgLSBmaXJz dCkgKiBVTklUU19QRVJfV09SRCk7CisgICAgICAgbm90ZSA9IGdlbl9zdG9yZV9tdWx0aXBsZSAo Z2VuX3J0eF9NRU0gKFBtb2RlLCBhZGRyKSwKKy0JCQkJIGdlbl9ydHhfUkVHIChQbW9kZSwgNiks CistCQkJCSBHRU5fSU5UIChsYXN0IC0gNiArIDEpKTsKKysJCQkJIGdlbl9ydHhfUkVHIChQbW9k ZSwgc3RhcnQpLAorKwkJCQkgR0VOX0lOVCAobGFzdCAtIHN0YXJ0ICsgMSkpOworICAgICAgIG5v dGUgPSBQQVRURVJOIChub3RlKTsKKyAKKy0gICAgICBSRUdfTk9URVMgKGluc24pID0KKy0JZ2Vu X3J0eF9FWFBSX0xJU1QgKFJFR19GUkFNRV9SRUxBVEVEX0VYUFIsCistCQkJICAgbm90ZSwgUkVH X05PVEVTIChpbnNuKSk7CisrICAgICAgYWRkX3JlZ19ub3RlIChpbnNuLCBSRUdfRlJBTUVfUkVM QVRFRF9FWFBSLCBub3RlKTsKKyAKKyAgICAgICBmb3IgKGkgPSAwOyBpIDwgWFZFQ0xFTiAobm90 ZSwgMCk7IGkrKykKKy0JaWYgKEdFVF9DT0RFIChYVkVDRVhQIChub3RlLCAwLCBpKSkgPT0gU0VU KQorKwlpZiAoR0VUX0NPREUgKFhWRUNFWFAgKG5vdGUsIDAsIGkpKSA9PSBTRVQKKysJICAgICYm ICFnbG9iYWxfbm90X3NwZWNpYWxfcmVnbm9fcCAoUkVHTk8gKFNFVF9TUkMgKFhWRUNFWFAgKG5v dGUsCisrCQkJCQkJCQkgICAgIDAsIGkpKSkpKQorIAkgIFJUWF9GUkFNRV9SRUxBVEVEX1AgKFhW RUNFWFAgKG5vdGUsIDAsIGkpKSA9IDE7CisgCisgICAgICAgUlRYX0ZSQU1FX1JFTEFURURfUCAo aW5zbikgPSAxOworQEAgLTc4OTQsNyArNzkyMSw3IEBAIHMzOTBfZW1pdF9wcm9sb2d1ZSAodm9p ZCkKKyB2b2lkCisgczM5MF9lbWl0X2VwaWxvZ3VlIChib29sIHNpYmNhbGwpCisgeworLSAgcnR4 IGZyYW1lX3BvaW50ZXIsIHJldHVybl9yZWc7CisrICBydHggZnJhbWVfcG9pbnRlciwgcmV0dXJu X3JlZywgY2ZhX3Jlc3RvcmVzID0gTlVMTF9SVFg7CisgICBpbnQgYXJlYV9ib3R0b20sIGFyZWFf dG9wLCBvZmZzZXQgPSAwOworICAgaW50IG5leHRfb2Zmc2V0OworICAgcnR2ZWMgcDsKK0BAIC03 OTM2LDExICs3OTYzLDEzIEBAIHMzOTBfZW1pdF9lcGlsb2d1ZSAoYm9vbCBzaWJjYWxsKQorICAg ICB9CisgICBlbHNlCisgICAgIHsKKy0gICAgICBydHggaW5zbiwgZnJhbWVfb2ZmOworKyAgICAg IHJ0eCBpbnNuLCBmcmFtZV9vZmYsIGNmYTsKKyAKKyAgICAgICBvZmZzZXQgPSBhcmVhX2JvdHRv bSA8IDAgPyAtYXJlYV9ib3R0b20gOiAwOworICAgICAgIGZyYW1lX29mZiA9IEdFTl9JTlQgKGNm dW5fZnJhbWVfbGF5b3V0LmZyYW1lX3NpemUgLSBvZmZzZXQpOworIAorKyAgICAgIGNmYSA9IGdl bl9ydHhfU0VUIChWT0lEbW9kZSwgZnJhbWVfcG9pbnRlciwKKysJCQkgZ2VuX3J0eF9QTFVTIChQ bW9kZSwgZnJhbWVfcG9pbnRlciwgZnJhbWVfb2ZmKSk7CisgICAgICAgaWYgKERJU1BfSU5fUkFO R0UgKElOVFZBTCAoZnJhbWVfb2ZmKSkpCisgCXsKKyAJICBpbnNuID0gZ2VuX3J0eF9TRVQgKFZP SURtb2RlLCBmcmFtZV9wb2ludGVyLAorQEAgLTc5NTUsNiArNzk4NCw4IEBAIHMzOTBfZW1pdF9l cGlsb2d1ZSAoYm9vbCBzaWJjYWxsKQorIAkgIGluc24gPSBlbWl0X2luc24gKGdlbl9hZGQyX2lu c24gKGZyYW1lX3BvaW50ZXIsIGZyYW1lX29mZikpOworIAkgIGFubm90YXRlX2NvbnN0YW50X3Bv b2xfcmVmcyAoJlBBVFRFUk4gKGluc24pKTsKKyAJfQorKyAgICAgIGFkZF9yZWdfbm90ZSAoaW5z biwgUkVHX0NGQV9BREpVU1RfQ0ZBLCBjZmEpOworKyAgICAgIFJUWF9GUkFNRV9SRUxBVEVEX1Ag KGluc24pID0gMTsKKyAgICAgfQorIAorICAgLyogUmVzdG9yZSBjYWxsIHNhdmVkIGZwcnMuICAq LworQEAgLTc5NzAsNiArODAwMSw5IEBAIHMzOTBfZW1pdF9lcGlsb2d1ZSAoYm9vbCBzaWJjYWxs KQorIAkJeworIAkJICByZXN0b3JlX2ZwciAoZnJhbWVfcG9pbnRlciwKKyAJCQkgICAgICAgb2Zm c2V0ICsgbmV4dF9vZmZzZXQsIGkpOworKwkJICBjZmFfcmVzdG9yZXMKKysJCSAgICA9IGFsbG9j X0VYUFJfTElTVCAoUkVHX0NGQV9SRVNUT1JFLAorKwkJCQkgICAgICAgZ2VuX3J0eF9SRUcgKERG bW9kZSwgaSksIGNmYV9yZXN0b3Jlcyk7CisgCQkgIG5leHRfb2Zmc2V0ICs9IDg7CisgCQl9Cisg CSAgICB9CitAQCAtNzk4NSw2ICs4MDE5LDkgQEAgczM5MF9lbWl0X2VwaWxvZ3VlIChib29sIHNp YmNhbGwpCisgCSAgICB7CisgCSAgICAgIHJlc3RvcmVfZnByIChmcmFtZV9wb2ludGVyLAorIAkJ CSAgIG9mZnNldCArIG5leHRfb2Zmc2V0LCBpKTsKKysJICAgICAgY2ZhX3Jlc3RvcmVzCisrCQk9 IGFsbG9jX0VYUFJfTElTVCAoUkVHX0NGQV9SRVNUT1JFLAorKwkJCQkgICBnZW5fcnR4X1JFRyAo REZtb2RlLCBpKSwgY2ZhX3Jlc3RvcmVzKTsKKyAJICAgICAgbmV4dF9vZmZzZXQgKz0gODsKKyAJ ICAgIH0KKyAJICBlbHNlIGlmICghVEFSR0VUX1BBQ0tFRF9TVEFDSykKK0BAIC04MDExLDE1ICs4 MDQ4LDcgQEAgczM5MF9lbWl0X2VwaWxvZ3VlIChib29sIHNpYmNhbGwpCisgCSAgIGkgPD0gY2Z1 bl9mcmFtZV9sYXlvdXQubGFzdF9yZXN0b3JlX2dwcjsKKyAJICAgaSsrKQorIAl7CistCSAgLyog VGhlc2UgcmVnaXN0ZXJzIGFyZSBzcGVjaWFsIGFuZCBuZWVkIHRvIGJlCistCSAgICAgcmVzdG9y ZWQgaW4gYW55IGNhc2UuICAqLworLQkgIGlmIChpID09IFNUQUNLX1BPSU5URVJfUkVHTlVNCist ICAgICAgICAgICAgICB8fCBpID09IFJFVFVSTl9SRUdOVU0KKy0gICAgICAgICAgICAgIHx8IGkg PT0gQkFTRV9SRUdOVU0KKy0gICAgICAgICAgICAgIHx8IChmbGFnX3BpYyAmJiBpID09IChpbnQp UElDX09GRlNFVF9UQUJMRV9SRUdOVU0pKQorLQkgICAgY29udGludWU7CistCistCSAgaWYgKGds b2JhbF9yZWdzW2ldKQorKwkgIGlmIChnbG9iYWxfbm90X3NwZWNpYWxfcmVnbm9fcCAoaSkpCisg CSAgICB7CisgCSAgICAgIGFkZHIgPSBwbHVzX2NvbnN0YW50IChmcmFtZV9wb2ludGVyLAorIAkJ CQkgICAgb2Zmc2V0ICsgY2Z1bl9mcmFtZV9sYXlvdXQuZ3Byc19vZmZzZXQgCitAQCAtODAyOSw2 ICs4MDU4LDEwIEBAIHMzOTBfZW1pdF9lcGlsb2d1ZSAoYm9vbCBzaWJjYWxsKQorIAkgICAgICBz ZXRfbWVtX2FsaWFzX3NldCAoYWRkciwgZ2V0X2ZyYW1lX2FsaWFzX3NldCAoKSk7CisgCSAgICAg IGVtaXRfbW92ZV9pbnNuIChhZGRyLCBnZW5fcnR4X1JFRyAoUG1vZGUsIGkpKTsKKyAJICAgIH0K KysJICBlbHNlCisrCSAgICBjZmFfcmVzdG9yZXMKKysJICAgICAgPSBhbGxvY19FWFBSX0xJU1Qg KFJFR19DRkFfUkVTVE9SRSwKKysJCQkJIGdlbl9ydHhfUkVHIChQbW9kZSwgaSksIGNmYV9yZXN0 b3Jlcyk7CisgCX0KKyAKKyAgICAgICBpZiAoISBzaWJjYWxsKQorQEAgLTgwNjMsNyArODA5Niwx MSBAQCBzMzkwX2VtaXRfZXBpbG9ndWUgKGJvb2wgc2liY2FsbCkKKyAJCQkgICAqIFVOSVRTX1BF Ul9XT1JELAorIAkJCSAgIGNmdW5fZnJhbWVfbGF5b3V0LmZpcnN0X3Jlc3RvcmVfZ3ByLAorIAkJ CSAgIGNmdW5fZnJhbWVfbGF5b3V0Lmxhc3RfcmVzdG9yZV9ncHIpOworLSAgICAgIGVtaXRfaW5z biAoaW5zbik7CisrICAgICAgaW5zbiA9IGVtaXRfaW5zbiAoaW5zbik7CisrICAgICAgUkVHX05P VEVTIChpbnNuKSA9IGNmYV9yZXN0b3JlczsKKysgICAgICBhZGRfcmVnX25vdGUgKGluc24sIFJF R19DRkFfREVGX0NGQSwKKysJCSAgICBwbHVzX2NvbnN0YW50IChzdGFja19wb2ludGVyX3J0eCwg U1RBQ0tfUE9JTlRFUl9PRkZTRVQpKTsKKysgICAgICBSVFhfRlJBTUVfUkVMQVRFRF9QIChpbnNu KSA9IDE7CisgICAgIH0KKyAKKyAgIGlmICghIHNpYmNhbGwpCistLS0gZ2NjL2NvbmZpZy9iZmlu L2JmaW4ubWQuamoJMjAwOS0wMy0wNCAxMjoxNToyOC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnY2Mv Y29uZmlnL2JmaW4vYmZpbi5tZAkyMDA5LTA2LTA5IDA4OjU4OjA1LjAwMDAwMDAwMCArMDIwMAor QEAgLTE0MSw4ICsxNDEsNyBAQCAoZGVmaW5lX2NvbnN0YW50cworICAgIChVTlNQRUNfT05FUyAx MildKQorIAorIChkZWZpbmVfY29uc3RhbnRzCistICBbKFVOU1BFQ19WT0xBVElMRV9FSF9SRVRV Uk4gMCkKKy0gICAoVU5TUEVDX1ZPTEFUSUxFX0NTWU5DIDEpCisrICBbKFVOU1BFQ19WT0xBVElM RV9DU1lOQyAxKQorICAgIChVTlNQRUNfVk9MQVRJTEVfU1NZTkMgMikKKyAgICAoVU5TUEVDX1ZP TEFUSUxFX0xPQURfRlVOQ0RFU0MgMykKKyAgICAoVU5TUEVDX1ZPTEFUSUxFX1NUT1JFX0VIX0hB TkRMRVIgNCkKK0BAIC0yNzQwLDggKzI3MzksNyBAQCAoZGVmaW5lX2V4cGFuZCAic2liY2FsbF9l cGlsb2d1ZSIKKyAgICJiZmluX2V4cGFuZF9lcGlsb2d1ZSAoMCwgMCwgMSk7IERPTkU7IikKKyAK KyAoZGVmaW5lX2V4cGFuZCAiZWhfcmV0dXJuIgorLSAgWyh1bnNwZWNfdm9sYXRpbGUgWyhtYXRj aF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKV0KKy0JCSAgICBVTlNQRUNfVk9M QVRJTEVfRUhfUkVUVVJOKV0KKysgIFsodXNlIChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVy X29wZXJhbmQiICIiKSldCisgICAiIgorIHsKKyAgIGVtaXRfaW5zbiAoZ2VuX2VoX3N0b3JlX2hh bmRsZXIgKEVIX1JFVFVSTl9IQU5ETEVSX1JUWCwgb3BlcmFuZHNbMF0pKTsKK0BAIC0yNzU5LDEx ICsyNzU3LDEwIEBAIChkZWZpbmVfaW5zbiAiZWhfc3RvcmVfaGFuZGxlciIKKyAgIFsoc2V0X2F0 dHIgInR5cGUiICJtY3N0IildKQorIAorIChkZWZpbmVfaW5zbl9hbmRfc3BsaXQgImVoX3JldHVy bl9pbnRlcm5hbCIKKy0gIFsoc2V0IChwYykKKy0JKHVuc3BlY192b2xhdGlsZSBbKHJlZzpTSSBS RUdfUDIpXSBVTlNQRUNfVk9MQVRJTEVfRUhfUkVUVVJOKSldCisrICBbKGVoX3JldHVybildCisg ICAiIgorICAgIiMiCistICAicmVsb2FkX2NvbXBsZXRlZCIKKysgICJlcGlsb2d1ZV9jb21wbGV0 ZWQiCisgICBbKGNvbnN0X2ludCAxKV0KKyAgICJiZmluX2V4cGFuZF9lcGlsb2d1ZSAoMSwgMSwg MCk7IERPTkU7IikKKyAKKy0tLSBnY2MvZHdhcmYyb3V0LmMuamoJMjAwOS0wNi0wOSAwODoxMzo1 OC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnY2MvZHdhcmYyb3V0LmMJMjAwOS0wNi0wOSAwOToyMjo1 NS4wMDAwMDAwMDAgKzAyMDAKK0BAIC0yNTAsNyArMjUwLDggQEAgdHlwZWRlZiBzdHJ1Y3QgY2Zh X2xvYyBHVFkoKCkpCisgICBIT1NUX1dJREVfSU5UIG9mZnNldDsKKyAgIEhPU1RfV0lERV9JTlQg YmFzZV9vZmZzZXQ7CisgICB1bnNpZ25lZCBpbnQgcmVnOworLSAgaW50IGluZGlyZWN0OyAgICAg ICAgICAgIC8qIDEgaWYgQ0ZBIGlzIGFjY2Vzc2VkIHZpYSBhIGRlcmVmZXJlbmNlLiAgKi8KKysg IEJPT0xfQklURklFTEQgaW5kaXJlY3QgOiAxOyAgLyogMSBpZiBDRkEgaXMgYWNjZXNzZWQgdmlh IGEgZGVyZWZlcmVuY2UuICAqLworKyAgQk9PTF9CSVRGSUVMRCBpbl91c2UgOiAxOyAgICAvKiAx IGlmIGEgc2F2ZWQgY2ZhIGlzIHN0b3JlZCBoZXJlLiAgKi8KKyB9IGR3X2NmYV9sb2NhdGlvbjsK KyAKKyAvKiBBbGwgY2FsbCBmcmFtZSBkZXNjcmlwdGlvbnMgKEZERSdzKSBpbiB0aGUgR0NDIGdl bmVyYXRlZCBEV0FSRgorQEAgLTQwOSw3ICs0MTAsNyBAQCBzdGF0aWMgY29uc3QgY2hhciAqZHdh cmZfY2ZpX25hbWUgKHVuc2lnCisgc3RhdGljIGR3X2NmaV9yZWYgbmV3X2NmaSAodm9pZCk7Cisg c3RhdGljIHZvaWQgYWRkX2NmaSAoZHdfY2ZpX3JlZiAqLCBkd19jZmlfcmVmKTsKKyBzdGF0aWMg dm9pZCBhZGRfZmRlX2NmaSAoY29uc3QgY2hhciAqLCBkd19jZmlfcmVmKTsKKy1zdGF0aWMgdm9p ZCBsb29rdXBfY2ZhXzEgKGR3X2NmaV9yZWYsIGR3X2NmYV9sb2NhdGlvbiAqKTsKKytzdGF0aWMg dm9pZCBsb29rdXBfY2ZhXzEgKGR3X2NmaV9yZWYsIGR3X2NmYV9sb2NhdGlvbiAqLCBkd19jZmFf bG9jYXRpb24gKik7Cisgc3RhdGljIHZvaWQgbG9va3VwX2NmYSAoZHdfY2ZhX2xvY2F0aW9uICop OworIHN0YXRpYyB2b2lkIHJlZ19zYXZlIChjb25zdCBjaGFyICosIHVuc2lnbmVkLCB1bnNpZ25l ZCwgSE9TVF9XSURFX0lOVCk7CisgI2lmZGVmIERXQVJGMl9VTldJTkRfSU5GTworQEAgLTY3Myw3 ICs2NzQsMTAgQEAgYWRkX2NmaSAoZHdfY2ZpX3JlZiAqbGlzdF9oZWFkLCBkd19jZmlfcgorIAor ICAgLyogV2hlbiBEUkFQIGlzIHVzZWQsIENGQSBpcyBkZWZpbmVkIHdpdGggYW4gZXhwcmVzc2lv bi4gIFJlZGVmaW5lCisgICAgICBDRkEgbWF5IGxlYWQgdG8gYSBkaWZmZXJlbnQgQ0ZBIHZhbHVl LiAgICovCistICBpZiAoZmRlICYmIGZkZS0+ZHJhcF9yZWcgIT0gSU5WQUxJRF9SRUdOVU0pCisr ICAvKiA/Pz8gT2YgY291cnNlLCB0aGlzIGhldXJpc3RpYyBmYWlscyB3aGVuIHdlJ3JlIGFubm90 YXRpbmcgZXBpbG9ndWVzLAorKyAgICAgYmVjYXVzZSBvZiBjb3Vyc2Ugd2UnbGwgYWx3YXlzIHdh bnQgdG8gcmVkZWZpbmUgdGhlIENGQSBiYWNrIHRvIHRoZQorKyAgICAgc3RhY2sgcG9pbnRlciBv biB0aGUgd2F5IG91dC4gIFdoZXJlIHNob3VsZCB3ZSBtb3ZlIHRoaXMgY2hlY2s/ICAqLworKyAg aWYgKDAgJiYgZmRlICYmIGZkZS0+ZHJhcF9yZWcgIT0gSU5WQUxJRF9SRUdOVU0pCisgICAgIHN3 aXRjaCAoY2ZpLT5kd19jZmlfb3BjKQorICAgICAgIHsKKyAgICAgICAgIGNhc2UgRFdfQ0ZBX2Rl Zl9jZmFfcmVnaXN0ZXI6CitAQCAtNzE4LDEzICs3MjIsMjkgQEAgZHdhcmYyb3V0X2NmaV9sYWJl bCAoYm9vbCBmb3JjZSkKKyAgIHJldHVybiBsYWJlbDsKKyB9CisgCisrLyogVHJ1ZSBpZiByZW1l bWJlcl9zdGF0ZSBzaG91bGQgYmUgZW1pdHRlZCBiZWZvcmUgZm9sbG93aW5nIENGSSBkaXJlY3Rp dmUuICAqLworK3N0YXRpYyBib29sIGVtaXRfY2ZhX3JlbWVtYmVyOworKworIC8qIEFkZCBDRkkg dG8gdGhlIGN1cnJlbnQgZmRlIGF0IHRoZSBQQyB2YWx1ZSBpbmRpY2F0ZWQgYnkgTEFCRUwgaWYg c3BlY2lmaWVkLAorICAgIG9yIHRvIHRoZSBDSUUgaWYgTEFCRUwgaXMgTlVMTC4gICovCisgCisg c3RhdGljIHZvaWQKKyBhZGRfZmRlX2NmaSAoY29uc3QgY2hhciAqbGFiZWwsIGR3X2NmaV9yZWYg Y2ZpKQorIHsKKy0gIGR3X2NmaV9yZWYgKmxpc3RfaGVhZCA9ICZjaWVfY2ZpX2hlYWQ7CisrICBk d19jZmlfcmVmICpsaXN0X2hlYWQ7CisrCisrICBpZiAoZW1pdF9jZmFfcmVtZW1iZXIpCisrICAg IHsKKysgICAgICBkd19jZmlfcmVmIGNmaV9yZW1lbWJlcjsKKysKKysgICAgICAvKiBFbWl0IHRo ZSBzdGF0ZSBzYXZlLiAgKi8KKysgICAgICBlbWl0X2NmYV9yZW1lbWJlciA9IGZhbHNlOworKyAg ICAgIGNmaV9yZW1lbWJlciA9IG5ld19jZmkgKCk7IAorKyAgICAgIGNmaV9yZW1lbWJlci0+ZHdf Y2ZpX29wYyA9IERXX0NGQV9yZW1lbWJlcl9zdGF0ZTsKKysgICAgICBhZGRfZmRlX2NmaSAobGFi ZWwsIGNmaV9yZW1lbWJlcik7CisrICAgIH0KKysKKysgIGxpc3RfaGVhZCA9ICZjaWVfY2ZpX2hl YWQ7CisgCisgICBpZiAoZHdhcmYyb3V0X2RvX2NmaV9hc20gKCkpCisgICAgIHsKK0BAIC04Mjgs NyArODQ4LDcgQEAgYWRkX2ZkZV9jZmkgKGNvbnN0IGNoYXIgKmxhYmVsLCBkd19jZmlfcgorIC8q IFN1YnJvdXRpbmUgb2YgbG9va3VwX2NmYS4gICovCisgCisgc3RhdGljIHZvaWQKKy1sb29rdXBf Y2ZhXzEgKGR3X2NmaV9yZWYgY2ZpLCBkd19jZmFfbG9jYXRpb24gKmxvYykKKytsb29rdXBfY2Zh XzEgKGR3X2NmaV9yZWYgY2ZpLCBkd19jZmFfbG9jYXRpb24gKmxvYywgZHdfY2ZhX2xvY2F0aW9u ICpyZW1lbWJlcikKKyB7CisgICBzd2l0Y2ggKGNmaS0+ZHdfY2ZpX29wYykKKyAgICAgeworQEAg LTg0Nyw2ICs4NjcsMTggQEAgbG9va3VwX2NmYV8xIChkd19jZmlfcmVmIGNmaSwgZHdfY2ZhX2xv YworICAgICBjYXNlIERXX0NGQV9kZWZfY2ZhX2V4cHJlc3Npb246CisgICAgICAgZ2V0X2NmYV9m cm9tX2xvY19kZXNjciAobG9jLCBjZmktPmR3X2NmaV9vcHJuZDEuZHdfY2ZpX2xvYyk7CisgICAg ICAgYnJlYWs7CisrCisrICAgIGNhc2UgRFdfQ0ZBX3JlbWVtYmVyX3N0YXRlOgorKyAgICAgIGdj Y19hc3NlcnQgKCFyZW1lbWJlci0+aW5fdXNlKTsKKysgICAgICAqcmVtZW1iZXIgPSAqbG9jOwor KyAgICAgIHJlbWVtYmVyLT5pbl91c2UgPSAxOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIERX X0NGQV9yZXN0b3JlX3N0YXRlOgorKyAgICAgIGdjY19hc3NlcnQgKHJlbWVtYmVyLT5pbl91c2Up OworKyAgICAgICpsb2MgPSAqcmVtZW1iZXI7CisrICAgICAgcmVtZW1iZXItPmluX3VzZSA9IDA7 CisrICAgICAgYnJlYWs7CisrCisgICAgIGRlZmF1bHQ6CisgICAgICAgYnJlYWs7CisgICAgIH0K K0BAIC04NTksMTkgKzg5MSwxOSBAQCBsb29rdXBfY2ZhIChkd19jZmFfbG9jYXRpb24gKmxvYykK KyB7CisgICBkd19jZmlfcmVmIGNmaTsKKyAgIGR3X2ZkZV9yZWYgZmRlOworKyAgZHdfY2ZhX2xv Y2F0aW9uIHJlbWVtYmVyOworIAorKyAgbWVtc2V0IChsb2MsIDAsIHNpemVvZiAoKmxvYykpOwor ICAgbG9jLT5yZWcgPSBJTlZBTElEX1JFR05VTTsKKy0gIGxvYy0+b2Zmc2V0ID0gMDsKKy0gIGxv Yy0+aW5kaXJlY3QgPSAwOworLSAgbG9jLT5iYXNlX29mZnNldCA9IDA7CisrICByZW1lbWJlciA9 ICpsb2M7CisgCisgICBmb3IgKGNmaSA9IGNpZV9jZmlfaGVhZDsgY2ZpOyBjZmkgPSBjZmktPmR3 X2NmaV9uZXh0KQorLSAgICBsb29rdXBfY2ZhXzEgKGNmaSwgbG9jKTsKKysgICAgbG9va3VwX2Nm YV8xIChjZmksIGxvYywgJnJlbWVtYmVyKTsKKyAKKyAgIGZkZSA9IGN1cnJlbnRfZmRlICgpOwor ICAgaWYgKGZkZSkKKyAgICAgZm9yIChjZmkgPSBmZGUtPmR3X2ZkZV9jZmk7IGNmaTsgY2ZpID0g Y2ZpLT5kd19jZmlfbmV4dCkKKy0gICAgICBsb29rdXBfY2ZhXzEgKGNmaSwgbG9jKTsKKysgICAg ICBsb29rdXBfY2ZhXzEgKGNmaSwgbG9jLCAmcmVtZW1iZXIpOworIH0KKyAKKyAvKiBUaGUgY3Vy cmVudCBydWxlIGZvciBjYWxjdWxhdGluZyB0aGUgRFdBUkYyIGNhbm9uaWNhbCBmcmFtZSBhZGRy ZXNzLiAgKi8KK0BAIC04ODEsNiArOTEzLDkgQEAgc3RhdGljIGR3X2NmYV9sb2NhdGlvbiBjZmE7 CisgICAgZnJvbSB0aGUgQ0ZBLiAgKi8KKyBzdGF0aWMgZHdfY2ZhX2xvY2F0aW9uIGNmYV9zdG9y ZTsKKyAKKysvKiBUaGUgY3VycmVudCBzYXZlIGxvY2F0aW9uIGFyb3VuZCBhbiBlcGlsb2d1ZS4g ICovCisrc3RhdGljIGR3X2NmYV9sb2NhdGlvbiBjZmFfcmVtZW1iZXI7CisrCisgLyogVGhlIHJ1 bm5pbmcgdG90YWwgb2YgdGhlIHNpemUgb2YgYXJndW1lbnRzIHB1c2hlZCBvbnRvIHRoZSBzdGFj ay4gICovCisgc3RhdGljIEhPU1RfV0lERV9JTlQgYXJnc19zaXplOworIAorQEAgLTEyNjYsOCAr MTMwMSw3IEBAIGNvbXB1dGVfYmFycmllcl9hcmdzX3NpemVfMSAocnR4IGluc24sIEgKKyAKKyAg IGlmICghIFJUWF9GUkFNRV9SRUxBVEVEX1AgKGluc24pKQorICAgICB7CistICAgICAgaWYgKHBy b2xvZ3VlX2VwaWxvZ3VlX2NvbnRhaW5zIChpbnNuKQorLQkgIHx8IHNpYmNhbGxfZXBpbG9ndWVf Y29udGFpbnMgKGluc24pKQorKyAgICAgIGlmIChwcm9sb2d1ZV9lcGlsb2d1ZV9jb250YWlucyAo aW5zbikpCisgCS8qIE5vdGhpbmcgKi87CisgICAgICAgZWxzZSBpZiAoR0VUX0NPREUgKFBBVFRF Uk4gKGluc24pKSA9PSBTRVQpCisgCW9mZnNldCA9IHN0YWNrX2FkanVzdF9vZmZzZXQgKFBBVFRF Uk4gKGluc24pLCBjdXJfYXJnc19zaXplLCAwKTsKK0BAIC0xNDQwLDcgKzE0NzQsNyBAQCBkd2Fy ZjJvdXRfc3RhY2tfYWRqdXN0IChydHggaW5zbiwgYm9vbCBhCisgICAgICB3aXRoIHRoaXMgZnVu Y3Rpb24uICBQcm9wZXIgc3VwcG9ydCB3b3VsZCByZXF1aXJlIGFsbCBmcmFtZS1yZWxhdGVkCisg ICAgICBpbnNucyB0byBiZSBtYXJrZWQsIGFuZCB0byBiZSBhYmxlIHRvIGhhbmRsZSBzYXZpbmcg c3RhdGUgYXJvdW5kCisgICAgICBlcGlsb2d1ZXMgdGV4dHVhbGx5IGluIHRoZSBtaWRkbGUgb2Yg dGhlIGZ1bmN0aW9uLiAgKi8KKy0gIGlmIChwcm9sb2d1ZV9lcGlsb2d1ZV9jb250YWlucyAoaW5z bikgfHwgc2liY2FsbF9lcGlsb2d1ZV9jb250YWlucyAoaW5zbikpCisrICBpZiAocHJvbG9ndWVf ZXBpbG9ndWVfY29udGFpbnMgKGluc24pKQorICAgICByZXR1cm47CisgCisgICAvKiBJZiBJTlNO IGlzIGFuIGluc3RydWN0aW9uIGZyb20gdGFyZ2V0IG9mIGFuIGFubnVsbGVkIGJyYW5jaCwgdGhl CitAQCAtMTcxNSw2ICsxNzQ5LDE1NiBAQCByZWdfc2F2ZWRfaW4gKHJ0eCByZWcpCisgICAgdmFs dWUsIG5vdCBhbiBvZmZzZXQuICAqLworIHN0YXRpYyBkd19jZmFfbG9jYXRpb24gY2ZhX3RlbXA7 CisgCisrLyogQSBzdWJyb3V0aW5lIG9mIGR3YXJmMm91dF9mcmFtZV9kZWJ1ZywgcHJvY2VzcyBh IFJFR19ERUZfQ0ZBIG5vdGUuICAqLworKworK3N0YXRpYyB2b2lkCisrZHdhcmYyb3V0X2ZyYW1l X2RlYnVnX2RlZl9jZmEgKHJ0eCBwYXQsIGNvbnN0IGNoYXIgKmxhYmVsKQorK3sKKysgIG1lbXNl dCAoJmNmYSwgMCwgc2l6ZW9mIChjZmEpKTsKKysKKysgIHN3aXRjaCAoR0VUX0NPREUgKHBhdCkp CisrICAgIHsKKysgICAgY2FzZSBQTFVTOgorKyAgICAgIGNmYS5yZWcgPSBSRUdOTyAoWEVYUCAo cGF0LCAwKSk7CisrICAgICAgY2ZhLm9mZnNldCA9IElOVFZBTCAoWEVYUCAocGF0LCAxKSk7Cisr ICAgICAgYnJlYWs7CisrCisrICAgIGNhc2UgUkVHOgorKyAgICAgIGNmYS5yZWcgPSBSRUdOTyAo cGF0KTsKKysgICAgICBicmVhazsKKysKKysgICAgZGVmYXVsdDoKKysgICAgICAvKiBSZWN1cnNl IGFuZCBkZWZpbmUgYW4gZXhwcmVzc2lvbi4gICovCisrICAgICAgZ2NjX3VucmVhY2hhYmxlICgp OworKyAgICB9CisrCisrICBkZWZfY2ZhXzEgKGxhYmVsLCAmY2ZhKTsKKyt9CisrCisrLyogQSBz dWJyb3V0aW5lIG9mIGR3YXJmMm91dF9mcmFtZV9kZWJ1ZywgcHJvY2VzcyBhIFJFR19BREpVU1Rf Q0ZBIG5vdGUuICAqLworKworK3N0YXRpYyB2b2lkCisrZHdhcmYyb3V0X2ZyYW1lX2RlYnVnX2Fk anVzdF9jZmEgKHJ0eCBwYXQsIGNvbnN0IGNoYXIgKmxhYmVsKQorK3sKKysgIHJ0eCBzcmMsIGRl c3Q7CisrCisrICBnY2NfYXNzZXJ0IChHRVRfQ09ERSAocGF0KSA9PSBTRVQpOworKyAgZGVzdCA9 IFhFWFAgKHBhdCwgMCk7CisrICBzcmMgPSBYRVhQIChwYXQsIDEpOworKworKyAgc3dpdGNoIChH RVRfQ09ERSAoc3JjKSkKKysgICAgeworKyAgICBjYXNlIFBMVVM6CisrICAgICAgZ2NjX2Fzc2Vy dCAoUkVHTk8gKFhFWFAgKHNyYywgMCkpID09IGNmYS5yZWcpOworKyAgICAgIGNmYS5vZmZzZXQg LT0gSU5UVkFMIChYRVhQIChzcmMsIDEpKTsKKysgICAgICBicmVhazsKKysKKysgICAgY2FzZSBS RUc6CisrCWJyZWFrOworKworKyAgICBkZWZhdWx0OgorKwlnY2NfdW5yZWFjaGFibGUgKCk7Cisr ICAgIH0KKysKKysgIGNmYS5yZWcgPSBSRUdOTyAoZGVzdCk7CisrICBnY2NfYXNzZXJ0IChjZmEu aW5kaXJlY3QgPT0gMCk7CisrCisrICBkZWZfY2ZhXzEgKGxhYmVsLCAmY2ZhKTsKKyt9CisrCisr LyogQSBzdWJyb3V0aW5lIG9mIGR3YXJmMm91dF9mcmFtZV9kZWJ1ZywgcHJvY2VzcyBhIFJFR19D RkFfT0ZGU0VUIG5vdGUuICAqLworKworK3N0YXRpYyB2b2lkCisrZHdhcmYyb3V0X2ZyYW1lX2Rl YnVnX2NmYV9vZmZzZXQgKHJ0eCBzZXQsIGNvbnN0IGNoYXIgKmxhYmVsKQorK3sKKysgIEhPU1Rf V0lERV9JTlQgb2Zmc2V0OworKyAgcnR4IHNyYywgYWRkciwgc3BhbjsKKysKKysgIHNyYyA9IFhF WFAgKHNldCwgMSk7CisrICBhZGRyID0gWEVYUCAoc2V0LCAwKTsKKysgIGdjY19hc3NlcnQgKE1F TV9QIChhZGRyKSk7CisrICBhZGRyID0gWEVYUCAoYWRkciwgMCk7CisrICAKKysgIC8qIEFzIGRv Y3VtZW50ZWQsIG9ubHkgY29uc2lkZXIgZXh0cmVtZWx5IHNpbXBsZSBhZGRyZXNzZXMuICAqLwor KyAgc3dpdGNoIChHRVRfQ09ERSAoYWRkcikpCisrICAgIHsKKysgICAgY2FzZSBSRUc6CisrICAg ICAgZ2NjX2Fzc2VydCAoUkVHTk8gKGFkZHIpID09IGNmYS5yZWcpOworKyAgICAgIG9mZnNldCA9 IC1jZmEub2Zmc2V0OworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIFBMVVM6CisrICAgICAgZ2Nj X2Fzc2VydCAoUkVHTk8gKFhFWFAgKGFkZHIsIDApKSA9PSBjZmEucmVnKTsKKysgICAgICBvZmZz ZXQgPSBJTlRWQUwgKFhFWFAgKGFkZHIsIDEpKSAtIGNmYS5vZmZzZXQ7CisrICAgICAgYnJlYWs7 CisrICAgIGRlZmF1bHQ6CisrICAgICAgZ2NjX3VucmVhY2hhYmxlICgpOworKyAgICB9CisrCisr ICBzcGFuID0gdGFyZ2V0bS5kd2FyZl9yZWdpc3Rlcl9zcGFuIChzcmMpOworKworKyAgLyogPz8/ IFdlJ2QgbGlrZSB0byB1c2UgcXVldWVfcmVnX3NhdmUsIGJ1dCB3ZSBuZWVkIHRvIGNvbWUgdXAg d2l0aAorKyAgICAgYSBkaWZmZXJlbnQgZmx1c2hpbmcgaGV1cmlzdGljIGZvciBlcGlsb2d1ZXMu ICAqLworKyAgaWYgKCFzcGFuKQorKyAgICByZWdfc2F2ZSAobGFiZWwsIERXQVJGX0ZSQU1FX1JF R05VTSAoUkVHTk8gKHNyYykpLCBJTlZBTElEX1JFR05VTSwgb2Zmc2V0KTsKKysgIGVsc2UKKysg ICAgeworKyAgICAgIC8qIFdlIGhhdmUgYSBQQVJBTExFTCBkZXNjcmliaW5nIHdoZXJlIHRoZSBj b250ZW50cyBvZiBTUkMgbGl2ZS4KKysgICAJIFF1ZXVlIHJlZ2lzdGVyIHNhdmVzIGZvciBlYWNo IHBpZWNlIG9mIHRoZSBQQVJBTExFTC4gICovCisrICAgICAgaW50IHBhcl9pbmRleDsKKysgICAg ICBpbnQgbGltaXQ7CisrICAgICAgSE9TVF9XSURFX0lOVCBzcGFuX29mZnNldCA9IG9mZnNldDsK KysKKysgICAgICBnY2NfYXNzZXJ0IChHRVRfQ09ERSAoc3BhbikgPT0gUEFSQUxMRUwpOworKwor KyAgICAgIGxpbWl0ID0gWFZFQ0xFTiAoc3BhbiwgMCk7CisrICAgICAgZm9yIChwYXJfaW5kZXgg PSAwOyBwYXJfaW5kZXggPCBsaW1pdDsgcGFyX2luZGV4KyspCisrCXsKKysJICBydHggZWxlbSA9 IFhWRUNFWFAgKHNwYW4sIDAsIHBhcl9pbmRleCk7CisrCisrCSAgcmVnX3NhdmUgKGxhYmVsLCBE V0FSRl9GUkFNRV9SRUdOVU0gKFJFR05PIChlbGVtKSksCisrCQkgICAgSU5WQUxJRF9SRUdOVU0s IHNwYW5fb2Zmc2V0KTsKKysJICBzcGFuX29mZnNldCArPSBHRVRfTU9ERV9TSVpFIChHRVRfTU9E RSAoZWxlbSkpOworKwl9CisrICAgIH0KKyt9CisrCisrLyogQSBzdWJyb3V0aW5lIG9mIGR3YXJm Mm91dF9mcmFtZV9kZWJ1ZywgcHJvY2VzcyBhIFJFR19DRkFfUkVHSVNURVIgbm90ZS4gICovCisr Cisrc3RhdGljIHZvaWQKKytkd2FyZjJvdXRfZnJhbWVfZGVidWdfY2ZhX3JlZ2lzdGVyIChydHgg c2V0LCBjb25zdCBjaGFyICpsYWJlbCkKKyt7CisrICBydHggc3JjLCBkZXN0OworKyAgdW5zaWdu ZWQgc3JlZ25vLCBkcmVnbm87CisrCisrICBzcmMgPSBYRVhQIChzZXQsIDEpOworKyAgZGVzdCA9 IFhFWFAgKHNldCwgMCk7CisrCisrICBpZiAoc3JjID09IHBjX3J0eCkKKysgICAgc3JlZ25vID0g RFdBUkZfRlJBTUVfUkVUVVJOX0NPTFVNTjsKKysgIGVsc2UKKysgICAgc3JlZ25vID0gRFdBUkZf RlJBTUVfUkVHTlVNIChSRUdOTyAoc3JjKSk7CisrCisrICBkcmVnbm8gPSBEV0FSRl9GUkFNRV9S RUdOVU0gKFJFR05PIChkZXN0KSk7CisrCisrICAvKiA/Pz8gV2UnZCBsaWtlIHRvIHVzZSBxdWV1 ZV9yZWdfc2F2ZSwgYnV0IHdlIG5lZWQgdG8gY29tZSB1cCB3aXRoCisrICAgICBhIGRpZmZlcmVu dCBmbHVzaGluZyBoZXVyaXN0aWMgZm9yIGVwaWxvZ3Vlcy4gICovCisrICByZWdfc2F2ZSAobGFi ZWwsIHNyZWdubywgZHJlZ25vLCAwKTsKKyt9CisrCisrLyogQSBzdWJyb3V0aW5lIG9mIGR3YXJm Mm91dF9mcmFtZV9kZWJ1ZywgcHJvY2VzcyBhIFJFR19DRkFfUkVTVE9SRSBub3RlLiAgKi8KKysK KytzdGF0aWMgdm9pZAorK2R3YXJmMm91dF9mcmFtZV9kZWJ1Z19jZmFfcmVzdG9yZSAocnR4IHJl ZywgY29uc3QgY2hhciAqbGFiZWwpCisreworKyAgZHdfY2ZpX3JlZiBjZmkgPSBuZXdfY2ZpICgp OworKyAgdW5zaWduZWQgaW50IHJlZ25vID0gRFdBUkZfRlJBTUVfUkVHTlVNIChSRUdOTyAocmVn KSk7CisrCisrICBjZmktPmR3X2NmaV9vcGMgPSAocmVnbm8gJiB+MHgzZiA/IERXX0NGQV9yZXN0 b3JlX2V4dGVuZGVkIDogRFdfQ0ZBX3Jlc3RvcmUpOworKyAgY2ZpLT5kd19jZmlfb3BybmQxLmR3 X2NmaV9yZWdfbnVtID0gcmVnbm87CisrCisrICBhZGRfZmRlX2NmaSAobGFiZWwsIGNmaSk7Cisr fQorKworIC8qIFJlY29yZCBjYWxsIGZyYW1lIGRlYnVnZ2luZyBpbmZvcm1hdGlvbiBmb3IgYW4g ZXhwcmVzc2lvbiBFWFBSLAorICAgIHdoaWNoIGVpdGhlciBzZXRzIFNQIG9yIEZQIChhZGp1c3Rp bmcgaG93IHdlIGNhbGN1bGF0ZSB0aGUgZnJhbWUKKyAgICBhZGRyZXNzKSBvciBzYXZlcyBhIHJl Z2lzdGVyIHRvIHRoZSBzdGFjayBvciBhbm90aGVyIHJlZ2lzdGVyLgorQEAgLTI0MjIsNyArMjYw Niw4IEBAIHZvaWQKKyBkd2FyZjJvdXRfZnJhbWVfZGVidWcgKHJ0eCBpbnNuLCBib29sIGFmdGVy X3ApCisgeworICAgY29uc3QgY2hhciAqbGFiZWw7CistICBydHggc3JjOworKyAgcnR4IG5vdGUs IG47CisrICBib29sIGhhbmRsZWRfb25lID0gZmFsc2U7CisgCisgICBpZiAoaW5zbiA9PSBOVUxM X1JUWCkKKyAgICAgeworQEAgLTI0NjcsMTUgKzI2NTIsMTU0IEBAIGR3YXJmMm91dF9mcmFtZV9k ZWJ1ZyAocnR4IGluc24sIGJvb2wgYWYKKyAgICAgfQorIAorICAgbGFiZWwgPSBkd2FyZjJvdXRf Y2ZpX2xhYmVsIChmYWxzZSk7CistICBzcmMgPSBmaW5kX3JlZ19ub3RlIChpbnNuLCBSRUdfRlJB TUVfUkVMQVRFRF9FWFBSLCBOVUxMX1JUWCk7CistICBpZiAoc3JjKQorLSAgICBpbnNuID0gWEVY UCAoc3JjLCAwKTsKKy0gIGVsc2UKKy0gICAgaW5zbiA9IFBBVFRFUk4gKGluc24pOworIAorKyAg Zm9yIChub3RlID0gUkVHX05PVEVTIChpbnNuKTsgbm90ZTsgbm90ZSA9IFhFWFAgKG5vdGUsIDEp KQorKyAgICBzd2l0Y2ggKFJFR19OT1RFX0tJTkQgKG5vdGUpKQorKyAgICAgIHsKKysgICAgICBj YXNlIFJFR19GUkFNRV9SRUxBVEVEX0VYUFI6CisrCWluc24gPSBYRVhQIChub3RlLCAwKTsKKysJ Z290byBmb3VuZDsKKysKKysgICAgICBjYXNlIFJFR19DRkFfREVGX0NGQToKKysJZHdhcmYyb3V0 X2ZyYW1lX2RlYnVnX2RlZl9jZmEgKFhFWFAgKG5vdGUsIDApLCBsYWJlbCk7CisrCWhhbmRsZWRf b25lID0gdHJ1ZTsKKysJYnJlYWs7CisrCisrICAgICAgY2FzZSBSRUdfQ0ZBX0FESlVTVF9DRkE6 CisrCW4gPSBYRVhQIChub3RlLCAwKTsKKysJaWYgKG4gPT0gTlVMTCkKKysJICB7CisrCSAgICBu ID0gUEFUVEVSTiAoaW5zbik7CisrCSAgICBpZiAoR0VUX0NPREUgKG4pID09IFBBUkFMTEVMKQor KwkgICAgICBuID0gWFZFQ0VYUCAobiwgMCwgMCk7CisrCSAgfQorKwlkd2FyZjJvdXRfZnJhbWVf ZGVidWdfYWRqdXN0X2NmYSAobiwgbGFiZWwpOworKwloYW5kbGVkX29uZSA9IHRydWU7CisrCWJy ZWFrOworKworKyAgICAgIGNhc2UgUkVHX0NGQV9PRkZTRVQ6CisrCW4gPSBYRVhQIChub3RlLCAw KTsKKysJaWYgKG4gPT0gTlVMTCkKKysJICBuID0gc2luZ2xlX3NldCAoaW5zbik7CisrCWR3YXJm Mm91dF9mcmFtZV9kZWJ1Z19jZmFfb2Zmc2V0IChuLCBsYWJlbCk7CisrCWhhbmRsZWRfb25lID0g dHJ1ZTsKKysJYnJlYWs7CisrCisrICAgICAgY2FzZSBSRUdfQ0ZBX1JFR0lTVEVSOgorKwluID0g WEVYUCAobm90ZSwgMCk7CisrCWlmIChuID09IE5VTEwpCisrCSAgeworKwkgICAgbiA9IFBBVFRF Uk4gKGluc24pOworKwkgICAgaWYgKEdFVF9DT0RFIChuKSA9PSBQQVJBTExFTCkKKysJICAgICAg biA9IFhWRUNFWFAgKG4sIDAsIDApOworKwkgIH0KKysJZHdhcmYyb3V0X2ZyYW1lX2RlYnVnX2Nm YV9yZWdpc3RlciAobiwgbGFiZWwpOworKwloYW5kbGVkX29uZSA9IHRydWU7CisrCWJyZWFrOwor KworKyAgICAgIGNhc2UgUkVHX0NGQV9SRVNUT1JFOgorKwluID0gWEVYUCAobm90ZSwgMCk7Cisr CWlmIChuID09IE5VTEwpCisrCSAgeworKwkgICAgbiA9IFBBVFRFUk4gKGluc24pOworKwkgICAg aWYgKEdFVF9DT0RFIChuKSA9PSBQQVJBTExFTCkKKysJICAgICAgbiA9IFhWRUNFWFAgKG4sIDAs IDApOworKwkgICAgbiA9IFhFWFAgKG4sIDApOworKwkgIH0KKysJZHdhcmYyb3V0X2ZyYW1lX2Rl YnVnX2NmYV9yZXN0b3JlIChuLCBsYWJlbCk7CisrCWhhbmRsZWRfb25lID0gdHJ1ZTsKKysJYnJl YWs7CisrCisrICAgICAgZGVmYXVsdDoKKysJYnJlYWs7CisrICAgICAgfQorKyAgaWYgKGhhbmRs ZWRfb25lKQorKyAgICByZXR1cm47CisrCisrICBpbnNuID0gUEFUVEVSTiAoaW5zbik7CisrIGZv dW5kOgorICAgZHdhcmYyb3V0X2ZyYW1lX2RlYnVnX2V4cHIgKGluc24sIGxhYmVsKTsKKyB9Cisg CisrLyogRGV0ZXJtaW5lIGlmIHdlIG5lZWQgdG8gc2F2ZSBhbmQgcmVzdG9yZSBDRkkgaW5mb3Jt YXRpb24gYXJvdW5kIHRoaXMKKysgICBlcGlsb2d1ZS4gIElmIFNJQkNBTEwgaXMgdHJ1ZSwgdGhl biB0aGlzIGlzIGEgc2liY2FsbCBlcGlsb2d1ZS4gIElmCisrICAgd2UgZG8gbmVlZCB0byBzYXZl L3Jlc3RvcmUsIHRoZW4gZW1pdCB0aGUgc2F2ZSBub3csIGFuZCBpbnNlcnQgYQorKyAgIE5PVEVf SU5TTl9DRkFfUkVTVE9SRV9TVEFURSBhdCB0aGUgYXBwcm9wcmlhdGUgcGxhY2UgaW4gdGhlIHN0 cmVhbS4gICovCisrCisrdm9pZAorK2R3YXJmMm91dF9iZWdpbl9lcGlsb2d1ZSAocnR4IGluc24p CisreworKyAgYm9vbCBzYXdfZnJwID0gZmFsc2U7CisrICBydHggaTsKKysKKysgIC8qIFNjYW4g Zm9yd2FyZCB0byB0aGUgcmV0dXJuIGluc24sIG5vdGljaW5nIGlmIHRoZXJlIGFyZSBwb3NzaWJs ZQorKyAgICAgZnJhbWUgcmVsYXRlZCBpbnNucy4gICovCisrICBmb3IgKGkgPSBORVhUX0lOU04g KGluc24pOyBpIDsgaSA9IE5FWFRfSU5TTiAoaSkpCisrICAgIHsKKysgICAgICBpZiAoIUlOU05f UCAoaSkpCisrCWNvbnRpbnVlOworKworKyAgICAgIC8qIExvb2sgZm9yIGJvdGggcmVndWxhciBh bmQgc2liY2FsbHMgdG8gZW5kIHRoZSBibG9jay4gICovCisrICAgICAgaWYgKHJldHVybmp1bXBf cCAoaSkpCisrCWJyZWFrOworKyAgICAgIGlmIChDQUxMX1AgKGkpICYmIFNJQkxJTkdfQ0FMTF9Q IChpKSkKKysJYnJlYWs7CisrCisrICAgICAgaWYgKFJUWF9GUkFNRV9SRUxBVEVEX1AgKGkpKQor KwlzYXdfZnJwID0gdHJ1ZTsKKysgICAgfQorKworKyAgLyogSWYgdGhlIHBvcnQgZG9lc24ndCBl bWl0IGVwaWxvZ3VlIHVud2luZCBpbmZvLCB3ZSBkb24ndCBuZWVkIGEKKysgICAgIHNhdmUvcmVz dG9yZSBwYWlyLiAgKi8KKysgIGlmICghc2F3X2ZycCkKKysgICAgcmV0dXJuOworKworKyAgLyog T3RoZXJ3aXNlLCBzZWFyY2ggZm9yd2FyZCB0byBzZWUgaWYgdGhlIHJldHVybiBpbnNuIHdhcyB0 aGUgbGFzdAorKyAgICAgYmFzaWMgYmxvY2sgb2YgdGhlIGZ1bmN0aW9uLiAgSWYgc28sIHdlIGRv bid0IG5lZWQgc2F2ZS9yZXN0b3JlLiAgKi8KKysgIGdjY19hc3NlcnQgKGkgIT0gTlVMTCk7Cisr ICBpID0gbmV4dF9yZWFsX2luc24gKGkpOworKyAgaWYgKGkgPT0gTlVMTCkKKysgICAgcmV0dXJu OworKworKyAgLyogSW5zZXJ0IHRoZSByZXN0b3JlIGJlZm9yZSB0aGF0IG5leHQgcmVhbCBpbnNu IGluIHRoZSBzdHJlYW0sIGFuZCBiZWZvcmUKKysgICAgIGEgcG90ZW50aWFsIE5PVEVfSU5TTl9F UElMT0dVRV9CRUcgLS0gd2UgZG8gbmVlZCB0aGVzZSBub3RlcyB0byBiZQorKyAgICAgcHJvcGVy bHkgbmVzdGVkLiAgVGhpcyBzaG91bGQgYmUgYWZ0ZXIgYW55IGxhYmVsIG9yIGFsaWdubWVudC4g IFRoaXMKKysgICAgIHdpbGwgYmUgcHVzaGVkIGludG8gdGhlIENGSSBzdHJlYW0gYnkgdGhlIGZ1 bmN0aW9uIGJlbG93LiAgKi8KKysgIHdoaWxlICgxKQorKyAgICB7CisrICAgICAgcnR4IHAgPSBQ UkVWX0lOU04gKGkpOworKyAgICAgIGlmICghTk9URV9QIChwKSkKKysJYnJlYWs7CisrICAgICAg aWYgKE5PVEVfS0lORCAocCkgPT0gTk9URV9JTlNOX0JBU0lDX0JMT0NLKQorKwlicmVhazsKKysg ICAgICBpID0gcDsKKysgICAgfQorKyAgZW1pdF9ub3RlX2JlZm9yZSAoTk9URV9JTlNOX0NGQV9S RVNUT1JFX1NUQVRFLCBpKTsKKysKKysgIGVtaXRfY2ZhX3JlbWVtYmVyID0gdHJ1ZTsKKysKKysg IC8qIEFuZCBlbXVsYXRlIHRoZSBzdGF0ZSBzYXZlLiAgKi8KKysgIGdjY19hc3NlcnQgKCFjZmFf cmVtZW1iZXIuaW5fdXNlKTsKKysgIGNmYV9yZW1lbWJlciA9IGNmYTsKKysgIGNmYV9yZW1lbWJl ci5pbl91c2UgPSAxOworK30KKysKKysvKiBBICJzdWJyb3V0aW5lIiBvZiBkd2FyZjJvdXRfYmVn aW5fZXBpbG9ndWUuICBFbWl0IHRoZSByZXN0b3JlIHJlcXVpcmVkLiAgKi8KKysKKyt2b2lkCisr ZHdhcmYyb3V0X2ZyYW1lX2RlYnVnX3Jlc3RvcmVfc3RhdGUgKHZvaWQpCisreworKyAgZHdfY2Zp X3JlZiBjZmkgPSBuZXdfY2ZpICgpOyAKKysgIGNvbnN0IGNoYXIgKmxhYmVsID0gZHdhcmYyb3V0 X2NmaV9sYWJlbCAoZmFsc2UpOworKworKyAgY2ZpLT5kd19jZmlfb3BjID0gRFdfQ0ZBX3Jlc3Rv cmVfc3RhdGU7CisrICBhZGRfZmRlX2NmaSAobGFiZWwsIGNmaSk7CisrCisrICBnY2NfYXNzZXJ0 IChjZmFfcmVtZW1iZXIuaW5fdXNlKTsKKysgIGNmYSA9IGNmYV9yZW1lbWJlcjsKKysgIGNmYV9y ZW1lbWJlci5pbl91c2UgPSAwOworK30KKysKKyAjZW5kaWYKKyAKKyAvKiBEZXNjcmliZSBmb3Ig dGhlIEdUWSBtYWNoaW5lcnkgd2hhdCBwYXJ0cyBvZiBkd19jZmlfb3BybmQxIGFyZSB1c2VkLiAg Ki8KK0BAIC0yNDg5LDYgKzI4MTMsOCBAQCBkd19jZmlfb3BybmQxX2Rlc2MgKGVudW0gZHdhcmZf Y2FsbF9mcmFtCisgICAgIHsKKyAgICAgY2FzZSBEV19DRkFfbm9wOgorICAgICBjYXNlIERXX0NG QV9HTlVfd2luZG93X3NhdmU6CisrICAgIGNhc2UgRFdfQ0ZBX3JlbWVtYmVyX3N0YXRlOgorKyAg ICBjYXNlIERXX0NGQV9yZXN0b3JlX3N0YXRlOgorICAgICAgIHJldHVybiBkd19jZmlfb3BybmRf dW51c2VkOworIAorICAgICBjYXNlIERXX0NGQV9zZXRfbG9jOgorQEAgLTI1MDMsNiArMjgyOSw3 IEBAIGR3X2NmaV9vcHJuZDFfZGVzYyAoZW51bSBkd2FyZl9jYWxsX2ZyYW0KKyAgICAgY2FzZSBE V19DRkFfZGVmX2NmYToKKyAgICAgY2FzZSBEV19DRkFfb2Zmc2V0X2V4dGVuZGVkX3NmOgorICAg ICBjYXNlIERXX0NGQV9kZWZfY2ZhX3NmOgorKyAgICBjYXNlIERXX0NGQV9yZXN0b3JlOgorICAg ICBjYXNlIERXX0NGQV9yZXN0b3JlX2V4dGVuZGVkOgorICAgICBjYXNlIERXX0NGQV91bmRlZmlu ZWQ6CisgICAgIGNhc2UgRFdfQ0ZBX3NhbWVfdmFsdWU6CitAQCAtMjgyNiw2ICszMTUzLDEzIEBA IG91dHB1dF9jZmlfZGlyZWN0aXZlIChkd19jZmlfcmVmIGNmaSkKKyAJICAgICAgIGNmaS0+ZHdf Y2ZpX29wcm5kMS5kd19jZmlfb2Zmc2V0KTsKKyAgICAgICBicmVhazsKKyAKKysgICAgY2FzZSBE V19DRkFfcmVtZW1iZXJfc3RhdGU6CisrICAgICAgZnByaW50ZiAoYXNtX291dF9maWxlLCAiXHQu Y2ZpX3JlbWVtYmVyX3N0YXRlXG4iKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBEV19DRkFf cmVzdG9yZV9zdGF0ZToKKysgICAgICBmcHJpbnRmIChhc21fb3V0X2ZpbGUsICJcdC5jZmlfcmVz dG9yZV9zdGF0ZVxuIik7CisrICAgICAgYnJlYWs7CisrCisgICAgIGNhc2UgRFdfQ0ZBX0dOVV9h cmdzX3NpemU6CisgICAgICAgZnByaW50ZiAoYXNtX291dF9maWxlLCAiXHQuY2ZpX2VzY2FwZSAw eCV4LCIsIERXX0NGQV9HTlVfYXJnc19zaXplKTsKKyAgICAgICBkdzJfYXNtX291dHB1dF9kYXRh X3VsZWIxMjhfcmF3IChjZmktPmR3X2NmaV9vcHJuZDEuZHdfY2ZpX29mZnNldCk7CitAQCAtMTIx NzMsNiArMTI1MDcsNyBAQCBjb252ZXJ0X2NmYV90b19mYl9sb2NfbGlzdCAoSE9TVF9XSURFX0lO CisgICBkd19jZmlfcmVmIGNmaTsKKyAgIGR3X2NmYV9sb2NhdGlvbiBsYXN0X2NmYSwgbmV4dF9j ZmE7CisgICBjb25zdCBjaGFyICpzdGFydF9sYWJlbCwgKmxhc3RfbGFiZWwsICpzZWN0aW9uOwor KyAgZHdfY2ZhX2xvY2F0aW9uIHJlbWVtYmVyOworIAorICAgZmRlID0gY3VycmVudF9mZGUgKCk7 CisgICBnY2NfYXNzZXJ0IChmZGUgIT0gTlVMTCk7CitAQCAtMTIxODEsMTcgKzEyNTE2LDE2IEBA IGNvbnZlcnRfY2ZhX3RvX2ZiX2xvY19saXN0IChIT1NUX1dJREVfSU4KKyAgIGxpc3RfdGFpbCA9 ICZsaXN0OworICAgbGlzdCA9IE5VTEw7CisgCisrICBtZW1zZXQgKCZuZXh0X2NmYSwgMCwgc2l6 ZW9mIChuZXh0X2NmYSkpOworICAgbmV4dF9jZmEucmVnID0gSU5WQUxJRF9SRUdOVU07CistICBu ZXh0X2NmYS5vZmZzZXQgPSAwOworLSAgbmV4dF9jZmEuaW5kaXJlY3QgPSAwOworLSAgbmV4dF9j ZmEuYmFzZV9vZmZzZXQgPSAwOworKyAgcmVtZW1iZXIgPSBuZXh0X2NmYTsKKyAKKyAgIHN0YXJ0 X2xhYmVsID0gZmRlLT5kd19mZGVfYmVnaW47CisgCisgICAvKiA/Pz8gQmFsZCBhc3N1bXB0aW9u IHRoYXQgdGhlIENJRSBvcGNvZGUgbGlzdCBkb2VzIG5vdCBjb250YWluCisgICAgICBhZHZhbmNl IG9wY29kZXMuICAqLworICAgZm9yIChjZmkgPSBjaWVfY2ZpX2hlYWQ7IGNmaTsgY2ZpID0gY2Zp LT5kd19jZmlfbmV4dCkKKy0gICAgbG9va3VwX2NmYV8xIChjZmksICZuZXh0X2NmYSk7CisrICAg IGxvb2t1cF9jZmFfMSAoY2ZpLCAmbmV4dF9jZmEsICZyZW1lbWJlcik7CisgCisgICBsYXN0X2Nm YSA9IG5leHRfY2ZhOworICAgbGFzdF9sYWJlbCA9IHN0YXJ0X2xhYmVsOworQEAgLTEyMjE4LDE0 ICsxMjU1MiwxMCBAQCBjb252ZXJ0X2NmYV90b19mYl9sb2NfbGlzdCAoSE9TVF9XSURFX0lOCisg CisgICAgICAgY2FzZSBEV19DRkFfYWR2YW5jZV9sb2M6CisgCS8qIFRoZSBlbmNvZGluZyBpcyBj b21wbGV4IGVub3VnaCB0aGF0IHdlIHNob3VsZCBuZXZlciBlbWl0IHRoaXMuICAqLworLSAgICAg IGNhc2UgRFdfQ0ZBX3JlbWVtYmVyX3N0YXRlOgorLSAgICAgIGNhc2UgRFdfQ0ZBX3Jlc3RvcmVf c3RhdGU6CistCS8qIFdlIGRvbid0IGhhbmRsZSB0aGVzZSB0d28gaW4gdGhpcyBmdW5jdGlvbi4g IEl0IHdvdWxkIGJlIHBvc3NpYmxlCistCSAgIGlmIGl0IHdlcmUgdG8gYmUgcmVxdWlyZWQuICAq LworIAlnY2NfdW5yZWFjaGFibGUgKCk7CisgCisgICAgICAgZGVmYXVsdDoKKy0JbG9va3VwX2Nm YV8xIChjZmksICZuZXh0X2NmYSk7CisrCWxvb2t1cF9jZmFfMSAoY2ZpLCAmbmV4dF9jZmEsICZy ZW1lbWJlcik7CisgCWJyZWFrOworICAgICAgIH0KKyAKKy0tLSBnY2MvZnVuY3Rpb24uYy5qagky MDA5LTAzLTE5IDE3OjE3OjAyLjAwMDAwMDAwMCArMDEwMAorKysrIGdjYy9mdW5jdGlvbi5jCTIw MDktMDYtMDkgMDg6NTg6MDQuMDAwMDAwMDAwICswMjAwCitAQCAtMTI0LDEzICsxMjQsMTEgQEAg c3RydWN0IG1hY2hpbmVfZnVuY3Rpb24gKiAoKmluaXRfbWFjaGluZQorIC8qIFRoZSBjdXJyZW50 bHkgY29tcGlsZWQgZnVuY3Rpb24uICAqLworIHN0cnVjdCBmdW5jdGlvbiAqY2Z1biA9IDA7Cisg CistLyogVGhlc2UgYXJyYXlzIHJlY29yZCB0aGUgSU5TTl9VSURzIG9mIHRoZSBwcm9sb2d1ZSBh bmQgZXBpbG9ndWUgaW5zbnMuICAqLworLXN0YXRpYyBWRUMoaW50LGhlYXApICpwcm9sb2d1ZTsK Ky1zdGF0aWMgVkVDKGludCxoZWFwKSAqZXBpbG9ndWU7CistCistLyogQXJyYXkgb2YgSU5TTl9V SURzIHRvIGhvbGQgdGhlIElOU05fVUlEcyBmb3IgZWFjaCBzaWJjYWxsIGVwaWxvZ3VlCistICAg aW4gdGhpcyBmdW5jdGlvbi4gICovCistc3RhdGljIFZFQyhpbnQsaGVhcCkgKnNpYmNhbGxfZXBp bG9ndWU7CisrLyogVGhlc2UgaGFzaGVzIHJlY29yZCB0aGUgcHJvbG9ndWUgYW5kIGVwaWxvZ3Vl IGluc25zLiAgKi8KKytzdGF0aWMgR1RZKChpZl9tYXJrZWQgKCJnZ2NfbWFya2VkX3AiKSwgcGFy YW1faXMgKHN0cnVjdCBydHhfZGVmKSkpCisrICBodGFiX3QgcHJvbG9ndWVfaW5zbl9oYXNoOwor K3N0YXRpYyBHVFkoKGlmX21hcmtlZCAoImdnY19tYXJrZWRfcCIpLCBwYXJhbV9pcyAoc3RydWN0 IHJ0eF9kZWYpKSkKKysgIGh0YWJfdCBlcGlsb2d1ZV9pbnNuX2hhc2g7CisgDAorIC8qIEZvcndh cmQgZGVjbGFyYXRpb25zLiAgKi8KKyAKK0BAIC0xNDMsOCArMTQxLDggQEAgc3RhdGljIHRyZWUg KmdldF9ibG9ja192ZWN0b3IgKHRyZWUsIGludAorIGV4dGVybiB0cmVlIGRlYnVnX2ZpbmRfdmFy X2luX2Jsb2NrX3RyZWUgKHRyZWUsIHRyZWUpOworIC8qIFdlIGFsd2F5cyBkZWZpbmUgYHJlY29y ZF9pbnNucycgZXZlbiBpZiBpdCdzIG5vdCB1c2VkIHNvIHRoYXQgd2UKKyAgICBjYW4gYWx3YXlz IGV4cG9ydCBgcHJvbG9ndWVfZXBpbG9ndWVfY29udGFpbnMnLiAgKi8KKy1zdGF0aWMgdm9pZCBy ZWNvcmRfaW5zbnMgKHJ0eCwgVkVDKGludCxoZWFwKSAqKikgQVRUUklCVVRFX1VOVVNFRDsKKy1z dGF0aWMgaW50IGNvbnRhaW5zIChjb25zdF9ydHgsIFZFQyhpbnQsaGVhcCkgKiopOworK3N0YXRp YyB2b2lkIHJlY29yZF9pbnNucyAocnR4LCBydHgsIGh0YWJfdCAqKSBBVFRSSUJVVEVfVU5VU0VE OworK3N0YXRpYyBib29sIGNvbnRhaW5zIChjb25zdF9ydHgsIGh0YWJfdCk7CisgI2lmZGVmIEhB VkVfcmV0dXJuCisgc3RhdGljIHZvaWQgZW1pdF9yZXR1cm5faW50b19ibG9jayAoYmFzaWNfYmxv Y2spOworICNlbmRpZgorQEAgLTIwNyw5ICsyMDUsOSBAQCBmcmVlX2FmdGVyX3BhcnNpbmcgKHN0 cnVjdCBmdW5jdGlvbiAqZikKKyB2b2lkCisgZnJlZV9hZnRlcl9jb21waWxhdGlvbiAoc3RydWN0 IGZ1bmN0aW9uICpmKQorIHsKKy0gIFZFQ19mcmVlIChpbnQsIGhlYXAsIHByb2xvZ3VlKTsKKy0g IFZFQ19mcmVlIChpbnQsIGhlYXAsIGVwaWxvZ3VlKTsKKy0gIFZFQ19mcmVlIChpbnQsIGhlYXAs IHNpYmNhbGxfZXBpbG9ndWUpOworKyAgcHJvbG9ndWVfaW5zbl9oYXNoID0gTlVMTDsKKysgIGVw aWxvZ3VlX2luc25faGFzaCA9IE5VTEw7CisrCisgICBpZiAoY3J0bC0+ZW1pdC5yZWdub19wb2lu dGVyX2FsaWduKQorICAgICBmcmVlIChjcnRsLT5lbWl0LnJlZ25vX3BvaW50ZXJfYWxpZ24pOwor IAorQEAgLTQxOTgsMTggKzQxOTYsMTEgQEAgaW5pdF9mdW5jdGlvbl9zdGFydCAodHJlZSBzdWJy KQorICAgICB3YXJuaW5nIChPUFRfV2FnZ3JlZ2F0ZV9yZXR1cm4sICJmdW5jdGlvbiByZXR1cm5z IGFuIGFnZ3JlZ2F0ZSIpOworIH0KKyAKKy0vKiBNYWtlIHN1cmUgYWxsIHZhbHVlcyB1c2VkIGJ5 IHRoZSBvcHRpbWl6YXRpb24gcGFzc2VzIGhhdmUgc2FuZQorLSAgIGRlZmF1bHRzLiAgKi8KKysv KiBNYWtlIHN1cmUgYWxsIHZhbHVlcyB1c2VkIGJ5IHRoZSBvcHRpbWl6YXRpb24gcGFzc2VzIGhh dmUgc2FuZSBkZWZhdWx0cy4gICovCisgdW5zaWduZWQgaW50CisgaW5pdF9mdW5jdGlvbl9mb3Jf Y29tcGlsYXRpb24gKHZvaWQpCisgeworICAgcmVnX3JlbnVtYmVyID0gMDsKKy0KKy0gIC8qIE5v IHByb2xvZ3VlL2VwaWxvZ3VlIGluc25zIHlldC4gIE1ha2Ugc3VyZSB0aGF0IHRoZXNlIHZlY3Rv cnMgYXJlCistICAgICBlbXB0eS4gICovCistICBnY2NfYXNzZXJ0IChWRUNfbGVuZ3RoIChpbnQs IHByb2xvZ3VlKSA9PSAwKTsKKy0gIGdjY19hc3NlcnQgKFZFQ19sZW5ndGggKGludCwgZXBpbG9n dWUpID09IDApOworLSAgZ2NjX2Fzc2VydCAoVkVDX2xlbmd0aCAoaW50LCBzaWJjYWxsX2VwaWxv Z3VlKSA9PSAwKTsKKyAgIHJldHVybiAwOworIH0KKyAKK0BAIC00ODc1LDE2ICs0ODY2LDQyIEBA IGdldF9hcmdfcG9pbnRlcl9zYXZlX2FyZWEgKHZvaWQpCisgICByZXR1cm4gcmV0OworIH0KKyAM CistLyogRXh0ZW5kIGEgdmVjdG9yIHRoYXQgcmVjb3JkcyB0aGUgSU5TTl9VSURzIG9mIElOU05T CistICAgKGEgbGlzdCBvZiBvbmUgb3IgbW9yZSBpbnNucykuICAqLworKy8qIEFkZCBhIGxpc3Qg b2YgSU5TTlMgdG8gdGhlIGhhc2ggSEFTSFAsIHBvc3NpYmx5IGFsbG9jYXRpbmcgSEFTSFAKKysg ICBmb3IgdGhlIGZpcnN0IHRpbWUuICAqLworIAorIHN0YXRpYyB2b2lkCistcmVjb3JkX2luc25z IChydHggaW5zbnMsIFZFQyhpbnQsaGVhcCkgKip2ZWNwKQorK3JlY29yZF9pbnNucyAocnR4IGlu c25zLCBydHggZW5kLCBodGFiX3QgKmhhc2hwKQorIHsKKyAgIHJ0eCB0bXA7CisrICBodGFiX3Qg aGFzaCA9ICpoYXNocDsKKysKKysgIGlmIChoYXNoID09IE5VTEwpCisrICAgICpoYXNocCA9IGhh c2gKKysgICAgICA9IGh0YWJfY3JlYXRlX2dnYyAoMTcsIGh0YWJfaGFzaF9wb2ludGVyLCBodGFi X2VxX3BvaW50ZXIsIE5VTEwpOworIAorLSAgZm9yICh0bXAgPSBpbnNuczsgdG1wICE9IE5VTExf UlRYOyB0bXAgPSBORVhUX0lOU04gKHRtcCkpCistICAgIFZFQ19zYWZlX3B1c2ggKGludCwgaGVh cCwgKnZlY3AsIElOU05fVUlEICh0bXApKTsKKysgIGZvciAodG1wID0gaW5zbnM7IHRtcCAhPSBl bmQ7IHRtcCA9IE5FWFRfSU5TTiAodG1wKSkKKysgICAgeworKyAgICAgIHZvaWQgKipzbG90ID0g aHRhYl9maW5kX3Nsb3QgKGhhc2gsIHRtcCwgSU5TRVJUKTsKKysgICAgICBnY2NfYXNzZXJ0ICgq c2xvdCA9PSBOVUxMKTsKKysgICAgICAqc2xvdCA9IHRtcDsKKysgICAgfQorK30KKysKKysvKiBJ TlNOIGhhcyBiZWVuIGR1cGxpY2F0ZWQgYXMgQ09QWSwgYXMgcGFydCBvZiBkdXBpbmcgYSBiYXNp YyBibG9jay4KKysgICBJZiBJTlNOIGlzIGFuIGVwaWxvZ3VlIGluc24sIHRoZW4gcmVjb3JkIENP UFkgYXMgZXBpbG9ndWUgYXMgd2VsbC4gICovCisrCisrdm9pZAorK21heWJlX2NvcHlfZXBpbG9n dWVfaW5zbiAocnR4IGluc24sIHJ0eCBjb3B5KQorK3sKKysgIHZvaWQgKipzbG90OworKworKyAg aWYgKGVwaWxvZ3VlX2luc25faGFzaCA9PSBOVUxMCisrICAgICAgfHwgaHRhYl9maW5kIChlcGls b2d1ZV9pbnNuX2hhc2gsIGluc24pID09IE5VTEwpCisrICAgIHJldHVybjsKKysKKysgIHNsb3Qg PSBodGFiX2ZpbmRfc2xvdCAoZXBpbG9ndWVfaW5zbl9oYXNoLCBjb3B5LCBJTlNFUlQpOworKyAg Z2NjX2Fzc2VydCAoKnNsb3QgPT0gTlVMTCk7CisrICAqc2xvdCA9IGNvcHk7CisgfQorIAorIC8q IFNldCB0aGUgbG9jYXRvciBvZiB0aGUgaW5zbiBjaGFpbiBzdGFydGluZyBhdCBJTlNOIHRvIExP Qy4gICovCitAQCAtNDg5OSw1MiArNDkxNiwzNyBAQCBzZXRfaW5zbl9sb2NhdG9ycyAocnR4IGlu c24sIGludCBsb2MpCisgICAgIH0KKyB9CisgCistLyogRGV0ZXJtaW5lIGhvdyBtYW55IElOU05f VUlEcyBpbiBWRUMgYXJlIHBhcnQgb2YgSU5TTi4gIEJlY2F1c2Ugd2UgY2FuCistICAgYmUgcnVu bmluZyBhZnRlciByZW9yZywgU0VRVUVOQ0UgcnRsIGlzIHBvc3NpYmxlLiAgKi8KKysvKiBEZXRl cm1pbmUgaWYgYW55IElOU05zIGluIEhBU0ggYXJlLCBvciBhcmUgcGFydCBvZiwgSU5TTi4gIEJl Y2F1c2UKKysgICB3ZSBjYW4gYmUgcnVubmluZyBhZnRlciByZW9yZywgU0VRVUVOQ0UgcnRsIGlz IHBvc3NpYmxlLiAgKi8KKyAKKy1zdGF0aWMgaW50CistY29udGFpbnMgKGNvbnN0X3J0eCBpbnNu LCBWRUMoaW50LGhlYXApICoqdmVjKQorK3N0YXRpYyBib29sCisrY29udGFpbnMgKGNvbnN0X3J0 eCBpbnNuLCBodGFiX3QgaGFzaCkKKyB7CistICBpbnQgaSwgajsKKysgIGlmIChoYXNoID09IE5V TEwpCisrICAgIHJldHVybiBmYWxzZTsKKyAKKy0gIGlmIChOT05KVU1QX0lOU05fUCAoaW5zbikK Ky0gICAgICAmJiBHRVRfQ09ERSAoUEFUVEVSTiAoaW5zbikpID09IFNFUVVFTkNFKQorKyAgaWYg KE5PTkpVTVBfSU5TTl9QIChpbnNuKSAmJiBHRVRfQ09ERSAoUEFUVEVSTiAoaW5zbikpID09IFNF UVVFTkNFKQorICAgICB7CistICAgICAgaW50IGNvdW50ID0gMDsKKysgICAgICBpbnQgaTsKKyAg ICAgICBmb3IgKGkgPSBYVkVDTEVOIChQQVRURVJOIChpbnNuKSwgMCkgLSAxOyBpID49IDA7IGkt LSkKKy0JZm9yIChqID0gVkVDX2xlbmd0aCAoaW50LCAqdmVjKSAtIDE7IGogPj0gMDsgLS1qKQor LQkgIGlmIChJTlNOX1VJRCAoWFZFQ0VYUCAoUEFUVEVSTiAoaW5zbiksIDAsIGkpKQorLQkgICAg ICA9PSBWRUNfaW5kZXggKGludCwgKnZlYywgaikpCistCSAgICBjb3VudCsrOworLSAgICAgIHJl dHVybiBjb3VudDsKKysJaWYgKGh0YWJfZmluZCAoaGFzaCwgWFZFQ0VYUCAoUEFUVEVSTiAoaW5z biksIDAsIGkpKSkKKysJICByZXR1cm4gdHJ1ZTsKKysgICAgICByZXR1cm4gZmFsc2U7CisgICAg IH0KKy0gIGVsc2UKKy0gICAgeworLSAgICAgIGZvciAoaiA9IFZFQ19sZW5ndGggKGludCwgKnZl YykgLSAxOyBqID49IDA7IC0taikKKy0JaWYgKElOU05fVUlEIChpbnNuKSA9PSBWRUNfaW5kZXgg KGludCwgKnZlYywgaikpCistCSAgcmV0dXJuIDE7CistICAgIH0KKy0gIHJldHVybiAwOworKwor KyAgcmV0dXJuIGh0YWJfZmluZCAoaGFzaCwgaW5zbikgIT0gTlVMTDsKKyB9CisgCisgaW50Cisg cHJvbG9ndWVfZXBpbG9ndWVfY29udGFpbnMgKGNvbnN0X3J0eCBpbnNuKQorIHsKKy0gIGlmIChj b250YWlucyAoaW5zbiwgJnByb2xvZ3VlKSkKKysgIGlmIChjb250YWlucyAoaW5zbiwgcHJvbG9n dWVfaW5zbl9oYXNoKSkKKyAgICAgcmV0dXJuIDE7CistICBpZiAoY29udGFpbnMgKGluc24sICZl cGlsb2d1ZSkpCisrICBpZiAoY29udGFpbnMgKGluc24sIGVwaWxvZ3VlX2luc25faGFzaCkpCisg ICAgIHJldHVybiAxOworICAgcmV0dXJuIDA7CisgfQorIAorLWludAorLXNpYmNhbGxfZXBpbG9n dWVfY29udGFpbnMgKGNvbnN0X3J0eCBpbnNuKQorLXsKKy0gIGlmIChzaWJjYWxsX2VwaWxvZ3Vl KQorLSAgICByZXR1cm4gY29udGFpbnMgKGluc24sICZzaWJjYWxsX2VwaWxvZ3VlKTsKKy0gIHJl dHVybiAwOworLX0KKy0KKyAjaWZkZWYgSEFWRV9yZXR1cm4KKyAvKiBJbnNlcnQgZ2VuX3JldHVy biBhdCB0aGUgZW5kIG9mIGJsb2NrIEJCLiAgVGhpcyBhbHNvIG1lYW5zIHVwZGF0aW5nCisgICAg YmxvY2tfZm9yX2luc24gYXBwcm9wcmlhdGVseS4gICovCitAQCAtNDk4Nyw3ICs0OTg5LDcgQEAg dGhyZWFkX3Byb2xvZ3VlX2FuZF9lcGlsb2d1ZV9pbnNucyAodm9pZAorIAllbWl0X3VzZSAoaGFy ZF9mcmFtZV9wb2ludGVyX3J0eCk7CisgCisgICAgICAgLyogUmV0YWluIGEgbWFwIG9mIHRoZSBw cm9sb2d1ZSBpbnNucy4gICovCistICAgICAgcmVjb3JkX2luc25zIChzZXEsICZwcm9sb2d1ZSk7 CisrICAgICAgcmVjb3JkX2luc25zIChzZXEsIE5VTEwsICZwcm9sb2d1ZV9pbnNuX2hhc2gpOwor ICAgICAgIGVtaXRfbm90ZSAoTk9URV9JTlNOX1BST0xPR1VFX0VORCk7CisgIAorICNpZm5kZWYg UFJPRklMRV9CRUZPUkVfUFJPTE9HVUUKK0BAIC01MTE5LDYgKzUxMjEsMzggQEAgdGhyZWFkX3By b2xvZ3VlX2FuZF9lcGlsb2d1ZV9pbnNucyAodm9pZAorIAl9CisgICAgIH0KKyAjZW5kaWYKKysK KysgIC8qIEEgc21hbGwgZmliIC0tIGVwaWxvZ3VlIGlzIG5vdCB5ZXQgY29tcGxldGVkLCBidXQg d2Ugd2lzaCB0byByZS11c2UKKysgICAgIHRoaXMgbWFya2VyIGZvciB0aGUgc3BsaXRzIG9mIEVI X1JFVFVSTiBwYXR0ZXJucywgYW5kIG5vdGhpbmcgZWxzZQorKyAgICAgdXNlcyB0aGUgZmxhZyBp biB0aGUgbWVhbnRpbWUuICAqLworKyAgZXBpbG9ndWVfY29tcGxldGVkID0gMTsKKysKKysjaWZk ZWYgSEFWRV9laF9yZXR1cm4KKysgIC8qIEZpbmQgbm9uLWZhbGx0aHJ1IGVkZ2VzIHRoYXQgZW5k IHdpdGggRUhfUkVUVVJOIGluc3RydWN0aW9ucy4gIE9uCisrICAgICBzb21lIHRhcmdldHMsIHRo ZXNlIGdldCBzcGxpdCB0byBhIHNwZWNpYWwgdmVyc2lvbiBvZiB0aGUgZXBpbG9ndWUKKysgICAg IGNvZGUuICBJbiBvcmRlciB0byBiZSBhYmxlIHRvIHByb3Blcmx5IGFubm90YXRlIHRoZXNlIHdp dGggdW53aW5kCisrICAgICBpbmZvLCB0cnkgdG8gc3BsaXQgdGhlbSBub3cuICBJZiB3ZSBnZXQg YSB2YWxpZCBzcGxpdCwgZHJvcCBhbgorKyAgICAgRVBJTE9HVUVfQkVHIG5vdGUgYW5kIG1hcmsg dGhlIGluc25zIGFzIGVwaWxvZ3VlIGluc25zLiAgKi8KKysgIEZPUl9FQUNIX0VER0UgKGUsIGVp LCBFWElUX0JMT0NLX1BUUi0+cHJlZHMpCisrICAgIHsKKysgICAgICBydHggcHJldiwgbGFzdCwg dHJpYWw7CisrCisrICAgICAgaWYgKGUtPmZsYWdzICYgRURHRV9GQUxMVEhSVSkKKysJY29udGlu dWU7CisrICAgICAgbGFzdCA9IEJCX0VORCAoZS0+c3JjKTsKKysgICAgICBpZiAoIWVoX3JldHVy bmp1bXBfcCAobGFzdCkpCisrCWNvbnRpbnVlOworKworKyAgICAgIHByZXYgPSBQUkVWX0lOU04g KGxhc3QpOworKyAgICAgIHRyaWFsID0gdHJ5X3NwbGl0IChQQVRURVJOIChsYXN0KSwgbGFzdCwg MSk7CisrICAgICAgaWYgKHRyaWFsID09IGxhc3QpCisrCWNvbnRpbnVlOworKworKyAgICAgIHJl Y29yZF9pbnNucyAoTkVYVF9JTlNOIChwcmV2KSwgTkVYVF9JTlNOICh0cmlhbCksICZlcGlsb2d1 ZV9pbnNuX2hhc2gpOworKyAgICAgIGVtaXRfbm90ZV9hZnRlciAoTk9URV9JTlNOX0VQSUxPR1VF X0JFRywgcHJldik7CisrICAgIH0KKysjZW5kaWYKKysKKyAgIC8qIEZpbmQgdGhlIGVkZ2UgdGhh dCBmYWxscyB0aHJvdWdoIHRvIEVYSVQuICBPdGhlciBlZGdlcyBtYXkgZXhpc3QKKyAgICAgIGR1 ZSB0byBSRVRVUk4gaW5zdHJ1Y3Rpb25zLCBidXQgdGhvc2UgZG9uJ3QgbmVlZCBlcGlsb2d1ZXMu CisgICAgICBUaGVyZSByZWFsbHkgc2hvdWxkbid0IGJlIGEgbWl4dHVyZSAtLSBlaXRoZXIgYWxs IHNob3VsZCBoYXZlCitAQCAtNTEzOSw3ICs1MTczLDcgQEAgdGhyZWFkX3Byb2xvZ3VlX2FuZF9l cGlsb2d1ZV9pbnNucyAodm9pZAorICAgICAgIGVtaXRfanVtcF9pbnNuIChzZXEpOworIAorICAg ICAgIC8qIFJldGFpbiBhIG1hcCBvZiB0aGUgZXBpbG9ndWUgaW5zbnMuICAqLworLSAgICAgIHJl Y29yZF9pbnNucyAoc2VxLCAmZXBpbG9ndWUpOworKyAgICAgIHJlY29yZF9pbnNucyAoc2VxLCBO VUxMLCAmZXBpbG9ndWVfaW5zbl9oYXNoKTsKKyAgICAgICBzZXRfaW5zbl9sb2NhdG9ycyAoc2Vx LCBlcGlsb2d1ZV9sb2NhdG9yKTsKKyAKKyAgICAgICBzZXEgPSBnZXRfaW5zbnMgKCk7CitAQCAt NTIwMSw2ICs1MjM1LDcgQEAgZXBpbG9ndWVfZG9uZToKKyAJfQorIAorICAgICAgIHN0YXJ0X3Nl cXVlbmNlICgpOworKyAgICAgIGVtaXRfbm90ZSAoTk9URV9JTlNOX0VQSUxPR1VFX0JFRyk7Cisg ICAgICAgZW1pdF9pbnNuIChnZW5fc2liY2FsbF9lcGlsb2d1ZSAoKSk7CisgICAgICAgc2VxID0g Z2V0X2luc25zICgpOworICAgICAgIGVuZF9zZXF1ZW5jZSAoKTsKK0BAIC01MjA4LDcgKzUyNDMs NyBAQCBlcGlsb2d1ZV9kb25lOgorICAgICAgIC8qIFJldGFpbiBhIG1hcCBvZiB0aGUgZXBpbG9n dWUgaW5zbnMuICBVc2VkIGluIGxpZmUgYW5hbHlzaXMgdG8KKyAJIGF2b2lkIGdldHRpbmcgcmlk IG9mIHNpYmNhbGwgZXBpbG9ndWUgaW5zbnMuICBEbyB0aGlzIGJlZm9yZSB3ZQorIAkgYWN0dWFs bHkgZW1pdCB0aGUgc2VxdWVuY2UuICAqLworLSAgICAgIHJlY29yZF9pbnNucyAoc2VxLCAmc2li Y2FsbF9lcGlsb2d1ZSk7CisrICAgICAgcmVjb3JkX2luc25zIChzZXEsIE5VTEwsICZlcGlsb2d1 ZV9pbnNuX2hhc2gpOworICAgICAgIHNldF9pbnNuX2xvY2F0b3JzIChzZXEsIGVwaWxvZ3VlX2xv Y2F0b3IpOworIAorICAgICAgIGVtaXRfaW5zbl9iZWZvcmUgKHNlcSwgaW5zbik7CitAQCAtNTI0 MiwyMyArNTI3NywyOSBAQCBlcGlsb2d1ZV9kb25lOgorICAgZGZfdXBkYXRlX2VudHJ5X2V4aXRf YW5kX2NhbGxzICgpOworIH0KKyAKKy0vKiBSZXBvc2l0aW9uIHRoZSBwcm9sb2d1ZS1lbmQgYW5k IGVwaWxvZ3VlLWJlZ2luIG5vdGVzIGFmdGVyIGluc3RydWN0aW9uCistICAgc2NoZWR1bGluZyBh bmQgZGVsYXllZCBicmFuY2ggc2NoZWR1bGluZy4gICovCisrLyogUmVwb3NpdGlvbiB0aGUgcHJv bG9ndWUtZW5kIGFuZCBlcGlsb2d1ZS1iZWdpbiBub3RlcyBhZnRlcgorKyAgIGluc3RydWN0aW9u IHNjaGVkdWxpbmcuICAqLworIAorIHZvaWQKKyByZXBvc2l0aW9uX3Byb2xvZ3VlX2FuZF9lcGls b2d1ZV9ub3RlcyAodm9pZCkKKyB7CistI2lmIGRlZmluZWQgKEhBVkVfcHJvbG9ndWUpIHx8IGRl ZmluZWQgKEhBVkVfZXBpbG9ndWUpCisrI2lmIGRlZmluZWQgKEhBVkVfcHJvbG9ndWUpIHx8IGRl ZmluZWQgKEhBVkVfZXBpbG9ndWUpIFwKKysgICAgfHwgZGVmaW5lZCAoSEFWRV9zaWJjYWxsX2Vw aWxvZ3VlKQorICAgcnR4IGluc24sIGxhc3QsIG5vdGU7CistICBpbnQgbGVuOworKyAgYmFzaWNf YmxvY2sgYmI7CisgCistICBpZiAoKGxlbiA9IFZFQ19sZW5ndGggKGludCwgcHJvbG9ndWUpKSA+ IDApCisrICAvKiBTaW5jZSB0aGUgaGFzaCB0YWJsZSBpcyBjcmVhdGVkIG9uIGRlbWFuZCwgdGhl IGZhY3QgdGhhdCBpdCBpcworKyAgICAgbm9uLW51bGwgaXMgYSBzaWduYWwgdGhhdCBpdCBpcyBu b24tZW1wdHkuICAqLworKyAgaWYgKHByb2xvZ3VlX2luc25faGFzaCAhPSBOVUxMKQorICAgICB7 CisrICAgICAgc2l6ZV90IGxlbiA9IGh0YWJfZWxlbWVudHMgKHByb2xvZ3VlX2luc25faGFzaCk7 CisgICAgICAgbGFzdCA9IDAsIG5vdGUgPSAwOworIAorLSAgICAgIC8qIFNjYW4gZnJvbSB0aGUg YmVnaW5uaW5nIHVudGlsIHdlIHJlYWNoIHRoZSBsYXN0IHByb2xvZ3VlIGluc24uCistCSBXZSBh cHBhcmVudGx5IGNhbid0IGRlcGVuZCBvbiBiYXNpY19ibG9ja197aGVhZCxlbmR9IGFmdGVyCist CSByZW9yZyBoYXMgcnVuLiAgKi8KKysgICAgICAvKiBTY2FuIGZyb20gdGhlIGJlZ2lubmluZyB1 bnRpbCB3ZSByZWFjaCB0aGUgbGFzdCBwcm9sb2d1ZSBpbnNuLiAgKi8KKysgICAgICAvKiA/Pz8g V2hpbGUgd2UgZG8gaGF2ZSB0aGUgQ0ZHIGludGFjdCwgdGhlcmUgYXJlIHR3byBwcm9ibGVtczoK KysJICgxKSBUaGUgcHJvbG9ndWUgY2FuIGNvbnRhaW4gbG9vcHMgKHR5cGljYWxseSBwcm9iaW5n IHRoZSBzdGFjayksCisrCSAgICAgd2hpY2ggbWVhbnMgdGhhdCB0aGUgZW5kIG9mIHRoZSBwcm9s b2d1ZSBpc24ndCBpbiB0aGUgZmlyc3QgYmIuCisrCSAoMikgU29tZXRpbWVzIHRoZSBQUk9MT0dV RV9FTkQgbm90ZSBnZXRzIHB1c2hlZCBpbnRvIHRoZSBuZXh0IGJiLiAgKi8KKyAgICAgICBmb3Ig KGluc24gPSBnZXRfaW5zbnMgKCk7IGluc247IGluc24gPSBORVhUX0lOU04gKGluc24pKQorIAl7 CisgCSAgaWYgKE5PVEVfUCAoaW5zbikpCitAQCAtNTI2Niw3ICs1MzA3LDcgQEAgcmVwb3NpdGlv bl9wcm9sb2d1ZV9hbmRfZXBpbG9ndWVfbm90ZXMgKAorIAkgICAgICBpZiAoTk9URV9LSU5EIChp bnNuKSA9PSBOT1RFX0lOU05fUFJPTE9HVUVfRU5EKQorIAkJbm90ZSA9IGluc247CisgCSAgICB9 CistCSAgZWxzZSBpZiAoY29udGFpbnMgKGluc24sICZwcm9sb2d1ZSkpCisrCSAgZWxzZSBpZiAo Y29udGFpbnMgKGluc24sIHByb2xvZ3VlX2luc25faGFzaCkpCisgCSAgICB7CisgCSAgICAgIGxh c3QgPSBpbnNuOworIAkgICAgICBpZiAoLS1sZW4gPT0gMCkKK0BAIC01Mjc2LDE0ICs1MzE3LDE3 IEBAIHJlcG9zaXRpb25fcHJvbG9ndWVfYW5kX2VwaWxvZ3VlX25vdGVzICgKKyAKKyAgICAgICBp ZiAobGFzdCkKKyAJeworLQkgIC8qIEZpbmQgdGhlIHByb2xvZ3VlLWVuZCBub3RlIGlmIHdlIGhh dmVuJ3QgYWxyZWFkeSwgYW5kCistCSAgICAgbW92ZSBpdCB0byBqdXN0IGFmdGVyIHRoZSBsYXN0 IHByb2xvZ3VlIGluc24uICAqLworLQkgIGlmIChub3RlID09IDApCisrCSAgaWYgKG5vdGUgPT0g TlVMTCkKKyAJICAgIHsKKy0JICAgICAgZm9yIChub3RlID0gbGFzdDsgKG5vdGUgPSBORVhUX0lO U04gKG5vdGUpKTspCistCQlpZiAoTk9URV9QIChub3RlKQorLQkJICAgICYmIE5PVEVfS0lORCAo bm90ZSkgPT0gTk9URV9JTlNOX1BST0xPR1VFX0VORCkKKy0JCSAgYnJlYWs7CisrCSAgICAgIC8q IFNjYW4gZm9yd2FyZCBsb29raW5nIGZvciB0aGUgUFJPTE9HVUVfRU5EIG5vdGUuICBJdCBzaG91 bGQKKysJCSBiZSByaWdodCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBibG9jaywgcG9zc2libHkg d2l0aCBvdGhlcgorKwkJIGluc24gbm90ZXMgdGhhdCBnb3QgbW92ZWQgdGhlcmUuICAqLworKwkg ICAgICBmb3IgKG5vdGUgPSBORVhUX0lOU04gKGxhc3QpOyA7IG5vdGUgPSBORVhUX0lOU04gKG5v dGUpKQorKwkJeworKwkJICBpZiAoTk9URV9QIChub3RlKQorKwkJICAgICAgJiYgTk9URV9LSU5E IChub3RlKSA9PSBOT1RFX0lOU05fUFJPTE9HVUVfRU5EKQorKwkJICAgIGJyZWFrOworKwkJfQor IAkgICAgfQorIAorIAkgIC8qIEF2b2lkIHBsYWNpbmcgbm90ZSBiZXR3ZWVuIENPREVfTEFCRUwg YW5kIEJBU0lDX0JMT0NLIG5vdGUuICAqLworQEAgLTUyOTMsNDEgKzUzMzcsMzkgQEAgcmVwb3Np dGlvbl9wcm9sb2d1ZV9hbmRfZXBpbG9ndWVfbm90ZXMgKAorIAl9CisgICAgIH0KKyAKKy0gIGlm ICgobGVuID0gVkVDX2xlbmd0aCAoaW50LCBlcGlsb2d1ZSkpID4gMCkKKysgIGlmIChlcGlsb2d1 ZV9pbnNuX2hhc2ggIT0gTlVMTCkKKyAgICAgeworLSAgICAgIGxhc3QgPSAwLCBub3RlID0gMDsK KysgICAgICBlZGdlX2l0ZXJhdG9yIGVpOworKyAgICAgIGVkZ2UgZTsKKyAKKy0gICAgICAvKiBT Y2FuIGZyb20gdGhlIGVuZCB1bnRpbCB3ZSByZWFjaCB0aGUgZmlyc3QgZXBpbG9ndWUgaW5zbi4K Ky0JIFdlIGFwcGFyZW50bHkgY2FuJ3QgZGVwZW5kIG9uIGJhc2ljX2Jsb2NrX3toZWFkLGVuZH0g YWZ0ZXIKKy0JIHJlb3JnIGhhcyBydW4uICAqLworLSAgICAgIGZvciAoaW5zbiA9IGdldF9sYXN0 X2luc24gKCk7IGluc247IGluc24gPSBQUkVWX0lOU04gKGluc24pKQorKyAgICAgIEZPUl9FQUNI X0VER0UgKGUsIGVpLCBFWElUX0JMT0NLX1BUUi0+cHJlZHMpCisgCXsKKy0JICBpZiAoTk9URV9Q IChpbnNuKSkKKy0JICAgIHsKKy0JICAgICAgaWYgKE5PVEVfS0lORCAoaW5zbikgPT0gTk9URV9J TlNOX0VQSUxPR1VFX0JFRykKKy0JCW5vdGUgPSBpbnNuOworLQkgICAgfQorLQkgIGVsc2UgaWYg KGNvbnRhaW5zIChpbnNuLCAmZXBpbG9ndWUpKQorLQkgICAgeworLQkgICAgICBsYXN0ID0gaW5z bjsKKy0JICAgICAgaWYgKC0tbGVuID09IDApCistCQlicmVhazsKKy0JICAgIH0KKy0JfQorKwkg IGxhc3QgPSAwLCBub3RlID0gMDsKKysJICBiYiA9IGUtPnNyYzsKKyAKKy0gICAgICBpZiAobGFz dCkKKy0JeworLQkgIC8qIEZpbmQgdGhlIGVwaWxvZ3VlLWJlZ2luIG5vdGUgaWYgd2UgaGF2ZW4n dCBhbHJlYWR5LCBhbmQKKy0JICAgICBtb3ZlIGl0IHRvIGp1c3QgYmVmb3JlIHRoZSBmaXJzdCBl cGlsb2d1ZSBpbnNuLiAgKi8KKy0JICBpZiAobm90ZSA9PSAwKQorKwkgIC8qIFNjYW4gZnJvbSB0 aGUgYmVnaW5uaW5nIHVudGlsIHdlIHJlYWNoIHRoZSBmaXJzdCBlcGlsb2d1ZSBpbnNuLgorKwkg ICAgIFRha2UgdGhlIGN1ZSBmb3Igd2hldGhlciB0aGlzIGlzIGEgcGxhaW4gb3Igc2liY2FsbCBl cGlsb2d1ZQorKwkgICAgIGZyb20gdGhlIGtpbmQgb2Ygbm90ZSB3ZSBmaW5kIGZpcnN0LiAgKi8K KysJICBGT1JfQkJfSU5TTlMgKGJiLCBpbnNuKQorIAkgICAgeworLQkgICAgICBmb3IgKG5vdGUg PSBpbnNuOyAobm90ZSA9IFBSRVZfSU5TTiAobm90ZSkpOykKKy0JCWlmIChOT1RFX1AgKG5vdGUp CistCQkgICAgJiYgTk9URV9LSU5EIChub3RlKSA9PSBOT1RFX0lOU05fRVBJTE9HVUVfQkVHKQor LQkJICBicmVhazsKKysJICAgICAgaWYgKE5PVEVfUCAoaW5zbikpCisrCQl7CisrCQkgIGlmIChO T1RFX0tJTkQgKGluc24pID09IE5PVEVfSU5TTl9FUElMT0dVRV9CRUcpCisrCQkgICAgeworKwkJ ICAgICAgbm90ZSA9IGluc247CisrCQkgICAgICBpZiAobGFzdCkKKysJCQlicmVhazsKKysJCSAg ICB9CisrCQl9CisrCSAgICAgIGVsc2UgaWYgKGNvbnRhaW5zIChpbnNuLCBlcGlsb2d1ZV9pbnNu X2hhc2gpKQorKwkJeworKwkJICBsYXN0ID0gaW5zbjsKKysJCSAgaWYgKG5vdGUgIT0gTlVMTCkK KysJCSAgICBicmVhazsKKysJCX0KKyAJICAgIH0KKy0KKy0JICBpZiAoUFJFVl9JTlNOIChsYXN0 KSAhPSBub3RlKQorKwkgICAgIAorKwkgIGlmIChsYXN0ICYmIG5vdGUgJiYgUFJFVl9JTlNOIChs YXN0KSAhPSBub3RlKQorIAkgICAgcmVvcmRlcl9pbnNucyAobm90ZSwgbm90ZSwgUFJFVl9JTlNO IChsYXN0KSk7CisgCX0KKyAgICAgfQorLS0tIGdjYy9lbWl0LXJ0bC5jLmpqCTIwMDktMDMtMDQg MTI6MTE6MzcuMDAwMDAwMDAwICswMTAwCisrKysgZ2NjL2VtaXQtcnRsLmMJMjAwOS0wNi0wOSAw ODo1ODowNC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0zMzQzLDYgKzMzNDMsMTAgQEAgdHJ5X3NwbGl0 IChydHggcGF0LCBydHggdHJpYWwsIGludCBsYXN0KQorICAgcnR4IGluc25fbGFzdCwgaW5zbjsK KyAgIGludCBuanVtcHMgPSAwOworIAorKyAgLyogV2UncmUgbm90IGdvb2QgYXQgcmVkaXN0cmli dXRpbmcgZnJhbWUgaW5mb3JtYXRpb24uICAqLworKyAgaWYgKFJUWF9GUkFNRV9SRUxBVEVEX1Ag KHRyaWFsKSkKKysgICAgcmV0dXJuIHRyaWFsOworKworICAgaWYgKGFueV9jb25kanVtcF9wICh0 cmlhbCkKKyAgICAgICAmJiAobm90ZSA9IGZpbmRfcmVnX25vdGUgKHRyaWFsLCBSRUdfQlJfUFJP QiwgMCkpKQorICAgICBzcGxpdF9icmFuY2hfcHJvYmFiaWxpdHkgPSBJTlRWQUwgKFhFWFAgKG5v dGUsIDApKTsKK0BAIC01MDU4LDYgKzUwNjIsOSBAQCBjb3B5X2luc25fMSAocnR4IG9yaWcpCisg ICBSVFhfQ09ERSBjb2RlOworICAgY29uc3QgY2hhciAqZm9ybWF0X3B0cjsKKyAKKysgIGlmIChv cmlnID09IE5VTEwpCisrICAgIHJldHVybiBOVUxMOworKworICAgY29kZSA9IEdFVF9DT0RFIChv cmlnKTsKKyAKKyAgIHN3aXRjaCAoY29kZSkKKy0tLSBnY2MvZHdhcmYyb3V0LmguamoJMjAwOS0w MS0xNCAxMjowNjoyOS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnY2MvZHdhcmYyb3V0LmgJMjAwOS0w Ni0wOSAwODo1ODowNC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0yMCw2ICsyMCw4IEBAIGFsb25nIHdp dGggR0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuICAKKyAKKyBleHRlcm4gdm9pZCBkd2FyZjJv dXRfZGVjbCAodHJlZSk7CisgZXh0ZXJuIHZvaWQgZHdhcmYyb3V0X2ZyYW1lX2RlYnVnIChydHgs IGJvb2wpOworK2V4dGVybiB2b2lkIGR3YXJmMm91dF9iZWdpbl9lcGlsb2d1ZSAocnR4KTsKKytl eHRlcm4gdm9pZCBkd2FyZjJvdXRfZnJhbWVfZGVidWdfcmVzdG9yZV9zdGF0ZSAodm9pZCk7Cisg CisgZXh0ZXJuIHZvaWQgZGVidWdfZHdhcmYgKHZvaWQpOworIHN0cnVjdCBkaWVfc3RydWN0Owor LS0tIGdjYy9maW5hbC5jLmpqCTIwMDktMDEtMTQgMTI6MDY6MjkuMDAwMDAwMDAwICswMTAwCisr KysgZ2NjL2ZpbmFsLmMJMjAwOS0wNi0wOSAwODo1ODowNC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0x ODY5LDkgKzE4NjksMTkgQEAgZmluYWxfc2Nhbl9pbnNuIChydHggaW5zbiwgRklMRSAqZmlsZSwg aQorIAkgIGJyZWFrOworIAorIAljYXNlIE5PVEVfSU5TTl9FUElMT0dVRV9CRUc6CisrI2lmIGRl ZmluZWQgKERXQVJGMl9VTldJTkRfSU5GTykgJiYgZGVmaW5lZCAoSEFWRV9lcGlsb2d1ZSkKKysJ ICBpZiAoZHdhcmYyb3V0X2RvX2ZyYW1lICgpKQorKwkgICAgZHdhcmYyb3V0X2JlZ2luX2VwaWxv Z3VlIChpbnNuKTsKKysjZW5kaWYKKyAJICB0YXJnZXRtLmFzbV9vdXQuZnVuY3Rpb25fYmVnaW5f ZXBpbG9ndWUgKGZpbGUpOworIAkgIGJyZWFrOworIAorKwljYXNlIE5PVEVfSU5TTl9DRkFfUkVT VE9SRV9TVEFURToKKysjaWYgZGVmaW5lZCAoRFdBUkYyX1VOV0lORF9JTkZPKQorKwkgIGR3YXJm Mm91dF9mcmFtZV9kZWJ1Z19yZXN0b3JlX3N0YXRlICgpOworKyNlbmRpZgorKwkgIGJyZWFrOwor KworIAljYXNlIE5PVEVfSU5TTl9GVU5DVElPTl9CRUc6CisgCSAgYXBwX2Rpc2FibGUgKCk7Cisg CSAgKCpkZWJ1Z19ob29rcy0+ZW5kX3Byb2xvZ3VlKSAobGFzdF9saW5lbnVtLCBsYXN0X2ZpbGVu YW1lKTsKKy0tLSBnY2MvanVtcC5jLmpqCTIwMDktMDMtMDQgMTI6MTA6MjIuMDAwMDAwMDAwICsw MTAwCisrKysgZ2NjL2p1bXAuYwkyMDA5LTA2LTA5IDA5OjIwOjUwLjAwMDAwMDAwMCArMDIwMAor QEAgLTg2OSwxOCArODY5LDU0IEBAIHJldHVybmp1bXBfcF8xIChydHggKmxvYywgdm9pZCAqZGF0 YSBBVFQKKyB7CisgICBydHggeCA9ICpsb2M7CisgCistICByZXR1cm4geCAmJiAoR0VUX0NPREUg KHgpID09IFJFVFVSTgorLQkgICAgICAgfHwgKEdFVF9DT0RFICh4KSA9PSBTRVQgJiYgU0VUX0lT X1JFVFVSTl9QICh4KSkpOworKyAgaWYgKHggPT0gTlVMTCkKKysgICAgcmV0dXJuIGZhbHNlOwor KworKyAgc3dpdGNoIChHRVRfQ09ERSAoeCkpCisrICAgIHsKKysgICAgY2FzZSBSRVRVUk46Cisr ICAgIGNhc2UgRUhfUkVUVVJOOgorKyAgICAgIHJldHVybiB0cnVlOworKworKyAgICBjYXNlIFNF VDoKKysgICAgICByZXR1cm4gU0VUX0lTX1JFVFVSTl9QICh4KTsKKysKKysgICAgZGVmYXVsdDoK KysgICAgICByZXR1cm4gZmFsc2U7CisrICAgIH0KKyB9CisgCisrLyogUmV0dXJuIFRSVUUgaWYg SU5TTiBpcyBhIHJldHVybiBqdW1wLiAgKi8KKysKKyBpbnQKKyByZXR1cm5qdW1wX3AgKHJ0eCBp bnNuKQorIHsKKysgIC8qIEhhbmRsZSBkZWxheWVkIGJyYW5jaGVzLiAgKi8KKysgIGlmIChOT05K VU1QX0lOU05fUCAoaW5zbikgJiYgR0VUX0NPREUgKFBBVFRFUk4gKGluc24pKSA9PSBTRVFVRU5D RSkKKysgICAgaW5zbiA9IFhWRUNFWFAgKFBBVFRFUk4gKGluc24pLCAwLCAwKTsKKysKKyAgIGlm ICghSlVNUF9QIChpbnNuKSkKKyAgICAgcmV0dXJuIDA7CisrCisgICByZXR1cm4gZm9yX2VhY2hf cnR4ICgmUEFUVEVSTiAoaW5zbiksIHJldHVybmp1bXBfcF8xLCBOVUxMKTsKKyB9CisgCisrLyog UmV0dXJuIHRydWUgaWYgSU5TTiBpcyBhIChwb3NzaWJseSBjb25kaXRpb25hbCkgcmV0dXJuIGlu c24uICAqLworKworK3N0YXRpYyBpbnQKKytlaF9yZXR1cm5qdW1wX3BfMSAocnR4ICpsb2MsIHZv aWQgKmRhdGEgQVRUUklCVVRFX1VOVVNFRCkKKyt7CisrICByZXR1cm4gKmxvYyAmJiBHRVRfQ09E RSAoKmxvYykgPT0gRUhfUkVUVVJOOworK30KKysKKytpbnQKKytlaF9yZXR1cm5qdW1wX3AgKHJ0 eCBpbnNuKQorK3sKKysgIGlmICghSlVNUF9QIChpbnNuKSkKKysgICAgcmV0dXJuIDA7CisrICBy ZXR1cm4gZm9yX2VhY2hfcnR4ICgmUEFUVEVSTiAoaW5zbiksIGVoX3JldHVybmp1bXBfcF8xLCBO VUxMKTsKKyt9CisrCisgLyogUmV0dXJuIHRydWUgaWYgSU5TTiBpcyBhIGp1bXAgdGhhdCBvbmx5 IHRyYW5zZmVycyBjb250cm9sIGFuZAorICAgIG5vdGhpbmcgbW9yZS4gICovCisgCistLS0gZ2Nj L3JlY29nLmMuamoJMjAwOS0wMy0xMCAxMTowNjoxMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnY2Mv cmVjb2cuYwkyMDA5LTA2LTA5IDA5OjA4OjIxLjAwMDAwMDAwMCArMDIwMAorQEAgLTMwMjYsNiAr MzAyNiwyNiBAQCBwZWVwMl9maW5kX2ZyZWVfcmVnaXN0ZXIgKGludCBmcm9tLCBpbnQgCisgICBy ZXR1cm4gTlVMTF9SVFg7CisgfQorIAorKy8qIEZvcmdldCBhbGwgY3VycmVudGx5IHRyYWNrZWQg aW5zdHJ1Y3Rpb25zLCBvbmx5IHJlbWVtYmVyIGN1cnJlbnQKKysgICBMSVZFIHJlZ3NldC4gICov CisrCisrc3RhdGljIHZvaWQKKytwZWVwMl9yZWluaXRfc3RhdGUgKHJlZ3NldCBsaXZlKQorK3sK KysgIGludCBpOworKworKyAgLyogSW5kaWNhdGUgdGhhdCBhbGwgc2xvdHMgZXhjZXB0IHRoZSBs YXN0IGhvbGRzIGludmFsaWQgZGF0YS4gICovCisrICBmb3IgKGkgPSAwOyBpIDwgTUFYX0lOU05T X1BFUl9QRUVQMjsgKytpKQorKyAgICBwZWVwMl9pbnNuX2RhdGFbaV0uaW5zbiA9IE5VTExfUlRY OworKyAgcGVlcDJfY3VycmVudF9jb3VudCA9IDA7CisrCisrICAvKiBJbmRpY2F0ZSB0aGF0IHRo ZSBsYXN0IHNsb3QgY29udGFpbnMgbGl2ZV9hZnRlciBkYXRhLiAgKi8KKysgIHBlZXAyX2luc25f ZGF0YVtNQVhfSU5TTlNfUEVSX1BFRVAyXS5pbnNuID0gUEVFUDJfRU9COworKyAgcGVlcDJfY3Vy cmVudCA9IE1BWF9JTlNOU19QRVJfUEVFUDI7CisrCisrICBDT1BZX1JFR19TRVQgKHBlZXAyX2lu c25fZGF0YVtNQVhfSU5TTlNfUEVSX1BFRVAyXS5saXZlX2JlZm9yZSwgbGl2ZSk7CisrfQorKwor IC8qIFBlcmZvcm0gdGhlIHBlZXBob2xlMiBvcHRpbWl6YXRpb24gcGFzcy4gICovCisgCisgc3Rh dGljIHZvaWQKK0BAIC0zMDQ5LDE5ICszMDY5LDExIEBAIHBlZXBob2xlMl9vcHRpbWl6ZSAodm9p ZCkKKyAgIEZPUl9FQUNIX0JCX1JFVkVSU0UgKGJiKQorICAgICB7CisgICAgICAgcnRsX3Byb2Zp bGVfZm9yX2JiIChiYik7CistICAgICAgLyogSW5kaWNhdGUgdGhhdCBhbGwgc2xvdHMgZXhjZXB0 IHRoZSBsYXN0IGhvbGRzIGludmFsaWQgZGF0YS4gICovCistICAgICAgZm9yIChpID0gMDsgaSA8 IE1BWF9JTlNOU19QRVJfUEVFUDI7ICsraSkKKy0JcGVlcDJfaW5zbl9kYXRhW2ldLmluc24gPSBO VUxMX1JUWDsKKy0gICAgICBwZWVwMl9jdXJyZW50X2NvdW50ID0gMDsKKy0KKy0gICAgICAvKiBJ bmRpY2F0ZSB0aGF0IHRoZSBsYXN0IHNsb3QgY29udGFpbnMgbGl2ZV9hZnRlciBkYXRhLiAgKi8K Ky0gICAgICBwZWVwMl9pbnNuX2RhdGFbTUFYX0lOU05TX1BFUl9QRUVQMl0uaW5zbiA9IFBFRVAy X0VPQjsKKy0gICAgICBwZWVwMl9jdXJyZW50ID0gTUFYX0lOU05TX1BFUl9QRUVQMjsKKyAKKyAg ICAgICAvKiBTdGFydCB1cCBwcm9wYWdhdGlvbi4gICovCisgICAgICAgYml0bWFwX2NvcHkgKGxp dmUsIERGX0xSX09VVCAoYmIpKTsKKyAgICAgICBkZl9zaW11bGF0ZV9pbml0aWFsaXplX2JhY2t3 YXJkcyAoYmIsIGxpdmUpOworLSAgICAgIGJpdG1hcF9jb3B5IChwZWVwMl9pbnNuX2RhdGFbTUFY X0lOU05TX1BFUl9QRUVQMl0ubGl2ZV9iZWZvcmUsIGxpdmUpOworKyAgICAgIHBlZXAyX3JlaW5p dF9zdGF0ZSAobGl2ZSk7CisgCisgICAgICAgZm9yIChpbnNuID0gQkJfRU5EIChiYik7IDsgaW5z biA9IHByZXYpCisgCXsKK0BAIC0zMDg4LDcgKzMxMDAsNyBAQCBwZWVwaG9sZTJfb3B0aW1pemUg KHZvaWQpCisgCQkgIC8qIElmIGFuIGluc24gaGFzIFJUWF9GUkFNRV9SRUxBVEVEX1Agc2V0LCBw ZWVwaG9sZQorIAkJICAgICBzdWJzdGl0dXRpb24gd291bGQgbG9zZSB0aGUKKyAJCSAgICAgUkVH X0ZSQU1FX1JFTEFURURfRVhQUiB0aGF0IGlzIGF0dGFjaGVkLiAgKi8KKy0JCSAgcGVlcDJfY3Vy cmVudF9jb3VudCA9IDA7CisrCQkgIHBlZXAyX3JlaW5pdF9zdGF0ZSAobGl2ZSk7CisgCQkgIGF0 dGVtcHQgPSBOVUxMOworIAkJfQorIAkgICAgICBlbHNlCistLS0gZ2NjL3J0bC5oLmpqCTIwMDkt MDQtMjcgMTM6NTc6MTEuMDAwMDAwMDAwICswMjAwCisrKysgZ2NjL3J0bC5oCTIwMDktMDYtMDkg MDg6NTg6MDQuMDAwMDAwMDAwICswMjAwCitAQCAtMjA3Miw2ICsyMDcyLDcgQEAgZXh0ZXJuIHJ0 eCBwY19zZXQgKGNvbnN0X3J0eCk7CisgZXh0ZXJuIHJ0eCBjb25kanVtcF9sYWJlbCAoY29uc3Rf cnR4KTsKKyBleHRlcm4gaW50IHNpbXBsZWp1bXBfcCAoY29uc3RfcnR4KTsKKyBleHRlcm4gaW50 IHJldHVybmp1bXBfcCAocnR4KTsKKytleHRlcm4gaW50IGVoX3JldHVybmp1bXBfcCAocnR4KTsK KyBleHRlcm4gaW50IG9ubHlqdW1wX3AgKGNvbnN0X3J0eCk7CisgZXh0ZXJuIGludCBvbmx5X3Nl dHNfY2MwX3AgKGNvbnN0X3J0eCk7CisgZXh0ZXJuIGludCBzZXRzX2NjMF9wIChjb25zdF9ydHgp OworQEAgLTIxODUsNiArMjE4Niw3IEBAIGV4dGVybiBpbnQgcHJvbG9ndWVfZXBpbG9ndWVfY29u dGFpbnMgKGMKKyBleHRlcm4gaW50IHNpYmNhbGxfZXBpbG9ndWVfY29udGFpbnMgKGNvbnN0X3J0 eCk7CisgZXh0ZXJuIHZvaWQgbWFya190ZW1wX2FkZHJfdGFrZW4gKHJ0eCk7CisgZXh0ZXJuIHZv aWQgdXBkYXRlX3RlbXBfc2xvdF9hZGRyZXNzIChydHgsIHJ0eCk7CisrZXh0ZXJuIHZvaWQgbWF5 YmVfY29weV9lcGlsb2d1ZV9pbnNuIChydHgsIHJ0eCk7CisgCisgLyogSW4gc3RtdC5jICovCisg ZXh0ZXJuIHZvaWQgZXhwYW5kX251bGxfcmV0dXJuICh2b2lkKTsKKy0tLSBnY2MvY2ZncnRsLmMu amoJMjAwOS0wNi0wOSAwODoxNjoxMC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnY2MvY2ZncnRsLmMJ MjAwOS0wNi0wOSAwODo1ODowNS4wMDAwMDAwMDAgKzAyMDAKK0BAIC04Nyw4ICs4NywxNiBAQCBz dGF0aWMgdm9pZCBydGxfbWFrZV9mb3J3YXJkZXJfYmxvY2sgKGVkCisgc3RhdGljIGludAorIGNh bl9kZWxldGVfbm90ZV9wIChjb25zdF9ydHggbm90ZSkKKyB7CistICByZXR1cm4gKE5PVEVfS0lO RCAobm90ZSkgPT0gTk9URV9JTlNOX0RFTEVURUQKKy0JICB8fCBOT1RFX0tJTkQgKG5vdGUpID09 IE5PVEVfSU5TTl9CQVNJQ19CTE9DSyk7CisrICBzd2l0Y2ggKE5PVEVfS0lORCAobm90ZSkpCisr ICAgIHsKKysgICAgY2FzZSBOT1RFX0lOU05fREVMRVRFRDoKKysgICAgY2FzZSBOT1RFX0lOU05f QkFTSUNfQkxPQ0s6CisrICAgIGNhc2UgTk9URV9JTlNOX0VQSUxPR1VFX0JFRzoKKysgICAgICBy ZXR1cm4gdHJ1ZTsKKysKKysgICAgZGVmYXVsdDoKKysgICAgICByZXR1cm4gZmFsc2U7CisrICAg IH0KKyB9CisgCisgLyogVHJ1ZSBpZiBhIGdpdmVuIGxhYmVsIGNhbiBiZSBkZWxldGVkLiAgKi8K CmRpZmYgLS1naXQgYS9nY2M0NC1peDg2LWluc24tbGVuZ3RoLnBhdGNoIGIvZ2NjNDQtaXg4Ni1p bnNuLWxlbmd0aC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODdm Njg0Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjNDQtaXg4Ni1pbnNuLWxlbmd0aC5wYXRjaApAQCAt MCwwICsxLDQ4NzMgQEAKKzIwMDktMDUtMjkgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQu Y29tPgorCisJKiBjb25maWcvaTM4Ni9pMzg2LmMgKGl4ODZfZGVjb21wb3NlX2FkZHJlc3MpOiBB dm9pZCB1c2VsZXNzCisJMCBkaXNwbGFjZW1lbnQuICBBZGQgMCBkaXNwbGFjZW1lbnQgaWYgYmFz ZSBpcyAlW2VyXWJwIG9yICVyMTMuCisKKwkqIGNvbmZpZy9pMzg2L2kzODYubWQgKHByZWZpeF9k YXRhMTYsIHByZWZpeF9yZXApOiBTZXQgdG8gMCBmb3IKKwlUWVBFX1NTRXtNVUxBREQsNEFSRyxJ QUREMSxDVlQxfSBieSBkZWZhdWx0LgorCShwcmVmaXhfcmV4KTogRm9yIFVOSVRfTU1YIGRvbid0 IGltcGx5IHRoZSBwcmVmaXggYnkgZGVmYXVsdAorCWlmIE1PREVfREkuCisJKHByZWZpeF9leHRy YSk6IERlZmF1bHQgdG8gMiBmb3IgVFlQRV9TU0V7TVVMQURELDRBUkd9IGFuZAorCXRvIDEgZm9y IFRZUEVfU1NFe0lBREQxLENWVDF9LgorCShwcmVmaXhfdmV4X2ltbTgpOiBSZW1vdmVkLgorCShs ZW5ndGhfdmV4KTogT25seSBwYXNzIDEgYXMgc2Vjb25kIGFyZ3VtZW50IHRvCisJaXg4Nl9hdHRy X2xlbmd0aF92ZXhfZGVmYXVsdCBpZiBwcmVmaXhfZXh0cmEgaXMgMC4KKwkobW9kcm0pOiBGb3Ig VFlQRV9JTkNERUMgb25seSBzZXQgdG8gMCBpZiBub3QgVEFSR0VUXzY0QklULgorCShsZW5ndGgp OiBGb3IgcHJlZml4IHZleCBjb21wdXRhdGlvbiB1c2UgbGVuZ3RoX2ltbWVkaWF0ZQorCWF0dHJp YnV0ZSBpbnN0ZWFkIG9mIHByZWZpeF92ZXhfaW1tOC4KKwkoY21wcWlfZXh0XzNfaW5zbiwgY21w cWlfZXh0XzNfaW5zbl9yZXg2NCwKKwlhZGRxaV9leHRfMSwgYWRkcWlfZXh0XzFfcmV4NjQsICp0 ZXN0cWlfZXh0XzAsIGFuZHFpX2V4dF8wLAorCSphbmRxaV9leHRfMF9jYywgKmlvcnFpX2V4dF8w LCAqeG9ycWlfZXh0XzAsICp4b3JxaV9jY19leHRfMSwKKwkqeG9ycWlfY2NfZXh0XzFfcmV4NjQp OiBPdmVycmlkZSBtb2RybSBhdHRyaWJ1dGUgdG8gMS4KKwkoZXh0ZW5kc2lkaTJfcmV4NjQsIGV4 dGVuZGhpZGkyLCBleHRlbmRxaWRpMiwgZXh0ZW5kaGlzaTIsCisJKmV4dGVuZGhpc2kyX3pleHQs IGV4dGVuZHFpaGkyLCBleHRlbmRxaXNpMiwgKmV4dGVuZHFpc2kyX3pleHQpOiBFbWl0CisJYSBz cGFjZSBpbiBiZXR3ZWVuIHRoZSBvcGVyYW5kcy4KKwkoKmFuZGRpXzFfcmV4NjQsICphbmRzaV8x KTogTGlrZXdpc2UuICBPdmVycmlkZSBwcmVmaXhfcmV4IHRvIDEKKwlpZiBvbmUgb3BlcmFuZCBp cyAweGZmIGFuZCB0aGUgb3RoZXIgb25lIHNpLCBkaSwgYnAgb3Igc3AuCisJKCphbmRoaV8xKTog T3ZlcnJpZGUgcHJlZml4X3JleCB0byAxIGlmIG9uZSBvcGVyYW5kIGlzIDB4ZmYgYW5kIHRoZQor CW90aGVyIG9uZSBzaSwgZGksIGJwIG9yIHNwLgorCSgqYnRzcSwgKmJ0cnEsICpidGNxLCAqYnRk aV9yZXg2NCwgKmJ0c2kpOiBBZGQgbW9kZSBhdHRyaWJ1dGUuCisJKCpmZnNzaV8xLCAqZmZzZGlf MSwgY3R6c2kyLCBjdHpkaTIpOiBBZGQKKwl0eXBlIGFuZCBtb2RlIGF0dHJpYnV0ZXMuCisJKCpi c3IsICpic3JfcmV4NjQsICpic3JoaSk6IEFkZCB0eXBlIGF0dHJpYnV0ZS4KKwkoKmNtcGZwX2lf bWl4ZWQsICpjbXBmcF9pdV9taXhlZCk6IEZvciBUWVBFX1NTRUNPTUksIGNsZWFyCisJcHJlZml4 X3JlcCBhdHRyaWJ1dGUgYW5kIHNldCBwcmVmaXhfZGF0YTE2IGF0dHJpYnV0ZSBpZmYgTU9ERV9E Ri4KKwkoKmNtcGZwX2lfc3NlLCAqY21wZnBfaXVfc3NlKTogQ2xlYXIgcHJlZml4X3JlcCBhdHRy aWJ1dGUgYW5kIHNldAorCXByZWZpeF9kYXRhMTYgYXR0cmlidXRlIGlmZiBNT0RFX0RGLgorCSgq bW92c2lfMSk6IEZvciBUWVBFX1NTRU1PViBNT0RFX1NJIHNldCBwcmVmaXhfZGF0YTE2IGF0dHJp YnV0ZS4KKwkoZml4X3RydW5jPG1vZGU+ZGlfc3NlKTogU2V0IHByZWZpeF9yZXggYXR0cmlidXRl LgorCSgqYWRkZGlfNF9yZXg2NCwgKmFkZHNpXzQpOiBVc2UgY29uc3QxMjhfb3BlcmFuZCBpbnN0 ZWFkIG9mCisJY29uc3RtMTI4X29wZXJhbmQgaW4gbGVuZ3RoX2ltbWVkaWF0ZSBjb21wdXRhdGlv bi4KKwkoKmFkZGhpXzQpOiBMaWtld2lzZS4gIEZpeCBtb2RlIGF0dHJpYnV0ZSB0byBNT0RFX0hJ LgorCShhbmRkaV8xX3JleDY0KTogVXNlIG1vdnpibC9tb3Z6d2wgaW5zdGVhZCBvZiBtb3Z6YnEv bW92endxLgorCSgqYXZ4X2FzaGx0aTMsIHNzZTJfYXNobHRpMywgKmF2eF9sc2hydGkzLCBzc2Uy X2xzaHJ0aTMpOiBTZXQKKwlsZW5ndGhfaW1tZWRpYXRlIGF0dHJpYnV0ZSB0byAxLgorCSh4ODZf Zm5zdHN3XzEsIHg4Nl9mbnN0Y3dfMSwgeDg2X2ZsZGN3XzEpOiBGaXggbGVuZ3RoIGF0dHJpYnV0 ZS4KKwkoKm1vdmRpXzFfcmV4NjQpOiBPdmVycmlkZSBwcmVmaXhfcmV4IG9yIHByZWZpeF9kYXRh MTYgYXR0cmlidXRlcworCWZvciBjZXJ0YWluIGFsdGVybmF0aXZlcy4KKwkoKm1vdmRmX25vaW50 ZWdlciwgKm1vdmRmX2ludGVnZXJfcmV4NjQsICptb3ZkZl9pbnRlZ2VyKTogT3ZlcnJpZGUKKwlw cmVmaXhfZGF0YTE2IGF0dHJpYnV0ZSBpZiBNT0RFX1YxREYuCisJKCphdnhfc2V0Y2M8bW9kZT4s ICpzc2Vfc2V0Y2M8bW9kZT4sICpzc2U1X3NldGNjPG1vZGU+KTogU2V0CisJbGVuZ3RoX2ltbWVk aWF0ZSB0byAxLgorCShzZXRfZ290X3JleDY0LCBzZXRfcmlwX3JleDY0KTogUmVtb3ZlIGxlbmd0 aCBhdHRyaWJ1dGUsIHNldAorCWxlbmd0aF9hZGRyZXNzIHRvIDQsIHNldCBtb2RlIGF0dHJpYnV0 ZSB0byBNT0RFX0RJLgorCShzZXRfZ290X29mZnNldF9yZXg2NCk6IExpa2V3aXNlLiAgU2V0IGxl bmd0aF9pbW1lZGlhdGUgdG8gMC4KKwkoZnhhbTxtb2RlPjJfaTM4Nyk6IFNldCBsZW5ndGggYXR0 cmlidXRlIHRvIDQuCisJKCpwcmVmZXRjaF9zc2UsICpwcmVmZXRjaF9zc2VfcmV4LCAqcHJlZmV0 Y2hfM2Rub3csCisJKnByZWZldGNoXzNkbm93X3JleCk6IE92ZXJyaWRlIGxlbmd0aF9hZGRyZXNz IGF0dHJpYnV0ZS4KKwkoc3NlNF8yX2NyYzMyPG1vZGU+KTogT3ZlcnJpZGUgcHJlZml4X2RhdGEx NiBhbmQgcHJlZml4X3JleAorCWF0dHJpYnV0ZXMuCisJKiBjb25maWcvaTM4Ni9wcmVkaWNhdGVz Lm1kIChleHRfUUlyZWdfbm9tb2RlX29wZXJhbmQpOiBOZXcgcHJlZGljYXRlLgorCShjb25zdG0x Mjhfb3BlcmFuZCk6IFJlbW92ZWQuCisJKiBjb25maWcvaTM4Ni9pMzg2LmMgKG1lbW9yeV9hZGRy ZXNzX2xlbmd0aCk6IEZvcgorCWRpc3AgJiYgIWluZGV4ICYmICFiYXNlIGluIDY0LWJpdCBtb2Rl IGFjY291bnQgZm9yIFNJQiBieXRlIGlmCisJcHJpbnRfb3BlcmFuZF9hZGRyZXNzIGNhbid0IG9w dGltaXplIGRpc3AzMiBpbnRvIGRpc3AzMiglcmlwKQorCWFuZCBVTlNQRUMgZG9lc24ndCBpbXBs eSAoJXJpcCkgYWRkcmVzc2luZy4gIEFkZCAxIHRvIGxlbmd0aAorCWZvciBmczogb3IgZ3M6IHNl Z21lbnQuCisJKGl4ODZfYXR0cl9sZW5ndGhfaW1tZWRpYXRlX2RlZmF1bHQpOiBXaGVuIGNoZWNr aW5nIGlmIHNob3J0Zm9ybQorCWlzIHBvc3NpYmxlLCB0cnVuY2F0ZSBpbW1lZGlhdGUgdG8gdGhl IGxlbmd0aCBvZiB0aGUgbm9uLXNob3J0ZW5lZAorCWltbWVkaWF0ZS4KKwkoaXg4Nl9hdHRyX2xl bmd0aF9hZGRyZXNzX2RlZmF1bHQpOiBJZ25vcmUgTUVNX1Agb3BlcmFuZHMKKwl3aXRoIFggY29u c3RyYWludC4KKwkoaXg4Nl9hdHRyX2xlbmd0aF92ZXhfZGVmYXVsdCk6IE9ubHkgY2hlY2sgZm9y IERJbW9kZSBvbgorCUdFTkVSQUxfUkVHX1Agb3BlcmFuZHMuCisJKiBjb25maWcvaTM4Ni9zc2Uu bWQgKDxzc2U+X2NvbWksIDxzc2U+X3Vjb21pKTogQ2xlYXIKKwlwcmVmaXhfcmVwIGF0dHJpYnV0 ZSwgc2V0IHByZWZpeF9kYXRhMTYgYXR0cmlidXRlIGlmZiBNT0RFX0RGLgorCShzc2VfY3Z0dHBz MnBpKTogQ2xlYXIgcHJlZml4X3JlcCBhdHRyaWJ1dGUuCisJKHNzZTJfY3Z0dHBzMmRxLCAqc3Nl Ml9jdnRwZDJkcSwgc3NlMl9jdnRwczJwZCk6IENsZWFyIHByZWZpeF9kYXRhMTYKKwlhdHRyaWJ1 dGUuCisJKCpzc2UyX2N2dHRwZDJkcSk6IERvbid0IGNsZWFyIHByZWZpeF9yZXAgYXR0cmlidXRl LgorCSgqYXZ4X2FzaHI8bW9kZT4zLCBhc2hyPG1vZGU+MywgKmF2eF9sc2hyPG1vZGU+MywgbHNo cjxtb2RlPjMsCisJKmF2eF9hc2hsPG1vZGU+MywgYXNobDxtb2RlPjMpOiBTZXQgbGVuZ3RoX2lt bWVkaWF0ZSBhdHRyaWJ1dGUgdG8gMQorCWlmZiBvcGVyYW5kIDIgaXMgY29uc3RfaW50X29wZXJh bmQuCisJKCp2ZWNfZHVwdjRzaSwgYXZ4X3NodWZwZDI1Nl8xLCAqYXZ4X3NodWZwZF88bW9kZT4s CisJc3NlMl9zaHVmcGRfPG1vZGU+KTogU2V0IGxlbmd0aF9pbW1lZGlhdGUgYXR0cmlidXRlIHRv IDEuCisJKHNzZTJfcHNodWZkXzEpOiBMaWtld2lzZS4gIFNldCBwcmVmaXggYXR0cmlidXRlIHRv IG1heWJlX3ZleAorCWluc3RlYWQgb2YgdmV4LgorCShzc2UyX3BzaHVmbHdfMSwgc3NlMl9wc2h1 Zmh3XzEpOiBTZXQgbGVuZ3RoX2ltbWVkaWF0ZSB0byAxIGFuZCBjbGVhcgorCXByZWZpeF9kYXRh MTYuCisJKHNzZTJfdW5wY2tocGQsIHNzZTJfdW5wY2tscGQsIHNzZTJfc3RvcmVocGQsICp2ZWNf Y29uY2F0djJkZik6IFNldAorCXByZWZpeF9kYXRhMTYgYXR0cmlidXRlIGZvciBtb3ZscGQgYW5k IG1vdmhwZCBpbnN0cnVjdGlvbnMuCisJKHNzZTJfbG9hZGhwZCwgc3NlMl9sb2FkbHBkLCBzc2Uy X21vdnNkKTogTGlrZXdpc2UuICBPdmVycmlkZQorCWxlbmd0aF9pbW1lZGlhdGUgZm9yIHNodWZw ZCBpbnN0cnVjdGlvbi4KKwkoc3NlMl9tb3ZudHNpLCBzc2UzX2xkZHF1KTogQ2xlYXIgcHJlZml4 X2RhdGExNiBhdHRyaWJ1dGUuCisJKGF2eF9jbXBwPGF2eG1vZGVzdWZmaXhmMmM+PG1vZGU+MywK KwlhdnhfY21wczxzc2Vtb2Rlc3VmZml4ZjJjPjxtb2RlPjMsICphdnhfbWFza2NtcDxtb2RlPjMs CisJPHNzZT5fbWFza2NtcDxtb2RlPjMsIDxzc2U+X3ZtbWFza2NtcDxtb2RlPjMsCisJYXZ4X3No dWZwczI1Nl8xLCAqYXZ4X3NodWZwc188bW9kZT4sIHNzZV9zaHVmcHNfPG1vZGU+LAorCSp2ZWNf ZHVwdjRzZl9hdngsICp2ZWNfZHVwdjRzZik6IFNldAorCWxlbmd0aF9pbW1lZGlhdGUgYXR0cmli dXRlIHRvIDEuCisJKCphdnhfY3Z0c2kyc3NxLCAqYXZ4X2N2dHNpMnNkcSk6IFNldCBsZW5ndGhf dmV4IGF0dHJpYnV0ZSB0byA0LgorCShzc2VfY3Z0c2kyc3NxLCBzc2UyX2N2dHNpMnNkcSk6IFNl dCBwcmVmaXhfcmV4IGF0dHJpYnV0ZSB0byAxLgorCShzc2UyX2N2dHBpMnBkLCBzc2VfbG9hZGxw cywgc3NlMl9zdG9yZWxwZCk6IE92ZXJyaWRlCisJcHJlZml4X2RhdGExNiBhdHRyaWJ1dGUgZm9y IHRoZSBmaXJzdCBhbHRlcm5hdGl2ZSB0byAxLgorCSgqYXZ4X2xvYWRscHMpOiBPdmVycmlkZSBs ZW5ndGhfaW1tZWRpYXRlIGZvciB0aGUgZmlyc3QgYWx0ZXJuYXRpdmUuCisJKCp2ZWNfY29uY2F0 djJzZl9hdngpOiBPdmVycmlkZSBsZW5ndGhfaW1tZWRpYXRlIGFuZCBwcmVmaXhfZXh0cmEKKwlh dHRyaWJ1dGVzIGZvciBzZWNvbmQgYWx0ZXJuYXRpdmUuCisJKCp2ZWNfY29uY2F0djJzZl9zc2U0 XzEpOiBPdmVycmlkZSBsZW5ndGhfaW1tZWRpYXRlIGFuZAorCXByZWZpeF9kYXRhMTYgYXR0cmli dXRlcyBmb3Igc2Vjb25kIGFsdGVybmF0aXZlLgorCSgqdmVjX3NldHY0c2ZfYXZ4LCAqYXZ4X2lu c2VydHBzLCB2ZWNfZXh0cmFjdF9sb188bW9kZT4sCisJdmVjX2V4dHJhY3RfaGlfPG1vZGU+LCB2 ZWNfZXh0cmFjdF9sb192MTZoaSwKKwl2ZWNfZXh0cmFjdF9oaV92MTZoaSwgdmVjX2V4dHJhY3Rf bG9fdjMycWksCisJdmVjX2V4dHJhY3RfaGlfdjMycWkpOiBTZXQgcHJlZml4X2V4dHJhIGFuZCBs ZW5ndGhfaW1tZWRpYXRlIHRvIDEuCisJKCp2ZWNfc2V0djRzZl9zc2U0XzEsIHNzZTRfMV9pbnNl cnRwcywgKnNzZTRfMV9leHRyYWN0cHMpOiBTZXQKKwlwcmVmaXhfZGF0YTE2IGFuZCBsZW5ndGhf aW1tZWRpYXRlIHRvIDEuCisJKCphdnhfbXVsdjJzaXYyZGkzLCAqYXZ4X211bHY0c2kzLCBzc2U0 XzJfZ3R2MmRpMyk6IFNldCBwcmVmaXhfZXh0cmEKKwl0byAxLgorCSgqYXZ4Xzxjb2RlPjxtb2Rl PjMsICphdnhfZXE8bW9kZT4zLCAqYXZ4X2d0PG1vZGU+Myk6IFNldAorCXByZWZpeF9leHRyYSBh dHRyaWJ1dGUgZm9yIHZhcmlhbnRzIHRoYXQgZG9uJ3QgaGF2ZSAwZiBwcmVmaXgKKwlhbG9uZS4K KwkoKmF2eF9waW5zcjxzc2V2ZWNzaXplPik6IExpa2V3aXNlLiAgU2V0IGxlbmd0aF9pbW1lZGlh dGUgdG8gMS4KKwkoKnNzZTRfMV9waW5zcmIsICpzc2UyX3BpbnNydywgKnNzZTRfMV9waW5zcmQs ICpzc2U0XzFfcGV4dHJiLAorCSpzc2U0XzFfcGV4dHJiX21lbW9yeSwgKnNzZTJfcGV4dHJ3LCAq c3NlNF8xX3BleHRyd19tZW1vcnksCisJKnNzZTRfMV9wZXh0cmQpOiBTZXQgbGVuZ3RoX2ltbWVk aWF0ZSB0byAxLgorCSgqc3NlNF8xX3BpbnNyZCk6IExpa2V3aXNlLiAgU2V0IHByZWZpeF9leHRy YSB0byAxLgorCSgqc3NlNF8xX3BpbnNycSwgKnNzZTRfMV9wZXh0cnEpOiBTZXQgcHJlZml4X3Jl eCBhbmQgbGVuZ3RoX2ltbWVkaWF0ZQorCXRvIDEuCisJKCp2ZWNfZXh0cmFjdHYyZGlfMV9yZXg2 NF9hdngsICp2ZWNfZXh0cmFjdHYyZGlfMV9yZXg2NCwKKwkqdmVjX2V4dHJhY3R2MmRpXzFfYXZ4 LCAqdmVjX2V4dHJhY3R2MmRpXzFfc3NlMik6IE92ZXJyaWRlCisJbGVuZ3RoX2ltbWVkaWF0ZSB0 byAxIGZvciBzZWNvbmQgYWx0ZXJuYXRpdmUuCisJKCp2ZWNfY29uY2F0djJzaV9hdngsICp2ZWNf Y29uY2F0djJkaV9yZXg2NF9hdngpOiBPdmVycmlkZQorCXByZWZpeF9leHRyYSBhbmQgbGVuZ3Ro X2ltbWVkaWF0ZSBhdHRyaWJ1dGVzIGZvciB0aGUgZmlyc3QKKwlhbHRlcm5hdGl2ZS4KKwkodmVj X2NvbmNhdHYyc2lfc3NlNF8xKTogT3ZlcnJpZGUgbGVuZ3RoX2ltbWVkaWF0ZSB0byAxIGZvciB0 aGUKKwlmaXJzdCBhbHRlcm5hdGl2ZS4KKwkoKnZlY19jb25jYXR2MmRpX3JleDY0X3NzZTRfMSk6 IExpa2V3aXNlLiAgT3ZlcnJpZGUgcHJlZml4X3JleAorCXRvIDEgZm9yIHRoZSBmaXJzdCBhbmQg dGhpcmQgYWx0ZXJuYXRpdmUuCisJKCp2ZWNfY29uY2F0djJkaV9yZXg2NF9zc2UpOiBPdmVycmlk ZSBwcmVmaXhfcmV4IHRvIDEgZm9yIHRoZSBzZWNvbmQKKwlhbHRlcm5hdGl2ZS4KKwkoKnNzZTJf bWFza21vdmRxdSwgKnNzZTJfbWFza21vdmRxdV9yZXg2NCk6IE92ZXJyaWRlIGxlbmd0aF92ZXgK KwlhdHRyaWJ1dGUuCisJKCpzc2Vfc2ZlbmNlLCBzc2UyX21mZW5jZSwgc3NlMl9sZmVuY2UpOiBP dmVycmlkZSBsZW5ndGhfYWRkcmVzcworCWF0dHJpYnV0ZSB0byAwLgorCSgqYXZ4X3BoYWRkd3Y4 aGkzLCAqYXZ4X3BoYWRkZHY0c2kzLCAqYXZ4X3BoYWRkc3d2OGhpMywKKwkqYXZ4X3Boc3Vid3Y4 aGkzLCAqYXZ4X3Boc3ViZHY0c2kzLCAqYXZ4X3Boc3Vic3d2OGhpLAorCSphdnhfcG1hZGR1YnN3 MTI4LCAqYXZ4X3BtdWxocnN3djhoaTMsICphdnhfcHNodWZidjE2cWkzLAorCSphdnhfcHNpZ248 bW9kZT4zKTogU2V0IHByZWZpeF9leHRyYSBhdHRyaWJ1dGUgdG8gMS4KKwkoc3NzZTNfcGhhZGR3 djRoaTMsIHNzc2UzX3BoYWRkZHYyc2kzLCBzc3NlM19waGFkZHN3djRoaTMsCisJc3NzZTNfcGhz dWJ3djRoaTMsIHNzc2UzX3Boc3ViZHYyc2kzLCBzc3NlM19waHN1YnN3djRoaTMsCisJc3NzZTNf cG1hZGR1YnN3LCAqc3NzZTNfcG11bGhyc3d2NGhpLCBzc3NlM19wc2h1ZmJ2OHFpMywKKwlzc3Nl M19wc2lnbjxtb2RlPjMpOiBPdmVycmlkZSBwcmVmaXhfcmV4IGF0dHJpYnV0ZS4KKwkoKmF2eF9w YWxpZ25ydGkpOiBPdmVycmlkZSBwcmVmaXhfZXh0cmEgYW5kIGxlbmd0aF9pbW1lZGlhdGUKKwl0 byAxLgorCShzc3NlM19wYWxpZ25ydGkpOiBPdmVycmlkZSBsZW5ndGhfaW1tZWRpYXRlIHRvIDEu CisJKHNzc2UzX3BhbGlnbnJkaSk6IE92ZXJyaWRlIGxlbmd0aF9pbW1lZGlhdGUgdG8gMSwgb3Zl cnJpZGUKKwlwcmVmaXhfcmV4IGF0dHJpYnV0ZS4KKwkoYWJzPG1vZGU+Mik6IE92ZXJyaWRlIHBy ZWZpeF9yZXAgdG8gMCwgb3ZlcnJpZGUgcHJlZml4X3JleAorCWF0dHJpYnV0ZS4KKwkoc3NlNGFf ZXh0cnFpKTogT3ZlcnJpZGUgbGVuZ3RoX2ltbWVkaWF0ZSB0byAyLgorCShzc2U0YV9pbnNlcnRx aSk6IExpa2V3aXNlLiAgT3ZlcnJpZGUgcHJlZml4X2RhdGExNiB0byAwLgorCShzc2U0YV9pbnNl cnRxKTogT3ZlcnJpZGUgcHJlZml4X2RhdGExNiB0byAwLgorCShhdnhfYmxlbmRwPGF2eG1vZGVz dWZmaXhmMmM+PGF2eG1vZGVzdWZmaXg+LAorCWF2eF9ibGVuZHZwPGF2eG1vZGVzdWZmaXhmMmM+ PGF2eG1vZGVzdWZmaXg+LAorCWF2eF9kcHA8YXZ4bW9kZXN1ZmZpeGYyYz48YXZ4bW9kZXN1ZmZp eD4sICphdnhfbXBzYWRidywKKwkqYXZ4X3BibGVuZHZiLCAqYXZ4X3BibGVuZHcsIGF2eF9yb3Vu ZHA8YXZ4bW9kZXN1ZmZpeGYyYz4yNTYsCisJYXZ4X3JvdW5kczxhdnhtb2Rlc3VmZml4ZjJjPjI1 Nik6IE92ZXJyaWRlIHByZWZpeF9leHRyYQorCWFuZCBsZW5ndGhfaW1tZWRpYXRlIHRvIDEuCisJ KHNzZTRfMV9ibGVuZHA8c3NlbW9kZXN1ZmZpeGYyYz4sIHNzZTRfMV9kcHA8c3NlbW9kZXN1ZmZp eGYyYz4sCisJc3NlNF8yX3BjbXBlc3RyLCBzc2U0XzJfcGNtcGVzdHJpLCBzc2U0XzJfcGNtcGVz dHJtLAorCXNzZTRfMl9wY21wZXN0cl9jY29ubHksIHNzZTRfMl9wY21waXN0ciwgc3NlNF8yX3Bj bXBpc3RyaSwKKwlzc2U0XzJfcGNtcGlzdHJtLCBzc2U0XzJfcGNtcGlzdHJfY2Nvbmx5KTogT3Zl cnJpZGUgcHJlZml4X2RhdGExNgorCWFuZCBsZW5ndGhfaW1tZWRpYXRlIHRvIDEuCisJKHNzZTRf MV9ibGVuZHZwPHNzZW1vZGVzdWZmaXhmMmM+KTogT3ZlcnJpZGUgcHJlZml4X2RhdGExNiB0byAx LgorCShzc2U0XzFfbXBzYWRidywgc3NlNF8xX3BibGVuZHcpOiBPdmVycmlkZSBsZW5ndGhfaW1t ZWRpYXRlIHRvIDEuCisJKCphdnhfcGFja3VzZHcsIGF2eF92dGVzdHA8YXZ4bW9kZXN1ZmZpeGYy Yz48YXZ4bW9kZXN1ZmZpeD4sCisJYXZ4X3B0ZXN0MjU2KTogT3ZlcnJpZGUgcHJlZml4X2V4dHJh IHRvIDEuCisJKHNzZTRfMV9yb3VuZHA8c3NlbW9kZXN1ZmZpeGYyYz4sIHNzZTRfMV9yb3VuZHM8 c3NlbW9kZXN1ZmZpeGYyYz4pOgorCU92ZXJyaWRlIHByZWZpeF9kYXRhMTYgYW5kIGxlbmd0aF9p bW1lZGlhdGUgdG8gMS4KKwkoc3NlNV9wcGVybV96ZXJvX3YxNnFpX3Y4aGksIHNzZTVfcHBlcm1f c2lnbl92MTZxaV92OGhpLAorCXNzZTVfcHBlcm1femVyb192OGhpX3Y0c2ksIHNzZTVfcHBlcm1f c2lnbl92OGhpX3Y0c2ksCisJc3NlNV9wcGVybV96ZXJvX3Y0c2lfdjJkaSwgc3NlNV9wcGVybV9z aWduX3Y0c2lfdjJkaSwKKwlzc2U1X3Zyb3RsPG1vZGU+Mywgc3NlNV9hc2hsPG1vZGU+Mywgc3Nl NV9sc2hsPG1vZGU+Myk6IE92ZXJyaWRlCisJcHJlZml4X2RhdGExNiB0byAwIGFuZCBwcmVmaXhf ZXh0cmEgdG8gMi4KKwkoc3NlNV9yb3RsPG1vZGU+Mywgc3NlNV9yb3RyPG1vZGU+Myk6IE92ZXJy aWRlIGxlbmd0aF9pbW1lZGlhdGUgdG8gMS4KKwkoc3NlNV9mcmN6PG1vZGU+Miwgc3NlNV92bWZy Y3o8bW9kZT4yKTogRG9uJ3Qgb3ZlcnJpZGUgcHJlZml4X2V4dHJhCisJYXR0cmlidXRlLgorCSgq c3NlNV92bW1hc2tjbXA8bW9kZT4zLCBzc2U1X2NvbV90Zjxtb2RlPjMsCisJc3NlNV9tYXNrY21w PG1vZGU+Mywgc3NlNV9tYXNrY21wPG1vZGU+Mywgc3NlNV9tYXNrY21wX3Vuczxtb2RlPjMpOgor CU92ZXJyaWRlIHByZWZpeF9kYXRhMTYgYW5kIHByZWZpeF9yZXAgdG8gMCwgbGVuZ3RoX2ltbWVk aWF0ZSB0byAxCisJYW5kIHByZWZpeF9leHRyYSB0byAyLgorCShzc2U1X21hc2tjbXBfdW5zMjxt b2RlPjMsIHNzZTVfcGNvbV90Zjxtb2RlPjMpOiBPdmVycmlkZQorCXByZWZpeF9kYXRhMTYgdG8g MCwgbGVuZ3RoX2ltbWVkaWF0ZSB0byAxIGFuZCBwcmVmaXhfZXh0cmEgdG8gMi4KKwkoKmF2eF9h ZXNlbmMsICphdnhfYWVzZW5jbGFzdCwgKmF2eF9hZXNkZWMsICphdnhfYWVzZGVjbGFzdCwKKwlh dnhfdnBlcm1pbHZhcjxtb2RlPjMsCisJYXZ4X3Zicm9hZGNhc3RzPGF2eG1vZGVzdWZmaXhmMmM+ PGF2eG1vZGVzdWZmaXg+LAorCWF2eF92YnJvYWRjYXN0c3MyNTYsIGF2eF92YnJvYWRjYXN0ZjEy OF9wPGF2eG1vZGVzdWZmaXhmMmM+MjU2LAorCWF2eF9tYXNrbG9hZHA8YXZ4bW9kZXN1ZmZpeGYy Yz48YXZ4bW9kZXN1ZmZpeD4sCisJYXZ4X21hc2tzdG9yZXA8YXZ4bW9kZXN1ZmZpeGYyYz48YXZ4 bW9kZXN1ZmZpeD4pOgorCU92ZXJyaWRlIHByZWZpeF9leHRyYSB0byAxLgorCShhZXNrZXlnZW5h c3Npc3QsIHBjbG11bHFkcSk6IE92ZXJyaWRlIGxlbmd0aF9pbW1lZGlhdGUgdG8gMS4KKwkoKnZw Y2xtdWxxZHEsIGF2eF92cGVybWlsPG1vZGU+LCBhdnhfdnBlcm0yZjEyODxtb2RlPjMsCisJdmVj X3NldF9sb188bW9kZT4sIHZlY19zZXRfaGlfPG1vZGU+LCB2ZWNfc2V0X2xvX3YxNmhpLAorCXZl Y19zZXRfaGlfdjE2aGksIHZlY19zZXRfbG9fdjMycWksIHZlY19zZXRfaGlfdjMycWkpOiBPdmVy cmlkZQorCXByZWZpeF9leHRyYSBhbmQgbGVuZ3RoX2ltbWVkaWF0ZSB0byAxLgorCSgqYXZ4X3Z6 ZXJvYWxsLCBhdnhfdnplcm91cHBlciwgYXZ4X3Z6ZXJvdXBwZXJfcmV4NjQpOiBPdmVycmlkZQor CW1vZHJtIHRvIDAuCisJKCp2ZWNfY29uY2F0PG1vZGU+X2F2eCk6IE92ZXJyaWRlIHByZWZpeF9l eHRyYSBhbmQgbGVuZ3RoX2ltbWVkaWF0ZQorCXRvIDEgZm9yIHRoZSBmaXJzdCBhbHRlcm5hdGl2 ZS4KKwkqIGNvbmZpZy9pMzg2L21teC5tZCAoKm1vdjxtb2RlPl9pbnRlcm5hbF9yZXg2NCk6IE92 ZXJyaWRlCisJcHJlZml4X3JlcCwgcHJlZml4X2RhdGExNiBhbmQvb3IgcHJlZml4X3JleCBhdHRy aWJ1dGVzIGluIGNlcnRhaW4KKwljYXNlcy4KKwkoKm1vdjxtb2RlPl9pbnRlcm5hbF9hdngsICpt b3Z2MnNmX2ludGVybmFsX3JleDY0LAorCSptb3Z2MnNmX2ludGVybmFsX2F2eCwgKm1vdnYyc2Zf aW50ZXJuYWwpOiBPdmVycmlkZQorCXByZWZpeF9yZXAgYXR0cmlidXRlIGZvciBjZXJ0YWluIGFs dGVybmF0aXZlcy4KKwkoKm1vdjxtb2RlPl9pbnRlcm5hbCk6IE92ZXJyaWRlIHByZWZpeF9yZXAg b3IgcHJlZml4X2RhdGExNgorCWF0dHJpYnV0ZXMgZm9yIGNlcnRhaW4gYWx0ZXJuYXRpdmVzLgor CSgqbW92djJzZl9pbnRlcm5hbF9yZXg2NF9hdngpOiBPdmVycmlkZSBwcmVmaXhfcmVwIGFuZCBs ZW5ndGhfdmV4CisJYXR0cmlidXRlcyBmb3IgY2VydGFpbiBhbHRlcm5hdGl2ZXMuCisJKCptbXhf YWRkdjJzZjMsICptbXhfc3VidjJzZjMsICptbXhfbXVsdjJzZjMsCisJKm1teF88Y29kZT52MnNm M19maW5pdGUsICptbXhfPGNvZGU+djJzZjMsIG1teF9yY3B2MnNmMiwKKwltbXhfcmNwaXQxdjJz ZjMsIG1teF9yY3BpdDJ2MnNmMywgbW14X3JzcXJ0djJzZjIsIG1teF9yc3FpdDF2MnNmMywKKwlt bXhfaGFkZHYyc2YzLCBtbXhfaHN1YnYyc2YzLCBtbXhfYWRkc3VidjJzZjMsCisJKm1teF9lcXYy c2YzLCBtbXhfZ3R2MnNmMywgbW14X2dldjJzZjMsIG1teF9wZjJpZCwgbW14X3BmMml3LAorCW1t eF9waTJmdywgbW14X2Zsb2F0djJzaTIsIG1teF9wc3dhcGR2MnNmMiwgKm1teF9wbXVsaHJ3djRo aTMsCisJbW14X3Bzd2FwZHYyc2kyKTogU2V0IHByZWZpeF9leHRyYSBhdHRyaWJ1dGUgdG8gMS4K KwkobW14X2FzaHI8bW9kZT4zLCBtbXhfbHNocjxtb2RlPjMsIG1teF9hc2hsPG1vZGU+Myk6IFNl dAorCWxlbmd0aF9pbW1lZGlhdGUgdG8gMSBpZiBvcGVyYW5kIDIgaXMgY29uc3RfaW50X29wZXJh bmQuCisJKCptbXhfcGluc3J3LCBtbXhfcGV4dHJ3LCBtbXhfcHNodWZ3XzEsICp2ZWNfZHVwdjRo aSwKKwkqdmVjX2V4dHJhY3R2MnNpXzEpOiBTZXQgbGVuZ3RoX2ltbWVkaWF0ZQorCWF0dHJpYnV0 ZSB0byAxLgorCSgqbW14X3Vhdmd2OHFpMyk6IE92ZXJyaWRlIHByZWZpeF9leHRyYSBhdHRyaWJ1 dGUgdG8gMSBpZgorCXVzaW5nIG9sZCAzRE5PVyBpbnNuIHJhdGhlciB0aGFuIFNTRS8zRE5PV19B LgorCShtbXhfZW1tcywgbW14X2ZlbW1zKTogQ2xlYXIgbW9kcm0gYXR0cmlidXRlLgorCisyMDA5 LTA1LTIxICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KKworCSogY29uZmlnL2kz ODYvaTM4Ni5jIChtZW1vcnlfYWRkcmVzc19sZW5ndGgpOiBIYW5kbGUgJXIxMgorCXRoZSBzYW1l IGFzICVyc3AgYW5kICVyMTMgdGhlIHNhbWUgYXMgJXJicC4gIEZvciAlcnNwIGFuZCAlcmJwCisJ YWxzbyBjaGVjayBSRUdOTy4KKwkoaXg4Nl9hdHRyX2xlbmd0aF9hZGRyZXNzX2RlZmF1bHQpOiBG b3IgTU9ERV9TSSBsZWEgaW4gNjQtYml0CisJbW9kZSBsb29rIHRocm91Z2ggb3B0aW9uYWwgWkVS T19FWFRFTkQgYW5kIFNVQlJFRy4KKwkqIGNvbmZpZy9pMzg2L2kzODYubWQgKFIxMl9SRUcpOiBO ZXcgZGVmaW5lX2NvbnN0YW50LgorCShwcmVmaXhfZGF0YTE2KTogRm9yIHNzZSB1bml0IHNldCBh bHNvIGZvciBNT0RFX1RJIGluc25zLgorCShwcmVmaXhfcmV4KTogRm9yIC1tMzIgYWx3YXlzIHJl dHVybiAwLiAgRm9yIFRZUEVfSU1PVlgKKwlpbnNucyBzZXQgaWYgb3BlcmFuZCAxIGlzIGV4dF9R SXJlZ19vcGVyYW5kLgorCShtb2RybSk6IEZvciBUWVBFX0lNT1YgY2xlYXIgb25seSBpZiBub3Qg TU9ERV9ESS4gIEZvcgorCVRZUEVfe0FMVXssMX0sSUNNUCxURVNUfSBpbnNuIGNsZWFyIGlmIHRo ZXJlIGlzIG5vbi1zaG9ydGVuZWQKKwlpbW1lZGlhdGUuCisJKCptb3ZkaV9leHR6dl8xLCB6ZXJv X2V4dGVuZGhpZGkyLCB6ZXJvX2V4dGVuZHFpZGkyKTogQ2hhbmdlCisJbW9kZSBmcm9tIE1PREVf REkgdG8gTU9ERV9TSS4KKwkobW92ZGlfMV9yZXg2NCk6IE92ZXJyaWRlIG1vZHJtIGFuZCBsZW5n dGhfaW1tZWRpYXRlIGF0dHJpYnV0ZXMKKwlvbmx5IGZvciBtb3ZhYnMgKFRZUEVfSU1PViwgYWx0 ZXJuYXRpdmUgMikuCisJKHplcm9fZXh0ZW5kc2lkaTJfcmV4NjQpOiBDbGVhciBwcmVmaXhfMGYg YXR0cmlidXRlIGlmIFRZUEVfSU1PVlguCisJKCpmbG9hdDxTU0VNT0RFSTI0Om1vZGU+PE1PREVG Om1vZGU+Ml9taXhlZF9pbnRlcnVuaXQsCisJKmZsb2F0PFNTRU1PREVJMjQ6bW9kZT48TU9ERUY6 bW9kZT4yX21peGVkX25vaW50ZXJ1bml0LAorCSpmbG9hdDxTU0VNT0RFSTI0Om1vZGU+PE1PREVG Om1vZGU+Ml9zc2VfaW50ZXJ1bml0LAorCSpmbG9hdDxTU0VNT0RFSTI0Om1vZGU+PE1PREVGOm1v ZGU+Ml9zc2Vfbm9pbnRlcnVuaXQpOiBTZXQKKwlwcmVmaXhfcmV4IGF0dHJpYnV0ZSBpZiBESW1v ZGUuCisJKCphZGRkaV8xX3JleDY0LCAqYWRkZGlfMl9yZXg2NCwgKmFkZGRpXzNfcmV4NjQsICph ZGRkaV81X3JleDY0LAorCSphZGRzaV8xLCAqYWRkc2lfMV96ZXh0LCAqYWRkc2lfMiwgKmFkZHNp XzJfemV4dCwgKmFkZHNpXzMsCisJKmFkZHNpXzNfemV4dCwgKmFkZHNpXzUsICphZGRoaV8xX2xl YSwgKmFkZGhpXzEsICphZGRoaV8yLCAqYWRkaGlfMywKKwkqYWRkaGlfNSwgKmFkZHFpXzFfbGVh LCAqYWRkcWlfMSk6IE92ZXJyaWRlIGxlbmd0aF9pbW1lZGlhdGUKKwlhdHRyaWJ1dGUgdG8gMSBp ZiBUWVBFX0FMVSBhbmQgb3BlcmFuZCAyIGlzIGNvbnN0MTI4X29wZXJhbmQuCisJKHByb19lcGls b2d1ZV9hZGp1c3Rfc3RhY2tfMSwgcHJvX2VwaWxvZ3VlX2FkanVzdF9zdGFja19yZXg2NCk6CisJ TGlrZXdpc2UuICBGb3IgVFlQRV9JTU9WIGNsZWFyIGxlbmd0aF9pbW1lZGlhdGUgYXR0cmlidXRl LgorCSgqYXNobGRpM18xX3JleDY0LCAqYXNobGRpM19jbXBfcmV4NjQsICphc2hsZGkzX2Njb25s eV9yZXg2NCwKKwkqYXNobHNpM18xLCAqYXNobHNpM18xX3pleHQsICphc2hsc2kzX2NtcCwgKiph c2hsc2kzX2Njb25seSwKKwkqYXNobHNpM19jbXBfemV4dCwgKmFzaGxoaTNfMV9sZWEsICphc2hs aGkzXzEsICphc2hsaGkzX2NtcCwKKwkqYXNobGhpM19jY29ubHksICphc2hscWkzXzFfbGVhLCAq YXNobHFpM18xLCAqYXNobHFpM19jbXAsCisJKmFzaGxxaTNfY2Nvbmx5KTogT3ZlcnJpZGUgbGVu Z3RoX2ltbWVkaWF0ZSBhdHRyaWJ1dGUgdG8gMCBpZiBUWVBFX0FMVQorCW9yIG9uZSBvcGVyYW5k IFRZUEVfSVNISUZULgorCSgqYXNocmRpM18xX29uZV9iaXRfcmV4NjQsICphc2hyZGkzX29uZV9i aXRfY21wX3JleDY0LAorCSphc2hyZGkzX29uZV9iaXRfY2Nvbmx5X3JleDY0LCAqYXNocnNpM18x X29uZV9iaXQsCisJKmFzaHJzaTNfMV9vbmVfYml0X3pleHQsICphc2hyc2kzX29uZV9iaXRfY21w LAorCSphc2hyc2kzX29uZV9iaXRfY2Nvbmx5LCAqYXNocnNpM19vbmVfYml0X2NtcF96ZXh0LAor CSphc2hyaGkzXzFfb25lX2JpdCwgKmFzaHJoaTNfb25lX2JpdF9jbXAsICphc2hyaGkzX29uZV9i aXRfY2Nvbmx5LAorCSphc2hycWkzXzFfb25lX2JpdCwgKmFzaHJxaTNfMV9vbmVfYml0X3NscCwg KmFzaHJxaTNfb25lX2JpdF9jbXAsCisJKmFzaHJxaTNfb25lX2JpdF9jY29ubHksICpsc2hyZGkz XzFfb25lX2JpdF9yZXg2NCwKKwkqbHNocmRpM19jbXBfb25lX2JpdF9yZXg2NCwgKmxzaHJkaTNf Y2Nvbmx5X29uZV9iaXRfcmV4NjQsCisJKmxzaHJzaTNfMV9vbmVfYml0LCAqbHNocnNpM18xX29u ZV9iaXRfemV4dCwgKmxzaHJzaTNfb25lX2JpdF9jbXAsCisJKmxzaHJzaTNfb25lX2JpdF9jY29u bHksICpsc2hyc2kzX2NtcF9vbmVfYml0X3pleHQsCisJKmxzaHJoaTNfMV9vbmVfYml0LCAqbHNo cmhpM19vbmVfYml0X2NtcCwgKmxzaHJoaTNfb25lX2JpdF9jY29ubHksCisJKmxzaHJxaTNfMV9v bmVfYml0LCAqbHNocnFpM18xX29uZV9iaXRfc2xwLCAqbHNocnFpMl9vbmVfYml0X2NtcCwKKwkq bHNocnFpMl9vbmVfYml0X2Njb25seSwgKnJvdGxzaTNfMV9vbmVfYml0X3JleDY0LCAqcm90bHNp M18xX29uZV9iaXQsCisJKnJvdGxzaTNfMV9vbmVfYml0X3pleHQsICpyb3RsaGkzXzFfb25lX2Jp dCwgKnJvdGxxaTNfMV9vbmVfYml0X3NscCwKKwkqcm90bHFpM18xX29uZV9iaXQsICpyb3RyZGkz XzFfb25lX2JpdF9yZXg2NCwgKnJvdHJzaTNfMV9vbmVfYml0LAorCSpyb3Ryc2kzXzFfb25lX2Jp dF96ZXh0LCAqcm90cmhpM19vbmVfYml0LCAqcm90cnFpM18xX29uZV9iaXQsCisJKnJvdHJxaTNf MV9vbmVfYml0X3NscCk6IE92ZXJyaWRlIGxlbmd0aF9pbW1lZGlhdGUgYXR0cmlidXRlIHRvIDAs CisJc2V0IG1vZGUgYXR0cmlidXRlLCBkb24ndCBvdmVycmlkZSBsZW5ndGggYXR0cmlidXRlLgor CSgqYnRzcSwgKmJ0cnEsICpidGNxLCAqYnRkaV9yZXg2NCwgKmJ0c2kpOiBTZXQgcHJlZml4XzBm IGF0dHJpYnV0ZQorCXRvIDEuCisJKHJldHVybl9pbnRlcm5hbF9sb25nKTogU2V0IGxlbmd0aCBh dHRyaWJ1dGUgdG8gMiBpbnN0ZWFkIG9mIDEuCisJKCpzdHJtb3ZxaV9yZXhfMSwgKnN0cnNldHFp X3JleF8xLCAqcmVwX3N0b3NxaV9yZXg2NCwKKwkqY21wc3RybnFpX256X3JleF8xLCAqY21wc3Ry bnFpX3JleF8xLCAqc3RybGVucWlfcmV4XzEpOiBDbGVhcgorCXByZWZpeF9yZXggYXR0cmlidXRl LgorCSogY29uZmlnL2kzODYvcHJlZGljYXRlcy5tZCAoZXh0X1FJcmVnX29wZXJhbmQsCisJY29u c3QxMjhfb3BlcmFuZCk6IE5ldyBwcmVkaWNhdGVzLgorCShtZW1vcnlfZGlzcGxhY2VtZW50X29u bHlfb3BlcmFuZCk6IEFsd2F5cyByZXR1cm4gMCBmb3IKKwlUQVJHRVRfNjRCSVQuCisKKzIwMDkt MDUtMjEgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgorCisJKiBjb25maWcvaTM4 Ni9pMzg2Lm1kIChhZGRkaV80X3JleDY0LCBhZGRzaV80LCBhZGRoaV80KTogRm9yCisJb3BlcmFu ZDIgLTEyOCBvdmVycmlkZSBsZW5ndGhfaW1tZWRpYXRlIGF0dHJpYnV0ZSB0byAxLgorCSogY29u ZmlnL2kzODYvcHJlZGljYXRlcy5tZCAoY29uc3RtMTI4X29wZXJhbmQpOiBOZXcgcHJlZGljYXRl LgorCisyMDA5LTA1LTE4ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisKKwlQUiB0 YXJnZXQvMzk5NDIKKwkqIGNvbmZpZy9pMzg2L2kzODYuYyAoaXg4Nl9hdm9pZF9qdW1wX21pc3Nw cmVkaWN0cyk6IFJlcGxhY2UKKwlnZW5fYWxpZ24gd2l0aCBnZW5fcGFkLgorCShpeDg2X3Jlb3Jn KTogQ2hlY2sgQVNNX09VVFBVVF9NQVhfU0tJUF9QQUQgaW5zdGVhZCBvZgorCSNpZmRlZiBBU01f T1VUUFVUX01BWF9TS0lQX0FMSUdOLgorCisJKiBjb25maWcvaTM4Ni9pMzg2LmggKEFTTV9PVVRQ VVRfTUFYX1NLSVBfUEFEKTogTmV3LgorCSogY29uZmlnL2kzODYveDg2LTY0LmggKEFTTV9PVVRQ VVRfTUFYX1NLSVBfUEFEKTogTGlrZXdpc2UuCisKKwkqIGNvbmZpZy9pMzg2L2kzODYubWQgKGFs aWduKTogUmVuYW1lZCB0byAuLi4KKwkocGFkKTogVGhpcy4gIFJlcGxhY2UgQVNNX09VVFBVVF9N QVhfU0tJUF9BTElHTiB3aXRoCisJQVNNX09VVFBVVF9NQVhfU0tJUF9QQUQuCisKKzIwMDktMDUt MTYgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgorIAorIAlQUiB0YXJnZXQvMzk5 NDIKKwkqIGZpbmFsLmMgKGxhYmVsX3RvX21heF9za2lwKTogTmV3IGZ1bmN0aW9uLgorCShsYWJl bF90b19hbGlnbm1lbnQpOiBPbmx5IHVzZSBMQUJFTF9UT19BTElHTk1FTlQgaWYKKwlDT0RFX0xB QkVMX05VTUJFUiA8PSBtYXhfbGFiZWxuby4KKwkqIG91dHB1dC5oIChsYWJlbF90b19tYXhfc2tp cCk6IE5ldyBwcm90b3R5cGUuCisJKiBjb25maWcvaTM4Ni9pMzg2LmMgKGl4ODZfYXZvaWRfanVt cF9taXNzcHJlZGljdHMpOiBSZW5hbWVkIHRvLi4uCisJKGl4ODZfYXZvaWRfanVtcF9taXNwcmVk aWN0cyk6IC4uLiB0aGlzLiAgRG9uJ3QgZGVmaW5lIGlmCisJQVNNX09VVFBVVF9NQVhfU0tJUF9B TElHTiBpc24ndCBkZWZpbmVkLiAgVXBkYXRlIGNvbW1lbnQuCisJSGFuZGxlIENPREVfTEFCRUxz IHdpdGggPj0gMTYgYnl0ZSBhbGlnbm1lbnQgb3Igd2l0aAorCW1heF9za2lwID09ICgxIDw8IGFs aWduKSAtIDEuCisJKGl4ODZfcmVvcmcpOiBEb24ndCBjYWxsIGl4ODZfYXZvaWRfanVtcF9taXNw cmVkaWN0cyBpZgorCUFTTV9PVVRQVVRfTUFYX1NLSVBfQUxJR04gaXNuJ3QgZGVmaW5lZC4KKwor MjAwOS0wNS0xNSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorCisJKiBjb25maWcv aTM4Ni9pMzg2LmMgKGl4ODZfcmVvcmcpOiBDYWxsIG9wdGltaXplX2Z1bmN0aW9uX2Zvcl9zcGVl ZF9wCisJb25seSBvbmNlLgorCistLS0gZ2NjL2ZpbmFsLmMuamoJMjAwOS0wNi0wOSAxMDoyMTox OC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnY2MvZmluYWwuYwkyMDA5LTA2LTA5IDEwOjQ2OjA5LjAw MDAwMDAwMCArMDIwMAorQEAgLTU1Myw3ICs1NTMsMTcgQEAgc3RhdGljIGludCBtaW5fbGFiZWxu bywgbWF4X2xhYmVsbm87CisgaW50CisgbGFiZWxfdG9fYWxpZ25tZW50IChydHggbGFiZWwpCisg eworLSAgcmV0dXJuIExBQkVMX1RPX0FMSUdOTUVOVCAobGFiZWwpOworKyAgaWYgKENPREVfTEFC RUxfTlVNQkVSIChsYWJlbCkgPD0gbWF4X2xhYmVsbm8pCisrICAgIHJldHVybiBMQUJFTF9UT19B TElHTk1FTlQgKGxhYmVsKTsKKysgIHJldHVybiAwOworK30KKysKKytpbnQKKytsYWJlbF90b19t YXhfc2tpcCAocnR4IGxhYmVsKQorK3sKKysgIGlmIChDT0RFX0xBQkVMX05VTUJFUiAobGFiZWwp IDw9IG1heF9sYWJlbG5vKQorKyAgICByZXR1cm4gTEFCRUxfVE9fTUFYX1NLSVAgKGxhYmVsKTsK KysgIHJldHVybiAwOworIH0KKyAKKyAjaWZkZWYgSEFWRV9BVFRSX2xlbmd0aAorLS0tIGdjYy9j b25maWcvaTM4Ni9pMzg2LmMuamoJMjAwOS0wNi0wOSAxMDoyNDozNS4wMDAwMDAwMDAgKzAyMDAK KysrKyBnY2MvY29uZmlnL2kzODYvaTM4Ni5jCTIwMDktMDYtMDkgMTI6MTA6MDEuMDAwMDAwMDAw ICswMjAwCitAQCAtODg4NCw2ICs4ODg0LDEwIEBAIGl4ODZfZGVjb21wb3NlX2FkZHJlc3MgKHJ0 eCBhZGRyLCBzdHJ1Y3QKKyAgIGJhc2VfcmVnID0gYmFzZSAmJiBHRVRfQ09ERSAoYmFzZSkgPT0g U1VCUkVHID8gU1VCUkVHX1JFRyAoYmFzZSkgOiBiYXNlOworICAgaW5kZXhfcmVnID0gaW5kZXgg JiYgR0VUX0NPREUgKGluZGV4KSA9PSBTVUJSRUcgPyBTVUJSRUdfUkVHIChpbmRleCkgOiBpbmRl eDsKKyAKKysgIC8qIEF2b2lkIHVzZWxlc3MgMCBkaXNwbGFjZW1lbnQuICAqLworKyAgaWYgKGRp c3AgPT0gY29uc3QwX3J0eCAmJiAoYmFzZSB8fCBpbmRleCkpCisrICAgIGRpc3AgPSBOVUxMX1JU WDsKKysKKyAgIC8qIEFsbG93IGFyZyBwb2ludGVyIGFuZCBzdGFjayBwb2ludGVyIGFzIGluZGV4 IGlmIHRoZXJlIGlzIG5vdCBzY2FsaW5nLiAgKi8KKyAgIGlmIChiYXNlX3JlZyAmJiBpbmRleF9y ZWcgJiYgc2NhbGUgPT0gMQorICAgICAgICYmIChpbmRleF9yZWcgPT0gYXJnX3BvaW50ZXJfcnR4 CitAQCAtODg5NSwxMCArODg5OSwxNiBAQCBpeDg2X2RlY29tcG9zZV9hZGRyZXNzIChydHggYWRk ciwgc3RydWN0CisgICAgICAgdG1wID0gYmFzZV9yZWcsIGJhc2VfcmVnID0gaW5kZXhfcmVnLCBp bmRleF9yZWcgPSB0bXA7CisgICAgIH0KKyAKKy0gIC8qIFNwZWNpYWwgY2FzZTogJWVicCBjYW5u b3QgYmUgZW5jb2RlZCBhcyBhIGJhc2Ugd2l0aG91dCBhIGRpc3BsYWNlbWVudC4gICovCistICBp ZiAoKGJhc2VfcmVnID09IGhhcmRfZnJhbWVfcG9pbnRlcl9ydHgKKy0gICAgICAgfHwgYmFzZV9y ZWcgPT0gZnJhbWVfcG9pbnRlcl9ydHgKKy0gICAgICAgfHwgYmFzZV9yZWcgPT0gYXJnX3BvaW50 ZXJfcnR4KSAmJiAhZGlzcCkKKysgIC8qIFNwZWNpYWwgY2FzZTogJWVicCBjYW5ub3QgYmUgZW5j b2RlZCBhcyBhIGJhc2Ugd2l0aG91dCBhIGRpc3BsYWNlbWVudC4KKysgICAgIFNpbWlsYXJseSAl cjEzLiAgKi8KKysgIGlmICghZGlzcAorKyAgICAgICYmIGJhc2VfcmVnCisrICAgICAgJiYgKGJh c2VfcmVnID09IGhhcmRfZnJhbWVfcG9pbnRlcl9ydHgKKysJICB8fCBiYXNlX3JlZyA9PSBmcmFt ZV9wb2ludGVyX3J0eAorKwkgIHx8IGJhc2VfcmVnID09IGFyZ19wb2ludGVyX3J0eAorKwkgIHx8 IChSRUdfUCAoYmFzZV9yZWcpCisrCSAgICAgICYmIChSRUdOTyAoYmFzZV9yZWcpID09IEhBUkRf RlJBTUVfUE9JTlRFUl9SRUdOVU0KKysJCSAgfHwgUkVHTk8gKGJhc2VfcmVnKSA9PSBSMTNfUkVH KSkpKQorICAgICBkaXNwID0gY29uc3QwX3J0eDsKKyAKKyAgIC8qIFNwZWNpYWwgY2FzZTogb24g SzYsIFslZXNpXSBtYWtlcyB0aGUgaW5zdHJ1Y3Rpb24gdmVjdG9yIGRlY29kZWQuCitAQCAtODkx Miw3ICs4OTIyLDcgQEAgaXg4Nl9kZWNvbXBvc2VfYWRkcmVzcyAocnR4IGFkZHIsIHN0cnVjdAor ICAgICBkaXNwID0gY29uc3QwX3J0eDsKKyAKKyAgIC8qIFNwZWNpYWwgY2FzZTogZW5jb2RlIHJl ZytyZWcgaW5zdGVhZCBvZiByZWcqMi4gICovCistICBpZiAoIWJhc2UgJiYgaW5kZXggJiYgc2Nh bGUgJiYgc2NhbGUgPT0gMikKKysgIGlmICghYmFzZSAmJiBpbmRleCAmJiBzY2FsZSA9PSAyKQor ICAgICBiYXNlID0gaW5kZXgsIGJhc2VfcmVnID0gaW5kZXhfcmVnLCBzY2FsZSA9IDE7CisgCisg ICAvKiBTcGVjaWFsIGNhc2U6IHNjYWxpbmcgY2Fubm90IGJlIGVuY29kZWQgd2l0aG91dCBiYXNl IG9yIGRpc3BsYWNlbWVudC4gICovCitAQCAtMTkyNDAsMjMgKzE5MjUwLDUzIEBAIG1lbW9yeV9h ZGRyZXNzX2xlbmd0aCAocnR4IGFkZHIpCisgCisgICAvKiBSdWxlIG9mIHRodW1iOgorICAgICAg ICAtIGVzcCBhcyB0aGUgYmFzZSBhbHdheXMgd2FudHMgYW4gaW5kZXgsCistICAgICAgIC0gZWJw IGFzIHRoZSBiYXNlIGFsd2F5cyB3YW50cyBhIGRpc3BsYWNlbWVudC4gICovCisrICAgICAgIC0g ZWJwIGFzIHRoZSBiYXNlIGFsd2F5cyB3YW50cyBhIGRpc3BsYWNlbWVudCwKKysgICAgICAgLSBy MTIgYXMgdGhlIGJhc2UgYWx3YXlzIHdhbnRzIGFuIGluZGV4LAorKyAgICAgICAtIHIxMyBhcyB0 aGUgYmFzZSBhbHdheXMgd2FudHMgYSBkaXNwbGFjZW1lbnQuICAqLworIAorICAgLyogUmVnaXN0 ZXIgSW5kaXJlY3QuICAqLworICAgaWYgKGJhc2UgJiYgIWluZGV4ICYmICFkaXNwKQorICAgICB7 CisgICAgICAgLyogZXNwIChmb3IgaXRzIGluZGV4KSBhbmQgZWJwIChmb3IgaXRzIGRpc3BsYWNl bWVudCkgbmVlZAorLQkgdGhlIHR3by1ieXRlIG1vZHJtIGZvcm0uICAqLworLSAgICAgIGlmIChh ZGRyID09IHN0YWNrX3BvaW50ZXJfcnR4CistCSAgfHwgYWRkciA9PSBhcmdfcG9pbnRlcl9ydHgK Ky0JICB8fCBhZGRyID09IGZyYW1lX3BvaW50ZXJfcnR4CistCSAgfHwgYWRkciA9PSBoYXJkX2Zy YW1lX3BvaW50ZXJfcnR4KQorKwkgdGhlIHR3by1ieXRlIG1vZHJtIGZvcm0uICBTaW1pbGFybHkg Zm9yIHIxMiBhbmQgcjEzIGluIDY0LWJpdAorKwkgY29kZS4gICovCisrICAgICAgaWYgKFJFR19Q IChhZGRyKQorKwkgICYmIChhZGRyID09IGFyZ19wb2ludGVyX3J0eAorKwkgICAgICB8fCBhZGRy ID09IGZyYW1lX3BvaW50ZXJfcnR4CisrCSAgICAgIHx8IFJFR05PIChhZGRyKSA9PSBTUF9SRUcK KysJICAgICAgfHwgUkVHTk8gKGFkZHIpID09IEJQX1JFRworKwkgICAgICB8fCBSRUdOTyAoYWRk cikgPT0gUjEyX1JFRworKwkgICAgICB8fCBSRUdOTyAoYWRkcikgPT0gUjEzX1JFRykpCisgCWxl biA9IDE7CisgICAgIH0KKyAKKy0gIC8qIERpcmVjdCBBZGRyZXNzaW5nLiAgKi8KKysgIC8qIERp cmVjdCBBZGRyZXNzaW5nLiAgSW4gNjQtYml0IG1vZGUgbW9kIDAwIHIvbSA1CisrICAgICBpcyBu b3QgZGlzcDMyLCBidXQgZGlzcDMyKCVyaXApLCBzbyBmb3IgZGlzcDMyCisrICAgICBTSUIgYnl0 ZSBpcyBuZWVkZWQsIHVubGVzcyBwcmludF9vcGVyYW5kX2FkZHJlc3MKKysgICAgIG9wdGltaXpl cyBpdCBpbnRvIGRpc3AzMiglcmlwKSBvciAoJXJpcCkgaXMgaW1wbGllZAorKyAgICAgYnkgVU5T UEVDLiAgKi8KKyAgIGVsc2UgaWYgKGRpc3AgJiYgIWJhc2UgJiYgIWluZGV4KQorLSAgICBsZW4g PSA0OworKyAgICB7CisrICAgICAgbGVuID0gNDsKKysgICAgICBpZiAoVEFSR0VUXzY0QklUKQor Kwl7CisrCSAgcnR4IHN5bWJvbCA9IGRpc3A7CisrCisrCSAgaWYgKEdFVF9DT0RFIChkaXNwKSA9 PSBDT05TVCkKKysJICAgIHN5bWJvbCA9IFhFWFAgKGRpc3AsIDApOworKwkgIGlmIChHRVRfQ09E RSAoc3ltYm9sKSA9PSBQTFVTCisrCSAgICAgICYmIENPTlNUX0lOVF9QIChYRVhQIChzeW1ib2ws IDEpKSkKKysJICAgIHN5bWJvbCA9IFhFWFAgKHN5bWJvbCwgMCk7CisrCisrCSAgaWYgKEdFVF9D T0RFIChzeW1ib2wpICE9IExBQkVMX1JFRgorKwkgICAgICAmJiAoR0VUX0NPREUgKHN5bWJvbCkg IT0gU1lNQk9MX1JFRgorKwkJICB8fCBTWU1CT0xfUkVGX1RMU19NT0RFTCAoc3ltYm9sKSAhPSAw KQorKwkgICAgICAmJiAoR0VUX0NPREUgKHN5bWJvbCkgIT0gVU5TUEVDCisrCQkgIHx8IChYSU5U IChzeW1ib2wsIDEpICE9IFVOU1BFQ19HT1RQQ1JFTAorKwkJICAgICAgJiYgWElOVCAoc3ltYm9s LCAxKSAhPSBVTlNQRUNfR09UTlRQT0ZGKSkpCisrCSAgICBsZW4gKz0gMTsKKysJfQorKyAgICB9 CisgCisgICBlbHNlCisgICAgIHsKK0BAIC0xOTI2OCwxOSArMTkzMDgsMzEgQEAgbWVtb3J5X2Fk ZHJlc3NfbGVuZ3RoIChydHggYWRkcikKKyAJICBlbHNlCisgCSAgICBsZW4gPSA0OworIAl9Cist ICAgICAgLyogZWJwIGFsd2F5cyB3YW50cyBhIGRpc3BsYWNlbWVudC4gICovCistICAgICAgZWxz ZSBpZiAoYmFzZSA9PSBoYXJkX2ZyYW1lX3BvaW50ZXJfcnR4KQorLSAgICAgICAgbGVuID0gMTsK KysgICAgICAvKiBlYnAgYWx3YXlzIHdhbnRzIGEgZGlzcGxhY2VtZW50LiAgU2ltaWxhcmx5IHIx My4gICovCisrICAgICAgZWxzZSBpZiAoUkVHX1AgKGJhc2UpCisrCSAgICAgICAmJiAoUkVHTk8g KGJhc2UpID09IEJQX1JFRyB8fCBSRUdOTyAoYmFzZSkgPT0gUjEzX1JFRykpCisrCWxlbiA9IDE7 CisgCisgICAgICAgLyogQW4gaW5kZXggcmVxdWlyZXMgdGhlIHR3by1ieXRlIG1vZHJtIGZvcm0u Li4uICAqLworICAgICAgIGlmIChpbmRleAorLQkgIC8qIC4uLmxpa2UgZXNwLCB3aGljaCBhbHdh eXMgd2FudHMgYW4gaW5kZXguICAqLworLQkgIHx8IGJhc2UgPT0gc3RhY2tfcG9pbnRlcl9ydHgK KysJICAvKiAuLi5saWtlIGVzcCAob3IgcjEyKSwgd2hpY2ggYWx3YXlzIHdhbnRzIGFuIGluZGV4 LiAgKi8KKyAJICB8fCBiYXNlID09IGFyZ19wb2ludGVyX3J0eAorLQkgIHx8IGJhc2UgPT0gZnJh bWVfcG9pbnRlcl9ydHgpCisrCSAgfHwgYmFzZSA9PSBmcmFtZV9wb2ludGVyX3J0eAorKwkgIHx8 IChSRUdfUCAoYmFzZSkKKysJICAgICAgJiYgKFJFR05PIChiYXNlKSA9PSBTUF9SRUcgfHwgUkVH Tk8gKGJhc2UpID09IFIxMl9SRUcpKSkKKyAJbGVuICs9IDE7CisgICAgIH0KKyAKKysgIHN3aXRj aCAocGFydHMuc2VnKQorKyAgICB7CisrICAgIGNhc2UgU0VHX0ZTOgorKyAgICBjYXNlIFNFR19H UzoKKysgICAgICBsZW4gKz0gMTsKKysgICAgICBicmVhazsKKysgICAgZGVmYXVsdDoKKysgICAg ICBicmVhazsKKysgICAgfQorKworICAgcmV0dXJuIGxlbjsKKyB9CisgCitAQCAtMTkyOTUsMzAg KzE5MzQ3LDUwIEBAIGl4ODZfYXR0cl9sZW5ndGhfaW1tZWRpYXRlX2RlZmF1bHQgKHJ0eCAKKyAg IGZvciAoaSA9IHJlY29nX2RhdGEubl9vcGVyYW5kcyAtIDE7IGkgPj0gMDsgLS1pKQorICAgICBp ZiAoQ09OU1RBTlRfUCAocmVjb2dfZGF0YS5vcGVyYW5kW2ldKSkKKyAgICAgICB7CisrICAgICAg ICBlbnVtIGF0dHJfbW9kZSBtb2RlID0gZ2V0X2F0dHJfbW9kZSAoaW5zbik7CisrCisgCWdjY19h c3NlcnQgKCFsZW4pOworLQlpZiAoc2hvcnRmb3JtICYmIHNhdGlzZmllc19jb25zdHJhaW50X0sg KHJlY29nX2RhdGEub3BlcmFuZFtpXSkpCistCSAgbGVuID0gMTsKKy0JZWxzZQorKwlpZiAoc2hv cnRmb3JtICYmIENPTlNUX0lOVF9QIChyZWNvZ19kYXRhLm9wZXJhbmRbaV0pKQorIAkgIHsKKy0J ICAgIHN3aXRjaCAoZ2V0X2F0dHJfbW9kZSAoaW5zbikpCisrCSAgICBIT1NUX1dJREVfSU5UIGl2 YWwgPSBJTlRWQUwgKHJlY29nX2RhdGEub3BlcmFuZFtpXSk7CisrCSAgICBzd2l0Y2ggKG1vZGUp CisgCSAgICAgIHsKKy0JCWNhc2UgTU9ERV9RSToKKy0JCSAgbGVuKz0xOworLQkJICBicmVhazsK Ky0JCWNhc2UgTU9ERV9ISToKKy0JCSAgbGVuKz0yOworLQkJICBicmVhazsKKy0JCWNhc2UgTU9E RV9TSToKKy0JCSAgbGVuKz00OworLQkJICBicmVhazsKKy0JCS8qIEltbWVkaWF0ZXMgZm9yIERJ bW9kZSBpbnN0cnVjdGlvbnMgYXJlIGVuY29kZWQgYXMgMzJiaXQgc2lnbiBleHRlbmRlZCB2YWx1 ZXMuICAqLworLQkJY2FzZSBNT0RFX0RJOgorLQkJICBsZW4rPTQ7CistCQkgIGJyZWFrOworLQkJ ZGVmYXVsdDoKKy0JCSAgZmF0YWxfaW5zbiAoInVua25vd24gaW5zbiBtb2RlIiwgaW5zbik7Cisr CSAgICAgIGNhc2UgTU9ERV9RSToKKysJCWxlbiA9IDE7CisrCQljb250aW51ZTsKKysJICAgICAg Y2FzZSBNT0RFX0hJOgorKwkJaXZhbCA9IHRydW5jX2ludF9mb3JfbW9kZSAoaXZhbCwgSEltb2Rl KTsKKysJCWJyZWFrOworKwkgICAgICBjYXNlIE1PREVfU0k6CisrCQlpdmFsID0gdHJ1bmNfaW50 X2Zvcl9tb2RlIChpdmFsLCBTSW1vZGUpOworKwkJYnJlYWs7CisrCSAgICAgIGRlZmF1bHQ6Cisr CQlicmVhazsKKysJICAgICAgfQorKwkgICAgaWYgKElOX1JBTkdFIChpdmFsLCAtMTI4LCAxMjcp KQorKwkgICAgICB7CisrCQlsZW4gPSAxOworKwkJY29udGludWU7CisgCSAgICAgIH0KKyAJICB9 CisrCXN3aXRjaCAobW9kZSkKKysJICB7CisrCSAgY2FzZSBNT0RFX1FJOgorKwkgICAgbGVuID0g MTsKKysJICAgIGJyZWFrOworKwkgIGNhc2UgTU9ERV9ISToKKysJICAgIGxlbiA9IDI7CisrCSAg ICBicmVhazsKKysJICBjYXNlIE1PREVfU0k6CisrCSAgICBsZW4gPSA0OworKwkgICAgYnJlYWs7 CisrCSAgLyogSW1tZWRpYXRlcyBmb3IgREltb2RlIGluc3RydWN0aW9ucyBhcmUgZW5jb2RlZCBh cyAzMmJpdCBzaWduIGV4dGVuZGVkIHZhbHVlcy4gICovCisrCSAgY2FzZSBNT0RFX0RJOgorKwkg ICAgbGVuID0gNDsKKysJICAgIGJyZWFrOworKwkgIGRlZmF1bHQ6CisrCSAgICBmYXRhbF9pbnNu ICgidW5rbm93biBpbnNuIG1vZGUiLCBpbnNuKTsKKysJfQorICAgICAgIH0KKyAgIHJldHVybiBs ZW47CisgfQorQEAgLTE5MzMwLDIyICsxOTQwMiw0NSBAQCBpeDg2X2F0dHJfbGVuZ3RoX2FkZHJl c3NfZGVmYXVsdCAocnR4IGluCisgCisgICBpZiAoZ2V0X2F0dHJfdHlwZSAoaW5zbikgPT0gVFlQ RV9MRUEpCisgICAgIHsKKy0gICAgICBydHggc2V0ID0gUEFUVEVSTiAoaW5zbik7CisrICAgICAg cnR4IHNldCA9IFBBVFRFUk4gKGluc24pLCBhZGRyOworIAorICAgICAgIGlmIChHRVRfQ09ERSAo c2V0KSA9PSBQQVJBTExFTCkKKyAJc2V0ID0gWFZFQ0VYUCAoc2V0LCAwLCAwKTsKKyAKKyAgICAg ICBnY2NfYXNzZXJ0IChHRVRfQ09ERSAoc2V0KSA9PSBTRVQpOworIAorLSAgICAgIHJldHVybiBt ZW1vcnlfYWRkcmVzc19sZW5ndGggKFNFVF9TUkMgKHNldCkpOworKyAgICAgIGFkZHIgPSBTRVRf U1JDIChzZXQpOworKyAgICAgIGlmIChUQVJHRVRfNjRCSVQgJiYgZ2V0X2F0dHJfbW9kZSAoaW5z bikgPT0gTU9ERV9TSSkKKysJeworKwkgIGlmIChHRVRfQ09ERSAoYWRkcikgPT0gWkVST19FWFRF TkQpCisrCSAgICBhZGRyID0gWEVYUCAoYWRkciwgMCk7CisrCSAgaWYgKEdFVF9DT0RFIChhZGRy KSA9PSBTVUJSRUcpCisrCSAgICBhZGRyID0gU1VCUkVHX1JFRyAoYWRkcik7CisrCX0KKysKKysg ICAgICByZXR1cm4gbWVtb3J5X2FkZHJlc3NfbGVuZ3RoIChhZGRyKTsKKyAgICAgfQorIAorICAg ZXh0cmFjdF9pbnNuX2NhY2hlZCAoaW5zbik7CisgICBmb3IgKGkgPSByZWNvZ19kYXRhLm5fb3Bl cmFuZHMgLSAxOyBpID49IDA7IC0taSkKKyAgICAgaWYgKE1FTV9QIChyZWNvZ19kYXRhLm9wZXJh bmRbaV0pKQorICAgICAgIHsKKysgICAgICAgIGNvbnN0cmFpbl9vcGVyYW5kc19jYWNoZWQgKHJl bG9hZF9jb21wbGV0ZWQpOworKyAgICAgICAgaWYgKHdoaWNoX2FsdGVybmF0aXZlICE9IC0xKQor KwkgIHsKKysJICAgIGNvbnN0IGNoYXIgKmNvbnN0cmFpbnRzID0gcmVjb2dfZGF0YS5jb25zdHJh aW50c1tpXTsKKysJICAgIGludCBhbHQgPSB3aGljaF9hbHRlcm5hdGl2ZTsKKysKKysJICAgIHdo aWxlICgqY29uc3RyYWludHMgPT0gJz0nIHx8ICpjb25zdHJhaW50cyA9PSAnKycpCisrCSAgICAg IGNvbnN0cmFpbnRzKys7CisrCSAgICB3aGlsZSAoYWx0LS0gPiAwKQorKwkgICAgICB3aGlsZSAo KmNvbnN0cmFpbnRzKysgIT0gJywnKQorKwkJOworKwkgICAgLyogU2tpcCBpZ25vcmVkIG9wZXJh bmRzLiAgKi8KKysJICAgIGlmICgqY29uc3RyYWludHMgPT0gJ1gnKQorKwkgICAgICBjb250aW51 ZTsKKysJICB9CisgCXJldHVybiBtZW1vcnlfYWRkcmVzc19sZW5ndGggKFhFWFAgKHJlY29nX2Rh dGEub3BlcmFuZFtpXSwgMCkpOworLQlicmVhazsKKyAgICAgICB9CisgICByZXR1cm4gMDsKKyB9 CitAQCAtMTkzNzQsNyArMTk0NjksOCBAQCBpeDg2X2F0dHJfbGVuZ3RoX3ZleF9kZWZhdWx0IChy dHggaW5zbiwgCisgICAgIGlmIChSRUdfUCAocmVjb2dfZGF0YS5vcGVyYW5kW2ldKSkKKyAgICAg ICB7CisgCS8qIFJFWC5XIGJpdCB1c2VzIDMgYnl0ZSBWRVggcHJlZml4LiAgKi8KKy0JaWYgKEdF VF9NT0RFIChyZWNvZ19kYXRhLm9wZXJhbmRbaV0pID09IERJbW9kZSkKKysJaWYgKEdFVF9NT0RF IChyZWNvZ19kYXRhLm9wZXJhbmRbaV0pID09IERJbW9kZQorKwkgICAgJiYgR0VORVJBTF9SRUdf UCAocmVjb2dfZGF0YS5vcGVyYW5kW2ldKSkKKyAJICByZXR1cm4gMyArIDE7CisgICAgICAgfQor ICAgICBlbHNlCitAQCAtMjcxMTIsNiArMjcyMDgsNyBAQCB4ODZfZnVuY3Rpb25fcHJvZmlsZXIg KEZJTEUgKmZpbGUsIGludCBsCisgICAgIH0KKyB9CisgCisrI2lmZGVmIEFTTV9PVVRQVVRfTUFY X1NLSVBfQUxJR04KKyAvKiBXZSBkb24ndCBoYXZlIGV4YWN0IGluZm9ybWF0aW9uIGFib3V0IHRo ZSBpbnNuIHNpemVzLCBidXQgd2UgbWF5IGFzc3VtZQorICAgIHF1aXRlIHNhZmVseSB0aGF0IHdl IGFyZSBpbmZvcm1lZCBhYm91dCBhbGwgMSBieXRlIGluc25zIGFuZCBtZW1vcnkKKyAgICBhZGRy ZXNzIHNpemVzLiAgVGhpcyBpcyBlbm91Z2ggdG8gZWxpbWluYXRlIHVubmVjZXNzYXJ5IHBhZGRp bmcgaW4KK0BAIC0yNzE2Miw3ICsyNzI1OSw3IEBAIG1pbl9pbnNuX3NpemUgKHJ0eCBpbnNuKQor ICAgIHdpbmRvdy4gICovCisgCisgc3RhdGljIHZvaWQKKy1peDg2X2F2b2lkX2p1bXBfbWlzc3By ZWRpY3RzICh2b2lkKQorK2l4ODZfYXZvaWRfanVtcF9taXNwcmVkaWN0cyAodm9pZCkKKyB7Cisg ICBydHggaW5zbiwgc3RhcnQgPSBnZXRfaW5zbnMgKCk7CisgICBpbnQgbmJ5dGVzID0gMCwgbmp1 bXBzID0gMDsKK0BAIC0yNzE3NiwxNSArMjcyNzMsNTIgQEAgaXg4Nl9hdm9pZF9qdW1wX21pc3Nw cmVkaWN0cyAodm9pZCkKKyAKKyAgICAgIFRoZSBzbWFsbGVzdCBvZmZzZXQgaW4gdGhlIHBhZ2Ug SU5TTiBjYW4gc3RhcnQgaXMgdGhlIGNhc2Ugd2hlcmUgU1RBUlQKKyAgICAgIGVuZHMgb24gdGhl IG9mZnNldCAwLiAgT2Zmc2V0IG9mIElOU04gaXMgdGhlbiBOQllURVMgLSBzaXplb2YgKElOU04p LgorLSAgICAgV2UgYWRkIHAyYWxpZ24gdG8gMTZieXRlIHdpbmRvdyB3aXRoIG1heHNraXAgMTcg LSBOQllURVMgKyBzaXplb2YgKElOU04pLgorKyAgICAgV2UgYWRkIHAyYWxpZ24gdG8gMTZieXRl IHdpbmRvdyB3aXRoIG1heHNraXAgMTUgLSBOQllURVMgKyBzaXplb2YgKElOU04pLgorICAgICAg Ki8KKy0gIGZvciAoaW5zbiA9IGdldF9pbnNucyAoKTsgaW5zbjsgaW5zbiA9IE5FWFRfSU5TTiAo aW5zbikpCisrICBmb3IgKGluc24gPSBzdGFydDsgaW5zbjsgaW5zbiA9IE5FWFRfSU5TTiAoaW5z bikpCisgICAgIHsKKysgICAgICBpbnQgbWluX3NpemU7CisrCisrICAgICAgaWYgKEdFVF9DT0RF IChpbnNuKSA9PSBDT0RFX0xBQkVMKQorKwl7CisrCSAgaW50IGFsaWduID0gbGFiZWxfdG9fYWxp Z25tZW50IChpbnNuKTsKKysJICBpbnQgbWF4X3NraXAgPSBsYWJlbF90b19tYXhfc2tpcCAoaW5z bik7CisgCistICAgICAgbmJ5dGVzICs9IG1pbl9pbnNuX3NpemUgKGluc24pOworKwkgIGlmICht YXhfc2tpcCA+IDE1KQorKwkgICAgbWF4X3NraXAgPSAxNTsKKysJICAvKiBJZiBhbGlnbiA+IDMs IG9ubHkgdXAgdG8gMTYgLSBtYXhfc2tpcCAtIDEgYnl0ZXMgY2FuIGJlCisrCSAgICAgYWxyZWFk eSBpbiB0aGUgY3VycmVudCAxNiBieXRlIHBhZ2UsIGJlY2F1c2Ugb3RoZXJ3aXNlCisrCSAgICAg QVNNX09VVFBVVF9NQVhfU0tJUF9BTElHTiBjb3VsZCBza2lwIG1heF9za2lwIG9yIGZld2VyCisr CSAgICAgYnl0ZXMgdG8gcmVhY2ggMTYgYnl0ZSBib3VuZGFyeS4gICovCisrCSAgaWYgKGFsaWdu IDw9IDAKKysJICAgICAgfHwgKGFsaWduIDw9IDMgJiYgbWF4X3NraXAgIT0gKDEgPDwgYWxpZ24p IC0gMSkpCisrCSAgICBtYXhfc2tpcCA9IDA7CisrCSAgaWYgKGR1bXBfZmlsZSkKKysJICAgIGZw cmludGYgKGR1bXBfZmlsZSwgIkxhYmVsICVpIHdpdGggbWF4X3NraXAgJWlcbiIsCisrCQkgICAg IElOU05fVUlEIChpbnNuKSwgbWF4X3NraXApOworKwkgIGlmIChtYXhfc2tpcCkKKysJICAgIHsK KysJICAgICAgd2hpbGUgKG5ieXRlcyArIG1heF9za2lwID49IDE2KQorKwkJeworKwkJICBzdGFy dCA9IE5FWFRfSU5TTiAoc3RhcnQpOworKwkJICBpZiAoKEpVTVBfUCAoc3RhcnQpCisrCQkgICAg ICAgJiYgR0VUX0NPREUgKFBBVFRFUk4gKHN0YXJ0KSkgIT0gQUREUl9WRUMKKysJCSAgICAgICAm JiBHRVRfQ09ERSAoUEFUVEVSTiAoc3RhcnQpKSAhPSBBRERSX0RJRkZfVkVDKQorKwkJICAgICAg fHwgQ0FMTF9QIChzdGFydCkpCisrCQkgICAgbmp1bXBzLS0sIGlzanVtcCA9IDE7CisrCQkgIGVs c2UKKysJCSAgICBpc2p1bXAgPSAwOworKwkJICBuYnl0ZXMgLT0gbWluX2luc25fc2l6ZSAoc3Rh cnQpOworKwkJfQorKwkgICAgfQorKwkgIGNvbnRpbnVlOworKwl9CisrCisrICAgICAgbWluX3Np emUgPSBtaW5faW5zbl9zaXplIChpbnNuKTsKKysgICAgICBuYnl0ZXMgKz0gbWluX3NpemU7Cisg ICAgICAgaWYgKGR1bXBfZmlsZSkKKy0gICAgICAgIGZwcmludGYoZHVtcF9maWxlLCAiSW5zbiAl aSBlc3RpbWF0ZWQgdG8gJWkgYnl0ZXNcbiIsCistCQlJTlNOX1VJRCAoaW5zbiksIG1pbl9pbnNu X3NpemUgKGluc24pKTsKKysJZnByaW50ZiAoZHVtcF9maWxlLCAiSW5zbiAlaSBlc3RpbWF0ZWQg dG8gJWkgYnl0ZXNcbiIsCisrCQkgSU5TTl9VSUQgKGluc24pLCBtaW5fc2l6ZSk7CisgICAgICAg aWYgKChKVU1QX1AgKGluc24pCisgCSAgICYmIEdFVF9DT0RFIChQQVRURVJOIChpbnNuKSkgIT0g QUREUl9WRUMKKyAJICAgJiYgR0VUX0NPREUgKFBBVFRFUk4gKGluc24pKSAhPSBBRERSX0RJRkZf VkVDKQorQEAgLTI3MjA4LDcgKzI3MzQyLDcgQEAgaXg4Nl9hdm9pZF9qdW1wX21pc3NwcmVkaWN0 cyAodm9pZCkKKyAgICAgICBnY2NfYXNzZXJ0IChuanVtcHMgPj0gMCk7CisgICAgICAgaWYgKGR1 bXBfZmlsZSkKKyAgICAgICAgIGZwcmludGYgKGR1bXBfZmlsZSwgIkludGVydmFsICVpIHRvICVp IGhhcyAlaSBieXRlc1xuIiwKKy0JCUlOU05fVUlEIChzdGFydCksIElOU05fVUlEIChpbnNuKSwg bmJ5dGVzKTsKKysJCSBJTlNOX1VJRCAoc3RhcnQpLCBJTlNOX1VJRCAoaW5zbiksIG5ieXRlcyk7 CisgCisgICAgICAgaWYgKG5qdW1wcyA9PSAzICYmIGlzanVtcCAmJiBuYnl0ZXMgPCAxNikKKyAJ eworQEAgLTI3MjE3LDEwICsyNzM1MSwxMSBAQCBpeDg2X2F2b2lkX2p1bXBfbWlzc3ByZWRpY3Rz ICh2b2lkKQorIAkgIGlmIChkdW1wX2ZpbGUpCisgCSAgICBmcHJpbnRmIChkdW1wX2ZpbGUsICJQ YWRkaW5nIGluc24gJWkgYnkgJWkgYnl0ZXMhXG4iLAorIAkJICAgICBJTlNOX1VJRCAoaW5zbiks IHBhZHNpemUpOworLSAgICAgICAgICBlbWl0X2luc25fYmVmb3JlIChnZW5fYWxpZ24gKEdFTl9J TlQgKHBhZHNpemUpKSwgaW5zbik7CisrICAgICAgICAgIGVtaXRfaW5zbl9iZWZvcmUgKGdlbl9w YWQgKEdFTl9JTlQgKHBhZHNpemUpKSwgaW5zbik7CisgCX0KKyAgICAgfQorIH0KKysjZW5kaWYK KyAKKyAvKiBBTUQgQXRobG9uIHdvcmtzIGZhc3RlcgorICAgIHdoZW4gUkVUIGlzIG5vdCBkZXN0 aW5hdGlvbiBvZiBjb25kaXRpb25hbCBqdW1wIG9yIGRpcmVjdGx5IHByZWNlZGVkCitAQCAtMjcy ODAsMTIgKzI3NDE1LDE1IEBAIGl4ODZfcGFkX3JldHVybnMgKHZvaWQpCisgc3RhdGljIHZvaWQK KyBpeDg2X3Jlb3JnICh2b2lkKQorIHsKKy0gIGlmIChUQVJHRVRfUEFEX1JFVFVSTlMgJiYgb3B0 aW1pemUKKy0gICAgICAmJiBvcHRpbWl6ZV9mdW5jdGlvbl9mb3Jfc3BlZWRfcCAoY2Z1bikpCist ICAgIGl4ODZfcGFkX3JldHVybnMgKCk7CistICBpZiAoVEFSR0VUX0ZPVVJfSlVNUF9MSU1JVCAm JiBvcHRpbWl6ZQorLSAgICAgICYmIG9wdGltaXplX2Z1bmN0aW9uX2Zvcl9zcGVlZF9wIChjZnVu KSkKKy0gICAgaXg4Nl9hdm9pZF9qdW1wX21pc3NwcmVkaWN0cyAoKTsKKysgIGlmIChvcHRpbWl6 ZSAmJiBvcHRpbWl6ZV9mdW5jdGlvbl9mb3Jfc3BlZWRfcCAoY2Z1bikpCisrICAgIHsKKysgICAg ICBpZiAoVEFSR0VUX1BBRF9SRVRVUk5TKQorKwlpeDg2X3BhZF9yZXR1cm5zICgpOworKyNpZmRl ZiBBU01fT1VUUFVUX01BWF9TS0lQX1BBRAorKyAgICAgIGlmIChUQVJHRVRfRk9VUl9KVU1QX0xJ TUlUKQorKwlpeDg2X2F2b2lkX2p1bXBfbWlzcHJlZGljdHMgKCk7CisrI2VuZGlmCisrICAgIH0K KyB9CisgCisgLyogUmV0dXJuIG5vbnplcm8gd2hlbiBRSW1vZGUgcmVnaXN0ZXIgdGhhdCBtdXN0 IGJlIHJlcHJlc2VudGVkIHZpYSBSRVggcHJlZml4CistLS0gZ2NjL2NvbmZpZy9pMzg2L3ByZWRp Y2F0ZXMubWQuamoJMjAwOS0wMy0xMyAxNTo1MDozOS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnY2Mv Y29uZmlnL2kzODYvcHJlZGljYXRlcy5tZAkyMDA5LTA2LTA5IDExOjQ2OjUyLjAwMDAwMDAwMCAr MDIwMAorQEAgLTc2LDYgKzc2LDIwIEBAIChkZWZpbmVfcHJlZGljYXRlICJmbGFnc19yZWdfb3Bl cmFuZCIKKyAgIChhbmQgKG1hdGNoX2NvZGUgInJlZyIpCisgICAgICAgIChtYXRjaF90ZXN0ICJS RUdOTyAob3ApID09IEZMQUdTX1JFRyIpKSkKKyAKKys7OyBSZXR1cm4gdHJ1ZSBpZiBvcCBpcyBh IFFJbW9kZSByZWdpc3RlciBvcGVyYW5kIG90aGVyIHRoYW4KKys7OyAlW2FiY2RdW2hsXS4KKyso ZGVmaW5lX3ByZWRpY2F0ZSAiZXh0X1FJcmVnX29wZXJhbmQiCisrICAoYW5kIChtYXRjaF9jb2Rl ICJyZWciKQorKyAgICAgICAobWF0Y2hfdGVzdCAiVEFSR0VUXzY0QklUCisrCQkgICAgJiYgR0VU X01PREUgKG9wKSA9PSBRSW1vZGUKKysJCSAgICAmJiBSRUdOTyAob3ApID4gQlhfUkVHIikpKQor KworKzs7IFNpbWlsYXJseSwgYnV0IGRvbid0IGNoZWNrIG1vZGUgb2YgdGhlIG9wZXJhbmQuCisr KGRlZmluZV9wcmVkaWNhdGUgImV4dF9RSXJlZ19ub21vZGVfb3BlcmFuZCIKKysgIChhbmQgKG1h dGNoX2NvZGUgInJlZyIpCisrICAgICAgIChtYXRjaF90ZXN0ICJUQVJHRVRfNjRCSVQKKysJCSAg ICAmJiBSRUdOTyAob3ApID4gQlhfUkVHIikpKQorKworIDs7IFJldHVybiB0cnVlIGlmIG9wIGlz IG5vdCB4bW0wIHJlZ2lzdGVyLgorIChkZWZpbmVfcHJlZGljYXRlICJyZWdfbm90X3htbTBfb3Bl cmFuZCIKKyAgICAoYW5kIChtYXRjaF9vcGVyYW5kIDAgInJlZ2lzdGVyX29wZXJhbmQiKQorQEAg LTU3NCw2ICs1ODgsMTEgQEAgKGRlZmluZV9wcmVkaWNhdGUgImNvbnN0OF9vcGVyYW5kIgorICAg KGFuZCAobWF0Y2hfY29kZSAiY29uc3RfaW50IikKKyAgICAgICAgKG1hdGNoX3Rlc3QgIklOVFZB TCAob3ApID09IDgiKSkpCisgCisrOzsgTWF0Y2ggZXhhY3RseSAxMjguCisrKGRlZmluZV9wcmVk aWNhdGUgImNvbnN0MTI4X29wZXJhbmQiCisrICAoYW5kIChtYXRjaF9jb2RlICJjb25zdF9pbnQi KQorKyAgICAgICAobWF0Y2hfdGVzdCAiSU5UVkFMIChvcCkgPT0gMTI4IikpKQorKworIDs7IE1h dGNoIDIsIDQsIG9yIDguICBVc2VkIGZvciBsZWFsIG11bHRpcGxpY2FuZHMuCisgKGRlZmluZV9w cmVkaWNhdGUgImNvbnN0MjQ4X29wZXJhbmQiCisgICAobWF0Y2hfY29kZSAiY29uc3RfaW50IikK K0BAIC04NzgsNiArODk3LDkgQEAgKGRlZmluZV9wcmVkaWNhdGUgIm1lbW9yeV9kaXNwbGFjZW1l bnRfbworICAgc3RydWN0IGl4ODZfYWRkcmVzcyBwYXJ0czsKKyAgIGludCBvazsKKyAKKysgIGlm IChUQVJHRVRfNjRCSVQpCisrICAgIHJldHVybiAwOworKworICAgb2sgPSBpeDg2X2RlY29tcG9z ZV9hZGRyZXNzIChYRVhQIChvcCwgMCksICZwYXJ0cyk7CisgICBnY2NfYXNzZXJ0IChvayk7Cisg CistLS0gZ2NjL2NvbmZpZy9pMzg2L21teC5tZC5qagkyMDA5LTAzLTA0IDEyOjEyOjU4LjAwMDAw MDAwMCArMDEwMAorKysrIGdjYy9jb25maWcvaTM4Ni9tbXgubWQJMjAwOS0wNi0wOSAxMTo0Njo1 Mi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0xLDUgKzEsNSBAQAorIDs7IEdDQyBtYWNoaW5lIGRlc2Ny aXB0aW9uIGZvciBNTVggYW5kIDNkTk9XISBpbnN0cnVjdGlvbnMKKy07OyBDb3B5cmlnaHQgKEMp IDIwMDUsIDIwMDcsIDIwMDgKKys7OyBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDcsIDIwMDgsIDIw MDkKKyA7OyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyA7OworIDs7IFRoaXMgZmls ZSBpcyBwYXJ0IG9mIEdDQy4KK0BAIC04NSw2ICs4NSwxMiBAQCAoZGVmaW5lX2luc24gIiptb3Y8 bW9kZT5faW50ZXJuYWxfcmV4NjQiCisgICAgICV2bW92cVx0eyUxLCAlMHwlMCwgJTF9IgorICAg WyhzZXRfYXR0ciAidHlwZSIgImltb3YsaW1vdixtbXgsbW14bW92LG1teG1vdixzc2VjdnQsc3Nl Y3Z0LHNzZWxvZzEsc3NlbW92LHNzZW1vdixzc2Vtb3Ysc3NlbW92IikKKyAgICAoc2V0X2F0dHIg InVuaXQiICIqLCosKiwqLCosbW14LG1teCwqLCosKiwqLCoiKQorKyAgIChzZXRfYXR0ciAicHJl Zml4X3JlcCIgIiosKiwqLCosKiwxLDEsKiwxLCosKiwqIikKKysgICAoc2V0X2F0dHIgInByZWZp eF9kYXRhMTYiICIqLCosKiwqLCosKiwqLCosKiwxLDEsMSIpCisrICAgKHNldCAoYXR0ciAicHJl Zml4X3JleCIpCisrICAgICAoaWZfdGhlbl9lbHNlIChlcV9hdHRyICJhbHRlcm5hdGl2ZSIgIjgs OSIpCisrICAgICAgIChzeW1ib2xfcmVmICJ4ODZfZXh0ZW5kZWRfcmVnX21lbnRpb25lZF9wIChp bnNuKSIpCisrICAgICAgIChjb25zdF9zdHJpbmcgIioiKSkpCisgICAgKHNldCAoYXR0ciAicHJl Zml4IikKKyAgICAgIChpZl90aGVuX2Vsc2UgKGVxX2F0dHIgImFsdGVybmF0aXZlIiAiNyw4LDks MTAsMTEiKQorICAgICAgICAoY29uc3Rfc3RyaW5nICJtYXliZV92ZXgiKQorQEAgLTExMSw2ICsx MTcsNyBAQCAoZGVmaW5lX2luc24gIiptb3Y8bW9kZT5faW50ZXJuYWxfYXZ4IgorICAgICAjIgor ICAgWyhzZXRfYXR0ciAidHlwZSIgIm1teCxtbXhtb3YsbW14bW92LHNzZWN2dCxzc2VjdnQsc3Nl bG9nMSxzc2Vtb3Ysc3NlbW92LCosKiIpCisgICAgKHNldF9hdHRyICJ1bml0IiAiKiwqLCosbW14 LG1teCwqLCosKiwqLCoiKQorKyAgIChzZXRfYXR0ciAicHJlZml4X3JlcCIgIiosKiwqLDEsMSwq LCosKiwqLCoiKQorICAgIChzZXQgKGF0dHIgInByZWZpeCIpCisgICAgICAoaWZfdGhlbl9lbHNl IChlcV9hdHRyICJhbHRlcm5hdGl2ZSIgIjUsNiw3IikKKyAgICAgICAgKGNvbnN0X3N0cmluZyAi dmV4IikKK0BAIC0xNDEsNiArMTQ4LDggQEAgKGRlZmluZV9pbnNuICIqbW92PG1vZGU+X2ludGVy bmFsIgorICAgICAjIgorICAgWyhzZXRfYXR0ciAidHlwZSIgIm1teCxtbXhtb3YsbW14bW92LHNz ZWN2dCxzc2VjdnQsc3NlbG9nMSxzc2Vtb3Ysc3NlbW92LHNzZWxvZzEsc3NlbW92LHNzZW1vdixz c2Vtb3YsKiwqIikKKyAgICAoc2V0X2F0dHIgInVuaXQiICIqLCosKixtbXgsbW14LCosKiwqLCos KiwqLCosKiwqIikKKysgICAoc2V0X2F0dHIgInByZWZpeF9yZXAiICIqLCosKiwxLDEsKiwxLCos KiwqLCosKiwqLCoiKQorKyAgIChzZXRfYXR0ciAicHJlZml4X2RhdGExNiIgIiosKiwqLCosKiwq LCosMSwqLCosKiwqLCosKiIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiREksREksREksREksREks VEksREksREksVjRTRixWNFNGLFYyU0YsVjJTRixESSxESSIpXSkKKyAKKyAoZGVmaW5lX2V4cGFu ZCAibW92djJzZiIKK0BAIC0xNzUsNiArMTg0LDggQEAgKGRlZmluZV9pbnNuICIqbW92djJzZl9p bnRlcm5hbF9yZXg2NF9hdgorICAgICB2bW92cVx0eyUxLCAlMHwlMCwgJTF9IgorICAgWyhzZXRf YXR0ciAidHlwZSIgImltb3YsaW1vdixtbXgsbW14bW92LG1teG1vdixzc2VjdnQsc3NlY3Z0LHNz ZW1vdixzc2Vsb2cxLHNzZW1vdixzc2Vtb3Ysc3NlbW92LHNzZW1vdiIpCisgICAgKHNldF9hdHRy ICJ1bml0IiAiKiwqLCosKiwqLG1teCxtbXgsKiwqLCosKiwqLCoiKQorKyAgIChzZXRfYXR0ciAi cHJlZml4X3JlcCIgIiosKiwqLCosKiwxLDEsKiwqLCosKiwqLCoiKQorKyAgIChzZXRfYXR0ciAi bGVuZ3RoX3ZleCIgIiosKiwqLCosKiwqLCosKiwqLCosKiw0LDQiKQorICAgIChzZXQgKGF0dHIg InByZWZpeCIpCisgICAgICAoaWZfdGhlbl9lbHNlIChlcV9hdHRyICJhbHRlcm5hdGl2ZSIgIjcs OCw5LDEwLDExLDEyIikKKyAgICAgICAgKGNvbnN0X3N0cmluZyAidmV4IikKK0BAIC0yMDQsNiAr MjE1LDcgQEAgKGRlZmluZV9pbnNuICIqbW92djJzZl9pbnRlcm5hbF9yZXg2NCIKKyAgICAgbW92 ZFx0eyUxLCAlMHwlMCwgJTF9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgImltb3YsaW1vdixtbXgs bW14bW92LG1teG1vdixzc2VjdnQsc3NlY3Z0LHNzZW1vdixzc2Vsb2cxLHNzZW1vdixzc2Vtb3Ys c3NlbW92LHNzZW1vdiIpCisgICAgKHNldF9hdHRyICJ1bml0IiAiKiwqLCosKiwqLG1teCxtbXgs KiwqLCosKiwqLCoiKQorKyAgIChzZXRfYXR0ciAicHJlZml4X3JlcCIgIiosKiwqLCosKiwxLDEs KiwqLCosKiwqLCoiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIkRJLERJLERJLERJLERJLERJLERJ LFY0U0YsVjRTRixWMlNGLFYyU0YsREksREkiKV0pCisgCisgKGRlZmluZV9pbnNuICIqbW92djJz Zl9pbnRlcm5hbF9hdngiCitAQCAtMjI3LDYgKzIzOSw3IEBAIChkZWZpbmVfaW5zbiAiKm1vdnYy c2ZfaW50ZXJuYWxfYXZ4IgorICAgICAjIgorICAgWyhzZXRfYXR0ciAidHlwZSIgIm1teCxtbXht b3YsbW14bW92LHNzZWN2dCxzc2VjdnQsc3NlbG9nMSxzc2Vtb3Ysc3NlbW92LHNzZW1vdiwqLCoi KQorICAgIChzZXRfYXR0ciAidW5pdCIgIiosKiwqLG1teCxtbXgsKiwqLCosKiwqLCoiKQorKyAg IChzZXRfYXR0ciAicHJlZml4X3JlcCIgIiosKiwqLDEsMSwqLCosKiwqLCosKiIpCisgICAgKHNl dCAoYXR0ciAicHJlZml4IikKKyAgICAgIChpZl90aGVuX2Vsc2UgKGVxX2F0dHIgImFsdGVybmF0 aXZlIiAiNSw2LDcsOCIpCisgICAgICAgIChjb25zdF9zdHJpbmcgInZleCIpCitAQCAtMjU0LDYg KzI2Nyw3IEBAIChkZWZpbmVfaW5zbiAiKm1vdnYyc2ZfaW50ZXJuYWwiCisgICAgICMiCisgICBb KHNldF9hdHRyICJ0eXBlIiAibW14LG1teG1vdixtbXhtb3Ysc3NlY3Z0LHNzZWN2dCxzc2Vsb2cx LHNzZW1vdixzc2Vtb3Ysc3NlbW92LCosKiIpCisgICAgKHNldF9hdHRyICJ1bml0IiAiKiwqLCos bW14LG1teCwqLCosKiwqLCosKiIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfcmVwIiAiKiwqLCos MSwxLCosKiwqLCosKiwqIikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJESSxESSxESSxESSxESSxW NFNGLFY0U0YsVjJTRixWMlNGLERJLERJIildKQorIAorIDs7ICUlJSBUaGlzIG11bHRpd29yZCBz aGl0ZSBoYXMgZ290IHRvIGdvLgorQEAgLTMxMyw2ICszMjcsNyBAQCAoZGVmaW5lX2luc24gIipt bXhfYWRkdjJzZjMiCisgICAiVEFSR0VUXzNETk9XICYmIGl4ODZfYmluYXJ5X29wZXJhdG9yX29r IChQTFVTLCBWMlNGbW9kZSwgb3BlcmFuZHMpIgorICAgInBmYWRkXHR7JTIsICUwfCUwLCAlMn0i CisgICBbKHNldF9hdHRyICJ0eXBlIiAibW14YWRkIikKKysgICAoc2V0X2F0dHIgInByZWZpeF9l eHRyYSIgIjEiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIlYyU0YiKV0pCisgCisgKGRlZmluZV9l eHBhbmQgIm1teF9zdWJ2MnNmMyIKK0BAIC0zMzgsNiArMzUzLDcgQEAgKGRlZmluZV9pbnNuICIq bW14X3N1YnYyc2YzIgorICAgIHBmc3ViXHR7JTIsICUwfCUwLCAlMn0KKyAgICBwZnN1YnJcdHsl MiwgJTB8JTAsICUyfSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJtbXhhZGQiKQorKyAgIChzZXRf YXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiVjJTRiIpXSkK KyAKKyAoZGVmaW5lX2V4cGFuZCAibW14X211bHYyc2YzIgorQEAgLTM1NCw2ICszNzAsNyBAQCAo ZGVmaW5lX2luc24gIiptbXhfbXVsdjJzZjMiCisgICAiVEFSR0VUXzNETk9XICYmIGl4ODZfYmlu YXJ5X29wZXJhdG9yX29rIChNVUxULCBWMlNGbW9kZSwgb3BlcmFuZHMpIgorICAgInBmbXVsXHR7 JTIsICUwfCUwLCAlMn0iCisgICBbKHNldF9hdHRyICJ0eXBlIiAibW14bXVsIikKKysgICAoc2V0 X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIlYyU0YiKV0p CisgCisgOzsgPz8/IEZvciAhZmxhZ19maW5pdGVfbWF0aF9vbmx5LCB0aGUgcmVwcmVzZW50YXRp b24gd2l0aCBTTUlOL1NNQVgKK0BAIC0zODEsNiArMzk4LDcgQEAgKGRlZmluZV9pbnNuICIqbW14 Xzxjb2RlPnYyc2YzX2Zpbml0ZSIKKyAgICAmJiBpeDg2X2JpbmFyeV9vcGVyYXRvcl9vayAoPENP REU+LCBWMlNGbW9kZSwgb3BlcmFuZHMpIgorICAgInBmPG1heG1pbmZwcmVmaXg+XHR7JTIsICUw fCUwLCAlMn0iCisgICBbKHNldF9hdHRyICJ0eXBlIiAibW14YWRkIikKKysgICAoc2V0X2F0dHIg InByZWZpeF9leHRyYSIgIjEiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIlYyU0YiKV0pCisgCisg KGRlZmluZV9pbnNuICIqbW14Xzxjb2RlPnYyc2YzIgorQEAgLTM5MSw2ICs0MDksNyBAQCAoZGVm aW5lX2luc24gIiptbXhfPGNvZGU+djJzZjMiCisgICAiVEFSR0VUXzNETk9XIgorICAgInBmPG1h eG1pbmZwcmVmaXg+XHR7JTIsICUwfCUwLCAlMn0iCisgICBbKHNldF9hdHRyICJ0eXBlIiAibW14 YWRkIikKKysgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQorICAgIChzZXRfYXR0ciAi bW9kZSIgIlYyU0YiKV0pCisgCisgKGRlZmluZV9pbnNuICJtbXhfcmNwdjJzZjIiCitAQCAtNDAw LDYgKzQxOSw3IEBAIChkZWZpbmVfaW5zbiAibW14X3JjcHYyc2YyIgorICAgIlRBUkdFVF8zRE5P VyIKKyAgICJwZnJjcFx0eyUxLCAlMHwlMCwgJTF9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgIm1t eCIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKKyAgICAoc2V0X2F0dHIgIm1v ZGUiICJWMlNGIildKQorIAorIChkZWZpbmVfaW5zbiAibW14X3JjcGl0MXYyc2YzIgorQEAgLTQx MCw2ICs0MzAsNyBAQCAoZGVmaW5lX2luc24gIm1teF9yY3BpdDF2MnNmMyIKKyAgICJUQVJHRVRf M0ROT1ciCisgICAicGZyY3BpdDFcdHslMiwgJTB8JTAsICUyfSIKKyAgIFsoc2V0X2F0dHIgInR5 cGUiICJtbXgiKQorKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCisgICAgKHNldF9h dHRyICJtb2RlIiAiVjJTRiIpXSkKKyAKKyAoZGVmaW5lX2luc24gIm1teF9yY3BpdDJ2MnNmMyIK K0BAIC00MjAsNiArNDQxLDcgQEAgKGRlZmluZV9pbnNuICJtbXhfcmNwaXQydjJzZjMiCisgICAi VEFSR0VUXzNETk9XIgorICAgInBmcmNwaXQyXHR7JTIsICUwfCUwLCAlMn0iCisgICBbKHNldF9h dHRyICJ0eXBlIiAibW14IikKKysgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQorICAg IChzZXRfYXR0ciAibW9kZSIgIlYyU0YiKV0pCisgCisgKGRlZmluZV9pbnNuICJtbXhfcnNxcnR2 MnNmMiIKK0BAIC00MjksNiArNDUxLDcgQEAgKGRlZmluZV9pbnNuICJtbXhfcnNxcnR2MnNmMiIK KyAgICJUQVJHRVRfM0ROT1ciCisgICAicGZyc3FydFx0eyUxLCAlMHwlMCwgJTF9IgorICAgWyhz ZXRfYXR0ciAidHlwZSIgIm1teCIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikK KyAgICAoc2V0X2F0dHIgIm1vZGUiICJWMlNGIildKQorIAorIChkZWZpbmVfaW5zbiAibW14X3Jz cWl0MXYyc2YzIgorQEAgLTQzOSw2ICs0NjIsNyBAQCAoZGVmaW5lX2luc24gIm1teF9yc3FpdDF2 MnNmMyIKKyAgICJUQVJHRVRfM0ROT1ciCisgICAicGZyc3FpdDFcdHslMiwgJTB8JTAsICUyfSIK KyAgIFsoc2V0X2F0dHIgInR5cGUiICJtbXgiKQorKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJh IiAiMSIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiVjJTRiIpXSkKKyAKKyAoZGVmaW5lX2luc24g Im1teF9oYWRkdjJzZjMiCitAQCAtNDU3LDYgKzQ4MSw3IEBAIChkZWZpbmVfaW5zbiAibW14X2hh ZGR2MnNmMyIKKyAgICJUQVJHRVRfM0ROT1ciCisgICAicGZhY2NcdHslMiwgJTB8JTAsICUyfSIK KyAgIFsoc2V0X2F0dHIgInR5cGUiICJtbXhhZGQiKQorKyAgIChzZXRfYXR0ciAicHJlZml4X2V4 dHJhIiAiMSIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiVjJTRiIpXSkKKyAKKyAoZGVmaW5lX2lu c24gIm1teF9oc3VidjJzZjMiCitAQCAtNDc1LDYgKzUwMCw3IEBAIChkZWZpbmVfaW5zbiAibW14 X2hzdWJ2MnNmMyIKKyAgICJUQVJHRVRfM0ROT1dfQSIKKyAgICJwZm5hY2NcdHslMiwgJTB8JTAs ICUyfSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJtbXhhZGQiKQorKyAgIChzZXRfYXR0ciAicHJl Zml4X2V4dHJhIiAiMSIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiVjJTRiIpXSkKKyAKKyAoZGVm aW5lX2luc24gIm1teF9hZGRzdWJ2MnNmMyIKK0BAIC00ODgsNiArNTE0LDcgQEAgKGRlZmluZV9p bnNuICJtbXhfYWRkc3VidjJzZjMiCisgICAiVEFSR0VUXzNETk9XX0EiCisgICAicGZwbmFjY1x0 eyUyLCAlMHwlMCwgJTJ9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgIm1teGFkZCIpCisrICAgKHNl dF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJWMlNGIild KQorIAorIDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OworQEAgLTUxMCw2ICs1MzcsNyBAQCAoZGVmaW5lX2luc24gIipt bXhfZXF2MnNmMyIKKyAgICJUQVJHRVRfM0ROT1cgJiYgaXg4Nl9iaW5hcnlfb3BlcmF0b3Jfb2sg KEVRLCBWMlNGbW9kZSwgb3BlcmFuZHMpIgorICAgInBmY21wZXFcdHslMiwgJTB8JTAsICUyfSIK KyAgIFsoc2V0X2F0dHIgInR5cGUiICJtbXhjbXAiKQorKyAgIChzZXRfYXR0ciAicHJlZml4X2V4 dHJhIiAiMSIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiVjJTRiIpXSkKKyAKKyAoZGVmaW5lX2lu c24gIm1teF9ndHYyc2YzIgorQEAgLTUxOSw2ICs1NDcsNyBAQCAoZGVmaW5lX2luc24gIm1teF9n dHYyc2YzIgorICAgIlRBUkdFVF8zRE5PVyIKKyAgICJwZmNtcGd0XHR7JTIsICUwfCUwLCAlMn0i CisgICBbKHNldF9hdHRyICJ0eXBlIiAibW14Y21wIikKKysgICAoc2V0X2F0dHIgInByZWZpeF9l eHRyYSIgIjEiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIlYyU0YiKV0pCisgCisgKGRlZmluZV9p bnNuICJtbXhfZ2V2MnNmMyIKK0BAIC01MjgsNiArNTU3LDcgQEAgKGRlZmluZV9pbnNuICJtbXhf Z2V2MnNmMyIKKyAgICJUQVJHRVRfM0ROT1ciCisgICAicGZjbXBnZVx0eyUyLCAlMHwlMCwgJTJ9 IgorICAgWyhzZXRfYXR0ciAidHlwZSIgIm1teGNtcCIpCisrICAgKHNldF9hdHRyICJwcmVmaXhf ZXh0cmEiICIxIikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJWMlNGIildKQorIAorIDs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7OworQEAgLTU0Miw2ICs1NzIsNyBAQCAoZGVmaW5lX2luc24gIm1teF9wZjJpZCIKKyAgICJU QVJHRVRfM0ROT1ciCisgICAicGYyaWRcdHslMSwgJTB8JTAsICUxfSIKKyAgIFsoc2V0X2F0dHIg InR5cGUiICJtbXhjdnQiKQorKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCisgICAg KHNldF9hdHRyICJtb2RlIiAiVjJTRiIpXSkKKyAKKyAoZGVmaW5lX2luc24gIm1teF9wZjJpdyIK K0BAIC01NTMsNiArNTg0LDcgQEAgKGRlZmluZV9pbnNuICJtbXhfcGYyaXciCisgICAiVEFSR0VU XzNETk9XX0EiCisgICAicGYyaXdcdHslMSwgJTB8JTAsICUxfSIKKyAgIFsoc2V0X2F0dHIgInR5 cGUiICJtbXhjdnQiKQorKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCisgICAgKHNl dF9hdHRyICJtb2RlIiAiVjJTRiIpXSkKKyAKKyAoZGVmaW5lX2luc24gIm1teF9waTJmdyIKK0BA IC01NjQsNiArNTk2LDcgQEAgKGRlZmluZV9pbnNuICJtbXhfcGkyZnciCisgICAiVEFSR0VUXzNE Tk9XX0EiCisgICAicGkyZndcdHslMSwgJTB8JTAsICUxfSIKKyAgIFsoc2V0X2F0dHIgInR5cGUi ICJtbXhjdnQiKQorKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCisgICAgKHNldF9h dHRyICJtb2RlIiAiVjJTRiIpXSkKKyAKKyAoZGVmaW5lX2luc24gIm1teF9mbG9hdHYyc2kyIgor QEAgLTU3Miw2ICs2MDUsNyBAQCAoZGVmaW5lX2luc24gIm1teF9mbG9hdHYyc2kyIgorICAgIlRB UkdFVF8zRE5PVyIKKyAgICJwaTJmZFx0eyUxLCAlMHwlMCwgJTF9IgorICAgWyhzZXRfYXR0ciAi dHlwZSIgIm1teGN2dCIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKKyAgICAo c2V0X2F0dHIgIm1vZGUiICJWMlNGIildKQorIAorIDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OworQEAgLTU4Nyw2ICs2 MjEsNyBAQCAoZGVmaW5lX2luc24gIm1teF9wc3dhcGR2MnNmMiIKKyAgICJUQVJHRVRfM0ROT1df QSIKKyAgICJwc3dhcGRcdHslMSwgJTB8JTAsICUxfSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJt bXhjdnQiKQorKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCisgICAgKHNldF9hdHRy ICJtb2RlIiAiVjJTRiIpXSkKKyAKKyAoZGVmaW5lX2luc24gIip2ZWNfZHVwdjJzZiIKK0BAIC04 ODcsNiArOTIyLDcgQEAgKGRlZmluZV9pbnNuICIqbW14X3BtdWxocnd2NGhpMyIKKyAgICJUQVJH RVRfM0ROT1cgJiYgaXg4Nl9iaW5hcnlfb3BlcmF0b3Jfb2sgKE1VTFQsIFY0SEltb2RlLCBvcGVy YW5kcykiCisgICAicG11bGhyd1x0eyUyLCAlMHwlMCwgJTJ9IgorICAgWyhzZXRfYXR0ciAidHlw ZSIgIm1teG11bCIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKKyAgICAoc2V0 X2F0dHIgIm1vZGUiICJESSIpXSkKKyAKKyAoZGVmaW5lX2V4cGFuZCAic3NlMl91bXVsdjFzaXYx ZGkzIgorQEAgLTk2NSw2ICsxMDAxLDEwIEBAIChkZWZpbmVfaW5zbiAibW14X2FzaHI8bW9kZT4z IgorICAgIlRBUkdFVF9NTVgiCisgICAicHNyYTxtbXh2ZWNzaXplPlx0eyUyLCAlMHwlMCwgJTJ9 IgorICAgWyhzZXRfYXR0ciAidHlwZSIgIm1teHNoZnQiKQorKyAgIChzZXQgKGF0dHIgImxlbmd0 aF9pbW1lZGlhdGUiKQorKyAgICAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfb3BlcmFuZCAyICJjb25z dF9pbnRfb3BlcmFuZCIgIiIpCisrICAgICAgIChjb25zdF9zdHJpbmcgIjEiKQorKyAgICAgICAo Y29uc3Rfc3RyaW5nICIwIikpKQorICAgIChzZXRfYXR0ciAibW9kZSIgIkRJIildKQorIAorIChk ZWZpbmVfaW5zbiAibW14X2xzaHI8bW9kZT4zIgorQEAgLTk3NSw2ICsxMDE1LDEwIEBAIChkZWZp bmVfaW5zbiAibW14X2xzaHI8bW9kZT4zIgorICAgIlRBUkdFVF9NTVgiCisgICAicHNybDxtbXh2 ZWNzaXplPlx0eyUyLCAlMHwlMCwgJTJ9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgIm1teHNoZnQi KQorKyAgIChzZXQgKGF0dHIgImxlbmd0aF9pbW1lZGlhdGUiKQorKyAgICAgKGlmX3RoZW5fZWxz ZSAobWF0Y2hfb3BlcmFuZCAyICJjb25zdF9pbnRfb3BlcmFuZCIgIiIpCisrICAgICAgIChjb25z dF9zdHJpbmcgIjEiKQorKyAgICAgICAoY29uc3Rfc3RyaW5nICIwIikpKQorICAgIChzZXRfYXR0 ciAibW9kZSIgIkRJIildKQorIAorIChkZWZpbmVfaW5zbiAibW14X2FzaGw8bW9kZT4zIgorQEAg LTk4NSw2ICsxMDI5LDEwIEBAIChkZWZpbmVfaW5zbiAibW14X2FzaGw8bW9kZT4zIgorICAgIlRB UkdFVF9NTVgiCisgICAicHNsbDxtbXh2ZWNzaXplPlx0eyUyLCAlMHwlMCwgJTJ9IgorICAgWyhz ZXRfYXR0ciAidHlwZSIgIm1teHNoZnQiKQorKyAgIChzZXQgKGF0dHIgImxlbmd0aF9pbW1lZGlh dGUiKQorKyAgICAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfb3BlcmFuZCAyICJjb25zdF9pbnRfb3Bl cmFuZCIgIiIpCisrICAgICAgIChjb25zdF9zdHJpbmcgIjEiKQorKyAgICAgICAoY29uc3Rfc3Ry aW5nICIwIikpKQorICAgIChzZXRfYXR0ciAibW9kZSIgIkRJIildKQorIAorIDs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 OworQEAgLTEyMDUsNiArMTI1Myw3IEBAIChkZWZpbmVfaW5zbiAiKm1teF9waW5zcnciCisgICBy ZXR1cm4gInBpbnNyd1x0eyUzLCAlazIsICUwfCUwLCAlazIsICUzfSI7CisgfQorICAgWyhzZXRf YXR0ciAidHlwZSIgIm1teGN2dCIpCisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAi MSIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0pCisgCisgKGRlZmluZV9pbnNuICJtbXhf cGV4dHJ3IgorQEAgLTEyMTYsNiArMTI2NSw3IEBAIChkZWZpbmVfaW5zbiAibW14X3BleHRydyIK KyAgICJUQVJHRVRfU1NFIHx8IFRBUkdFVF8zRE5PV19BIgorICAgInBleHRyd1x0eyUyLCAlMSwg JTB8JTAsICUxLCAlMn0iCisgICBbKHNldF9hdHRyICJ0eXBlIiAibW14Y3Z0IikKKysgICAoc2V0 X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJESSIp XSkKKyAKKyAoZGVmaW5lX2V4cGFuZCAibW14X3BzaHVmdyIKK0BAIC0xMjUzLDYgKzEzMDMsNyBA QCAoZGVmaW5lX2luc24gIm1teF9wc2h1ZndfMSIKKyAgIHJldHVybiAicHNodWZ3XHR7JTIsICUx LCAlMHwlMCwgJTEsICUyfSI7CisgfQorICAgWyhzZXRfYXR0ciAidHlwZSIgIm1teGN2dCIpCisr ICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisgICAgKHNldF9hdHRyICJtb2Rl IiAiREkiKV0pCisgCisgKGRlZmluZV9pbnNuICJtbXhfcHN3YXBkdjJzaTIiCitAQCAtMTI2Myw2 ICsxMzE0LDcgQEAgKGRlZmluZV9pbnNuICJtbXhfcHN3YXBkdjJzaTIiCisgICAiVEFSR0VUXzNE Tk9XX0EiCisgICAicHN3YXBkXHR7JTEsICUwfCUwLCAlMX0iCisgICBbKHNldF9hdHRyICJ0eXBl IiAibW14Y3Z0IikKKysgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQorICAgIChzZXRf YXR0ciAibW9kZSIgIkRJIildKQorIAorIChkZWZpbmVfaW5zbiAiKnZlY19kdXB2NGhpIgorQEAg LTEyNzMsNiArMTMyNSw3IEBAIChkZWZpbmVfaW5zbiAiKnZlY19kdXB2NGhpIgorICAgIlRBUkdF VF9TU0UgfHwgVEFSR0VUXzNETk9XX0EiCisgICAicHNodWZ3XHR7JDAsICUwLCAlMHwlMCwgJTAs IDB9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgIm1teGN2dCIpCisrICAgKHNldF9hdHRyICJsZW5n dGhfaW1tZWRpYXRlIiAiMSIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0pCisgCisgKGRl ZmluZV9pbnNuICIqdmVjX2R1cHYyc2kiCitAQCAtMTM0NSw2ICsxMzk4LDcgQEAgKGRlZmluZV9p bnNuICIqdmVjX2V4dHJhY3R2MnNpXzEiCisgICAgIworICAgICMiCisgICBbKHNldF9hdHRyICJ0 eXBlIiAibW14Y3Z0LHNzZWxvZzEsc3NlbG9nMSxzc2Vsb2cxLG1teG1vdixzc2Vtb3YsaW1vdiIp CisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiKiwqLDEsKiwqLCosKiIpCisgICAg KHNldF9hdHRyICJtb2RlIiAiREksVEksVEksVjRTRixTSSxTSSxTSSIpXSkKKyAKKyAoZGVmaW5l X3NwbGl0CitAQCAtMTQ5Miw2ICsxNTQ2LDExIEBAIChkZWZpbmVfaW5zbiAiKm1teF91YXZndjhx aTMiCisgICAgIHJldHVybiAicGF2Z3VzYlx0eyUyLCAlMHwlMCwgJTJ9IjsKKyB9CisgICBbKHNl dF9hdHRyICJ0eXBlIiAibW14c2hmdCIpCisrICAgKHNldCAoYXR0ciAicHJlZml4X2V4dHJhIikK KysgICAgIChpZl90aGVuX2Vsc2UKKysgICAgICAgKGVxIChzeW1ib2xfcmVmICIoVEFSR0VUX1NT RSB8fCBUQVJHRVRfM0ROT1dfQSkiKSAoY29uc3RfaW50IDApKQorKyAgICAgICAoY29uc3Rfc3Ry aW5nICIxIikKKysgICAgICAgKGNvbnN0X3N0cmluZyAiKiIpKSkKKyAgICAoc2V0X2F0dHIgIm1v ZGUiICJESSIpXSkKKyAKKyAoZGVmaW5lX2V4cGFuZCAibW14X3Vhdmd2NGhpMyIKK0BAIC0xNjAy LDYgKzE2NjEsNyBAQCAoZGVmaW5lX2luc24gIm1teF9lbW1zIgorICAgIlRBUkdFVF9NTVgiCisg ICAiZW1tcyIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJtbXgiKQorKyAgIChzZXRfYXR0ciAibW9k cm0iICIwIikKKyAgICAoc2V0X2F0dHIgIm1lbW9yeSIgInVua25vd24iKV0pCisgCisgKGRlZmlu ZV9pbnNuICJtbXhfZmVtbXMiCitAQCAtMTYyNSw0ICsxNjg1LDUgQEAgKGRlZmluZV9pbnNuICJt bXhfZmVtbXMiCisgICAiVEFSR0VUXzNETk9XIgorICAgImZlbW1zIgorICAgWyhzZXRfYXR0ciAi dHlwZSIgIm1teCIpCisrICAgKHNldF9hdHRyICJtb2RybSIgIjAiKQorICAgIChzZXRfYXR0ciAi bWVtb3J5IiAibm9uZSIpXSkKKy0tLSBnY2MvY29uZmlnL2kzODYvc3NlLm1kLmpqCTIwMDktMDYt MDkgMTA6MjE6MzguMDAwMDAwMDAwICswMjAwCisrKysgZ2NjL2NvbmZpZy9pMzg2L3NzZS5tZAky MDA5LTA2LTA5IDExOjQ2OjUzLjAwMDAwMDAwMCArMDIwMAorQEAgLTQzOSw2ICs0MzksNyBAQCAo ZGVmaW5lX2luc24gInNzZTJfbW92bnRzaSIKKyAgICJUQVJHRVRfU1NFMiIKKyAgICJtb3ZudGlc dHslMSwgJTB8JTAsICUxfSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vtb3YiKQorKyAgIChz ZXRfYXR0ciAicHJlZml4X2RhdGExNiIgIjAiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIlYyREYi KV0pCisgCisgKGRlZmluZV9pbnNuICJhdnhfbGRkcXU8YXZ4bW9kZXN1ZmZpeD4iCitAQCAtNDYx LDYgKzQ2Miw3IEBAIChkZWZpbmVfaW5zbiAic3NlM19sZGRxdSIKKyAgICJsZGRxdVx0eyUxLCAl MHwlMCwgJTF9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZW1vdiIpCisgICAgKHNldF9hdHRy ICJtb3Z1IiAiMSIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMCIpCisgICAgKHNl dF9hdHRyICJwcmVmaXhfcmVwIiAiMSIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCisg CitAQCAtMTQwOSw2ICsxNDExLDcgQEAgKGRlZmluZV9pbnNuICJhdnhfY21wcDxhdnhtb2Rlc3Vm Zml4ZjJjPgorICAgIlRBUkdFVF9BVlgiCisgICAidmNtcHA8YXZ4bW9kZXN1ZmZpeGYyYz5cdHsl MywgJTIsICUxLCAlMHwlMCwgJTEsICUyLCAlM30iCisgICBbKHNldF9hdHRyICJ0eXBlIiAic3Nl Y21wIikKKysgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKKyAgICAoc2V0X2F0 dHIgInByZWZpeCIgInZleCIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+IildKQorIAor QEAgLTE0MjUsNiArMTQyOCw3IEBAIChkZWZpbmVfaW5zbiAiYXZ4X2NtcHM8c3NlbW9kZXN1ZmZp eGYyYz4KKyAgICJUQVJHRVRfQVZYIgorICAgInZjbXBzPHNzZW1vZGVzdWZmaXhmMmM+XHR7JTMs ICUyLCAlMSwgJTB8JTAsICUxLCAlMiwgJTN9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWNt cCIpCisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisgICAgKHNldF9hdHRy ICJwcmVmaXgiICJ2ZXgiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIjxzc2VzY2FsYXJtb2RlPiIp XSkKKyAKK0BAIC0xNDM5LDYgKzE0NDMsNyBAQCAoZGVmaW5lX2luc24gIiphdnhfbWFza2NtcDxt b2RlPjMiCisgICAidmNtcCVEM3A8YXZ4bW9kZXN1ZmZpeGYyYz5cdHslMiwgJTEsICUwfCUwLCAl MSwgJTJ9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWNtcCIpCisgICAgKHNldF9hdHRyICJw cmVmaXgiICJ2ZXgiKQorKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQorICAg IChzZXRfYXR0ciAibW9kZSIgIjxhdnh2ZWNtb2RlPiIpXSkKKyAKKyAoZGVmaW5lX2luc24gIjxz c2U+X21hc2tjbXA8bW9kZT4zIgorQEAgLTE0NTAsNiArMTQ1NSw3IEBAIChkZWZpbmVfaW5zbiAi PHNzZT5fbWFza2NtcDxtb2RlPjMiCisgICAgJiYgIVRBUkdFVF9TU0U1IgorICAgImNtcCVEMzxz c2Vtb2Rlc3VmZml4ZjQ+XHR7JTIsICUwfCUwLCAlMn0iCisgICBbKHNldF9hdHRyICJ0eXBlIiAi c3NlY21wIikKKysgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKKyAgICAoc2V0 X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0pCisgCisgKGRlZmluZV9pbnNuICI8c3NlPl92bW1hc2tj bXA8bW9kZT4zIgorQEAgLTE0NjMsNiArMTQ2OSw3IEBAIChkZWZpbmVfaW5zbiAiPHNzZT5fdm1t YXNrY21wPG1vZGU+MyIKKyAgICJTU0VfVkVDX0ZMT0FUX01PREVfUCAoPE1PREU+bW9kZSkgJiYg IVRBUkdFVF9TU0U1IgorICAgImNtcCVEM3M8c3NlbW9kZXN1ZmZpeGYyYz5cdHslMiwgJTB8JTAs ICUyfSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2VjbXAiKQorKyAgIChzZXRfYXR0ciAibGVu Z3RoX2ltbWVkaWF0ZSIgIjEiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIjxzc2VzY2FsYXJtb2Rl PiIpXSkKKyAKKyAoZGVmaW5lX2luc24gIjxzc2U+X2NvbWkiCitAQCAtMTQ3OCw2ICsxNDg1LDEx IEBAIChkZWZpbmVfaW5zbiAiPHNzZT5fY29taSIKKyAgICIldmNvbWlzPHNzZW1vZGVmc3VmZml4 Plx0eyUxLCAlMHwlMCwgJTF9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWNvbWkiKQorICAg IChzZXRfYXR0ciAicHJlZml4IiAibWF5YmVfdmV4IikKKysgICAoc2V0X2F0dHIgInByZWZpeF9y ZXAiICIwIikKKysgICAoc2V0IChhdHRyICJwcmVmaXhfZGF0YTE2IikKKysJKGlmX3RoZW5fZWxz ZSAoZXFfYXR0ciAibW9kZSIgIkRGIikKKysJCSAgICAgIChjb25zdF9zdHJpbmcgIjEiKQorKwkJ ICAgICAgKGNvbnN0X3N0cmluZyAiMCIpKSkKKyAgICAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4i KV0pCisgCisgKGRlZmluZV9pbnNuICI8c3NlPl91Y29taSIKK0BAIC0xNDkzLDYgKzE1MDUsMTEg QEAgKGRlZmluZV9pbnNuICI8c3NlPl91Y29taSIKKyAgICIldnVjb21pczxzc2Vtb2RlZnN1ZmZp eD5cdHslMSwgJTB8JTAsICUxfSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vjb21pIikKKyAg ICAoc2V0X2F0dHIgInByZWZpeCIgIm1heWJlX3ZleCIpCisrICAgKHNldF9hdHRyICJwcmVmaXhf cmVwIiAiMCIpCisrICAgKHNldCAoYXR0ciAicHJlZml4X2RhdGExNiIpCisrCShpZl90aGVuX2Vs c2UgKGVxX2F0dHIgIm1vZGUiICJERiIpCisrCQkgICAgICAoY29uc3Rfc3RyaW5nICIxIikKKysJ CSAgICAgIChjb25zdF9zdHJpbmcgIjAiKSkpCisgICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+ IildKQorIAorIChkZWZpbmVfZXhwYW5kICJ2Y29uZDxtb2RlPiIKK0BAIC0yMjI0LDYgKzIyNDEs NyBAQCAoZGVmaW5lX2luc24gInNzZV9jdnR0cHMycGkiCisgICAiY3Z0dHBzMnBpXHR7JTEsICUw fCUwLCAlMX0iCisgICBbKHNldF9hdHRyICJ0eXBlIiAic3NlY3Z0IikKKyAgICAoc2V0X2F0dHIg InVuaXQiICJtbXgiKQorKyAgIChzZXRfYXR0ciAicHJlZml4X3JlcCIgIjAiKQorICAgIChzZXRf YXR0ciAibW9kZSIgIlNGIildKQorIAorIChkZWZpbmVfaW5zbiAiKmF2eF9jdnRzaTJzcyIKK0BA IC0yMjYzLDYgKzIyODEsNyBAQCAoZGVmaW5lX2luc24gIiphdnhfY3Z0c2kyc3NxIgorICAgIlRB UkdFVF9BVlggJiYgVEFSR0VUXzY0QklUIgorICAgInZjdnRzaTJzc3FcdHslMiwgJTEsICUwfCUw LCAlMSwgJTJ9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWljdnQiKQorKyAgIChzZXRfYXR0 ciAibGVuZ3RoX3ZleCIgIjQiKQorICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKKyAgICAo c2V0X2F0dHIgIm1vZGUiICJTRiIpXSkKKyAKK0BAIC0yMjc2LDYgKzIyOTUsNyBAQCAoZGVmaW5l X2luc24gInNzZV9jdnRzaTJzc3EiCisgICAiVEFSR0VUX1NTRSAmJiBUQVJHRVRfNjRCSVQiCisg ICAiY3Z0c2kyc3NxXHR7JTIsICUwfCUwLCAlMn0iCisgICBbKHNldF9hdHRyICJ0eXBlIiAic3Nl aWN2dCIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfcmV4IiAiMSIpCisgICAgKHNldF9hdHRyICJh dGhsb25fZGVjb2RlIiAidmVjdG9yLGRvdWJsZSIpCisgICAgKHNldF9hdHRyICJhbWRmYW0xMF9k ZWNvZGUiICJ2ZWN0b3IsZG91YmxlIikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJTRiIpXSkKK0BA IC0yNDIyLDYgKzI0NDIsNyBAQCAoZGVmaW5lX2luc24gInNzZTJfY3Z0dHBzMmRxIgorICAgImN2 dHRwczJkcVx0eyUxLCAlMHwlMCwgJTF9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWN2dCIp CisgICAgKHNldF9hdHRyICJwcmVmaXhfcmVwIiAiMSIpCisrICAgKHNldF9hdHRyICJwcmVmaXhf ZGF0YTE2IiAiMCIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCisgCisgOzs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7CitAQCAtMjQzNyw2ICsyNDU4LDcgQEAgKGRlZmluZV9pbnNuICJzc2UyX2N2dHBpMnBkIgor ICAgImN2dHBpMnBkXHR7JTEsICUwfCUwLCAlMX0iCisgICBbKHNldF9hdHRyICJ0eXBlIiAic3Nl Y3Z0IikKKyAgICAoc2V0X2F0dHIgInVuaXQiICJtbXgsKiIpCisrICAgKHNldF9hdHRyICJwcmVm aXhfZGF0YTE2IiAiMSwqIikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJWMkRGIildKQorIAorIChk ZWZpbmVfaW5zbiAic3NlMl9jdnRwZDJwaSIKK0BAIC0yNDk3LDYgKzI1MTksNyBAQCAoZGVmaW5l X2luc24gIiphdnhfY3Z0c2kyc2RxIgorICAgIlRBUkdFVF9BVlggJiYgVEFSR0VUXzY0QklUIgor ICAgInZjdnRzaTJzZHFcdHslMiwgJTEsICUwfCUwLCAlMSwgJTJ9IgorICAgWyhzZXRfYXR0ciAi dHlwZSIgInNzZWljdnQiKQorKyAgIChzZXRfYXR0ciAibGVuZ3RoX3ZleCIgIjQiKQorICAgIChz ZXRfYXR0ciAicHJlZml4IiAidmV4IikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJERiIpXSkKKyAK K0BAIC0yNTEwLDYgKzI1MzMsNyBAQCAoZGVmaW5lX2luc24gInNzZTJfY3Z0c2kyc2RxIgorICAg IlRBUkdFVF9TU0UyICYmIFRBUkdFVF82NEJJVCIKKyAgICJjdnRzaTJzZHFcdHslMiwgJTB8JTAs ICUyfSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2VpY3Z0IikKKysgICAoc2V0X2F0dHIgInBy ZWZpeF9yZXgiICIxIikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJERiIpCisgICAgKHNldF9hdHRy ICJhdGhsb25fZGVjb2RlIiAiZG91YmxlLGRpcmVjdCIpCisgICAgKHNldF9hdHRyICJhbWRmYW0x MF9kZWNvZGUiICJ2ZWN0b3IsZG91YmxlIildKQorQEAgLTI2NTEsNiArMjY3NSw3IEBAIChkZWZp bmVfaW5zbiAiKnNzZTJfY3Z0cGQyZHEiCisgCQkgICAgICAgOiBcImN2dHBkMmRxXHR7JTEsICUw fCUwLCAlMX1cIjsiCisgICBbKHNldF9hdHRyICJ0eXBlIiAic3NlY3Z0IikKKyAgICAoc2V0X2F0 dHIgInByZWZpeF9yZXAiICIxIikKKysgICAoc2V0X2F0dHIgInByZWZpeF9kYXRhMTYiICIwIikK KyAgICAoc2V0X2F0dHIgInByZWZpeCIgIm1heWJlX3ZleCIpCisgICAgKHNldF9hdHRyICJtb2Rl IiAiVEkiKQorICAgIChzZXRfYXR0ciAiYW1kZmFtMTBfZGVjb2RlIiAiZG91YmxlIildKQorQEAg LTI2ODEsNyArMjcwNiw2IEBAIChkZWZpbmVfaW5zbiAiKnNzZTJfY3Z0dHBkMmRxIgorICAgIiog cmV0dXJuIFRBUkdFVF9BVlggPyBcInZjdnR0cGQyZHF7eH1cdHslMSwgJTB8JTAsICUxfVwiCisg CQkgICAgICAgOiBcImN2dHRwZDJkcVx0eyUxLCAlMHwlMCwgJTF9XCI7IgorICAgWyhzZXRfYXR0 ciAidHlwZSIgInNzZWN2dCIpCistICAgKHNldF9hdHRyICJwcmVmaXhfcmVwIiAiMSIpCisgICAg KHNldF9hdHRyICJwcmVmaXgiICJtYXliZV92ZXgiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIlRJ IikKKyAgICAoc2V0X2F0dHIgImFtZGZhbTEwX2RlY29kZSIgImRvdWJsZSIpXSkKK0BAIC0yODAw LDYgKzI4MjQsNyBAQCAoZGVmaW5lX2luc24gInNzZTJfY3Z0cHMycGQiCisgICBbKHNldF9hdHRy ICJ0eXBlIiAic3NlY3Z0IikKKyAgICAoc2V0X2F0dHIgInByZWZpeCIgIm1heWJlX3ZleCIpCisg ICAgKHNldF9hdHRyICJtb2RlIiAiVjJERiIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2 IiAiMCIpCisgICAgKHNldF9hdHRyICJhbWRmYW0xMF9kZWNvZGUiICJkaXJlY3QiKV0pCisgCisg KGRlZmluZV9leHBhbmQgInZlY191bnBhY2tzX2hpX3Y0c2YiCitAQCAtMzI3MCw2ICszMjk1LDcg QEAgKGRlZmluZV9pbnNuICJhdnhfc2h1ZnBzMjU2XzEiCisgICByZXR1cm4gInZzaHVmcHNcdHsl MywgJTIsICUxLCAlMHwlMCwgJTEsICUyLCAlM30iOworIH0KKyAgIFsoc2V0X2F0dHIgInR5cGUi ICJzc2Vsb2ciKQorKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQorICAgIChz ZXRfYXR0ciAicHJlZml4IiAidmV4IikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJWOFNGIildKQor IAorQEAgLTMzMTEsNiArMzMzNyw3IEBAIChkZWZpbmVfaW5zbiAiKmF2eF9zaHVmcHNfPG1vZGU+ IgorICAgcmV0dXJuICJ2c2h1ZnBzXHR7JTMsICUyLCAlMSwgJTB8JTAsICUxLCAlMiwgJTN9IjsK KyB9CisgICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nIikKKysgICAoc2V0X2F0dHIgImxlbmd0 aF9pbW1lZGlhdGUiICIxIikKKyAgICAoc2V0X2F0dHIgInByZWZpeCIgInZleCIpCisgICAgKHNl dF9hdHRyICJtb2RlIiAiVjRTRiIpXSkKKyAKK0BAIC0zMzM2LDYgKzMzNjMsNyBAQCAoZGVmaW5l X2luc24gInNzZV9zaHVmcHNfPG1vZGU+IgorICAgcmV0dXJuICJzaHVmcHNcdHslMywgJTIsICUw fCUwLCAlMiwgJTN9IjsKKyB9CisgICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nIikKKysgICAo c2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJW NFNGIildKQorIAorIChkZWZpbmVfaW5zbiAic3NlX3N0b3JlaHBzIgorQEAgLTM0NDMsNiArMzQ3 MSw3IEBAIChkZWZpbmVfaW5zbiAiKmF2eF9sb2FkbHBzIgorICAgIHZtb3ZscHNcdHslMiwgJTEs ICUwfCUwLCAlMSwgJTJ9CisgICAgdm1vdmxwc1x0eyUyLCAlMHwlMCwgJTJ9IgorICAgWyhzZXRf YXR0ciAidHlwZSIgInNzZWxvZyxzc2Vtb3Ysc3NlbW92IikKKysgICAoc2V0X2F0dHIgImxlbmd0 aF9pbW1lZGlhdGUiICIxLCosKiIpCisgICAgKHNldF9hdHRyICJwcmVmaXgiICJ2ZXgiKQorICAg IChzZXRfYXR0ciAibW9kZSIgIlY0U0YsVjJTRixWMlNGIildKQorIAorQEAgLTM0NTksNiArMzQ4 OCw3IEBAIChkZWZpbmVfaW5zbiAic3NlX2xvYWRscHMiCisgICAgbW92bHBzXHR7JTIsICUwfCUw LCAlMn0KKyAgICBtb3ZscHNcdHslMiwgJTB8JTAsICUyfSIKKyAgIFsoc2V0X2F0dHIgInR5cGUi ICJzc2Vsb2csc3NlbW92LHNzZW1vdiIpCisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRl IiAiMSwqLCoiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIlY0U0YsVjJTRixWMlNGIildKQorIAor IChkZWZpbmVfaW5zbiAiKmF2eF9tb3ZzcyIKK0BAIC0zNDkxLDYgKzM1MjEsNyBAQCAoZGVmaW5l X2luc24gIip2ZWNfZHVwdjRzZl9hdngiCisgICAiVEFSR0VUX0FWWCIKKyAgICJ2c2h1ZnBzXHR7 JDAsICUxLCAlMSwgJTB8JTAsICUxLCAlMSwgMH0iCisgICBbKHNldF9hdHRyICJ0eXBlIiAic3Nl bG9nMSIpCisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisgICAgKHNldF9h dHRyICJwcmVmaXgiICJ2ZXgiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIlY0U0YiKV0pCisgCitA QCAtMzUwMSw2ICszNTMyLDcgQEAgKGRlZmluZV9pbnNuICIqdmVjX2R1cHY0c2YiCisgICAiVEFS R0VUX1NTRSIKKyAgICJzaHVmcHNcdHskMCwgJTAsICUwfCUwLCAlMCwgMH0iCisgICBbKHNldF9h dHRyICJ0eXBlIiAic3NlbG9nMSIpCisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAi MSIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiVjRTRiIpXSkKKyAKKyAoZGVmaW5lX2luc24gIip2 ZWNfY29uY2F0djJzZl9hdngiCitAQCAtMzUxNiw2ICszNTQ4LDggQEAgKGRlZmluZV9pbnNuICIq dmVjX2NvbmNhdHYyc2ZfYXZ4IgorICAgIHB1bnBja2xkcVx0eyUyLCAlMHwlMCwgJTJ9CisgICAg bW92ZFx0eyUxLCAlMHwlMCwgJTF9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZyxzc2Vs b2csc3NlbW92LG1teGN2dCxtbXhtb3YiKQorKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0 ZSIgIiosMSwqLCosKiIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIqLDEsKiwqLCoi KQorICAgIChzZXQgKGF0dHIgInByZWZpeCIpCisgICAgICAoaWZfdGhlbl9lbHNlIChlcV9hdHRy ICJhbHRlcm5hdGl2ZSIgIjMsNCIpCisgICAgICAgIChjb25zdF9zdHJpbmcgIm9yaWciKQorQEAg LTM1MzcsNyArMzU3MSw5IEBAIChkZWZpbmVfaW5zbiAiKnZlY19jb25jYXR2MnNmX3NzZTRfMSIK KyAgICBwdW5wY2tsZHFcdHslMiwgJTB8JTAsICUyfQorICAgIG1vdmRcdHslMSwgJTB8JTAsICUx fSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vsb2csc3NlbG9nLHNzZW1vdixtbXhjdnQsbW14 bW92IikKKysgICAoc2V0X2F0dHIgInByZWZpeF9kYXRhMTYiICIqLDEsKiwqLCoiKQorICAgIChz ZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiKiwxLCosKiwqIikKKysgICAoc2V0X2F0dHIgImxlbmd0 aF9pbW1lZGlhdGUiICIqLDEsKiwqLCoiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIlY0U0YsVjRT RixTRixESSxESSIpXSkKKyAKKyA7OyA/Pz8gSW4gdGhlb3J5IHdlIGNhbiBtYXRjaCBtZW1vcnkg Zm9yIHRoZSBNTVggYWx0ZXJuYXRpdmUsIGJ1dCBhbGxvd2luZworQEAgLTM2MzgsNiArMzY3NCw4 IEBAIChkZWZpbmVfaW5zbiAiKnZlY19zZXR2NHNmX2F2eCIKKyAgIHJldHVybiAidmluc2VydHBz XHR7JTMsICUyLCAlMSwgJTB8JTAsICUxLCAlMiwgJTN9IjsKKyB9CisgICBbKHNldF9hdHRyICJ0 eXBlIiAic3NlbG9nIikKKysgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQorKyAgIChz ZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQorICAgIChzZXRfYXR0ciAicHJlZml4IiAi dmV4IikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJWNFNGIildKQorIAorQEAgLTM2NTQsNyArMzY5 Miw5IEBAIChkZWZpbmVfaW5zbiAiKnZlY19zZXR2NHNmX3NzZTRfMSIKKyAgIHJldHVybiAiaW5z ZXJ0cHNcdHslMywgJTIsICUwfCUwLCAlMiwgJTN9IjsKKyB9CisgICBbKHNldF9hdHRyICJ0eXBl IiAic3NlbG9nIikKKysgICAoc2V0X2F0dHIgInByZWZpeF9kYXRhMTYiICIxIikKKyAgICAoc2V0 X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQorKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0 ZSIgIjEiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIlY0U0YiKV0pCisgCisgKGRlZmluZV9pbnNu ICIqYXZ4X2luc2VydHBzIgorQEAgLTM2NjcsNiArMzcwNyw4IEBAIChkZWZpbmVfaW5zbiAiKmF2 eF9pbnNlcnRwcyIKKyAgICJ2aW5zZXJ0cHNcdHslMywgJTIsICUxLCAlMHwlMCwgJTEsICUyLCAl M30iOworICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZyIpCisgICAgKHNldF9hdHRyICJwcmVm aXgiICJ2ZXgiKQorKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCisrICAgKHNldF9h dHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiVjRTRiIp XSkKKyAKKyAoZGVmaW5lX2luc24gInNzZTRfMV9pbnNlcnRwcyIKK0BAIC0zNjc4LDcgKzM3MjAs OSBAQCAoZGVmaW5lX2luc24gInNzZTRfMV9pbnNlcnRwcyIKKyAgICJUQVJHRVRfU1NFNF8xIgor ICAgImluc2VydHBzXHR7JTMsICUyLCAlMHwlMCwgJTIsICUzfSI7CisgICBbKHNldF9hdHRyICJ0 eXBlIiAic3NlbG9nIikKKysgICAoc2V0X2F0dHIgInByZWZpeF9kYXRhMTYiICIxIikKKyAgICAo c2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQorKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVk aWF0ZSIgIjEiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIlY0U0YiKV0pCisgCisgKGRlZmluZV9z cGxpdAorQEAgLTM3NTMsNiArMzc5Nyw4IEBAIChkZWZpbmVfaW5zbiAidmVjX2V4dHJhY3RfbG9f PG1vZGU+IgorICAgIlRBUkdFVF9BVlgiCisgICAidmV4dHJhY3RmMTI4XHR7JDB4MCwgJTEsICUw fCUwLCAlMSwgMHgwfSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vsb2ciKQorKyAgIChzZXRf YXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRl IiAiMSIpCisgICAgKHNldF9hdHRyICJtZW1vcnkiICJub25lLHN0b3JlIikKKyAgICAoc2V0X2F0 dHIgInByZWZpeCIgInZleCIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiVjhTRiIpXSkKK0BAIC0z NzY1LDYgKzM4MTEsOCBAQCAoZGVmaW5lX2luc24gInZlY19leHRyYWN0X2hpXzxtb2RlPiIKKyAg ICJUQVJHRVRfQVZYIgorICAgInZleHRyYWN0ZjEyOFx0eyQweDEsICUxLCAlMHwlMCwgJTEsIDB4 MX0iCisgICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nIikKKysgICAoc2V0X2F0dHIgInByZWZp eF9leHRyYSIgIjEiKQorKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQorICAg IChzZXRfYXR0ciAibWVtb3J5IiAibm9uZSxzdG9yZSIpCisgICAgKHNldF9hdHRyICJwcmVmaXgi ICJ2ZXgiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIlY4U0YiKV0pCitAQCAtMzc3OCw2ICszODI2 LDggQEAgKGRlZmluZV9pbnNuICJ2ZWNfZXh0cmFjdF9sb188bW9kZT4iCisgICAiVEFSR0VUX0FW WCIKKyAgICJ2ZXh0cmFjdGYxMjhcdHskMHgxLCAlMSwgJTB8JTAsICUxLCAweDF9IgorICAgWyhz ZXRfYXR0ciAidHlwZSIgInNzZWxvZyIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIx IikKKysgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKKyAgICAoc2V0X2F0dHIg Im1lbW9yeSIgIm5vbmUsc3RvcmUiKQorICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKKyAg ICAoc2V0X2F0dHIgIm1vZGUiICJWOFNGIildKQorQEAgLTM3OTEsNiArMzg0MSw4IEBAIChkZWZp bmVfaW5zbiAidmVjX2V4dHJhY3RfaGlfPG1vZGU+IgorICAgIlRBUkdFVF9BVlgiCisgICAidmV4 dHJhY3RmMTI4XHR7JDB4MSwgJTEsICUwfCUwLCAlMSwgMHgxfSIKKyAgIFsoc2V0X2F0dHIgInR5 cGUiICJzc2Vsb2ciKQorKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCisrICAgKHNl dF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisgICAgKHNldF9hdHRyICJtZW1vcnkiICJu b25lLHN0b3JlIikKKyAgICAoc2V0X2F0dHIgInByZWZpeCIgInZleCIpCisgICAgKHNldF9hdHRy ICJtb2RlIiAiVjhTRiIpXSkKK0BAIC0zODA2LDYgKzM4NTgsOCBAQCAoZGVmaW5lX2luc24gInZl Y19leHRyYWN0X2xvX3YxNmhpIgorICAgIlRBUkdFVF9BVlgiCisgICAidmV4dHJhY3RmMTI4XHR7 JDB4MSwgJTEsICUwfCUwLCAlMSwgMHgxfSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vsb2ci KQorKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCisrICAgKHNldF9hdHRyICJsZW5n dGhfaW1tZWRpYXRlIiAiMSIpCisgICAgKHNldF9hdHRyICJtZW1vcnkiICJub25lLHN0b3JlIikK KyAgICAoc2V0X2F0dHIgInByZWZpeCIgInZleCIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiVjhT RiIpXSkKK0BAIC0zODIxLDYgKzM4NzUsOCBAQCAoZGVmaW5lX2luc24gInZlY19leHRyYWN0X2hp X3YxNmhpIgorICAgIlRBUkdFVF9BVlgiCisgICAidmV4dHJhY3RmMTI4XHR7JDB4MSwgJTEsICUw fCUwLCAlMSwgMHgxfSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vsb2ciKQorKyAgIChzZXRf YXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRl IiAiMSIpCisgICAgKHNldF9hdHRyICJtZW1vcnkiICJub25lLHN0b3JlIikKKyAgICAoc2V0X2F0 dHIgInByZWZpeCIgInZleCIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiVjhTRiIpXSkKK0BAIC0z ODQwLDYgKzM4OTYsOCBAQCAoZGVmaW5lX2luc24gInZlY19leHRyYWN0X2xvX3YzMnFpIgorICAg IlRBUkdFVF9BVlgiCisgICAidmV4dHJhY3RmMTI4XHR7JDB4MSwgJTEsICUwfCUwLCAlMSwgMHgx fSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vsb2ciKQorKyAgIChzZXRfYXR0ciAicHJlZml4 X2V4dHJhIiAiMSIpCisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisgICAg KHNldF9hdHRyICJtZW1vcnkiICJub25lLHN0b3JlIikKKyAgICAoc2V0X2F0dHIgInByZWZpeCIg InZleCIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiVjhTRiIpXSkKK0BAIC0zODU5LDYgKzM5MTcs OCBAQCAoZGVmaW5lX2luc24gInZlY19leHRyYWN0X2hpX3YzMnFpIgorICAgIlRBUkdFVF9BVlgi CisgICAidmV4dHJhY3RmMTI4XHR7JDB4MSwgJTEsICUwfCUwLCAlMSwgMHgxfSIKKyAgIFsoc2V0 X2F0dHIgInR5cGUiICJzc2Vsb2ciKQorKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIp CisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisgICAgKHNldF9hdHRyICJt ZW1vcnkiICJub25lLHN0b3JlIikKKyAgICAoc2V0X2F0dHIgInByZWZpeCIgInZleCIpCisgICAg KHNldF9hdHRyICJtb2RlIiAiVjhTRiIpXSkKK0BAIC0zODcxLDcgKzM5MzEsOSBAQCAoZGVmaW5l X2luc24gIipzc2U0XzFfZXh0cmFjdHBzIgorICAgIlRBUkdFVF9TU0U0XzEiCisgICAiJXZleHRy YWN0cHNcdHslMiwgJTEsICUwfCUwLCAlMSwgJTJ9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNz ZWxvZyIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMSIpCisgICAgKHNldF9hdHRy ICJwcmVmaXhfZXh0cmEiICIxIikKKysgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIx IikKKyAgICAoc2V0X2F0dHIgInByZWZpeCIgIm1heWJlX3ZleCIpCisgICAgKHNldF9hdHRyICJt b2RlIiAiVjRTRiIpXSkKKyAKK0BAIC0zOTY0LDYgKzQwMjYsNyBAQCAoZGVmaW5lX2luc24gInNz ZTJfdW5wY2tocGQiCisgICAgbW92bHBkXHR7JUgxLCAlMHwlMCwgJUgxfQorICAgIG1vdmhwZFx0 eyUxLCAlMHwlMCwgJTF9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZyxzc2Vtb3Ysc3Nl bW92IikKKysgICAoc2V0X2F0dHIgInByZWZpeF9kYXRhMTYiICIqLDEsMSIpCisgICAgKHNldF9h dHRyICJtb2RlIiAiVjJERixWMURGLFYxREYiKV0pCisgCisgKGRlZmluZV9pbnNuICJhdnhfbW92 ZGR1cDI1NiIKK0BAIC00MDg0LDYgKzQxNDcsNyBAQCAoZGVmaW5lX2luc24gInNzZTJfdW5wY2ts cGQiCisgICAgbW92aHBkXHR7JTIsICUwfCUwLCAlMn0KKyAgICBtb3ZscGRcdHslMiwgJUgwfCVI MCwgJTJ9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZyxzc2Vtb3Ysc3NlbW92IikKKysg ICAoc2V0X2F0dHIgInByZWZpeF9kYXRhMTYiICIqLDEsMSIpCisgICAgKHNldF9hdHRyICJtb2Rl IiAiVjJERixWMURGLFYxREYiKV0pCisgCisgKGRlZmluZV9leHBhbmQgImF2eF9zaHVmcGQyNTYi CitAQCAtNDEyNCw2ICs0MTg4LDcgQEAgKGRlZmluZV9pbnNuICJhdnhfc2h1ZnBkMjU2XzEiCisg ICByZXR1cm4gInZzaHVmcGRcdHslMywgJTIsICUxLCAlMHwlMCwgJTEsICUyLCAlM30iOworIH0K KyAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vsb2ciKQorKyAgIChzZXRfYXR0ciAibGVuZ3RoX2lt bWVkaWF0ZSIgIjEiKQorICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKKyAgICAoc2V0X2F0 dHIgIm1vZGUiICJWNERGIildKQorIAorQEAgLTQyNjAsNiArNDMyNSw3IEBAIChkZWZpbmVfaW5z biAiKmF2eF9zaHVmcGRfPG1vZGU+IgorICAgcmV0dXJuICJ2c2h1ZnBkXHR7JTMsICUyLCAlMSwg JTB8JTAsICUxLCAlMiwgJTN9IjsKKyB9CisgICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nIikK KysgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKKyAgICAoc2V0X2F0dHIgInBy ZWZpeCIgInZleCIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiVjJERiIpXSkKKyAKK0BAIC00Mjgx LDYgKzQzNDcsNyBAQCAoZGVmaW5lX2luc24gInNzZTJfc2h1ZnBkXzxtb2RlPiIKKyAgIHJldHVy biAic2h1ZnBkXHR7JTMsICUyLCAlMHwlMCwgJTIsICUzfSI7CisgfQorICAgWyhzZXRfYXR0ciAi dHlwZSIgInNzZWxvZyIpCisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisg ICAgKHNldF9hdHRyICJtb2RlIiAiVjJERiIpXSkKKyAKKyA7OyBBdm9pZCBjb21iaW5pbmcgcmVn aXN0ZXJzIGZyb20gZGlmZmVyZW50IHVuaXRzIGluIGEgc2luZ2xlIGFsdGVybmF0aXZlLAorQEAg LTQzMTQsNiArNDM4MSw3IEBAIChkZWZpbmVfaW5zbiAic3NlMl9zdG9yZWhwZCIKKyAgICAjCisg ICAgIyIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vtb3Ysc3NlbG9nMSxzc2Vtb3YsZm1vdixp bW92IikKKysgICAoc2V0X2F0dHIgInByZWZpeF9kYXRhMTYiICIxLCosKiwqLCoiKQorICAgIChz ZXRfYXR0ciAibW9kZSIgIlYxREYsVjJERixERixERixERiIpXSkKKyAKKyAoZGVmaW5lX3NwbGl0 CitAQCAtNDM0Miw2ICs0NDEwLDcgQEAgKGRlZmluZV9pbnNuICJzc2UyX3N0b3JlbHBkIgorICAg ICMKKyAgICAjIgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZW1vdixzc2Vtb3Ysc3NlbW92LGZt b3YsaW1vdiIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMSwqLCosKiwqIikKKyAg ICAoc2V0X2F0dHIgInByZWZpeCIgIm1heWJlX3ZleCIpCisgICAgKHNldF9hdHRyICJtb2RlIiAi VjFERixERixERixERixERiIpXSkKKyAKK0BAIC00NDA4LDYgKzQ0NzcsOCBAQCAoZGVmaW5lX2lu c24gInNzZTJfbG9hZGhwZCIKKyAgICAjCisgICAgIyIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJz c2Vtb3Ysc3NlbG9nLHNzZWxvZyxzc2Vtb3YsZm1vdixpbW92IikKKysgICAoc2V0X2F0dHIgInBy ZWZpeF9kYXRhMTYiICIxLCosKiwqLCosKiIpCisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRp YXRlIiAiKiwqLDEsKiwqLCoiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIlYxREYsVjJERixWMkRG LERGLERGLERGIildKQorIAorIChkZWZpbmVfc3BsaXQKK0BAIC00NDcxLDYgKzQ1NDIsOCBAQCAo ZGVmaW5lX2luc24gInNzZTJfbG9hZGxwZCIKKyAgICAjCisgICAgIyIKKyAgIFsoc2V0X2F0dHIg InR5cGUiICJzc2Vtb3Ysc3NlbW92LHNzZW1vdixzc2Vsb2csc3NlbW92LHNzZW1vdixmbW92LGlt b3YiKQorKyAgIChzZXRfYXR0ciAicHJlZml4X2RhdGExNiIgIiosMSwqLCosMSwqLCosKiIpCisr ICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiKiwqLCosMSwqLCosKiwqIikKKyAgICAo c2V0X2F0dHIgIm1vZGUiICJERixWMURGLFYxREYsVjJERixWMURGLERGLERGLERGIildKQorIAor IChkZWZpbmVfc3BsaXQKK0BAIC00NTQ2LDYgKzQ2MTksOCBAQCAoZGVmaW5lX2luc24gInNzZTJf bW92c2QiCisgICAgbW92aHBzXHR7JUgxLCAlMHwlMCwgJUgxfQorICAgIG1vdmhwc1x0eyUxLCAl SDB8JUgwLCAlMX0iCisgICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbW92LHNzZW1vdixzc2Vtb3Ys c3NlbG9nLHNzZW1vdixzc2Vtb3YiKQorKyAgIChzZXRfYXR0ciAicHJlZml4X2RhdGExNiIgIios MSwxLCosKiwqIikKKysgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIqLCosKiwxLCos KiIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiREYsVjFERixWMURGLFYyREYsVjFERixWMURGIild KQorIAorIChkZWZpbmVfaW5zbiAiKnZlY19kdXB2MmRmX3NzZTMiCitAQCAtNDYwNSw2ICs0Njgw LDcgQEAgKGRlZmluZV9pbnNuICIqdmVjX2NvbmNhdHYyZGYiCisgICAgbW92bGhwc1x0eyUyLCAl MHwlMCwgJTJ9CisgICAgbW92aHBzXHR7JTIsICUwfCUwLCAlMn0iCisgICBbKHNldF9hdHRyICJ0 eXBlIiAic3NlbG9nLHNzZW1vdixzc2Vtb3Ysc3NlbW92LHNzZW1vdiIpCisrICAgKHNldF9hdHRy ICJwcmVmaXhfZGF0YTE2IiAiKiwxLCosKiwqIikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJWMkRG LFYxREYsREYsVjRTRixWMlNGIildKQorIAorIDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OworQEAgLTQ5NTMsNiArNTAy OSw3IEBAIChkZWZpbmVfaW5zbiAiKmF2eF9tdWx2MnNpdjJkaTMiCisgICAiVEFSR0VUX0FWWCAm JiBpeDg2X2JpbmFyeV9vcGVyYXRvcl9vayAoTVVMVCwgVjRTSW1vZGUsIG9wZXJhbmRzKSIKKyAg ICJ2cG11bGRxXHR7JTIsICUxLCAlMHwlMCwgJTEsICUyfSIKKyAgIFsoc2V0X2F0dHIgInR5cGUi ICJzc2VpbXVsIikKKysgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQorICAgIChzZXRf YXR0ciAicHJlZml4IiAidmV4IikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKKyAKK0BA IC01MDk5LDYgKzUxNzYsNyBAQCAoZGVmaW5lX2luc24gIiphdnhfbXVsdjRzaTMiCisgICAiVEFS R0VUX0FWWCAmJiBpeDg2X2JpbmFyeV9vcGVyYXRvcl9vayAoTVVMVCwgVjRTSW1vZGUsIG9wZXJh bmRzKSIKKyAgICJ2cG11bGxkXHR7JTIsICUxLCAlMHwlMCwgJTEsICUyfSIKKyAgIFsoc2V0X2F0 dHIgInR5cGUiICJzc2VpbXVsIikKKysgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQor ICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIp XSkKKyAKK0BAIC01NDk0LDYgKzU1NzIsMTAgQEAgKGRlZmluZV9pbnNuICIqYXZ4X2FzaHI8bW9k ZT4zIgorICAgInZwc3JhPHNzZXZlY3NpemU+XHR7JTIsICUxLCAlMHwlMCwgJTEsICUyfSIKKyAg IFsoc2V0X2F0dHIgInR5cGUiICJzc2Vpc2hmdCIpCisgICAgKHNldF9hdHRyICJwcmVmaXgiICJ2 ZXgiKQorKyAgIChzZXQgKGF0dHIgImxlbmd0aF9pbW1lZGlhdGUiKQorKyAgICAgKGlmX3RoZW5f ZWxzZSAobWF0Y2hfb3BlcmFuZCAyICJjb25zdF9pbnRfb3BlcmFuZCIgIiIpCisrICAgICAgIChj b25zdF9zdHJpbmcgIjEiKQorKyAgICAgICAoY29uc3Rfc3RyaW5nICIwIikpKQorICAgIChzZXRf YXR0ciAibW9kZSIgIlRJIildKQorIAorIChkZWZpbmVfaW5zbiAiYXNocjxtb2RlPjMiCitAQCAt NTUwNSw2ICs1NTg3LDEwIEBAIChkZWZpbmVfaW5zbiAiYXNocjxtb2RlPjMiCisgICAicHNyYTxz c2V2ZWNzaXplPlx0eyUyLCAlMHwlMCwgJTJ9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWlz aGZ0IikKKyAgICAoc2V0X2F0dHIgInByZWZpeF9kYXRhMTYiICIxIikKKysgICAoc2V0IChhdHRy ICJsZW5ndGhfaW1tZWRpYXRlIikKKysgICAgIChpZl90aGVuX2Vsc2UgKG1hdGNoX29wZXJhbmQg MiAiY29uc3RfaW50X29wZXJhbmQiICIiKQorKyAgICAgICAoY29uc3Rfc3RyaW5nICIxIikKKysg ICAgICAgKGNvbnN0X3N0cmluZyAiMCIpKSkKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkK KyAKKyAoZGVmaW5lX2luc24gIiphdnhfbHNocjxtb2RlPjMiCitAQCAtNTUxNiw2ICs1NjAyLDEw IEBAIChkZWZpbmVfaW5zbiAiKmF2eF9sc2hyPG1vZGU+MyIKKyAgICJ2cHNybDxzc2V2ZWNzaXpl Plx0eyUyLCAlMSwgJTB8JTAsICUxLCAlMn0iCisgICBbKHNldF9hdHRyICJ0eXBlIiAic3NlaXNo ZnQiKQorICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKKysgICAoc2V0IChhdHRyICJsZW5n dGhfaW1tZWRpYXRlIikKKysgICAgIChpZl90aGVuX2Vsc2UgKG1hdGNoX29wZXJhbmQgMiAiY29u c3RfaW50X29wZXJhbmQiICIiKQorKyAgICAgICAoY29uc3Rfc3RyaW5nICIxIikKKysgICAgICAg KGNvbnN0X3N0cmluZyAiMCIpKSkKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKKyAKKyAo ZGVmaW5lX2luc24gImxzaHI8bW9kZT4zIgorQEAgLTU1MjcsNiArNTYxNywxMCBAQCAoZGVmaW5l X2luc24gImxzaHI8bW9kZT4zIgorICAgInBzcmw8c3NldmVjc2l6ZT5cdHslMiwgJTB8JTAsICUy fSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vpc2hmdCIpCisgICAgKHNldF9hdHRyICJwcmVm aXhfZGF0YTE2IiAiMSIpCisrICAgKHNldCAoYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIpCisrICAg ICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5kIDIgImNvbnN0X2ludF9vcGVyYW5kIiAiIikK KysgICAgICAgKGNvbnN0X3N0cmluZyAiMSIpCisrICAgICAgIChjb25zdF9zdHJpbmcgIjAiKSkp CisgICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCisgCisgKGRlZmluZV9pbnNuICIqYXZ4X2Fz aGw8bW9kZT4zIgorQEAgLTU1MzgsNiArNTYzMiwxMCBAQCAoZGVmaW5lX2luc24gIiphdnhfYXNo bDxtb2RlPjMiCisgICAidnBzbGw8c3NldmVjc2l6ZT5cdHslMiwgJTEsICUwfCUwLCAlMSwgJTJ9 IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWlzaGZ0IikKKyAgICAoc2V0X2F0dHIgInByZWZp eCIgInZleCIpCisrICAgKHNldCAoYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIpCisrICAgICAoaWZf dGhlbl9lbHNlIChtYXRjaF9vcGVyYW5kIDIgImNvbnN0X2ludF9vcGVyYW5kIiAiIikKKysgICAg ICAgKGNvbnN0X3N0cmluZyAiMSIpCisrICAgICAgIChjb25zdF9zdHJpbmcgIjAiKSkpCisgICAg KHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCisgCisgKGRlZmluZV9pbnNuICJhc2hsPG1vZGU+MyIK K0BAIC01NTQ5LDYgKzU2NDcsMTAgQEAgKGRlZmluZV9pbnNuICJhc2hsPG1vZGU+MyIKKyAgICJw c2xsPHNzZXZlY3NpemU+XHR7JTIsICUwfCUwLCAlMn0iCisgICBbKHNldF9hdHRyICJ0eXBlIiAi c3NlaXNoZnQiKQorICAgIChzZXRfYXR0ciAicHJlZml4X2RhdGExNiIgIjEiKQorKyAgIChzZXQg KGF0dHIgImxlbmd0aF9pbW1lZGlhdGUiKQorKyAgICAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfb3Bl cmFuZCAyICJjb25zdF9pbnRfb3BlcmFuZCIgIiIpCisrICAgICAgIChjb25zdF9zdHJpbmcgIjEi KQorKyAgICAgICAoY29uc3Rfc3RyaW5nICIwIikpKQorICAgIChzZXRfYXR0ciAibW9kZSIgIlRJ IildKQorIAorIChkZWZpbmVfZXhwYW5kICJ2ZWNfc2hsXzxtb2RlPiIKK0BAIC01NTc5LDYgKzU2 ODEsMTIgQEAgKGRlZmluZV9pbnNuICIqYXZ4Xzxjb2RlPjxtb2RlPjMiCisgICAiVEFSR0VUX0FW WCAmJiBpeDg2X2JpbmFyeV9vcGVyYXRvcl9vayAoPENPREU+LCA8TU9ERT5tb2RlLCBvcGVyYW5k cykiCisgICAidnA8bWF4bWluaXByZWZpeD48c3NldmVjc2l6ZT5cdHslMiwgJTEsICUwfCUwLCAl MSwgJTJ9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWlhZGQiKQorKyAgIChzZXQgKGF0dHIg InByZWZpeF9leHRyYSIpCisrICAgICAoaWZfdGhlbl9lbHNlCisrICAgICAgIChuZSAoc3ltYm9s X3JlZiAiPE1PREU+bW9kZSAhPSAoKDxDT0RFPiA9PSBTTUFYIHx8IDxDT0RFPiA9PSBTTUlOKSA/ IFY4SEltb2RlIDogVjE2UUltb2RlKSIpCisrCSAgIChjb25zdF9pbnQgMCkpCisrICAgICAgIChj b25zdF9zdHJpbmcgIjEiKQorKyAgICAgICAoY29uc3Rfc3RyaW5nICIwIikpKQorICAgIChzZXRf YXR0ciAicHJlZml4IiAidmV4IikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKKyAKK0BA IC01NzgzLDYgKzU4OTEsMTAgQEAgKGRlZmluZV9pbnNuICIqYXZ4X2VxPG1vZGU+MyIKKyAgICJU QVJHRVRfQVZYICYmIGl4ODZfYmluYXJ5X29wZXJhdG9yX29rIChFUSwgPE1PREU+bW9kZSwgb3Bl cmFuZHMpIgorICAgInZwY21wZXE8c3NldmVjc2l6ZT5cdHslMiwgJTEsICUwfCUwLCAlMSwgJTJ9 IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWNtcCIpCisrICAgKHNldCAoYXR0ciAicHJlZml4 X2V4dHJhIikKKysgICAgIChpZl90aGVuX2Vsc2UgKG1hdGNoX29wZXJhbmQ6VjJESSAwICIiICIi KQorKyAgICAgICAoY29uc3Rfc3RyaW5nICIxIikKKysgICAgICAgKGNvbnN0X3N0cmluZyAiKiIp KSkKKyAgICAoc2V0X2F0dHIgInByZWZpeCIgInZleCIpCisgICAgKHNldF9hdHRyICJtb2RlIiAi VEkiKV0pCisgCitAQCAtNTgyNSw2ICs1OTM3LDEwIEBAIChkZWZpbmVfaW5zbiAiKmF2eF9ndDxt b2RlPjMiCisgICAiVEFSR0VUX0FWWCIKKyAgICJ2cGNtcGd0PHNzZXZlY3NpemU+XHR7JTIsICUx LCAlMHwlMCwgJTEsICUyfSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2VjbXAiKQorKyAgIChz ZXQgKGF0dHIgInByZWZpeF9leHRyYSIpCisrICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVy YW5kOlYyREkgMCAiIiAiIikKKysgICAgICAgKGNvbnN0X3N0cmluZyAiMSIpCisrICAgICAgIChj b25zdF9zdHJpbmcgIioiKSkpCisgICAgKHNldF9hdHRyICJwcmVmaXgiICJ2ZXgiKQorICAgIChz ZXRfYXR0ciAibW9kZSIgIlRJIildKQorIAorQEAgLTU4NDcsNiArNTk2Myw3IEBAIChkZWZpbmVf aW5zbiAic3NlNF8yX2d0djJkaTMiCisgICAiVEFSR0VUX1NTRTRfMiIKKyAgICJwY21wZ3RxXHR7 JTIsICUwfCUwLCAlMn0iCisgICBbKHNldF9hdHRyICJ0eXBlIiAic3NlY21wIikKKysgICAoc2V0 X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQor IAorIChkZWZpbmVfZXhwYW5kICJ2Y29uZDxtb2RlPiIKK0BAIC02NjA1LDYgKzY3MjIsMTEgQEAg KGRlZmluZV9pbnNuICIqYXZ4X3BpbnNyPGF2eG1vZGVzdWZmaXhzPgorICAgcmV0dXJuICJ2cGlu c3I8YXZ4bW9kZXN1ZmZpeHM+XHR7JTMsICVrMiwgJTEsICUwfCUwLCAlMSwgJWsyLCAlM30iOwor IH0KKyAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vsb2ciKQorKyAgIChzZXQgKGF0dHIgInByZWZp eF9leHRyYSIpCisrICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5kOlY4SEkgMCAicmVn aXN0ZXJfb3BlcmFuZCIgIiIpCisrICAgICAgIChjb25zdF9zdHJpbmcgIjAiKQorKyAgICAgICAo Y29uc3Rfc3RyaW5nICIxIikpKQorKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEi KQorICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJU SSIpXSkKKyAKK0BAIC02NjIyLDYgKzY3NDQsNyBAQCAoZGVmaW5lX2luc24gIipzc2U0XzFfcGlu c3JiIgorIH0KKyAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vsb2ciKQorICAgIChzZXRfYXR0ciAi cHJlZml4X2V4dHJhIiAiMSIpCisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIp CisgICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCisgCisgKGRlZmluZV9pbnNuICIqc3NlMl9w aW5zcnciCitAQCAtNjYzOCw2ICs2NzYxLDcgQEAgKGRlZmluZV9pbnNuICIqc3NlMl9waW5zcnci CisgfQorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZyIpCisgICAgKHNldF9hdHRyICJwcmVm aXhfZGF0YTE2IiAiMSIpCisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisg ICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCisgCisgOzsgSXQgbXVzdCBjb21lIGJlZm9yZSBz c2UyX2xvYWRsZCBzaW5jZSBpdCBpcyBwcmVmZXJyZWQuCitAQCAtNjY1NSw2ICs2Nzc5LDcgQEAg KGRlZmluZV9pbnNuICIqc3NlNF8xX3BpbnNyZCIKKyB9CisgICBbKHNldF9hdHRyICJ0eXBlIiAi c3NlbG9nIikKKyAgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQorKyAgIChzZXRfYXR0 ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQor IAorIChkZWZpbmVfaW5zbiAiKmF2eF9waW5zcnEiCitAQCAtNjY3MCw2ICs2Nzk1LDggQEAgKGRl ZmluZV9pbnNuICIqYXZ4X3BpbnNycSIKKyAgIHJldHVybiAidnBpbnNycVx0eyUzLCAlMiwgJTEs ICUwfCUwLCAlMSwgJTIsICUzfSI7CisgfQorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZyIp CisrICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKKysgICAoc2V0X2F0dHIgImxlbmd0 aF9pbW1lZGlhdGUiICIxIikKKyAgICAoc2V0X2F0dHIgInByZWZpeCIgInZleCIpCisgICAgKHNl dF9hdHRyICJtb2RlIiAiVEkiKV0pCisgCitAQCAtNjY4Niw3ICs2ODEzLDkgQEAgKGRlZmluZV9p bnNuICIqc3NlNF8xX3BpbnNycSIKKyAgIHJldHVybiAicGluc3JxXHR7JTMsICUyLCAlMHwlMCwg JTIsICUzfSI7CisgfQorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZyIpCisrICAgKHNldF9h dHRyICJwcmVmaXhfcmV4IiAiMSIpCisgICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikK KysgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKKyAgICAoc2V0X2F0dHIgIm1v ZGUiICJUSSIpXSkKKyAKKyAoZGVmaW5lX2luc24gIipzc2U0XzFfcGV4dHJiIgorQEAgLTY2OTks NiArNjgyOCw3IEBAIChkZWZpbmVfaW5zbiAiKnNzZTRfMV9wZXh0cmIiCisgICAiJXZwZXh0cmJc dHslMiwgJTEsICUwfCUwLCAlMSwgJTJ9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZyIp CisgICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKKysgICAoc2V0X2F0dHIgImxlbmd0 aF9pbW1lZGlhdGUiICIxIikKKyAgICAoc2V0X2F0dHIgInByZWZpeCIgIm1heWJlX3ZleCIpCisg ICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCisgCitAQCAtNjcxMSw2ICs2ODQxLDcgQEAgKGRl ZmluZV9pbnNuICIqc3NlNF8xX3BleHRyYl9tZW1vcnkiCisgICAiJXZwZXh0cmJcdHslMiwgJTEs ICUwfCUwLCAlMSwgJTJ9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZyIpCisgICAgKHNl dF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKKysgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlh dGUiICIxIikKKyAgICAoc2V0X2F0dHIgInByZWZpeCIgIm1heWJlX3ZleCIpCisgICAgKHNldF9h dHRyICJtb2RlIiAiVEkiKV0pCisgCitAQCAtNjcyNCw2ICs2ODU1LDcgQEAgKGRlZmluZV9pbnNu ICIqc3NlMl9wZXh0cnciCisgICAiJXZwZXh0cndcdHslMiwgJTEsICUwfCUwLCAlMSwgJTJ9Igor ICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZyIpCisgICAgKHNldF9hdHRyICJwcmVmaXhfZGF0 YTE2IiAiMSIpCisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisgICAgKHNl dF9hdHRyICJwcmVmaXgiICJtYXliZV92ZXgiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIild KQorIAorQEAgLTY3MzYsNiArNjg2OCw3IEBAIChkZWZpbmVfaW5zbiAiKnNzZTRfMV9wZXh0cndf bWVtb3J5IgorICAgIiV2cGV4dHJ3XHR7JTIsICUxLCAlMHwlMCwgJTEsICUyfSIKKyAgIFsoc2V0 X2F0dHIgInR5cGUiICJzc2Vsb2ciKQorICAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIp CisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisgICAgKHNldF9hdHRyICJw cmVmaXgiICJtYXliZV92ZXgiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQorIAorQEAg LTY3NDgsNiArNjg4MSw3IEBAIChkZWZpbmVfaW5zbiAiKnNzZTRfMV9wZXh0cmQiCisgICAiJXZw ZXh0cmRcdHslMiwgJTEsICUwfCUwLCAlMSwgJTJ9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNz ZWxvZyIpCisgICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKKysgICAoc2V0X2F0dHIg Imxlbmd0aF9pbW1lZGlhdGUiICIxIikKKyAgICAoc2V0X2F0dHIgInByZWZpeCIgIm1heWJlX3Zl eCIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCisgCitAQCAtNjc2MCw3ICs2ODk0LDkg QEAgKGRlZmluZV9pbnNuICIqc3NlNF8xX3BleHRycSIKKyAgICJUQVJHRVRfU1NFNF8xICYmIFRB UkdFVF82NEJJVCIKKyAgICIldnBleHRycVx0eyUyLCAlMSwgJTB8JTAsICUxLCAlMn0iCisgICBb KHNldF9hdHRyICJ0eXBlIiAic3NlbG9nIikKKysgICAoc2V0X2F0dHIgInByZWZpeF9yZXgiICIx IikKKyAgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQorKyAgIChzZXRfYXR0ciAibGVu Z3RoX2ltbWVkaWF0ZSIgIjEiKQorICAgIChzZXRfYXR0ciAicHJlZml4IiAibWF5YmVfdmV4IikK KyAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKKyAKK0BAIC02ODAwLDcgKzY5MzYsOCBAQCAo ZGVmaW5lX2luc24gInNzZTJfcHNodWZkXzEiCisgfQorICAgWyhzZXRfYXR0ciAidHlwZSIgInNz ZWxvZzEiKQorICAgIChzZXRfYXR0ciAicHJlZml4X2RhdGExNiIgIjEiKQorLSAgIChzZXRfYXR0 ciAicHJlZml4IiAidmV4IikKKysgICAoc2V0X2F0dHIgInByZWZpeCIgIm1heWJlX3ZleCIpCisr ICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisgICAgKHNldF9hdHRyICJtb2Rl IiAiVEkiKV0pCisgCisgKGRlZmluZV9leHBhbmQgInNzZTJfcHNodWZsdyIKK0BAIC02ODQyLDgg KzY5NzksMTAgQEAgKGRlZmluZV9pbnNuICJzc2UyX3BzaHVmbHdfMSIKKyAgIHJldHVybiAiJXZw c2h1Zmx3XHR7JTIsICUxLCAlMHwlMCwgJTEsICUyfSI7CisgfQorICAgWyhzZXRfYXR0ciAidHlw ZSIgInNzZWxvZyIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMCIpCisgICAgKHNl dF9hdHRyICJwcmVmaXhfcmVwIiAiMSIpCisgICAgKHNldF9hdHRyICJwcmVmaXgiICJtYXliZV92 ZXgiKQorKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQorICAgIChzZXRfYXR0 ciAibW9kZSIgIlRJIildKQorIAorIChkZWZpbmVfZXhwYW5kICJzc2UyX3BzaHVmaHciCitAQCAt Njg4Niw3ICs3MDI1LDkgQEAgKGRlZmluZV9pbnNuICJzc2UyX3BzaHVmaHdfMSIKKyB9CisgICBb KHNldF9hdHRyICJ0eXBlIiAic3NlbG9nIikKKyAgICAoc2V0X2F0dHIgInByZWZpeF9yZXAiICIx IikKKysgICAoc2V0X2F0dHIgInByZWZpeF9kYXRhMTYiICIwIikKKyAgICAoc2V0X2F0dHIgInBy ZWZpeCIgIm1heWJlX3ZleCIpCisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIp CisgICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCisgCisgKGRlZmluZV9leHBhbmQgInNzZTJf bG9hZGQiCitAQCAtNzAyMiw2ICs3MTYzLDcgQEAgKGRlZmluZV9pbnNuICIqdmVjX2V4dHJhY3R2 MmRpXzFfcmV4NjRfYQorICAgIHZtb3ZxXHR7JUgxLCAlMHwlMCwgJUgxfQorICAgIHZtb3Z7cX1c dHslSDEsICUwfCUwLCAlSDF9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZW1vdixzc2Vpc2hm dCxzc2Vtb3YsaW1vdiIpCisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiKiwxLCos KiIpCisgICAgKHNldF9hdHRyICJtZW1vcnkiICIqLG5vbmUsKiwqIikKKyAgICAoc2V0X2F0dHIg InByZWZpeCIgInZleCIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiVjJTRixUSSxUSSxESSIpXSkK K0BAIC03MDM4LDYgKzcxODAsNyBAQCAoZGVmaW5lX2luc24gIip2ZWNfZXh0cmFjdHYyZGlfMV9y ZXg2NCIKKyAgICBtb3ZxXHR7JUgxLCAlMHwlMCwgJUgxfQorICAgIG1vdntxfVx0eyVIMSwgJTB8 JTAsICVIMX0iCisgICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbW92LHNzZWlzaGZ0LHNzZW1vdixp bW92IikKKysgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIqLDEsKiwqIikKKyAgICAo c2V0X2F0dHIgImF0b21fdW5pdCIgIiosc2lzaHVmLCosKiIpCisgICAgKHNldF9hdHRyICJtZW1v cnkiICIqLG5vbmUsKiwqIikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJWMlNGLFRJLFRJLERJIild KQorQEAgLTcwNTUsNiArNzE5OCw3IEBAIChkZWZpbmVfaW5zbiAiKnZlY19leHRyYWN0djJkaV8x X2F2eCIKKyAgICB2cHNybGRxXHR7JDgsICUxLCAlMHwlMCwgJTEsIDh9CisgICAgdm1vdnFcdHsl SDEsICUwfCUwLCAlSDF9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZW1vdixzc2Vpc2hmdCxz c2Vtb3YiKQorKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIiosMSwqIikKKyAgICAo c2V0X2F0dHIgIm1lbW9yeSIgIiosbm9uZSwqIikKKyAgICAoc2V0X2F0dHIgInByZWZpeCIgInZl eCIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiVjJTRixUSSxUSSIpXSkKK0BAIC03MDcxLDYgKzcy MTUsNyBAQCAoZGVmaW5lX2luc24gIip2ZWNfZXh0cmFjdHYyZGlfMV9zc2UyIgorICAgIHBzcmxk cVx0eyQ4LCAlMHwlMCwgOH0KKyAgICBtb3ZxXHR7JUgxLCAlMHwlMCwgJUgxfSIKKyAgIFsoc2V0 X2F0dHIgInR5cGUiICJzc2Vtb3Ysc3NlaXNoZnQsc3NlbW92IikKKysgICAoc2V0X2F0dHIgImxl bmd0aF9pbW1lZGlhdGUiICIqLDEsKiIpCisgICAgKHNldF9hdHRyICJhdG9tX3VuaXQiICIqLHNp c2h1ZiwqIikKKyAgICAoc2V0X2F0dHIgIm1lbW9yeSIgIiosbm9uZSwqIikKKyAgICAoc2V0X2F0 dHIgIm1vZGUiICJWMlNGLFRJLFRJIildKQorQEAgLTcxMDAsNiArNzI0NSw3IEBAIChkZWZpbmVf aW5zbiAiKnZlY19kdXB2NHNpIgorICAgIHNodWZwc1x0eyQwLCAlMCwgJTB8JTAsICUwLCAwfSIK KyAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vsb2cxIikKKyAgICAoc2V0X2F0dHIgInByZWZpeCIg Im1heWJlX3ZleCxvcmlnIikKKysgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikK KyAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSxWNFNGIildKQorIAorIChkZWZpbmVfaW5zbiAiKnZl Y19kdXB2MmRpX2F2eCIKK0BAIC03MTM2LDYgKzcyODIsOCBAQCAoZGVmaW5lX2luc24gIip2ZWNf Y29uY2F0djJzaV9hdngiCisgICAgcHVucGNrbGRxXHR7JTIsICUwfCUwLCAlMn0KKyAgICBtb3Zk XHR7JTEsICUwfCUwLCAlMX0iCisgICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nLHNzZWxvZyxz c2Vtb3YsbW14Y3Z0LG1teG1vdiIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxLCos KiwqLCoiKQorKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEsKiwqLCosKiIpCisg ICAgKHNldCAoYXR0ciAicHJlZml4IikKKyAgICAgIChpZl90aGVuX2Vsc2UgKGVxX2F0dHIgImFs dGVybmF0aXZlIiAiMyw0IikKKyAgICAgICAgKGNvbnN0X3N0cmluZyAib3JpZyIpCitAQCAtNzE1 Niw2ICs3MzA0LDcgQEAgKGRlZmluZV9pbnNuICIqdmVjX2NvbmNhdHYyc2lfc3NlNF8xIgorICAg IG1vdmRcdHslMSwgJTB8JTAsICUxfSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vsb2csc3Nl bG9nLHNzZW1vdixtbXhjdnQsbW14bW92IikKKyAgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIg IjEsKiwqLCosKiIpCisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSwqLCosKiwq IikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSxUSSxUSSxESSxESSIpXSkKKyAKKyA7OyA/Pz8g SW4gdGhlb3J5IHdlIGNhbiBtYXRjaCBtZW1vcnkgZm9yIHRoZSBNTVggYWx0ZXJuYXRpdmUsIGJ1 dCBhbGxvd2luZworQEAgLTcyNjIsNiArNzQxMSw4IEBAIChkZWZpbmVfaW5zbiAiKnZlY19jb25j YXR2MmRpX3JleDY0X2F2eCIKKyAgICB2cHVucGNrbHFkcVx0eyUyLCAlMSwgJTB8JTAsICUxLCAl Mn0KKyAgICB2bW92aHBzXHR7JTIsICUxLCAlMHwlMCwgJTEsICUyfSIKKyAgIFsoc2V0X2F0dHIg InR5cGUiICJzc2Vsb2csc3NlbW92LHNzZW1vdixzc2Vtb3Ysc3NlbG9nLHNzZW1vdiIpCisrICAg KHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxLCosKiwqLCosKiIpCisrICAgKHNldF9hdHRyICJs ZW5ndGhfaW1tZWRpYXRlIiAiMSwqLCosKiwqLCoiKQorICAgIChzZXQgKGF0dHIgInByZWZpeCIp CisgICAgICAoaWZfdGhlbl9lbHNlIChlcV9hdHRyICJhbHRlcm5hdGl2ZSIgIjMiKQorICAgICAg ICAoY29uc3Rfc3RyaW5nICJvcmlnIikKK0BAIC03MjgzLDcgKzc0MzQsOSBAQCAoZGVmaW5lX2lu c24gIip2ZWNfY29uY2F0djJkaV9yZXg2NF9zc2U0CisgICAgbW92bGhwc1x0eyUyLCAlMHwlMCwg JTJ9CisgICAgbW92aHBzXHR7JTIsICUwfCUwLCAlMn0iCisgICBbKHNldF9hdHRyICJ0eXBlIiAi c3NlbG9nLHNzZW1vdixzc2Vtb3Ysc3NlbW92LHNzZWxvZyxzc2Vtb3Ysc3NlbW92IikKKysgICAo c2V0X2F0dHIgInByZWZpeF9yZXgiICIxLCosMSwqLCosKiwqIikKKyAgICAoc2V0X2F0dHIgInBy ZWZpeF9leHRyYSIgIjEsKiwqLCosKiwqLCoiKQorKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVk aWF0ZSIgIjEsKiwqLCosKiwqLCoiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIlRJLFRJLFRJLFRJ LFRJLFY0U0YsVjJTRiIpXSkKKyAKKyAoZGVmaW5lX2luc24gIip2ZWNfY29uY2F0djJkaV9yZXg2 NF9zc2UiCitAQCAtNzMwMCw2ICs3NDUzLDcgQEAgKGRlZmluZV9pbnNuICIqdmVjX2NvbmNhdHYy ZGlfcmV4NjRfc3NlIgorICAgIG1vdmxocHNcdHslMiwgJTB8JTAsICUyfQorICAgIG1vdmhwc1x0 eyUyLCAlMHwlMCwgJTJ9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZW1vdixzc2Vtb3Ysc3Nl bW92LHNzZWxvZyxzc2Vtb3Ysc3NlbW92IikKKysgICAoc2V0X2F0dHIgInByZWZpeF9yZXgiICIq LDEsKiwqLCosKiIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiVEksVEksVEksVEksVjRTRixWMlNG IildKQorIAorIChkZWZpbmVfZXhwYW5kICJ2ZWNfdW5wYWNrdV9oaV92MTZxaSIKK0BAIC03Njg2 LDYgKzc4NDAsOCBAQCAoZGVmaW5lX2luc24gIipzc2UyX21hc2ttb3ZkcXUiCisgICAiJXZtYXNr bW92ZHF1XHR7JTIsICUxfCUxLCAlMn0iCisgICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbW92IikK KyAgICAoc2V0X2F0dHIgInByZWZpeF9kYXRhMTYiICIxIikKKysgICA7OyBUaGUgaW1wbGljaXQg JXJkaSBvcGVyYW5kIGNvbmZ1c2VzIGRlZmF1bHQgbGVuZ3RoX3ZleCBjb21wdXRhdGlvbi4KKysg ICAoc2V0X2F0dHIgImxlbmd0aF92ZXgiICIzIikKKyAgICAoc2V0X2F0dHIgInByZWZpeCIgIm1h eWJlX3ZleCIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCisgCitAQCAtNzcwMCw2ICs3 ODU2LDkgQEAgKGRlZmluZV9pbnNuICIqc3NlMl9tYXNrbW92ZHF1X3JleDY0IgorICAgIiV2bWFz a21vdmRxdVx0eyUyLCAlMXwlMSwgJTJ9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZW1vdiIp CisgICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMSIpCisrICAgOzsgVGhlIGltcGxpY2l0 ICVyZGkgb3BlcmFuZCBjb25mdXNlcyBkZWZhdWx0IGxlbmd0aF92ZXggY29tcHV0YXRpb24uCisr ICAgKHNldCAoYXR0ciAibGVuZ3RoX3ZleCIpCisrICAgICAoc3ltYm9sX3JlZiAoIlJFR05PIChv cGVyYW5kc1syXSkgPj0gRklSU1RfUkVYX1NTRV9SRUcgPyAzICsgMSA6IDIgKyAxIikpKQorICAg IChzZXRfYXR0ciAicHJlZml4IiAibWF5YmVfdmV4IikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJU SSIpXSkKKyAKK0BAIC03NzM4LDYgKzc4OTcsNyBAQCAoZGVmaW5lX2luc24gIipzc2Vfc2ZlbmNl IgorICAgIlRBUkdFVF9TU0UgfHwgVEFSR0VUXzNETk9XX0EiCisgICAic2ZlbmNlIgorICAgWyhz ZXRfYXR0ciAidHlwZSIgInNzZSIpCisrICAgKHNldF9hdHRyICJsZW5ndGhfYWRkcmVzcyIgIjAi KQorICAgIChzZXRfYXR0ciAiYXRvbV9zc2VfYXR0ciIgImZlbmNlIikKKyAgICAoc2V0X2F0dHIg Im1lbW9yeSIgInVua25vd24iKV0pCisgCitAQCAtNzc2NSw2ICs3OTI1LDcgQEAgKGRlZmluZV9p bnNuICIqc3NlMl9tZmVuY2UiCisgICAiVEFSR0VUXzY0QklUIHx8IFRBUkdFVF9TU0UyIgorICAg Im1mZW5jZSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2UiKQorKyAgIChzZXRfYXR0ciAibGVu Z3RoX2FkZHJlc3MiICIwIikKKyAgICAoc2V0X2F0dHIgImF0b21fc3NlX2F0dHIiICJmZW5jZSIp CisgICAgKHNldF9hdHRyICJtZW1vcnkiICJ1bmtub3duIildKQorIAorQEAgLTc3ODMsNiArNzk0 NCw3IEBAIChkZWZpbmVfaW5zbiAiKnNzZTJfbGZlbmNlIgorICAgIlRBUkdFVF9TU0UyIgorICAg ImxmZW5jZSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2UiKQorKyAgIChzZXRfYXR0ciAibGVu Z3RoX2FkZHJlc3MiICIwIikKKyAgICAoc2V0X2F0dHIgImF0b21fc3NlX2F0dHIiICJsZmVuY2Ui KQorICAgIChzZXRfYXR0ciAibWVtb3J5IiAidW5rbm93biIpXSkKKyAKK0BAIC03ODY0LDYgKzgw MjYsNyBAQCAoZGVmaW5lX2luc24gIiphdnhfcGhhZGR3djhoaTMiCisgICAiVEFSR0VUX0FWWCIK KyAgICJ2cGhhZGR3XHR7JTIsICUxLCAlMHwlMCwgJTEsICUyfSIKKyAgIFsoc2V0X2F0dHIgInR5 cGUiICJzc2VpYWRkIikKKysgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQorICAgIChz ZXRfYXR0ciAicHJlZml4IiAidmV4IikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKKyAK K0BAIC03OTM4LDYgKzgxMDEsNyBAQCAoZGVmaW5lX2luc24gInNzc2UzX3BoYWRkd3Y0aGkzIgor ICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWlhZGQiKQorICAgIChzZXRfYXR0ciAiYXRvbV91bml0 IiAiY29tcGxleCIpCisgICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKKysgICAoc2V0 IChhdHRyICJwcmVmaXhfcmV4IikgKHN5bWJvbF9yZWYgIng4Nl9leHRlbmRlZF9yZWdfbWVudGlv bmVkX3AgKGluc24pIikpCisgICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0pCisgCisgKGRlZmlu ZV9pbnNuICIqYXZ4X3BoYWRkZHY0c2kzIgorQEAgLTc5NjQsNiArODEyOCw3IEBAIChkZWZpbmVf aW5zbiAiKmF2eF9waGFkZGR2NHNpMyIKKyAgICJUQVJHRVRfQVZYIgorICAgInZwaGFkZGRcdHsl MiwgJTEsICUwfCUwLCAlMSwgJTJ9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWlhZGQiKQor KyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCisgICAgKHNldF9hdHRyICJwcmVmaXgi ICJ2ZXgiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQorIAorQEAgLTgwMTQsNiArODE3 OSw3IEBAIChkZWZpbmVfaW5zbiAic3NzZTNfcGhhZGRkdjJzaTMiCisgICBbKHNldF9hdHRyICJ0 eXBlIiAic3NlaWFkZCIpCisgICAgKHNldF9hdHRyICJhdG9tX3VuaXQiICJjb21wbGV4IikKKyAg ICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQorKyAgIChzZXQgKGF0dHIgInByZWZpeF9y ZXgiKSAoc3ltYm9sX3JlZiAieDg2X2V4dGVuZGVkX3JlZ19tZW50aW9uZWRfcCAoaW5zbikiKSkK KyAgICAoc2V0X2F0dHIgIm1vZGUiICJESSIpXSkKKyAKKyAoZGVmaW5lX2luc24gIiphdnhfcGhh ZGRzd3Y4aGkzIgorQEAgLTgwNTYsNiArODIyMiw3IEBAIChkZWZpbmVfaW5zbiAiKmF2eF9waGFk ZHN3djhoaTMiCisgICAiVEFSR0VUX0FWWCIKKyAgICJ2cGhhZGRzd1x0eyUyLCAlMSwgJTB8JTAs ICUxLCAlMn0iCisgICBbKHNldF9hdHRyICJ0eXBlIiAic3NlaWFkZCIpCisrICAgKHNldF9hdHRy ICJwcmVmaXhfZXh0cmEiICIxIikKKyAgICAoc2V0X2F0dHIgInByZWZpeCIgInZleCIpCisgICAg KHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCisgCitAQCAtODEzMCw2ICs4Mjk3LDcgQEAgKGRlZmlu ZV9pbnNuICJzc3NlM19waGFkZHN3djRoaTMiCisgICBbKHNldF9hdHRyICJ0eXBlIiAic3NlaWFk ZCIpCisgICAgKHNldF9hdHRyICJhdG9tX3VuaXQiICJjb21wbGV4IikKKyAgICAoc2V0X2F0dHIg InByZWZpeF9leHRyYSIgIjEiKQorKyAgIChzZXQgKGF0dHIgInByZWZpeF9yZXgiKSAoc3ltYm9s X3JlZiAieDg2X2V4dGVuZGVkX3JlZ19tZW50aW9uZWRfcCAoaW5zbikiKSkKKyAgICAoc2V0X2F0 dHIgIm1vZGUiICJESSIpXSkKKyAKKyAoZGVmaW5lX2luc24gIiphdnhfcGhzdWJ3djhoaTMiCitA QCAtODE3Miw2ICs4MzQwLDcgQEAgKGRlZmluZV9pbnNuICIqYXZ4X3Boc3Vid3Y4aGkzIgorICAg IlRBUkdFVF9BVlgiCisgICAidnBoc3Vid1x0eyUyLCAlMSwgJTB8JTAsICUxLCAlMn0iCisgICBb KHNldF9hdHRyICJ0eXBlIiAic3NlaWFkZCIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEi ICIxIikKKyAgICAoc2V0X2F0dHIgInByZWZpeCIgInZleCIpCisgICAgKHNldF9hdHRyICJtb2Rl IiAiVEkiKV0pCisgCitAQCAtODI0Niw2ICs4NDE1LDcgQEAgKGRlZmluZV9pbnNuICJzc3NlM19w aHN1Ynd2NGhpMyIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2VpYWRkIikKKyAgICAoc2V0X2F0 dHIgImF0b21fdW5pdCIgImNvbXBsZXgiKQorICAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAi MSIpCisrICAgKHNldCAoYXR0ciAicHJlZml4X3JleCIpIChzeW1ib2xfcmVmICJ4ODZfZXh0ZW5k ZWRfcmVnX21lbnRpb25lZF9wIChpbnNuKSIpKQorICAgIChzZXRfYXR0ciAibW9kZSIgIkRJIild KQorIAorIChkZWZpbmVfaW5zbiAiKmF2eF9waHN1YmR2NHNpMyIKK0BAIC04MjcyLDYgKzg0NDIs NyBAQCAoZGVmaW5lX2luc24gIiphdnhfcGhzdWJkdjRzaTMiCisgICAiVEFSR0VUX0FWWCIKKyAg ICJ2cGhzdWJkXHR7JTIsICUxLCAlMHwlMCwgJTEsICUyfSIKKyAgIFsoc2V0X2F0dHIgInR5cGUi ICJzc2VpYWRkIikKKysgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQorICAgIChzZXRf YXR0ciAicHJlZml4IiAidmV4IikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKKyAKK0BA IC04MzIyLDYgKzg0OTMsNyBAQCAoZGVmaW5lX2luc24gInNzc2UzX3Boc3ViZHYyc2kzIgorICAg WyhzZXRfYXR0ciAidHlwZSIgInNzZWlhZGQiKQorICAgIChzZXRfYXR0ciAiYXRvbV91bml0IiAi Y29tcGxleCIpCisgICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKKysgICAoc2V0IChh dHRyICJwcmVmaXhfcmV4IikgKHN5bWJvbF9yZWYgIng4Nl9leHRlbmRlZF9yZWdfbWVudGlvbmVk X3AgKGluc24pIikpCisgICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0pCisgCisgKGRlZmluZV9p bnNuICIqYXZ4X3Boc3Vic3d2OGhpMyIKK0BAIC04MzY0LDYgKzg1MzYsNyBAQCAoZGVmaW5lX2lu c24gIiphdnhfcGhzdWJzd3Y4aGkzIgorICAgIlRBUkdFVF9BVlgiCisgICAidnBoc3Vic3dcdHsl MiwgJTEsICUwfCUwLCAlMSwgJTJ9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWlhZGQiKQor KyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCisgICAgKHNldF9hdHRyICJwcmVmaXgi ICJ2ZXgiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQorIAorQEAgLTg0MzgsNiArODYx MSw3IEBAIChkZWZpbmVfaW5zbiAic3NzZTNfcGhzdWJzd3Y0aGkzIgorICAgWyhzZXRfYXR0ciAi dHlwZSIgInNzZWlhZGQiKQorICAgIChzZXRfYXR0ciAiYXRvbV91bml0IiAiY29tcGxleCIpCisg ICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKKysgICAoc2V0IChhdHRyICJwcmVmaXhf cmV4IikgKHN5bWJvbF9yZWYgIng4Nl9leHRlbmRlZF9yZWdfbWVudGlvbmVkX3AgKGluc24pIikp CisgICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0pCisgCisgKGRlZmluZV9pbnNuICIqYXZ4X3Bt YWRkdWJzdzEyOCIKK0BAIC04NDkwLDYgKzg2NjQsNyBAQCAoZGVmaW5lX2luc24gIiphdnhfcG1h ZGR1YnN3MTI4IgorICAgIlRBUkdFVF9BVlgiCisgICAidnBtYWRkdWJzd1x0eyUyLCAlMSwgJTB8 JTAsICUxLCAlMn0iCisgICBbKHNldF9hdHRyICJ0eXBlIiAic3NlaWFkZCIpCisrICAgKHNldF9h dHRyICJwcmVmaXhfZXh0cmEiICIxIikKKyAgICAoc2V0X2F0dHIgInByZWZpeCIgInZleCIpCisg ICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCisgCitAQCAtODU4NCw2ICs4NzU5LDcgQEAgKGRl ZmluZV9pbnNuICJzc3NlM19wbWFkZHVic3ciCisgICBbKHNldF9hdHRyICJ0eXBlIiAic3NlaWFk ZCIpCisgICAgKHNldF9hdHRyICJhdG9tX3VuaXQiICJzaW11bCIpCisgICAgKHNldF9hdHRyICJw cmVmaXhfZXh0cmEiICIxIikKKysgICAoc2V0IChhdHRyICJwcmVmaXhfcmV4IikgKHN5bWJvbF9y ZWYgIng4Nl9leHRlbmRlZF9yZWdfbWVudGlvbmVkX3AgKGluc24pIikpCisgICAgKHNldF9hdHRy ICJtb2RlIiAiREkiKV0pCisgCisgKGRlZmluZV9leHBhbmQgInNzc2UzX3BtdWxocnN3djhoaTMi CitAQCAtODYyNiw2ICs4ODAyLDcgQEAgKGRlZmluZV9pbnNuICIqYXZ4X3BtdWxocnN3djhoaTMi CisgICAiVEFSR0VUX0FWWCAmJiBpeDg2X2JpbmFyeV9vcGVyYXRvcl9vayAoTVVMVCwgVjhISW1v ZGUsIG9wZXJhbmRzKSIKKyAgICJ2cG11bGhyc3dcdHslMiwgJTEsICUwfCUwLCAlMSwgJTJ9Igor ICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWltdWwiKQorKyAgIChzZXRfYXR0ciAicHJlZml4X2V4 dHJhIiAiMSIpCisgICAgKHNldF9hdHRyICJwcmVmaXgiICJ2ZXgiKQorICAgIChzZXRfYXR0ciAi bW9kZSIgIlRJIildKQorIAorQEAgLTg2OTAsNiArODg2Nyw3IEBAIChkZWZpbmVfaW5zbiAiKnNz c2UzX3BtdWxocnN3djRoaTMiCisgICAicG11bGhyc3dcdHslMiwgJTB8JTAsICUyfSIKKyAgIFso c2V0X2F0dHIgInR5cGUiICJzc2VpbXVsIikKKyAgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIg IjEiKQorKyAgIChzZXQgKGF0dHIgInByZWZpeF9yZXgiKSAoc3ltYm9sX3JlZiAieDg2X2V4dGVu ZGVkX3JlZ19tZW50aW9uZWRfcCAoaW5zbikiKSkKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJESSIp XSkKKyAKKyAoZGVmaW5lX2luc24gIiphdnhfcHNodWZidjE2cWkzIgorQEAgLTg3MDAsNiArODg3 OCw3IEBAIChkZWZpbmVfaW5zbiAiKmF2eF9wc2h1ZmJ2MTZxaTMiCisgICAiVEFSR0VUX0FWWCIK KyAgICJ2cHNodWZiXHR7JTIsICUxLCAlMHwlMCwgJTEsICUyfSI7CisgICBbKHNldF9hdHRyICJ0 eXBlIiAic3NlbG9nMSIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKKyAgICAo c2V0X2F0dHIgInByZWZpeCIgInZleCIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCisg CitAQCAtODcyNCw2ICs4OTAzLDcgQEAgKGRlZmluZV9pbnNuICJzc3NlM19wc2h1ZmJ2OHFpMyIK KyAgICJwc2h1ZmJcdHslMiwgJTB8JTAsICUyfSI7CisgICBbKHNldF9hdHRyICJ0eXBlIiAic3Nl bG9nMSIpCisgICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKKysgICAoc2V0IChhdHRy ICJwcmVmaXhfcmV4IikgKHN5bWJvbF9yZWYgIng4Nl9leHRlbmRlZF9yZWdfbWVudGlvbmVkX3Ag KGluc24pIikpCisgICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0pCisgCisgKGRlZmluZV9pbnNu ICIqYXZ4X3BzaWduPG1vZGU+MyIKK0BAIC04NzM1LDYgKzg5MTUsNyBAQCAoZGVmaW5lX2luc24g IiphdnhfcHNpZ248bW9kZT4zIgorICAgIlRBUkdFVF9BVlgiCisgICAidnBzaWduPHNzZXZlY3Np emU+XHR7JTIsICUxLCAlMHwlMCwgJTEsICUyfSI7CisgICBbKHNldF9hdHRyICJ0eXBlIiAic3Nl bG9nMSIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKKyAgICAoc2V0X2F0dHIg InByZWZpeCIgInZleCIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCisgCitAQCAtODc2 MSw2ICs4OTQyLDcgQEAgKGRlZmluZV9pbnNuICJzc3NlM19wc2lnbjxtb2RlPjMiCisgICAicHNp Z248bW14dmVjc2l6ZT5cdHslMiwgJTB8JTAsICUyfSI7CisgICBbKHNldF9hdHRyICJ0eXBlIiAi c3NlbG9nMSIpCisgICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKKysgICAoc2V0IChh dHRyICJwcmVmaXhfcmV4IikgKHN5bWJvbF9yZWYgIng4Nl9leHRlbmRlZF9yZWdfbWVudGlvbmVk X3AgKGluc24pIikpCisgICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0pCisgCisgKGRlZmluZV9p bnNuICIqYXZ4X3BhbGlnbnJ0aSIKK0BAIC04Nzc1LDYgKzg5NTcsOCBAQCAoZGVmaW5lX2luc24g IiphdnhfcGFsaWducnRpIgorICAgcmV0dXJuICJ2cGFsaWduclx0eyUzLCAlMiwgJTEsICUwfCUw LCAlMSwgJTIsICUzfSI7CisgfQorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWlzaGZ0IikKKysg ICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQorKyAgIChzZXRfYXR0ciAibGVuZ3RoX2lt bWVkaWF0ZSIgIjEiKQorICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKKyAgICAoc2V0X2F0 dHIgIm1vZGUiICJUSSIpXSkKKyAKK0BAIC04NzkzLDYgKzg5NzcsNyBAQCAoZGVmaW5lX2luc24g InNzc2UzX3BhbGlnbnJ0aSIKKyAgICAoc2V0X2F0dHIgImF0b21fdW5pdCIgInNpc2h1ZiIpCisg ICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMSIpCisgICAgKHNldF9hdHRyICJwcmVmaXhf ZXh0cmEiICIxIikKKysgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKKyAgICAo c2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKKyAKKyAoZGVmaW5lX2luc24gInNzc2UzX3BhbGlnbnJk aSIKK0BAIC04ODA5LDYgKzg5OTQsOCBAQCAoZGVmaW5lX2luc24gInNzc2UzX3BhbGlnbnJkaSIK KyAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vpc2hmdCIpCisgICAgKHNldF9hdHRyICJhdG9tX3Vu aXQiICJzaXNodWYiKQorICAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCisrICAgKHNl dF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisrICAgKHNldCAoYXR0ciAicHJlZml4X3Jl eCIpIChzeW1ib2xfcmVmICJ4ODZfZXh0ZW5kZWRfcmVnX21lbnRpb25lZF9wIChpbnNuKSIpKQor ICAgIChzZXRfYXR0ciAibW9kZSIgIkRJIildKQorIAorIChkZWZpbmVfaW5zbiAiYWJzPG1vZGU+ MiIKK0BAIC04ODI4LDcgKzkwMTUsOSBAQCAoZGVmaW5lX2luc24gImFiczxtb2RlPjIiCisgICAi VEFSR0VUX1NTU0UzIgorICAgInBhYnM8bW14dmVjc2l6ZT5cdHslMSwgJTB8JTAsICUxfSI7Cisg ICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nMSIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfcmVw IiAiMCIpCisgICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKKysgICAoc2V0IChhdHRy ICJwcmVmaXhfcmV4IikgKHN5bWJvbF9yZWYgIng4Nl9leHRlbmRlZF9yZWdfbWVudGlvbmVkX3Ag KGluc24pIikpCisgICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0pCisgCisgOzs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 CitAQCAtODg2OSw2ICs5MDU4LDcgQEAgKGRlZmluZV9pbnNuICJzc2U0YV9leHRycWkiCisgICAi ZXh0cnFcdHslMywgJTIsICUwfCUwLCAlMiwgJTN9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNz ZSIpCisgICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMSIpCisrICAgKHNldF9hdHRyICJs ZW5ndGhfaW1tZWRpYXRlIiAiMiIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCisgCisg KGRlZmluZV9pbnNuICJzc2U0YV9leHRycSIKK0BAIC04ODkyLDcgKzkwODIsOSBAQCAoZGVmaW5l X2luc24gInNzZTRhX2luc2VydHFpIgorICAgIlRBUkdFVF9TU0U0QSIKKyAgICJpbnNlcnRxXHR7 JTQsICUzLCAlMiwgJTB8JTAsICUyLCAlMywgJTR9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNz ZWlucyIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMCIpCisgICAgKHNldF9hdHRy ICJwcmVmaXhfcmVwIiAiMSIpCisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMiIp CisgICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCisgCisgKGRlZmluZV9pbnNuICJzc2U0YV9p bnNlcnRxIgorQEAgLTg5MDMsNiArOTA5NSw3IEBAIChkZWZpbmVfaW5zbiAic3NlNGFfaW5zZXJ0 cSIKKyAgICJUQVJHRVRfU1NFNEEiCisgICAiaW5zZXJ0cVx0eyUyLCAlMHwlMCwgJTJ9IgorICAg WyhzZXRfYXR0ciAidHlwZSIgInNzZWlucyIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2 IiAiMCIpCisgICAgKHNldF9hdHRyICJwcmVmaXhfcmVwIiAiMSIpCisgICAgKHNldF9hdHRyICJt b2RlIiAiVEkiKV0pCisgCitAQCAtODkyMSw2ICs5MTE0LDggQEAgKGRlZmluZV9pbnNuICJhdnhf YmxlbmRwPGF2eG1vZGVzdWZmaXhmMgorICAgIlRBUkdFVF9BVlgiCisgICAidmJsZW5kcDxhdnht b2Rlc3VmZml4ZjJjPlx0eyUzLCAlMiwgJTEsICUwfCUwLCAlMSwgJTIsICUzfSIKKyAgIFsoc2V0 X2F0dHIgInR5cGUiICJzc2Vtb3YiKQorKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIp CisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisgICAgKHNldF9hdHRyICJw cmVmaXgiICJ2ZXgiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIjxhdnh2ZWNtb2RlPiIpXSkKKyAK K0BAIC04OTM0LDYgKzkxMjksOCBAQCAoZGVmaW5lX2luc24gImF2eF9ibGVuZHZwPGF2eG1vZGVz dWZmaXhmCisgICAiVEFSR0VUX0FWWCIKKyAgICJ2YmxlbmR2cDxhdnhtb2Rlc3VmZml4ZjJjPlx0 eyUzLCAlMiwgJTEsICUwfCUwLCAlMSwgJTIsICUzfSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJz c2Vtb3YiKQorKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCisrICAgKHNldF9hdHRy ICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisgICAgKHNldF9hdHRyICJwcmVmaXgiICJ2ZXgiKQor ICAgIChzZXRfYXR0ciAibW9kZSIgIjxhdnh2ZWNtb2RlPiIpXSkKKyAKK0BAIC04OTQ2LDcgKzkx NDMsOSBAQCAoZGVmaW5lX2luc24gInNzZTRfMV9ibGVuZHA8c3NlbW9kZXN1ZmZpCisgICAiVEFS R0VUX1NTRTRfMSIKKyAgICJibGVuZHA8c3NlbW9kZXN1ZmZpeGYyYz5cdHslMywgJTIsICUwfCUw LCAlMiwgJTN9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZW1vdiIpCisrICAgKHNldF9hdHRy ICJwcmVmaXhfZGF0YTE2IiAiMSIpCisgICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikK KysgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKKyAgICAoc2V0X2F0dHIgIm1v ZGUiICI8TU9ERT4iKV0pCisgCisgKGRlZmluZV9pbnNuICJzc2U0XzFfYmxlbmR2cDxzc2Vtb2Rl c3VmZml4ZjJjPiIKK0BAIC04OTU5LDYgKzkxNTgsNyBAQCAoZGVmaW5lX2luc24gInNzZTRfMV9i bGVuZHZwPHNzZW1vZGVzdWZmCisgICAiVEFSR0VUX1NTRTRfMSIKKyAgICJibGVuZHZwPHNzZW1v ZGVzdWZmaXhmMmM+XHR7JTMsICUyLCAlMHwlMCwgJTIsICUzfSIKKyAgIFsoc2V0X2F0dHIgInR5 cGUiICJzc2Vtb3YiKQorKyAgIChzZXRfYXR0ciAicHJlZml4X2RhdGExNiIgIjEiKQorICAgIChz ZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+ IildKQorIAorQEAgLTg5NzMsNiArOTE3Myw4IEBAIChkZWZpbmVfaW5zbiAiYXZ4X2RwcDxhdnht b2Rlc3VmZml4ZjJjPjwKKyAgICJ2ZHBwPGF2eG1vZGVzdWZmaXhmMmM+XHR7JTMsICUyLCAlMSwg JTB8JTAsICUxLCAlMiwgJTN9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZW11bCIpCisgICAg KHNldF9hdHRyICJwcmVmaXgiICJ2ZXgiKQorKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAi MSIpCisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisgICAgKHNldF9hdHRy ICJtb2RlIiAiPGF2eHZlY21vZGU+IildKQorIAorIChkZWZpbmVfaW5zbiAic3NlNF8xX2RwcDxz c2Vtb2Rlc3VmZml4ZjJjPiIKK0BAIC04OTg1LDcgKzkxODcsOSBAQCAoZGVmaW5lX2luc24gInNz ZTRfMV9kcHA8c3NlbW9kZXN1ZmZpeGYyCisgICAiVEFSR0VUX1NTRTRfMSIKKyAgICJkcHA8c3Nl bW9kZXN1ZmZpeGYyYz5cdHslMywgJTIsICUwfCUwLCAlMiwgJTN9IgorICAgWyhzZXRfYXR0ciAi dHlwZSIgInNzZW11bCIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMSIpCisgICAg KHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKKysgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1l ZGlhdGUiICIxIikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0pCisgCisgKGRlZmlu ZV9pbnNuICJzc2U0XzFfbW92bnRkcWEiCitAQCAtOTAwOSw2ICs5MjEzLDggQEAgKGRlZmluZV9p bnNuICIqYXZ4X21wc2FkYnciCisgICAidm1wc2FkYndcdHslMywgJTIsICUxLCAlMHwlMCwgJTEs ICUyLCAlM30iCisgICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nMSIpCisgICAgKHNldF9hdHRy ICJwcmVmaXgiICJ2ZXgiKQorKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCisrICAg KHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisgICAgKHNldF9hdHRyICJtb2RlIiAi VEkiKV0pCisgCisgKGRlZmluZV9pbnNuICJzc2U0XzFfbXBzYWRidyIKK0BAIC05MDIxLDYgKzky MjcsNyBAQCAoZGVmaW5lX2luc24gInNzZTRfMV9tcHNhZGJ3IgorICAgIm1wc2FkYndcdHslMywg JTIsICUwfCUwLCAlMiwgJTN9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZzEiKQorICAg IChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1t ZWRpYXRlIiAiMSIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCisgCisgKGRlZmluZV9p bnNuICIqYXZ4X3BhY2t1c2R3IgorQEAgLTkwMzMsNiArOTI0MCw3IEBAIChkZWZpbmVfaW5zbiAi KmF2eF9wYWNrdXNkdyIKKyAgICJUQVJHRVRfQVZYIgorICAgInZwYWNrdXNkd1x0eyUyLCAlMSwg JTB8JTAsICUxLCAlMn0iCisgICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nIikKKysgICAoc2V0 X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQorICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikK KyAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKKyAKK0BAIC05MDU4LDYgKzkyNjYsOCBAQCAo ZGVmaW5lX2luc24gIiphdnhfcGJsZW5kdmIiCisgICAiVEFSR0VUX0FWWCIKKyAgICJ2cGJsZW5k dmJcdHslMywgJTIsICUxLCAlMHwlMCwgJTEsICUyLCAlM30iCisgICBbKHNldF9hdHRyICJ0eXBl IiAic3NlbW92IikKKysgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQorKyAgIChzZXRf YXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQorICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4 IikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKKyAKK0BAIC05MDgzLDYgKzkyOTMsOCBA QCAoZGVmaW5lX2luc24gIiphdnhfcGJsZW5kdyIKKyAgICJ2cGJsZW5kd1x0eyUzLCAlMiwgJTEs ICUwfCUwLCAlMSwgJTIsICUzfSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vtb3YiKQorICAg IChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKKysgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIg IjEiKQorKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQorICAgIChzZXRfYXR0 ciAibW9kZSIgIlRJIildKQorIAorIChkZWZpbmVfaW5zbiAic3NlNF8xX3BibGVuZHciCitAQCAt OTA5NSw2ICs5MzA3LDcgQEAgKGRlZmluZV9pbnNuICJzc2U0XzFfcGJsZW5kdyIKKyAgICJwYmxl bmR3XHR7JTMsICUyLCAlMHwlMCwgJTIsICUzfSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vt b3YiKQorICAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCisrICAgKHNldF9hdHRyICJs ZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCisgCisg KGRlZmluZV9pbnNuICJzc2U0XzFfcGhtaW5wb3N1dyIKK0BAIC05NTA2LDYgKzk3MTksNyBAQCAo ZGVmaW5lX2luc24gImF2eF92dGVzdHA8YXZ4bW9kZXN1ZmZpeGYyCisgICAiVEFSR0VUX0FWWCIK KyAgICJ2dGVzdHA8YXZ4bW9kZXN1ZmZpeGYyYz5cdHslMSwgJTB8JTAsICUxfSIKKyAgIFsoc2V0 X2F0dHIgInR5cGUiICJzc2Vjb21pIikKKysgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEi KQorICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICI8 TU9ERT4iKV0pCisgCitAQCAtOTUxOSw2ICs5NzMzLDcgQEAgKGRlZmluZV9pbnNuICJhdnhfcHRl c3QyNTYiCisgICAiVEFSR0VUX0FWWCIKKyAgICJ2cHRlc3RcdHslMSwgJTB8JTAsICUxfSIKKyAg IFsoc2V0X2F0dHIgInR5cGUiICJzc2Vjb21pIikKKysgICAoc2V0X2F0dHIgInByZWZpeF9leHRy YSIgIjEiKQorICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKKyAgICAoc2V0X2F0dHIgIm1v ZGUiICJPSSIpXSkKKyAKK0BAIC05NTQzLDYgKzk3NTgsOCBAQCAoZGVmaW5lX2luc24gImF2eF9y b3VuZHA8YXZ4bW9kZXN1ZmZpeGYyCisgICAiVEFSR0VUX0FWWCIKKyAgICJ2cm91bmRwPGF2eG1v ZGVzdWZmaXhmMmM+XHR7JTIsICUxLCAlMHwlMCwgJTEsICUyfSIKKyAgIFsoc2V0X2F0dHIgInR5 cGUiICJzc2VjdnQiKQorKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCisrICAgKHNl dF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisgICAgKHNldF9hdHRyICJwcmVmaXgiICJ2 ZXgiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpXSkKKyAKK0BAIC05NTU1LDcgKzk3 NzIsOSBAQCAoZGVmaW5lX2luc24gInNzZTRfMV9yb3VuZHA8c3NlbW9kZXN1ZmZpCisgICAiVEFS R0VUX1JPVU5EIgorICAgIiV2cm91bmRwPHNzZW1vZGVzdWZmaXhmMmM+XHR7JTIsICUxLCAlMHwl MCwgJTEsICUyfSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2VjdnQiKQorKyAgIChzZXRfYXR0 ciAicHJlZml4X2RhdGExNiIgIjEiKQorICAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIp CisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisgICAgKHNldF9hdHRyICJw cmVmaXgiICJtYXliZV92ZXgiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpXSkKKyAK K0BAIC05NTcxLDYgKzk3OTAsOCBAQCAoZGVmaW5lX2luc24gIiphdnhfcm91bmRzPHNzZW1vZGVz dWZmaXhmCisgICAiVEFSR0VUX0FWWCIKKyAgICJ2cm91bmRzPHNzZW1vZGVzdWZmaXhmMmM+XHR7 JTMsICUyLCAlMSwgJTB8JTAsICUxLCAlMiwgJTN9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNz ZWN2dCIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKKysgICAoc2V0X2F0dHIg Imxlbmd0aF9pbW1lZGlhdGUiICIxIikKKyAgICAoc2V0X2F0dHIgInByZWZpeCIgInZleCIpCisg ICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+IildKQorIAorQEAgLTk1ODYsNyArOTgwNyw5IEBA IChkZWZpbmVfaW5zbiAic3NlNF8xX3JvdW5kczxzc2Vtb2Rlc3VmZmkKKyAgICJUQVJHRVRfUk9V TkQiCisgICAicm91bmRzPHNzZW1vZGVzdWZmaXhmMmM+XHR7JTMsICUyLCAlMHwlMCwgJTIsICUz fSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2VjdnQiKQorKyAgIChzZXRfYXR0ciAicHJlZml4 X2RhdGExNiIgIjEiKQorICAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCisrICAgKHNl dF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiPE1P REU+IildKQorIAorIDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OworQEAgLTk2NDgsNiArOTg3MSw3IEBAIChkZWZpbmVf aW5zbl9hbmRfc3BsaXQgInNzZTRfMl9wY21wZXN0ciIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJz c2Vsb2ciKQorICAgIChzZXRfYXR0ciAicHJlZml4X2RhdGExNiIgIjEiKQorICAgIChzZXRfYXR0 ciAicHJlZml4X2V4dHJhIiAiMSIpCisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAi MSIpCisgICAgKHNldF9hdHRyICJtZW1vcnkiICJub25lLGxvYWQiKQorICAgIChzZXRfYXR0ciAi bW9kZSIgIlRJIildKQorIAorQEAgLTk2NzQsNiArOTg5OCw3IEBAIChkZWZpbmVfaW5zbiAic3Nl NF8yX3BjbXBlc3RyaSIKKyAgICAoc2V0X2F0dHIgInByZWZpeF9kYXRhMTYiICIxIikKKyAgICAo c2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQorICAgIChzZXRfYXR0ciAicHJlZml4IiAibWF5 YmVfdmV4IikKKysgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKKyAgICAoc2V0 X2F0dHIgIm1lbW9yeSIgIm5vbmUsbG9hZCIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0p CisgCitAQCAtOTY5OSw2ICs5OTI0LDcgQEAgKGRlZmluZV9pbnNuICJzc2U0XzJfcGNtcGVzdHJt IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZyIpCisgICAgKHNldF9hdHRyICJwcmVmaXhf ZGF0YTE2IiAiMSIpCisgICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKKysgICAoc2V0 X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKKyAgICAoc2V0X2F0dHIgInByZWZpeCIgIm1h eWJlX3ZleCIpCisgICAgKHNldF9hdHRyICJtZW1vcnkiICJub25lLGxvYWQiKQorICAgIChzZXRf YXR0ciAibW9kZSIgIlRJIildKQorQEAgLTk3MjMsNiArOTk0OSw3IEBAIChkZWZpbmVfaW5zbiAi c3NlNF8yX3BjbXBlc3RyX2Njb25seSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vsb2ciKQor ICAgIChzZXRfYXR0ciAicHJlZml4X2RhdGExNiIgIjEiKQorICAgIChzZXRfYXR0ciAicHJlZml4 X2V4dHJhIiAiMSIpCisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisgICAg KHNldF9hdHRyICJtZW1vcnkiICJub25lLGxvYWQsbm9uZSxsb2FkIikKKyAgICAoc2V0X2F0dHIg InByZWZpeCIgIm1heWJlX3ZleCIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCitAQCAt OTc3MSw2ICs5OTk4LDcgQEAgKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAic3NlNF8yX3BjbXBpc3Ry IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZyIpCisgICAgKHNldF9hdHRyICJwcmVmaXhf ZGF0YTE2IiAiMSIpCisgICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKKysgICAoc2V0 X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKKyAgICAoc2V0X2F0dHIgIm1lbW9yeSIgIm5v bmUsbG9hZCIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCisgCitAQCAtOTc5Miw2ICsx MDAyMCw3IEBAIChkZWZpbmVfaW5zbiAic3NlNF8yX3BjbXBpc3RyaSIKKyAgIFsoc2V0X2F0dHIg InR5cGUiICJzc2Vsb2ciKQorICAgIChzZXRfYXR0ciAicHJlZml4X2RhdGExNiIgIjEiKQorICAg IChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1t ZWRpYXRlIiAiMSIpCisgICAgKHNldF9hdHRyICJwcmVmaXgiICJtYXliZV92ZXgiKQorICAgIChz ZXRfYXR0ciAibWVtb3J5IiAibm9uZSxsb2FkIikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIp XSkKK0BAIC05ODE0LDYgKzEwMDQzLDcgQEAgKGRlZmluZV9pbnNuICJzc2U0XzJfcGNtcGlzdHJt IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZyIpCisgICAgKHNldF9hdHRyICJwcmVmaXhf ZGF0YTE2IiAiMSIpCisgICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKKysgICAoc2V0 X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKKyAgICAoc2V0X2F0dHIgInByZWZpeCIgIm1h eWJlX3ZleCIpCisgICAgKHNldF9hdHRyICJtZW1vcnkiICJub25lLGxvYWQiKQorICAgIChzZXRf YXR0ciAibW9kZSIgIlRJIildKQorQEAgLTk4MzYsNiArMTAwNjYsNyBAQCAoZGVmaW5lX2luc24g InNzZTRfMl9wY21waXN0cl9jY29ubHkiCisgICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nIikK KyAgICAoc2V0X2F0dHIgInByZWZpeF9kYXRhMTYiICIxIikKKyAgICAoc2V0X2F0dHIgInByZWZp eF9leHRyYSIgIjEiKQorKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQorICAg IChzZXRfYXR0ciAibWVtb3J5IiAibm9uZSxsb2FkLG5vbmUsbG9hZCIpCisgICAgKHNldF9hdHRy ICJwcmVmaXgiICJtYXliZV92ZXgiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQorQEAg LTEwODM0LDYgKzExMDY1LDggQEAgKGRlZmluZV9pbnNuICJzc2U1X3BwZXJtX3plcm9fdjE2cWlf djhoaQorICAgICAgICB8fCByZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1syXSwgVjE2UUltb2Rl KSkiCisgICAicHBlcm1cdHslMywgJTEsICUwLCAlMHwlMCwgJTAsICUxLCAlM30iCisgICBbKHNl dF9hdHRyICJ0eXBlIiAic3NlYWRkIikKKysgICAoc2V0X2F0dHIgInByZWZpeF9kYXRhMTYiICIw IikKKysgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjIiKQorICAgIChzZXRfYXR0ciAibW9k ZSIgIlRJIildKQorIAorIChkZWZpbmVfaW5zbiAic3NlNV9wcGVybV9zaWduX3YxNnFpX3Y4aGki CitAQCAtMTA4NDgsNiArMTEwODEsOCBAQCAoZGVmaW5lX2luc24gInNzZTVfcHBlcm1fc2lnbl92 MTZxaV92OGhpCisgICAgICAgIHx8IHJlZ2lzdGVyX29wZXJhbmQgKG9wZXJhbmRzWzJdLCBWMTZR SW1vZGUpKSIKKyAgICJwcGVybVx0eyUzLCAlMSwgJTAsICUwfCUwLCAlMCwgJTEsICUzfSIKKyAg IFsoc2V0X2F0dHIgInR5cGUiICJzc2VhZGQiKQorKyAgIChzZXRfYXR0ciAicHJlZml4X2RhdGEx NiIgIjAiKQorKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMiIpCisgICAgKHNldF9hdHRy ICJtb2RlIiAiVEkiKV0pCisgCisgKGRlZmluZV9pbnNuICJzc2U1X3BwZXJtX3plcm9fdjhoaV92 NHNpIgorQEAgLTEwODYyLDYgKzExMDk3LDggQEAgKGRlZmluZV9pbnNuICJzc2U1X3BwZXJtX3pl cm9fdjhoaV92NHNpIgorICAgICAgICB8fCByZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1syXSwg VjE2UUltb2RlKSkiCisgICAicHBlcm1cdHslMywgJTEsICUwLCAlMHwlMCwgJTAsICUxLCAlM30i CisgICBbKHNldF9hdHRyICJ0eXBlIiAic3NlYWRkIikKKysgICAoc2V0X2F0dHIgInByZWZpeF9k YXRhMTYiICIwIikKKysgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjIiKQorICAgIChzZXRf YXR0ciAibW9kZSIgIlRJIildKQorIAorIChkZWZpbmVfaW5zbiAic3NlNV9wcGVybV9zaWduX3Y4 aGlfdjRzaSIKK0BAIC0xMDg3Niw2ICsxMTExMyw4IEBAIChkZWZpbmVfaW5zbiAic3NlNV9wcGVy bV9zaWduX3Y4aGlfdjRzaSIKKyAgICAgICAgfHwgcmVnaXN0ZXJfb3BlcmFuZCAob3BlcmFuZHNb Ml0sIFYxNlFJbW9kZSkpIgorICAgInBwZXJtXHR7JTMsICUxLCAlMCwgJTB8JTAsICUwLCAlMSwg JTN9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWFkZCIpCisrICAgKHNldF9hdHRyICJwcmVm aXhfZGF0YTE2IiAiMCIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIyIikKKyAgICAo c2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKKyAKKyAoZGVmaW5lX2luc24gInNzZTVfcHBlcm1femVy b192NHNpX3YyZGkiCitAQCAtMTA4OTAsNiArMTExMjksOCBAQCAoZGVmaW5lX2luc24gInNzZTVf cHBlcm1femVyb192NHNpX3YyZGkiCisgICAgICAgIHx8IHJlZ2lzdGVyX29wZXJhbmQgKG9wZXJh bmRzWzJdLCBWMTZRSW1vZGUpKSIKKyAgICJwcGVybVx0eyUzLCAlMSwgJTAsICUwfCUwLCAlMCwg JTEsICUzfSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2VhZGQiKQorKyAgIChzZXRfYXR0ciAi cHJlZml4X2RhdGExNiIgIjAiKQorKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMiIpCisg ICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCisgCisgKGRlZmluZV9pbnNuICJzc2U1X3BwZXJt X3NpZ25fdjRzaV92MmRpIgorQEAgLTEwOTA0LDYgKzExMTQ1LDggQEAgKGRlZmluZV9pbnNuICJz c2U1X3BwZXJtX3NpZ25fdjRzaV92MmRpIgorICAgICAgICB8fCByZWdpc3Rlcl9vcGVyYW5kIChv cGVyYW5kc1syXSwgVjE2UUltb2RlKSkiCisgICAicHBlcm1cdHslMywgJTEsICUwLCAlMHwlMCwg JTAsICUxLCAlM30iCisgICBbKHNldF9hdHRyICJ0eXBlIiAic3NlYWRkIikKKysgICAoc2V0X2F0 dHIgInByZWZpeF9kYXRhMTYiICIwIikKKysgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjIi KQorICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQorIAorIDs7IFNTRTUgcGFjayBpbnN0cnVj dGlvbnMgdGhhdCBjb21iaW5lIHR3byB2ZWN0b3JzIGludG8gYSBzbWFsbGVyIHZlY3RvcgorQEAg LTExMDMyLDYgKzExMjc1LDcgQEAgKGRlZmluZV9pbnNuICJzc2U1X3JvdGw8bW9kZT4zIgorICAg IlRBUkdFVF9TU0U1IgorICAgInByb3Q8c3NldmVjc2l6ZT5cdHslMiwgJTEsICUwfCUwLCAlMSwg JTJ9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWlzaGZ0IikKKysgICAoc2V0X2F0dHIgImxl bmd0aF9pbW1lZGlhdGUiICIxIikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKKyAKKyAo ZGVmaW5lX2luc24gInNzZTVfcm90cjxtb2RlPjMiCitAQCAtMTEwNDUsNiArMTEyODksNyBAQCAo ZGVmaW5lX2luc24gInNzZTVfcm90cjxtb2RlPjMiCisgICByZXR1cm4gXCJwcm90PHNzZXZlY3Np emU+XHR7JTMsICUxLCAlMHwlMCwgJTEsICUzfVwiOworIH0KKyAgIFsoc2V0X2F0dHIgInR5cGUi ICJzc2Vpc2hmdCIpCisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisgICAg KHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCisgCisgKGRlZmluZV9leHBhbmQgInZyb3RyPG1vZGU+ MyIKK0BAIC0xMTA4NCw2ICsxMTMyOSw4IEBAIChkZWZpbmVfaW5zbiAic3NlNV92cm90bDxtb2Rl PjMiCisgICAiVEFSR0VUX1NTRTUgJiYgaXg4Nl9zc2U1X3ZhbGlkX29wX3AgKG9wZXJhbmRzLCBp bnNuLCAzLCB0cnVlLCAxLCBmYWxzZSkiCisgICAicHJvdDxzc2V2ZWNzaXplPlx0eyUyLCAlMSwg JTB8JTAsICUxLCAlMn0iCisgICBbKHNldF9hdHRyICJ0eXBlIiAic3NlaXNoZnQiKQorKyAgIChz ZXRfYXR0ciAicHJlZml4X2RhdGExNiIgIjAiKQorKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJh IiAiMiIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCisgCisgOzsgU1NFNSBwYWNrZWQg c2hpZnQgaW5zdHJ1Y3Rpb25zLgorQEAgLTExMTM3LDYgKzExMzg0LDggQEAgKGRlZmluZV9pbnNu ICJzc2U1X2FzaGw8bW9kZT4zIgorICAgIlRBUkdFVF9TU0U1ICYmIGl4ODZfc3NlNV92YWxpZF9v cF9wIChvcGVyYW5kcywgaW5zbiwgMywgdHJ1ZSwgMSwgZmFsc2UpIgorICAgInBzaGE8c3NldmVj c2l6ZT5cdHslMiwgJTEsICUwfCUwLCAlMSwgJTJ9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNz ZWlzaGZ0IikKKysgICAoc2V0X2F0dHIgInByZWZpeF9kYXRhMTYiICIwIikKKysgICAoc2V0X2F0 dHIgInByZWZpeF9leHRyYSIgIjIiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQorIAor IChkZWZpbmVfaW5zbiAic3NlNV9sc2hsPG1vZGU+MyIKK0BAIC0xMTE1NCw2ICsxMTQwMyw4IEBA IChkZWZpbmVfaW5zbiAic3NlNV9sc2hsPG1vZGU+MyIKKyAgICJUQVJHRVRfU1NFNSAmJiBpeDg2 X3NzZTVfdmFsaWRfb3BfcCAob3BlcmFuZHMsIGluc24sIDMsIHRydWUsIDEsIGZhbHNlKSIKKyAg ICJwc2hsPHNzZXZlY3NpemU+XHR7JTIsICUxLCAlMHwlMCwgJTEsICUyfSIKKyAgIFsoc2V0X2F0 dHIgInR5cGUiICJzc2Vpc2hmdCIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMCIp CisrICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIyIikKKyAgICAoc2V0X2F0dHIgIm1vZGUi ICJUSSIpXSkKKyAKKyA7OyBTU0UyIGRvZXNuJ3QgaGF2ZSBzb21lIHNoaWZ0IHZhcmllbnRzLCBz byBkZWZpbmUgdmVyc2lvbnMgZm9yIFNTRTUKK0BAIC0xMTI2Nyw3ICsxMTUxOCw2IEBAIChkZWZp bmVfaW5zbiAic3NlNV9mcmN6PG1vZGU+MiIKKyAgICJUQVJHRVRfU1NFNSIKKyAgICJmcmN6PHNz ZW1vZGVzdWZmaXhmND5cdHslMSwgJTB8JTAsICUxfSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJz c2VjdnQxIikKKy0gICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQorICAgIChzZXRfYXR0 ciAibW9kZSIgIjxNT0RFPiIpXSkKKyAKKyA7OyBzY2FsYXIgaW5zbnMKK0BAIC0xMTI4Miw3ICsx MTUzMiw2IEBAIChkZWZpbmVfaW5zbiAic3NlNV92bWZyY3o8bW9kZT4yIgorICAgIlRBUkdFVF9T U0U1IgorICAgImZyY3o8c3NlbW9kZXN1ZmZpeGYycz5cdHslMiwgJTB8JTAsICUyfSIKKyAgIFso c2V0X2F0dHIgInR5cGUiICJzc2VjdnQxIikKKy0gICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIg IjEiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpXSkKKyAKKyAoZGVmaW5lX2luc24g InNzZTVfY3Z0cGgycHMiCitAQCAtMTEzMzEsNiArMTE1ODAsMTAgQEAgKGRlZmluZV9pbnNuICIq c3NlNV92bW1hc2tjbXA8bW9kZT4zIgorICAgIlRBUkdFVF9TU0U1IgorICAgImNvbSVZMTxzc2Vt b2Rlc3VmZml4ZjJzPlx0eyUzLCAlMiwgJTB8JTAsICUyLCAlM30iCisgICBbKHNldF9hdHRyICJ0 eXBlIiAic3NlNGFyZyIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMCIpCisrICAg KHNldF9hdHRyICJwcmVmaXhfcmVwIiAiMCIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEi ICIyIikKKysgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKKyAgICAoc2V0X2F0 dHIgIm1vZGUiICI8c3Nlc2NhbGFybW9kZT4iKV0pCisgCisgOzsgV2UgZG9uJ3QgaGF2ZSBhIGNv bXBhcmlzb24gb3BlcmF0b3IgdGhhdCBhbHdheXMgcmV0dXJucyB0cnVlL2ZhbHNlLCBzbworQEAg LTExMzcxLDYgKzExNjI0LDEwIEBAIChkZWZpbmVfaW5zbiAic3NlNV9jb21fdGY8bW9kZT4zIgor ICAgcmV0dXJuIHJldDsKKyB9CisgICBbKHNldF9hdHRyICJ0eXBlIiAic3NlY21wIikKKysgICAo c2V0X2F0dHIgInByZWZpeF9kYXRhMTYiICIwIikKKysgICAoc2V0X2F0dHIgInByZWZpeF9yZXAi ICIwIikKKysgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjIiKQorKyAgIChzZXRfYXR0ciAi bGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpXSkK KyAKKyAoZGVmaW5lX2luc24gInNzZTVfbWFza2NtcDxtb2RlPjMiCitAQCAtMTEzODEsNiArMTE2 MzgsMTAgQEAgKGRlZmluZV9pbnNuICJzc2U1X21hc2tjbXA8bW9kZT4zIgorICAgIlRBUkdFVF9T U0U1IgorICAgImNvbSVZMTxzc2Vtb2Rlc3VmZml4ZjQ+XHR7JTMsICUyLCAlMHwlMCwgJTIsICUz fSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2VjbXAiKQorKyAgIChzZXRfYXR0ciAicHJlZml4 X2RhdGExNiIgIjAiKQorKyAgIChzZXRfYXR0ciAicHJlZml4X3JlcCIgIjAiKQorKyAgIChzZXRf YXR0ciAicHJlZml4X2V4dHJhIiAiMiIpCisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRl IiAiMSIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+IildKQorIAorIChkZWZpbmVfaW5z biAic3NlNV9tYXNrY21wPG1vZGU+MyIKK0BAIC0xMTM5MSw2ICsxMTY1MiwxMCBAQCAoZGVmaW5l X2luc24gInNzZTVfbWFza2NtcDxtb2RlPjMiCisgICAiVEFSR0VUX1NTRTUiCisgICAicGNvbSVZ MTxzc2V2ZWNzaXplPlx0eyUzLCAlMiwgJTB8JTAsICUyLCAlM30iCisgICBbKHNldF9hdHRyICJ0 eXBlIiAic3NlNGFyZyIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMCIpCisrICAg KHNldF9hdHRyICJwcmVmaXhfcmVwIiAiMCIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEi ICIyIikKKysgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKKyAgICAoc2V0X2F0 dHIgIm1vZGUiICJUSSIpXSkKKyAKKyAoZGVmaW5lX2luc24gInNzZTVfbWFza2NtcF91bnM8bW9k ZT4zIgorQEAgLTExNDAxLDYgKzExNjY2LDEwIEBAIChkZWZpbmVfaW5zbiAic3NlNV9tYXNrY21w X3Vuczxtb2RlPjMiCisgICAiVEFSR0VUX1NTRTUiCisgICAicGNvbSVZMXU8c3NldmVjc2l6ZT5c dHslMywgJTIsICUwfCUwLCAlMiwgJTN9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWNtcCIp CisrICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMCIpCisrICAgKHNldF9hdHRyICJwcmVm aXhfcmVwIiAiMCIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIyIikKKysgICAoc2V0 X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIp XSkKKyAKKyA7OyBWZXJzaW9uIG9mIHBjb20qdSogdGhhdCBpcyBjYWxsZWQgZnJvbSB0aGUgaW50 cmluc2ljcyB0aGF0IGFsbG93cyBwY29tZXF1KgorQEAgLTExNDE2LDYgKzExNjg1LDkgQEAgKGRl ZmluZV9pbnNuICJzc2U1X21hc2tjbXBfdW5zMjxtb2RlPjMiCisgICAiVEFSR0VUX1NTRTUiCisg ICAicGNvbSVZMXU8c3NldmVjc2l6ZT5cdHslMywgJTIsICUwfCUwLCAlMiwgJTN9IgorICAgWyhz ZXRfYXR0ciAidHlwZSIgInNzZWNtcCIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAi MCIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIyIikKKysgICAoc2V0X2F0dHIgImxl bmd0aF9pbW1lZGlhdGUiICIxIikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKKyAKKyA7 OyBQY29tdHJ1ZSBhbmQgcGNvbWZhbHNlIHN1cHBvcnQuICBUaGVzZSBhcmUgdXNlbGVzcyBpbnN0 cnVjdGlvbnMsIGJ1dCBhcmUKK0BAIC0xMTQzNCw2ICsxMTcwNiw5IEBAIChkZWZpbmVfaW5zbiAi c3NlNV9wY29tX3RmPG1vZGU+MyIKKyAJICA6ICJwY29tZmFsc2U8c3NldmVjc2l6ZT5cdHslMiwg JTEsICUwfCUwLCAlMSwgJTJ9Iik7CisgfQorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWNtcCIp CisrICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMCIpCisrICAgKHNldF9hdHRyICJwcmVm aXhfZXh0cmEiICIyIikKKysgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKKyAg ICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKKyAKKyAoZGVmaW5lX2luc24gIiphdnhfYWVzZW5j IgorQEAgLTExNDQ0LDYgKzExNzE5LDcgQEAgKGRlZmluZV9pbnNuICIqYXZ4X2Flc2VuYyIKKyAg ICJUQVJHRVRfQUVTICYmIFRBUkdFVF9BVlgiCisgICAidmFlc2VuY1x0eyUyLCAlMSwgJTB8JTAs ICUxLCAlMn0iCisgICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nMSIpCisrICAgKHNldF9hdHRy ICJwcmVmaXhfZXh0cmEiICIxIikKKyAgICAoc2V0X2F0dHIgInByZWZpeCIgInZleCIpCisgICAg KHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCisgCitAQCAtMTE0NjYsNiArMTE3NDIsNyBAQCAoZGVm aW5lX2luc24gIiphdnhfYWVzZW5jbGFzdCIKKyAgICJUQVJHRVRfQUVTICYmIFRBUkdFVF9BVlgi CisgICAidmFlc2VuY2xhc3RcdHslMiwgJTEsICUwfCUwLCAlMSwgJTJ9IgorICAgWyhzZXRfYXR0 ciAidHlwZSIgInNzZWxvZzEiKQorKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCisg ICAgKHNldF9hdHRyICJwcmVmaXgiICJ2ZXgiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIild KQorIAorQEAgLTExNDg4LDYgKzExNzY1LDcgQEAgKGRlZmluZV9pbnNuICIqYXZ4X2Flc2RlYyIK KyAgICJUQVJHRVRfQUVTICYmIFRBUkdFVF9BVlgiCisgICAidmFlc2RlY1x0eyUyLCAlMSwgJTB8 JTAsICUxLCAlMn0iCisgICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nMSIpCisrICAgKHNldF9h dHRyICJwcmVmaXhfZXh0cmEiICIxIikKKyAgICAoc2V0X2F0dHIgInByZWZpeCIgInZleCIpCisg ICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCisgCitAQCAtMTE1MTAsNiArMTE3ODgsNyBAQCAo ZGVmaW5lX2luc24gIiphdnhfYWVzZGVjbGFzdCIKKyAgICJUQVJHRVRfQUVTICYmIFRBUkdFVF9B VlgiCisgICAidmFlc2RlY2xhc3RcdHslMiwgJTEsICUwfCUwLCAlMSwgJTJ9IgorICAgWyhzZXRf YXR0ciAidHlwZSIgInNzZWxvZzEiKQorKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIp CisgICAgKHNldF9hdHRyICJwcmVmaXgiICJ2ZXgiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIlRJ IildKQorIAorQEAgLTExNTQ0LDYgKzExODIzLDcgQEAgKGRlZmluZV9pbnNuICJhZXNrZXlnZW5h c3Npc3QiCisgICAiJXZhZXNrZXlnZW5hc3Npc3RcdHslMiwgJTEsICUwfCUwLCAlMSwgJTJ9Igor ICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZzEiKQorICAgIChzZXRfYXR0ciAicHJlZml4X2V4 dHJhIiAiMSIpCisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisgICAgKHNl dF9hdHRyICJwcmVmaXgiICJtYXliZV92ZXgiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIild KQorIAorQEAgLTExNTU2LDYgKzExODM2LDggQEAgKGRlZmluZV9pbnNuICIqdnBjbG11bHFkcSIK KyAgICJUQVJHRVRfUENMTVVMICYmIFRBUkdFVF9BVlgiCisgICAidnBjbG11bHFkcVx0eyUzLCAl MiwgJTEsICUwfCUwLCAlMSwgJTIsICUzfSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vsb2cx IikKKysgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQorKyAgIChzZXRfYXR0ciAibGVu Z3RoX2ltbWVkaWF0ZSIgIjEiKQorICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKKyAgICAo c2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKKyAKK0BAIC0xMTU2OSw2ICsxMTg1MSw3IEBAIChkZWZp bmVfaW5zbiAicGNsbXVscWRxIgorICAgInBjbG11bHFkcVx0eyUzLCAlMiwgJTB8JTAsICUyLCAl M30iCisgICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nMSIpCisgICAgKHNldF9hdHRyICJwcmVm aXhfZXh0cmEiICIxIikKKysgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKKyAg ICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKKyAKKyAoZGVmaW5lX2V4cGFuZCAiYXZ4X3Z6ZXJv YWxsIgorQEAgLTExNTk5LDYgKzExODgyLDcgQEAgKGRlZmluZV9pbnNuICIqYXZ4X3Z6ZXJvYWxs IgorICAgIlRBUkdFVF9BVlgiCisgICAidnplcm9hbGwiCisgICBbKHNldF9hdHRyICJ0eXBlIiAi c3NlIikKKysgICAoc2V0X2F0dHIgIm1vZHJtIiAiMCIpCisgICAgKHNldF9hdHRyICJtZW1vcnki ICJub25lIikKKyAgICAoc2V0X2F0dHIgInByZWZpeCIgInZleCIpCisgICAgKHNldF9hdHRyICJt b2RlIiAiT0kiKV0pCitAQCAtMTE2MTcsNiArMTE5MDEsNyBAQCAoZGVmaW5lX2luc24gImF2eF92 emVyb3VwcGVyIgorICAgIlRBUkdFVF9BVlggJiYgIVRBUkdFVF82NEJJVCIKKyAgICJ2emVyb3Vw cGVyIgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZSIpCisrICAgKHNldF9hdHRyICJtb2RybSIg IjAiKQorICAgIChzZXRfYXR0ciAibWVtb3J5IiAibm9uZSIpCisgICAgKHNldF9hdHRyICJwcmVm aXgiICJ2ZXgiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIk9JIildKQorQEAgLTExNjQyLDYgKzEx OTI3LDcgQEAgKGRlZmluZV9pbnNuICJhdnhfdnplcm91cHBlcl9yZXg2NCIKKyAgICJUQVJHRVRf QVZYICYmIFRBUkdFVF82NEJJVCIKKyAgICJ2emVyb3VwcGVyIgorICAgWyhzZXRfYXR0ciAidHlw ZSIgInNzZSIpCisrICAgKHNldF9hdHRyICJtb2RybSIgIjAiKQorICAgIChzZXRfYXR0ciAibWVt b3J5IiAibm9uZSIpCisgICAgKHNldF9hdHRyICJwcmVmaXgiICJ2ZXgiKQorICAgIChzZXRfYXR0 ciAibW9kZSIgIk9JIildKQorQEAgLTExNjU1LDYgKzExOTQxLDggQEAgKGRlZmluZV9pbnNuICJh dnhfdnBlcm1pbDxtb2RlPiIKKyAgICJUQVJHRVRfQVZYIgorICAgInZwZXJtaWxwPGF2eG1vZGVz dWZmaXhmMmM+XHR7JTIsICUxLCAlMHwlMCwgJTEsICUyfSIKKyAgIFsoc2V0X2F0dHIgInR5cGUi ICJzc2Vsb2ciKQorKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCisrICAgKHNldF9h dHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisgICAgKHNldF9hdHRyICJwcmVmaXgiICJ2ZXgi KQorICAgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpXSkKKyAKK0BAIC0xMTY2Nyw2ICsxMTk1 NSw3IEBAIChkZWZpbmVfaW5zbiAiYXZ4X3ZwZXJtaWx2YXI8bW9kZT4zIgorICAgIlRBUkdFVF9B VlgiCisgICAidnBlcm1pbHA8YXZ4bW9kZXN1ZmZpeGYyYz5cdHslMiwgJTEsICUwfCUwLCAlMSwg JTJ9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZyIpCisrICAgKHNldF9hdHRyICJwcmVm aXhfZXh0cmEiICIxIikKKyAgICAoc2V0X2F0dHIgInByZWZpeCIgInZleCIpCisgICAgKHNldF9h dHRyICJtb2RlIiAiPE1PREU+IildKQorIAorQEAgLTExNjgwLDYgKzExOTY5LDggQEAgKGRlZmlu ZV9pbnNuICJhdnhfdnBlcm0yZjEyODxtb2RlPjMiCisgICAiVEFSR0VUX0FWWCIKKyAgICJ2cGVy bTJmMTI4XHR7JTMsICUyLCAlMSwgJTB8JTAsICUxLCAlMiwgJTN9IgorICAgWyhzZXRfYXR0ciAi dHlwZSIgInNzZWxvZyIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKKysgICAo c2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKKyAgICAoc2V0X2F0dHIgInByZWZpeCIg InZleCIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiVjhTRiIpXSkKKyAKK0BAIC0xMTY5NSw2ICsx MTk4Niw3IEBAIChkZWZpbmVfaW5zbiAiYXZ4X3Zicm9hZGNhc3RzPGF2eG1vZGVzdWYKKyAgICJU QVJHRVRfQVZYIgorICAgInZicm9hZGNhc3RzPGF2eG1vZGVzdWZmaXhmMmM+XHR7JTEsICUwfCUw LCAlMX0iCisgICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbW92IikKKysgICAoc2V0X2F0dHIgInBy ZWZpeF9leHRyYSIgIjEiKQorICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKKyAgICAoc2V0 X2F0dHIgIm1vZGUiICI8YXZ4c2NhbGFybW9kZT4iKV0pCisgCitAQCAtMTE3MTgsNiArMTIwMTAs NyBAQCAoZGVmaW5lX2luc24gImF2eF92YnJvYWRjYXN0c3MyNTYiCisgICAiVEFSR0VUX0FWWCIK KyAgICJ2YnJvYWRjYXN0c3NcdHslMSwgJTB8JTAsICUxfSIKKyAgIFsoc2V0X2F0dHIgInR5cGUi ICJzc2Vtb3YiKQorKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCisgICAgKHNldF9h dHRyICJwcmVmaXgiICJ2ZXgiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIlNGIildKQorIAorQEAg LTExNzI5LDYgKzEyMDIyLDcgQEAgKGRlZmluZV9pbnNuICJhdnhfdmJyb2FkY2FzdGYxMjhfcDxh dnhtbworICAgIlRBUkdFVF9BVlgiCisgICAidmJyb2FkY2FzdGYxMjhcdHslMSwgJTB8JTAsICUx fSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vtb3YiKQorKyAgIChzZXRfYXR0ciAicHJlZml4 X2V4dHJhIiAiMSIpCisgICAgKHNldF9hdHRyICJwcmVmaXgiICJ2ZXgiKQorICAgIChzZXRfYXR0 ciAibW9kZSIgIlY0U0YiKV0pCisgCitAQCAtMTE3NjUsNiArMTIwNTksOCBAQCAoZGVmaW5lX2lu c24gInZlY19zZXRfbG9fPG1vZGU+IgorICAgIlRBUkdFVF9BVlgiCisgICAidmluc2VydGYxMjhc dHskMHgwLCAlMiwgJTEsICUwfCUwLCAlMSwgJTIsIDB4MH0iCisgICBbKHNldF9hdHRyICJ0eXBl IiAic3NlbG9nIikKKysgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQorKyAgIChzZXRf YXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQorICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4 IikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJWOFNGIildKQorIAorQEAgLTExNzc4LDYgKzEyMDc0 LDggQEAgKGRlZmluZV9pbnNuICJ2ZWNfc2V0X2hpXzxtb2RlPiIKKyAgICJUQVJHRVRfQVZYIgor ICAgInZpbnNlcnRmMTI4XHR7JDB4MSwgJTIsICUxLCAlMHwlMCwgJTEsICUyLCAweDF9IgorICAg WyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZyIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEi ICIxIikKKysgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKKyAgICAoc2V0X2F0 dHIgInByZWZpeCIgInZleCIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiVjhTRiIpXSkKKyAKK0BA IC0xMTc5Miw2ICsxMjA5MCw4IEBAIChkZWZpbmVfaW5zbiAidmVjX3NldF9sb188bW9kZT4iCisg ICAiVEFSR0VUX0FWWCIKKyAgICJ2aW5zZXJ0ZjEyOFx0eyQweDAsICUyLCAlMSwgJTB8JTAsICUx LCAlMiwgMHgwfSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vsb2ciKQorKyAgIChzZXRfYXR0 ciAicHJlZml4X2V4dHJhIiAiMSIpCisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAi MSIpCisgICAgKHNldF9hdHRyICJwcmVmaXgiICJ2ZXgiKQorICAgIChzZXRfYXR0ciAibW9kZSIg IlY4U0YiKV0pCisgCitAQCAtMTE4MDYsNiArMTIxMDYsOCBAQCAoZGVmaW5lX2luc24gInZlY19z ZXRfaGlfPG1vZGU+IgorICAgIlRBUkdFVF9BVlgiCisgICAidmluc2VydGYxMjhcdHskMHgxLCAl MiwgJTEsICUwfCUwLCAlMSwgJTIsIDB4MX0iCisgICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9n IikKKysgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQorKyAgIChzZXRfYXR0ciAibGVu Z3RoX2ltbWVkaWF0ZSIgIjEiKQorICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKKyAgICAo c2V0X2F0dHIgIm1vZGUiICJWOFNGIildKQorIAorQEAgLTExODIyLDYgKzEyMTI0LDggQEAgKGRl ZmluZV9pbnNuICJ2ZWNfc2V0X2xvX3YxNmhpIgorICAgIlRBUkdFVF9BVlgiCisgICAidmluc2Vy dGYxMjhcdHskMHgwLCAlMiwgJTEsICUwfCUwLCAlMSwgJTIsIDB4MH0iCisgICBbKHNldF9hdHRy ICJ0eXBlIiAic3NlbG9nIikKKysgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQorKyAg IChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQorICAgIChzZXRfYXR0ciAicHJlZml4 IiAidmV4IikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJWOFNGIildKQorIAorQEAgLTExODM4LDYg KzEyMTQyLDggQEAgKGRlZmluZV9pbnNuICJ2ZWNfc2V0X2hpX3YxNmhpIgorICAgIlRBUkdFVF9B VlgiCisgICAidmluc2VydGYxMjhcdHskMHgxLCAlMiwgJTEsICUwfCUwLCAlMSwgJTIsIDB4MX0i CisgICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nIikKKysgICAoc2V0X2F0dHIgInByZWZpeF9l eHRyYSIgIjEiKQorKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQorICAgIChz ZXRfYXR0ciAicHJlZml4IiAidmV4IikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJWOFNGIildKQor IAorQEAgLTExODU4LDYgKzEyMTY0LDggQEAgKGRlZmluZV9pbnNuICJ2ZWNfc2V0X2xvX3YzMnFp IgorICAgIlRBUkdFVF9BVlgiCisgICAidmluc2VydGYxMjhcdHskMHgwLCAlMiwgJTEsICUwfCUw LCAlMSwgJTIsIDB4MH0iCisgICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nIikKKysgICAoc2V0 X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQorKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0 ZSIgIjEiKQorICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKKyAgICAoc2V0X2F0dHIgIm1v ZGUiICJWOFNGIildKQorIAorQEAgLTExODc4LDYgKzEyMTg2LDggQEAgKGRlZmluZV9pbnNuICJ2 ZWNfc2V0X2hpX3YzMnFpIgorICAgIlRBUkdFVF9BVlgiCisgICAidmluc2VydGYxMjhcdHskMHgx LCAlMiwgJTEsICUwfCUwLCAlMSwgJTIsIDB4MX0iCisgICBbKHNldF9hdHRyICJ0eXBlIiAic3Nl bG9nIikKKysgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQorKyAgIChzZXRfYXR0ciAi bGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQorICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKKyAg ICAoc2V0X2F0dHIgIm1vZGUiICJWOFNGIildKQorIAorQEAgLTExODkxLDYgKzEyMjAxLDcgQEAg KGRlZmluZV9pbnNuICJhdnhfbWFza2xvYWRwPGF2eG1vZGVzdWZmaQorICAgIlRBUkdFVF9BVlgi CisgICAidm1hc2ttb3ZwPGF2eG1vZGVzdWZmaXhmMmM+XHR7JTEsICUyLCAlMHwlMCwgJTIsICUx fSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vsb2cxIikKKysgICAoc2V0X2F0dHIgInByZWZp eF9leHRyYSIgIjEiKQorICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKKyAgICAoc2V0X2F0 dHIgIm1vZGUiICI8TU9ERT4iKV0pCisgCitAQCAtMTE5MDQsNiArMTIyMTUsNyBAQCAoZGVmaW5l X2luc24gImF2eF9tYXNrc3RvcmVwPGF2eG1vZGVzdWZmCisgICAiVEFSR0VUX0FWWCIKKyAgICJ2 bWFza21vdnA8YXZ4bW9kZXN1ZmZpeGYyYz5cdHslMiwgJTEsICUwfCUwLCAlMSwgJTJ9IgorICAg WyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZzEiKQorKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJh IiAiMSIpCisgICAgKHNldF9hdHRyICJwcmVmaXgiICJ2ZXgiKQorICAgIChzZXRfYXR0ciAibW9k ZSIgIjxNT0RFPiIpXSkKKyAKK0BAIC0xMjAxNCw1ICsxMjMyNiw3IEBAIChkZWZpbmVfaW5zbiAi KnZlY19jb25jYXQ8bW9kZT5fYXZ4IgorICAgICB9CisgfQorICAgWyhzZXRfYXR0ciAidHlwZSIg InNzZWxvZyxzc2Vtb3YiKQorKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSwqIikKKysg ICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxLCoiKQorICAgIChzZXRfYXR0ciAicHJl Zml4IiAidmV4IikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICI8YXZ4dmVjbW9kZT4iKV0pCistLS0g Z2NjL2NvbmZpZy9pMzg2L2kzODYubWQuamoJMjAwOS0wNi0wOSAxMToyMDowMC4wMDAwMDAwMDAg KzAyMDAKKysrKyBnY2MvY29uZmlnL2kzODYvaTM4Ni5tZAkyMDA5LTA2LTA5IDExOjU5OjE3LjAw MDAwMDAwMCArMDIwMAorQEAgLTI5NSw2ICsyOTUsNyBAQCAoZGVmaW5lX2NvbnN0YW50cworICAg IChSOV9SRUcJCQkzOCkKKyAgICAoUjEwX1JFRwkJCTM5KQorICAgIChSMTFfUkVHCQkJNDApCisr ICAgKFIxMl9SRUcJCQk0MSkKKyAgICAoUjEzX1JFRwkJCTQyKQorICAgIChYTU04X1JFRwkJCTQ1 KQorICAgIChYTU05X1JFRwkJCTQ2KQorQEAgLTM5OCwxNiArMzk5LDIzIEBAIChkZWZpbmVfYXR0 ciAibGVuZ3RoX2FkZHJlc3MiICIiCisgCisgOzsgU2V0IHdoZW4gbGVuZ3RoIHByZWZpeCBpcyB1 c2VkLgorIChkZWZpbmVfYXR0ciAicHJlZml4X2RhdGExNiIgIiIKKy0gIChpZl90aGVuX2Vsc2Ug KGlvciAoZXFfYXR0ciAibW9kZSIgIkhJIikKKy0JCSAgICAgKGFuZCAoZXFfYXR0ciAidW5pdCIg InNzZSIpIChlcV9hdHRyICJtb2RlIiAiVjJERiIpKSkKKy0gICAgKGNvbnN0X2ludCAxKQorLSAg ICAoY29uc3RfaW50IDApKSkKKysgIChjb25kIFsoZXFfYXR0ciAidHlwZSIgInNzZW11bGFkZCxz c2U0YXJnLHNzZWlhZGQxLHNzZWN2dDEiKQorKwkgICAoY29uc3RfaW50IDApCisrCSAoZXFfYXR0 ciAibW9kZSIgIkhJIikKKysJICAgKGNvbnN0X2ludCAxKQorKwkgKGFuZCAoZXFfYXR0ciAidW5p dCIgInNzZSIpIChlcV9hdHRyICJtb2RlIiAiVjJERixUSSIpKQorKwkgICAoY29uc3RfaW50IDEp CisrCV0KKysJKGNvbnN0X2ludCAwKSkpCisgCisgOzsgU2V0IHdoZW4gc3RyaW5nIFJFUCBwcmVm aXggaXMgdXNlZC4KKyAoZGVmaW5lX2F0dHIgInByZWZpeF9yZXAiICIiCistICAoaWZfdGhlbl9l bHNlIChhbmQgKGVxX2F0dHIgInVuaXQiICJzc2UiKSAoZXFfYXR0ciAibW9kZSIgIlNGLERGIikp CistICAgIChjb25zdF9pbnQgMSkKKy0gICAgKGNvbnN0X2ludCAwKSkpCisrICAoY29uZCBbKGVx X2F0dHIgInR5cGUiICJzc2VtdWxhZGQsc3NlNGFyZyxzc2VpYWRkMSxzc2VjdnQxIikKKysJICAg KGNvbnN0X2ludCAwKQorKwkgKGFuZCAoZXFfYXR0ciAidW5pdCIgInNzZSIpIChlcV9hdHRyICJt b2RlIiAiU0YsREYiKSkKKysJICAgKGNvbnN0X2ludCAxKQorKwldCisrCShjb25zdF9pbnQgMCkp KQorIAorIDs7IFNldCB3aGVuIDBmIG9wY29kZSBwcmVmaXggaXMgdXNlZC4KKyAoZGVmaW5lX2F0 dHIgInByZWZpeF8wZiIgIiIKK0BAIC00MTksOCArNDI3LDExIEBAIChkZWZpbmVfYXR0ciAicHJl Zml4XzBmIiAiIgorIAorIDs7IFNldCB3aGVuIFJFWCBvcGNvZGUgcHJlZml4IGlzIHVzZWQuCisg KGRlZmluZV9hdHRyICJwcmVmaXhfcmV4IiAiIgorLSAgKGNvbmQgWyhhbmQgKGVxX2F0dHIgIm1v ZGUiICJESSIpCistICAJICAgICAgKGVxX2F0dHIgInR5cGUiICIhcHVzaCxwb3AsY2FsbCxjYWxs dixsZWF2ZSxpYnIiKSkKKysgIChjb25kIFsobmUgKHN5bWJvbF9yZWYgIiFUQVJHRVRfNjRCSVQi KSAoY29uc3RfaW50IDApKQorKwkgICAoY29uc3RfaW50IDApCisrCSAoYW5kIChlcV9hdHRyICJt b2RlIiAiREkiKQorKwkgICAgICAoYW5kIChlcV9hdHRyICJ0eXBlIiAiIXB1c2gscG9wLGNhbGws Y2FsbHYsbGVhdmUsaWJyIikKKysJCSAgIChlcV9hdHRyICJ1bml0IiAiIW1teCIpKSkKKyAJICAg KGNvbnN0X2ludCAxKQorIAkgKGFuZCAoZXFfYXR0ciAibW9kZSIgIlFJIikKKyAJICAgICAgKG5l IChzeW1ib2xfcmVmICJ4ODZfZXh0ZW5kZWRfUUlyZWdfbWVudGlvbmVkX3AgKGluc24pIikKK0BA IC00MjksMTEgKzQ0MCwyMyBAQCAoZGVmaW5lX2F0dHIgInByZWZpeF9yZXgiICIiCisgCSAobmUg KHN5bWJvbF9yZWYgIng4Nl9leHRlbmRlZF9yZWdfbWVudGlvbmVkX3AgKGluc24pIikKKyAJICAg ICAoY29uc3RfaW50IDApKQorIAkgICAoY29uc3RfaW50IDEpCisrCSAoYW5kIChlcV9hdHRyICJ0 eXBlIiAiaW1vdngiKQorKwkgICAgICAobWF0Y2hfb3BlcmFuZDpRSSAxICJleHRfUUlyZWdfb3Bl cmFuZCIgIiIpKQorKwkgICAoY29uc3RfaW50IDEpCisgCV0KKyAJKGNvbnN0X2ludCAwKSkpCisg CistOzsgVGhlcmUgYXJlIGFsc28gYWRkaXRpb25hbCBwcmVmaXhlcyBpbiBTU1NFMy4KKy0oZGVm aW5lX2F0dHIgInByZWZpeF9leHRyYSIgIiIgKGNvbnN0X2ludCAwKSkKKys7OyBUaGVyZSBhcmUg YWxzbyBhZGRpdGlvbmFsIHByZWZpeGVzIGluIDNETk9XLCBTU1NFMyBvciBTU0U1LgorKzs7IHNz ZW11bGFkZCxzc2U0YXJnIGRlZmF1bHQgdG8gMGYyNC8wZjI1IGFuZCBEUkVYIGJ5dGUsCisrOzsg c3NlaWFkZDEsc3NlY3Z0MSB0byAwZjdhIHdpdGggbm8gRFJFWCBieXRlLgorKzs7IDNETk9XIGhh cyAwZjBmIHByZWZpeCwgU1NTRTMgYW5kIFNTRTRfezEsMn0gMGYzOC8wZjNhLgorKyhkZWZpbmVf YXR0ciAicHJlZml4X2V4dHJhIiAiIgorKyAgKGNvbmQgWyhlcV9hdHRyICJ0eXBlIiAic3NlbXVs YWRkLHNzZTRhcmciKQorKwkgICAoY29uc3RfaW50IDIpCisrCSAoZXFfYXR0ciAidHlwZSIgInNz ZWlhZGQxLHNzZWN2dDEiKQorKwkgICAoY29uc3RfaW50IDEpCisrCV0KKysJKGNvbnN0X2ludCAw KSkpCisgCisgOzsgUHJlZml4IHVzZWQ6IG9yaWdpbmFsLCBWRVggb3IgbWF5YmUgVkVYLgorIChk ZWZpbmVfYXR0ciAicHJlZml4IiAib3JpZyx2ZXgsbWF5YmVfdmV4IgorQEAgLTQ0MSwxNSArNDY0 LDE2IEBAIChkZWZpbmVfYXR0ciAicHJlZml4IiAib3JpZyx2ZXgsbWF5YmVfdmUKKyAgICAgKGNv bnN0X3N0cmluZyAidmV4IikKKyAgICAgKGNvbnN0X3N0cmluZyAib3JpZyIpKSkKKyAKKy07OyBU aGVyZSBpcyBhIDhiaXQgaW1tZWRpYXRlIGZvciBWRVguCistKGRlZmluZV9hdHRyICJwcmVmaXhf dmV4X2ltbTgiICIiIChjb25zdF9pbnQgMCkpCistCisgOzsgVkVYIFcgYml0IGlzIHVzZWQuCisg KGRlZmluZV9hdHRyICJwcmVmaXhfdmV4X3ciICIiIChjb25zdF9pbnQgMCkpCisgCisgOzsgVGhl IGxlbmd0aCBvZiBWRVggcHJlZml4CisrOzsgT25seSBpbnN0cnVjdGlvbnMgd2l0aCAwZiBwcmVm aXggY2FuIGhhdmUgMiBieXRlIFZFWCBwcmVmaXgsCisrOzsgMGYzOC8wZjNhIHByZWZpeGVzIGNh bid0LiAgSW4gaTM4Ni5tZCAwZjNbOGFdIGlzCisrOzsgc3RpbGwgcHJlZml4XzBmIDEsIHdpdGgg cHJlZml4X2V4dHJhIDEuCisgKGRlZmluZV9hdHRyICJsZW5ndGhfdmV4IiAiIgorLSAgKGlmX3Ro ZW5fZWxzZSAoZXFfYXR0ciAicHJlZml4XzBmIiAiMSIpCisrICAoaWZfdGhlbl9lbHNlIChhbmQg KGVxX2F0dHIgInByZWZpeF8wZiIgIjEiKQorKwkJICAgICAoZXFfYXR0ciAicHJlZml4X2V4dHJh IiAiMCIpKQorICAgICAoaWZfdGhlbl9lbHNlIChlcV9hdHRyICJwcmVmaXhfdmV4X3ciICIxIikK KyAgICAgICAoc3ltYm9sX3JlZiAiaXg4Nl9hdHRyX2xlbmd0aF92ZXhfZGVmYXVsdCAoaW5zbiwg MSwgMSkiKQorICAgICAgIChzeW1ib2xfcmVmICJpeDg2X2F0dHJfbGVuZ3RoX3ZleF9kZWZhdWx0 IChpbnNuLCAxLCAwKSIpKQorQEAgLTQ2NCw4ICs0ODgsOSBAQCAoZGVmaW5lX2F0dHIgIm1vZHJt IiAiIgorIAkgKGVxX2F0dHIgInVuaXQiICJpMzg3IikKKyAJICAgKGNvbnN0X2ludCAwKQorICAg ICAgICAgIChhbmQgKGVxX2F0dHIgInR5cGUiICJpbmNkZWMiKQorLQkgICAgICAoaW9yIChtYXRj aF9vcGVyYW5kOlNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIiKQorLQkJICAgKG1hdGNoX29wZXJh bmQ6SEkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpKSkKKysJICAgICAgKGFuZCAoZXEgKHN5bWJv bF9yZWYgIlRBUkdFVF82NEJJVCIpIChjb25zdF9pbnQgMCkpCisrCQkgICAoaW9yIChtYXRjaF9v cGVyYW5kOlNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIiKQorKwkJCShtYXRjaF9vcGVyYW5kOkhJ IDEgInJlZ2lzdGVyX29wZXJhbmQiICIiKSkpKQorIAkgICAoY29uc3RfaW50IDApCisgCSAoYW5k IChlcV9hdHRyICJ0eXBlIiAicHVzaCIpCisgCSAgICAgIChub3QgKG1hdGNoX29wZXJhbmQgMSAi bWVtb3J5X29wZXJhbmQiICIiKSkpCitAQCAtNDc0LDEyICs0OTksMTMgQEAgKGRlZmluZV9hdHRy ICJtb2RybSIgIiIKKyAJICAgICAgKG5vdCAobWF0Y2hfb3BlcmFuZCAwICJtZW1vcnlfb3BlcmFu ZCIgIiIpKSkKKyAJICAgKGNvbnN0X2ludCAwKQorIAkgKGFuZCAoZXFfYXR0ciAidHlwZSIgImlt b3YiKQorLQkgICAgICAoaW9yIChhbmQgKG1hdGNoX29wZXJhbmQgMCAicmVnaXN0ZXJfb3BlcmFu ZCIgIiIpCistCQkJKG1hdGNoX29wZXJhbmQgMSAiaW1tZWRpYXRlX29wZXJhbmQiICIiKSkKKy0J CSAgIChpb3IgKGFuZCAobWF0Y2hfb3BlcmFuZCAwICJheF9yZWdfb3BlcmFuZCIgIiIpCistCQkJ ICAgICAobWF0Y2hfb3BlcmFuZCAxICJtZW1vcnlfZGlzcGxhY2VtZW50X29ubHlfb3BlcmFuZCIg IiIpKQorLQkJCShhbmQgKG1hdGNoX29wZXJhbmQgMCAibWVtb3J5X2Rpc3BsYWNlbWVudF9vbmx5 X29wZXJhbmQiICIiKQorLQkJCSAgICAgKG1hdGNoX29wZXJhbmQgMSAiYXhfcmVnX29wZXJhbmQi ICIiKSkpKSkKKysJICAgICAgKGFuZCAobm90IChlcV9hdHRyICJtb2RlIiAiREkiKSkKKysJCSAg IChpb3IgKGFuZCAobWF0Y2hfb3BlcmFuZCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKKysJCQkg ICAgIChtYXRjaF9vcGVyYW5kIDEgImltbWVkaWF0ZV9vcGVyYW5kIiAiIikpCisrCQkgICAgICAg IChpb3IgKGFuZCAobWF0Y2hfb3BlcmFuZCAwICJheF9yZWdfb3BlcmFuZCIgIiIpCisrCQkJCSAg KG1hdGNoX29wZXJhbmQgMSAibWVtb3J5X2Rpc3BsYWNlbWVudF9vbmx5X29wZXJhbmQiICIiKSkK KysJCQkgICAgIChhbmQgKG1hdGNoX29wZXJhbmQgMCAibWVtb3J5X2Rpc3BsYWNlbWVudF9vbmx5 X29wZXJhbmQiICIiKQorKwkJCQkgIChtYXRjaF9vcGVyYW5kIDEgImF4X3JlZ19vcGVyYW5kIiAi IikpKSkpKQorIAkgICAoY29uc3RfaW50IDApCisgCSAoYW5kIChlcV9hdHRyICJ0eXBlIiAiY2Fs bCIpCisgCSAgICAgIChtYXRjaF9vcGVyYW5kIDAgImNvbnN0YW50X2NhbGxfYWRkcmVzc19vcGVy YW5kIiAiIikpCitAQCAtNDg3LDYgKzUxMyw5IEBAIChkZWZpbmVfYXR0ciAibW9kcm0iICIiCisg CSAoYW5kIChlcV9hdHRyICJ0eXBlIiAiY2FsbHYiKQorIAkgICAgICAobWF0Y2hfb3BlcmFuZCAx ICJjb25zdGFudF9jYWxsX2FkZHJlc3Nfb3BlcmFuZCIgIiIpKQorIAkgICAgIChjb25zdF9pbnQg MCkKKysJIChhbmQgKGVxX2F0dHIgInR5cGUiICJhbHUsYWx1MSxpY21wLHRlc3QiKQorKwkgICAg ICAobWF0Y2hfb3BlcmFuZCAwICJheF9yZWdfb3BlcmFuZCIgIiIpKQorKwkgICAgIChzeW1ib2xf cmVmICIoZ2V0X2F0dHJfbGVuZ3RoX2ltbWVkaWF0ZSAoaW5zbikgPD0gKGdldF9hdHRyX21vZGUg KGluc24pICE9IE1PREVfUUkpKSIpCisgCSBdCisgCSAoY29uc3RfaW50IDEpKSkKKyAKK0BAIC01 MDcsNyArNTM2LDcgQEAgKGRlZmluZV9hdHRyICJsZW5ndGgiICIiCisgCSAgICAgIChhbmQgKGVx X2F0dHIgInByZWZpeCIgIm1heWJlX3ZleCIpCisgCQkgICAgKG5lIChzeW1ib2xfcmVmICJUQVJH RVRfQVZYIikgKGNvbnN0X2ludCAwKSkpKQorIAkgICAocGx1cyAoYXR0ciAibGVuZ3RoX3ZleCIp CistCQkgKHBsdXMgKGF0dHIgInByZWZpeF92ZXhfaW1tOCIpCisrCQkgKHBsdXMgKGF0dHIgImxl bmd0aF9pbW1lZGlhdGUiKQorIAkJICAgICAgIChwbHVzIChhdHRyICJtb2RybSIpCisgCQkJICAg ICAoYXR0ciAibGVuZ3RoX2FkZHJlc3MiKSkpKV0KKyAJIChwbHVzIChwbHVzIChhdHRyICJtb2Ry bSIpCitAQCAtMTAyMiw2ICsxMDUxLDcgQEAgKGRlZmluZV9pbnNuICJjbXBxaV9leHRfM19pbnNu IgorICAgIiFUQVJHRVRfNjRCSVQgJiYgaXg4Nl9tYXRjaF9jY21vZGUgKGluc24sIENDbW9kZSki CisgICAiY21we2J9XHR7JTEsICVoMHwlaDAsICUxfSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJp Y21wIikKKysgICAoc2V0X2F0dHIgIm1vZHJtIiAiMSIpCisgICAgKHNldF9hdHRyICJtb2RlIiAi UUkiKV0pCisgCisgKGRlZmluZV9pbnNuICJjbXBxaV9leHRfM19pbnNuX3JleDY0IgorQEAgLTEw MzYsNiArMTA2Niw3IEBAIChkZWZpbmVfaW5zbiAiY21wcWlfZXh0XzNfaW5zbl9yZXg2NCIKKyAg ICJUQVJHRVRfNjRCSVQgJiYgaXg4Nl9tYXRjaF9jY21vZGUgKGluc24sIENDbW9kZSkiCisgICAi Y21we2J9XHR7JTEsICVoMHwlaDAsICUxfSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJpY21wIikK KysgICAoc2V0X2F0dHIgIm1vZHJtIiAiMSIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiUUkiKV0p CisgCisgKGRlZmluZV9pbnNuICIqY21wcWlfZXh0XzQiCitAQCAtMTMwOCw3ICsxMzM5LDcgQEAg KGRlZmluZV9pbnNuICJ4ODZfZm5zdHN3XzEiCisgCSh1bnNwZWM6SEkgWyhyZWc6Q0NGUCBGUFNS X1JFRyldIFVOU1BFQ19GTlNUU1cpKV0KKyAgICJUQVJHRVRfODAzODciCisgICAiZm5zdHN3XHQl MCIKKy0gIFsoc2V0X2F0dHIgImxlbmd0aCIgIjIiKQorKyAgWyhzZXQgKGF0dHIgImxlbmd0aCIp IChzeW1ib2xfcmVmICJpeDg2X2F0dHJfbGVuZ3RoX2FkZHJlc3NfZGVmYXVsdCAoaW5zbikgKyAy IikpCisgICAgKHNldF9hdHRyICJtb2RlIiAiU0kiKQorICAgIChzZXRfYXR0ciAidW5pdCIgImkz ODciKV0pCisgCitAQCAtMTM0OCw2ICsxMzc5LDE3IEBAIChkZWZpbmVfaW5zbiAiKmNtcGZwX2lf bWl4ZWQiCisgICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5kOlNGIDEgIiIgIiIpCisg ICAgICAgICAoY29uc3Rfc3RyaW5nICJTRiIpCisgICAgICAgICAoY29uc3Rfc3RyaW5nICJERiIp KSkKKysgICAoc2V0IChhdHRyICJwcmVmaXhfcmVwIikKKysJKGlmX3RoZW5fZWxzZSAoZXFfYXR0 ciAidHlwZSIgInNzZWNvbWkiKQorKwkJICAgICAgKGNvbnN0X3N0cmluZyAiMCIpCisrCQkgICAg ICAoY29uc3Rfc3RyaW5nICIqIikpKQorKyAgIChzZXQgKGF0dHIgInByZWZpeF9kYXRhMTYiKQor KwkoY29uZCBbKGVxX2F0dHIgInR5cGUiICJmY21wIikKKysJCSAoY29uc3Rfc3RyaW5nICIqIikK KysJICAgICAgIChlcV9hdHRyICJtb2RlIiAiREYiKQorKwkJIChjb25zdF9zdHJpbmcgIjEiKQor KwkgICAgICBdCisrCSAgICAgIChjb25zdF9zdHJpbmcgIjAiKSkpCisgICAgKHNldF9hdHRyICJh dGhsb25fZGVjb2RlIiAidmVjdG9yIikKKyAgICAoc2V0X2F0dHIgImFtZGZhbTEwX2RlY29kZSIg ImRpcmVjdCIpXSkKKyAKK0BAIC0xMzY1LDYgKzE0MDcsMTEgQEAgKGRlZmluZV9pbnNuICIqY21w ZnBfaV9zc2UiCisgICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5kOlNGIDEgIiIgIiIp CisgICAgICAgICAoY29uc3Rfc3RyaW5nICJTRiIpCisgICAgICAgICAoY29uc3Rfc3RyaW5nICJE RiIpKSkKKysgICAoc2V0X2F0dHIgInByZWZpeF9yZXAiICIwIikKKysgICAoc2V0IChhdHRyICJw cmVmaXhfZGF0YTE2IikKKysJKGlmX3RoZW5fZWxzZSAoZXFfYXR0ciAibW9kZSIgIkRGIikKKysJ CSAgICAgIChjb25zdF9zdHJpbmcgIjEiKQorKwkJICAgICAgKGNvbnN0X3N0cmluZyAiMCIpKSkK KyAgICAoc2V0X2F0dHIgImF0aGxvbl9kZWNvZGUiICJ2ZWN0b3IiKQorICAgIChzZXRfYXR0ciAi YW1kZmFtMTBfZGVjb2RlIiAiZGlyZWN0IildKQorIAorQEAgLTE0MDIsNiArMTQ0OSwxNyBAQCAo ZGVmaW5lX2luc24gIipjbXBmcF9pdV9taXhlZCIKKyAgICAgIChpZl90aGVuX2Vsc2UgKG1hdGNo X29wZXJhbmQ6U0YgMSAiIiAiIikKKyAgICAgICAgIChjb25zdF9zdHJpbmcgIlNGIikKKyAgICAg ICAgIChjb25zdF9zdHJpbmcgIkRGIikpKQorKyAgIChzZXQgKGF0dHIgInByZWZpeF9yZXAiKQor KwkoaWZfdGhlbl9lbHNlIChlcV9hdHRyICJ0eXBlIiAic3NlY29taSIpCisrCQkgICAgICAoY29u c3Rfc3RyaW5nICIwIikKKysJCSAgICAgIChjb25zdF9zdHJpbmcgIioiKSkpCisrICAgKHNldCAo YXR0ciAicHJlZml4X2RhdGExNiIpCisrCShjb25kIFsoZXFfYXR0ciAidHlwZSIgImZjbXAiKQor KwkJIChjb25zdF9zdHJpbmcgIioiKQorKwkgICAgICAgKGVxX2F0dHIgIm1vZGUiICJERiIpCisr CQkgKGNvbnN0X3N0cmluZyAiMSIpCisrCSAgICAgIF0KKysJICAgICAgKGNvbnN0X3N0cmluZyAi MCIpKSkKKyAgICAoc2V0X2F0dHIgImF0aGxvbl9kZWNvZGUiICJ2ZWN0b3IiKQorICAgIChzZXRf YXR0ciAiYW1kZmFtMTBfZGVjb2RlIiAiZGlyZWN0IildKQorIAorQEAgLTE0MTksNiArMTQ3Nywx MSBAQCAoZGVmaW5lX2luc24gIipjbXBmcF9pdV9zc2UiCisgICAgICAoaWZfdGhlbl9lbHNlICht YXRjaF9vcGVyYW5kOlNGIDEgIiIgIiIpCisgICAgICAgICAoY29uc3Rfc3RyaW5nICJTRiIpCisg ICAgICAgICAoY29uc3Rfc3RyaW5nICJERiIpKSkKKysgICAoc2V0X2F0dHIgInByZWZpeF9yZXAi ICIwIikKKysgICAoc2V0IChhdHRyICJwcmVmaXhfZGF0YTE2IikKKysJKGlmX3RoZW5fZWxzZSAo ZXFfYXR0ciAibW9kZSIgIkRGIikKKysJCSAgICAgIChjb25zdF9zdHJpbmcgIjEiKQorKwkJICAg ICAgKGNvbnN0X3N0cmluZyAiMCIpKSkKKyAgICAoc2V0X2F0dHIgImF0aGxvbl9kZWNvZGUiICJ2 ZWN0b3IiKQorICAgIChzZXRfYXR0ciAiYW1kZmFtMTBfZGVjb2RlIiAiZGlyZWN0IildKQorIAor QEAgLTE1OTQsNiArMTY1NywxMCBAQCAoZGVmaW5lX2luc24gIiptb3ZzaV8xIgorICAgICAgKGlm X3RoZW5fZWxzZSAoZXFfYXR0ciAiYWx0ZXJuYXRpdmUiICIwLDEsMiwzLDQsNSIpCisgICAgICAg IChjb25zdF9zdHJpbmcgIm9yaWciKQorICAgICAgICAoY29uc3Rfc3RyaW5nICJtYXliZV92ZXgi KSkpCisrICAgKHNldCAoYXR0ciAicHJlZml4X2RhdGExNiIpCisrICAgICAoaWZfdGhlbl9lbHNl IChhbmQgKGVxX2F0dHIgInR5cGUiICJzc2Vtb3YiKSAoZXFfYXR0ciAibW9kZSIgIlNJIikpCisr ICAgICAgIChjb25zdF9zdHJpbmcgIjEiKQorKyAgICAgICAoY29uc3Rfc3RyaW5nICIqIikpKQor ICAgIChzZXQgKGF0dHIgIm1vZGUiKQorICAgICAgKGNvbmQgWyhlcV9hdHRyICJhbHRlcm5hdGl2 ZSIgIjIsMyIpCisgCSAgICAgIChjb25zdF9zdHJpbmcgIkRJIikKK0BAIC0yMDg1LDcgKzIxNTIs NyBAQCAoZGVmaW5lX2luc24gIiptb3ZkaV9leHR6dl8xIgorICAgIlRBUkdFVF82NEJJVCIKKyAg ICJtb3Z6e2JsfHh9XHR7JWgxLCAlazB8JWswLCAlaDF9IgorICAgWyhzZXRfYXR0ciAidHlwZSIg Imltb3Z4IikKKy0gICAoc2V0X2F0dHIgIm1vZGUiICJESSIpXSkKKysgICAoc2V0X2F0dHIgIm1v ZGUiICJTSSIpXSkKKyAKKyAoZGVmaW5lX2luc24gIiptb3ZzaV9leHR6dl8xIgorICAgWyhzZXQg KG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1SIikKK0BAIC0yNDMzLDgg KzI1MDAsMTggQEAgKGRlZmluZV9pbnNuICIqbW92ZGlfMV9yZXg2NCIKKyAJICAgICAgKGNvbnN0 X3N0cmluZyAibGVhIikKKyAJICAgXQorIAkgICAoY29uc3Rfc3RyaW5nICJpbW92IikpKQorLSAg IChzZXRfYXR0ciAibW9kcm0iICIqLDAsMCwqLCosKiwqLCosKiwqLCosKiwqLCosKiwqLCosKiwq IikKKy0gICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIqLDQsOCwqLCosKiwqLCosKiwq LCosKiwqLCosKiwqLCosKiwqIikKKysgICAoc2V0IChhdHRyICJtb2RybSIpCisrICAgICAoaWZf dGhlbl9lbHNlCisrICAgICAgIChhbmQgKGVxX2F0dHIgImFsdGVybmF0aXZlIiAiMiIpIChlcV9h dHRyICJ0eXBlIiAiaW1vdiIpKQorKwkgKGNvbnN0X3N0cmluZyAiMCIpCisrCSAoY29uc3Rfc3Ry aW5nICIqIikpKQorKyAgIChzZXQgKGF0dHIgImxlbmd0aF9pbW1lZGlhdGUiKQorKyAgICAgKGlm X3RoZW5fZWxzZQorKyAgICAgICAoYW5kIChlcV9hdHRyICJhbHRlcm5hdGl2ZSIgIjIiKSAoZXFf YXR0ciAidHlwZSIgImltb3YiKSkKKysJIChjb25zdF9zdHJpbmcgIjgiKQorKwkgKGNvbnN0X3N0 cmluZyAiKiIpKSkKKysgICAoc2V0X2F0dHIgInByZWZpeF9yZXgiICIqLCosKiwqLCosKiwqLDEs KiwxLCosKiwqLCosKiwqLCosKiwqIikKKysgICAoc2V0X2F0dHIgInByZWZpeF9kYXRhMTYiICIq LCosKiwqLCosKiwqLCosKiwqLCosKiwqLCosKiwxLCosKiwqIikKKyAgICAoc2V0IChhdHRyICJw cmVmaXgiKQorICAgICAgKGlmX3RoZW5fZWxzZSAoZXFfYXR0ciAiYWx0ZXJuYXRpdmUiICIxMSwx MiwxMywxNCwxNSwxNiIpCisgICAgICAgIChjb25zdF9zdHJpbmcgIm1heWJlX3ZleCIpCitAQCAt MzAxOSw2ICszMDk2LDEwIEBAIChkZWZpbmVfaW5zbiAiKm1vdmRmX25vaW50ZWdlciIKKyAgICAg IChpZl90aGVuX2Vsc2UgKGVxX2F0dHIgImFsdGVybmF0aXZlIiAiMCwxLDIsMyw0IikKKyAgICAg ICAgKGNvbnN0X3N0cmluZyAib3JpZyIpCisgICAgICAgIChjb25zdF9zdHJpbmcgIm1heWJlX3Zl eCIpKSkKKysgICAoc2V0IChhdHRyICJwcmVmaXhfZGF0YTE2IikKKysgICAgIChpZl90aGVuX2Vs c2UgKGVxX2F0dHIgIm1vZGUiICJWMURGIikKKysgICAgICAgKGNvbnN0X3N0cmluZyAiMSIpCisr ICAgICAgIChjb25zdF9zdHJpbmcgIioiKSkpCisgICAgKHNldCAoYXR0ciAibW9kZSIpCisgICAg ICAgICAoY29uZCBbKGVxX2F0dHIgImFsdGVybmF0aXZlIiAiMCwxLDIiKQorIAkJIChjb25zdF9z dHJpbmcgIkRGIikKK0BAIC0zMTUzLDYgKzMyMzQsMTAgQEAgKGRlZmluZV9pbnNuICIqbW92ZGZf aW50ZWdlcl9yZXg2NCIKKyAgICAgIChpZl90aGVuX2Vsc2UgKGVxX2F0dHIgImFsdGVybmF0aXZl IiAiMCwxLDIsMyw0IikKKyAgICAgICAgKGNvbnN0X3N0cmluZyAib3JpZyIpCisgICAgICAgIChj b25zdF9zdHJpbmcgIm1heWJlX3ZleCIpKSkKKysgICAoc2V0IChhdHRyICJwcmVmaXhfZGF0YTE2 IikKKysgICAgIChpZl90aGVuX2Vsc2UgKGVxX2F0dHIgIm1vZGUiICJWMURGIikKKysgICAgICAg KGNvbnN0X3N0cmluZyAiMSIpCisrICAgICAgIChjb25zdF9zdHJpbmcgIioiKSkpCisgICAgKHNl dCAoYXR0ciAibW9kZSIpCisgICAgICAgICAoY29uZCBbKGVxX2F0dHIgImFsdGVybmF0aXZlIiAi MCwxLDIiKQorIAkJIChjb25zdF9zdHJpbmcgIkRGIikKK0BAIC0zMjczLDYgKzMzNTgsMTAgQEAg KGRlZmluZV9pbnNuICIqbW92ZGZfaW50ZWdlciIKKyAgICAgfQorIH0KKyAgIFsoc2V0X2F0dHIg InR5cGUiICJmbW92LGZtb3YsZm1vdixtdWx0aSxtdWx0aSxzc2Vsb2cxLHNzZW1vdixzc2Vtb3Ys c3NlbW92IikKKysgICAoc2V0IChhdHRyICJwcmVmaXhfZGF0YTE2IikKKysgICAgIChpZl90aGVu X2Vsc2UgKGVxX2F0dHIgIm1vZGUiICJWMURGIikKKysgICAgICAgKGNvbnN0X3N0cmluZyAiMSIp CisrICAgICAgIChjb25zdF9zdHJpbmcgIioiKSkpCisgICAgKHNldCAoYXR0ciAibW9kZSIpCisg ICAgICAgICAoY29uZCBbKGVxX2F0dHIgImFsdGVybmF0aXZlIiAiMCwxLDIiKQorIAkJIChjb25z dF9zdHJpbmcgIkRGIikKK0BAIC0zOTAzLDYgKzM5OTIsNyBAQCAoZGVmaW5lX2luc24gInplcm9f ZXh0ZW5kc2lkaTJfcmV4NjQiCisgICAgJXZtb3ZkXHR7JTEsICUwfCUwLCAlMX0iCisgICBbKHNl dF9hdHRyICJ0eXBlIiAiaW1vdngsaW1vdixtbXhtb3YsbW14bW92LHNzZW1vdixzc2Vtb3YiKQor ICAgIChzZXRfYXR0ciAicHJlZml4IiAib3JpZywqLG9yaWcsb3JpZyxtYXliZV92ZXgsbWF5YmVf dmV4IikKKysgICAoc2V0X2F0dHIgInByZWZpeF8wZiIgIjAsKiwqLCosKiwqIikKKyAgICAoc2V0 X2F0dHIgIm1vZGUiICJTSSxESSxESSxESSxUSSxUSSIpXSkKKyAKKyAoZGVmaW5lX3NwbGl0CitA QCAtMzkzNyw3ICs0MDI3LDcgQEAgKGRlZmluZV9pbnNuICJ6ZXJvX2V4dGVuZGhpZGkyIgorICAg IlRBUkdFVF82NEJJVCIKKyAgICJtb3Z6e3dsfHh9XHR7JTEsICVrMHwlazAsICUxfSIKKyAgIFso c2V0X2F0dHIgInR5cGUiICJpbW92eCIpCistICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0pCisr ICAgKHNldF9hdHRyICJtb2RlIiAiU0kiKV0pCisgCisgKGRlZmluZV9pbnNuICJ6ZXJvX2V4dGVu ZHFpZGkyIgorICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6REkgMCAicmVnaXN0ZXJfb3BlcmFuZCIg Ij1yIikKK0BAIC0zOTQ1LDcgKzQwMzUsNyBAQCAoZGVmaW5lX2luc24gInplcm9fZXh0ZW5kcWlk aTIiCisgICAiVEFSR0VUXzY0QklUIgorICAgIm1vdnp7Ymx8eH1cdHslMSwgJWswfCVrMCwgJTF9 IgorICAgWyhzZXRfYXR0ciAidHlwZSIgImltb3Z4IikKKy0gICAoc2V0X2F0dHIgIm1vZGUiICJE SSIpXSkKKysgICAoc2V0X2F0dHIgIm1vZGUiICJTSSIpXSkKKyAMCisgOzsgU2lnbiBleHRlbnNp b24gaW5zdHJ1Y3Rpb25zCisgCitAQCAtMzk3Nyw3ICs0MDY3LDcgQEAgKGRlZmluZV9pbnNuICJl eHRlbmRzaWRpMl9yZXg2NCIKKyAgICJUQVJHRVRfNjRCSVQiCisgICAiQAorICAgIHtjbHRxfGNk cWV9CistICAgbW92c3tscXx4fVx0eyUxLCUwfCUwLCAlMX0iCisrICAgbW92c3tscXx4fVx0eyUx LCAlMHwlMCwgJTF9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgImltb3Z4IikKKyAgICAoc2V0X2F0 dHIgIm1vZGUiICJESSIpCisgICAgKHNldF9hdHRyICJwcmVmaXhfMGYiICIwIikKK0BAIC0zOTg3 LDcgKzQwNzcsNyBAQCAoZGVmaW5lX2luc24gImV4dGVuZGhpZGkyIgorICAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6REkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKKyAJKHNpZ25fZXh0ZW5kOkRJ IChtYXRjaF9vcGVyYW5kOkhJIDEgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAicm0iKSkpXQorICAg IlRBUkdFVF82NEJJVCIKKy0gICJtb3Zze3dxfHh9XHR7JTEsJTB8JTAsICUxfSIKKysgICJtb3Zz e3dxfHh9XHR7JTEsICUwfCUwLCAlMX0iCisgICBbKHNldF9hdHRyICJ0eXBlIiAiaW1vdngiKQor ICAgIChzZXRfYXR0ciAibW9kZSIgIkRJIildKQorIAorQEAgLTM5OTUsNyArNDA4NSw3IEBAIChk ZWZpbmVfaW5zbiAiZXh0ZW5kcWlkaTIiCisgICBbKHNldCAobWF0Y2hfb3BlcmFuZDpESSAwICJy ZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQorIAkoc2lnbl9leHRlbmQ6REkgKG1hdGNoX29wZXJhbmQ6 UUkgMSAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJxbSIpKSldCisgICAiVEFSR0VUXzY0QklUIgor LSAgIm1vdnN7YnF8eH1cdHslMSwlMHwlMCwgJTF9IgorKyAgIm1vdnN7YnF8eH1cdHslMSwgJTB8 JTAsICUxfSIKKyAgICBbKHNldF9hdHRyICJ0eXBlIiAiaW1vdngiKQorICAgICAoc2V0X2F0dHIg Im1vZGUiICJESSIpXSkKKyAKK0BAIC00MDgzLDcgKzQxNzMsNyBAQCAoZGVmaW5lX2luc24gImV4 dGVuZGhpc2kyIgorICAgICBjYXNlIDA6CisgICAgICAgcmV0dXJuICJ7Y3d0bHxjd2RlfSI7Cisg ICAgIGRlZmF1bHQ6CistICAgICAgcmV0dXJuICJtb3Zze3dsfHh9XHR7JTEsJTB8JTAsICUxfSI7 CisrICAgICAgcmV0dXJuICJtb3Zze3dsfHh9XHR7JTEsICUwfCUwLCAlMX0iOworICAgICB9Cisg fQorICAgWyhzZXRfYXR0ciAidHlwZSIgImltb3Z4IikKK0BAIC00MTEwLDcgKzQyMDAsNyBAQCAo ZGVmaW5lX2luc24gIipleHRlbmRoaXNpMl96ZXh0IgorICAgICBjYXNlIDA6CisgICAgICAgcmV0 dXJuICJ7Y3d0bHxjd2RlfSI7CisgICAgIGRlZmF1bHQ6CistICAgICAgcmV0dXJuICJtb3Zze3ds fHh9XHR7JTEsJWswfCVrMCwgJTF9IjsKKysgICAgICByZXR1cm4gIm1vdnN7d2x8eH1cdHslMSwg JWswfCVrMCwgJTF9IjsKKyAgICAgfQorIH0KKyAgIFsoc2V0X2F0dHIgInR5cGUiICJpbW92eCIp CitAQCAtNDEzNiw3ICs0MjI2LDcgQEAgKGRlZmluZV9pbnNuICJleHRlbmRxaWhpMiIKKyAgICAg Y2FzZSAwOgorICAgICAgIHJldHVybiAie2NidHd8Y2J3fSI7CisgICAgIGRlZmF1bHQ6CistICAg ICAgcmV0dXJuICJtb3Zze2J3fHh9XHR7JTEsJTB8JTAsICUxfSI7CisrICAgICAgcmV0dXJuICJt b3Zze2J3fHh9XHR7JTEsICUwfCUwLCAlMX0iOworICAgICB9CisgfQorICAgWyhzZXRfYXR0ciAi dHlwZSIgImltb3Z4IikKK0BAIC00MTU2LDcgKzQyNDYsNyBAQCAoZGVmaW5lX2luc24gImV4dGVu ZHFpc2kyIgorICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIg Ij1yIikKKyAJKHNpZ25fZXh0ZW5kOlNJIChtYXRjaF9vcGVyYW5kOlFJIDEgIm5vbmltbWVkaWF0 ZV9vcGVyYW5kIiAicW0iKSkpXQorICAgIiIKKy0gICJtb3Zze2JsfHh9XHR7JTEsJTB8JTAsICUx fSIKKysgICJtb3Zze2JsfHh9XHR7JTEsICUwfCUwLCAlMX0iCisgICAgWyhzZXRfYXR0ciAidHlw ZSIgImltb3Z4IikKKyAgICAgKHNldF9hdHRyICJtb2RlIiAiU0kiKV0pCisgCitAQCAtNDE2NSw3 ICs0MjU1LDcgQEAgKGRlZmluZV9pbnNuICIqZXh0ZW5kcWlzaTJfemV4dCIKKyAJKHplcm9fZXh0 ZW5kOkRJCisgCSAgKHNpZ25fZXh0ZW5kOlNJIChtYXRjaF9vcGVyYW5kOlFJIDEgIm5vbmltbWVk aWF0ZV9vcGVyYW5kIiAicW0iKSkpKV0KKyAgICJUQVJHRVRfNjRCSVQiCistICAibW92c3tibHx4 fVx0eyUxLCVrMHwlazAsICUxfSIKKysgICJtb3Zze2JsfHh9XHR7JTEsICVrMHwlazAsICUxfSIK KyAgICBbKHNldF9hdHRyICJ0eXBlIiAiaW1vdngiKQorICAgICAoc2V0X2F0dHIgIm1vZGUiICJT SSIpXSkKKyAMCitAQCAtNDc3Myw2ICs0ODYzLDcgQEAgKGRlZmluZV9pbnNuICJmaXhfdHJ1bmM8 bW9kZT5kaV9zc2UiCisgICAiJXZjdnR0czxzc2Vtb2RlZnN1ZmZpeD4yc2l7cX1cdHslMSwgJTB8 JTAsICUxfSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2VpY3Z0IikKKyAgICAoc2V0X2F0dHIg InByZWZpeCIgIm1heWJlX3ZleCIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfcmV4IiAiMSIpCisg ICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+IikKKyAgICAoc2V0X2F0dHIgImF0aGxvbl9kZWNv ZGUiICJkb3VibGUsdmVjdG9yIikKKyAgICAoc2V0X2F0dHIgImFtZGZhbTEwX2RlY29kZSIgImRv dWJsZSxkb3VibGUiKV0pCitAQCAtNTA0Nyw3ICs1MTM4LDcgQEAgKGRlZmluZV9pbnNuICJ4ODZf Zm5zdGN3XzEiCisgCSh1bnNwZWM6SEkgWyhyZWc6SEkgRlBDUl9SRUcpXSBVTlNQRUNfRlNUQ1cp KV0KKyAgICJUQVJHRVRfODAzODciCisgICAiZm5zdGN3XHQlMCIKKy0gIFsoc2V0X2F0dHIgImxl bmd0aCIgIjIiKQorKyAgWyhzZXQgKGF0dHIgImxlbmd0aCIpIChzeW1ib2xfcmVmICJpeDg2X2F0 dHJfbGVuZ3RoX2FkZHJlc3NfZGVmYXVsdCAoaW5zbikgKyAyIikpCisgICAgKHNldF9hdHRyICJt b2RlIiAiSEkiKQorICAgIChzZXRfYXR0ciAidW5pdCIgImkzODciKV0pCisgCitAQCAtNTA1Niw3 ICs1MTQ3LDcgQEAgKGRlZmluZV9pbnNuICJ4ODZfZmxkY3dfMSIKKyAJKHVuc3BlYzpISSBbKG1h dGNoX29wZXJhbmQ6SEkgMCAibWVtb3J5X29wZXJhbmQiICJtIildIFVOU1BFQ19GTERDVykpXQor ICAgIlRBUkdFVF84MDM4NyIKKyAgICJmbGRjd1x0JTAiCistICBbKHNldF9hdHRyICJsZW5ndGgi ICIyIikKKysgIFsoc2V0IChhdHRyICJsZW5ndGgiKSAoc3ltYm9sX3JlZiAiaXg4Nl9hdHRyX2xl bmd0aF9hZGRyZXNzX2RlZmF1bHQgKGluc24pICsgMiIpKQorICAgIChzZXRfYXR0ciAibW9kZSIg IkhJIikKKyAgICAoc2V0X2F0dHIgInVuaXQiICJpMzg3IikKKyAgICAoc2V0X2F0dHIgImF0aGxv bl9kZWNvZGUiICJ2ZWN0b3IiKQorQEAgLTUyNzEsNiArNTM2MiwxMiBAQCAoZGVmaW5lX2luc24g IipmbG9hdDxTU0VNT0RFSTI0Om1vZGU+PE1PCisgICBbKHNldF9hdHRyICJ0eXBlIiAiZm1vdixz c2VpY3Z0LHNzZWljdnQiKQorICAgIChzZXRfYXR0ciAicHJlZml4IiAib3JpZyxtYXliZV92ZXgs bWF5YmVfdmV4IikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERUY6TU9ERT4iKQorKyAgIChz ZXQgKGF0dHIgInByZWZpeF9yZXgiKQorKyAgICAgKGlmX3RoZW5fZWxzZQorKyAgICAgICAoYW5k IChlcV9hdHRyICJwcmVmaXgiICJtYXliZV92ZXgiKQorKwkgICAgKG5lIChzeW1ib2xfcmVmICI8 U1NFTU9ERUkyNDpNT0RFPm1vZGUgPT0gREltb2RlIikgKGNvbnN0X2ludCAwKSkpCisrICAgICAg IChjb25zdF9zdHJpbmcgIjEiKQorKyAgICAgICAoY29uc3Rfc3RyaW5nICIqIikpKQorICAgIChz ZXRfYXR0ciAidW5pdCIgImkzODcsKiwqIikKKyAgICAoc2V0X2F0dHIgImF0aGxvbl9kZWNvZGUi ICIqLGRvdWJsZSxkaXJlY3QiKQorICAgIChzZXRfYXR0ciAiYW1kZmFtMTBfZGVjb2RlIiAiKix2 ZWN0b3IsZG91YmxlIikKK0BAIC01Mjg5LDYgKzUzODYsMTIgQEAgKGRlZmluZV9pbnNuICIqZmxv YXQ8U1NFTU9ERUkyNDptb2RlPjxNTworICAgWyhzZXRfYXR0ciAidHlwZSIgImZtb3Ysc3NlaWN2 dCIpCisgICAgKHNldF9hdHRyICJwcmVmaXgiICJvcmlnLG1heWJlX3ZleCIpCisgICAgKHNldF9h dHRyICJtb2RlIiAiPE1PREVGOk1PREU+IikKKysgICAoc2V0IChhdHRyICJwcmVmaXhfcmV4IikK KysgICAgIChpZl90aGVuX2Vsc2UKKysgICAgICAgKGFuZCAoZXFfYXR0ciAicHJlZml4IiAibWF5 YmVfdmV4IikKKysJICAgIChuZSAoc3ltYm9sX3JlZiAiPFNTRU1PREVJMjQ6TU9ERT5tb2RlID09 IERJbW9kZSIpIChjb25zdF9pbnQgMCkpKQorKyAgICAgICAoY29uc3Rfc3RyaW5nICIxIikKKysg ICAgICAgKGNvbnN0X3N0cmluZyAiKiIpKSkKKyAgICAoc2V0X2F0dHIgImF0aGxvbl9kZWNvZGUi ICIqLGRpcmVjdCIpCisgICAgKHNldF9hdHRyICJhbWRmYW0xMF9kZWNvZGUiICIqLGRvdWJsZSIp CisgICAgKHNldF9hdHRyICJmcF9pbnRfc3JjIiAidHJ1ZSIpXSkKK0BAIC01NDY1LDYgKzU1Njgs MTIgQEAgKGRlZmluZV9pbnNuICIqZmxvYXQ8U1NFTU9ERUkyNDptb2RlPjxNTworICAgWyhzZXRf YXR0ciAidHlwZSIgInNzZWljdnQiKQorICAgIChzZXRfYXR0ciAicHJlZml4IiAibWF5YmVfdmV4 IikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERUY6TU9ERT4iKQorKyAgIChzZXQgKGF0dHIg InByZWZpeF9yZXgiKQorKyAgICAgKGlmX3RoZW5fZWxzZQorKyAgICAgICAoYW5kIChlcV9hdHRy ICJwcmVmaXgiICJtYXliZV92ZXgiKQorKwkgICAgKG5lIChzeW1ib2xfcmVmICI8U1NFTU9ERUky NDpNT0RFPm1vZGUgPT0gREltb2RlIikgKGNvbnN0X2ludCAwKSkpCisrICAgICAgIChjb25zdF9z dHJpbmcgIjEiKQorKyAgICAgICAoY29uc3Rfc3RyaW5nICIqIikpKQorICAgIChzZXRfYXR0ciAi YXRobG9uX2RlY29kZSIgImRvdWJsZSxkaXJlY3QiKQorICAgIChzZXRfYXR0ciAiYW1kZmFtMTBf ZGVjb2RlIiAidmVjdG9yLGRvdWJsZSIpCisgICAgKHNldF9hdHRyICJmcF9pbnRfc3JjIiAidHJ1 ZSIpXSkKK0BAIC01NDk0LDYgKzU2MDMsMTIgQEAgKGRlZmluZV9pbnNuICIqZmxvYXQ8U1NFTU9E RUkyNDptb2RlPjxNTworICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWljdnQiKQorICAgIChzZXRf YXR0ciAicHJlZml4IiAibWF5YmVfdmV4IikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERUY6 TU9ERT4iKQorKyAgIChzZXQgKGF0dHIgInByZWZpeF9yZXgiKQorKyAgICAgKGlmX3RoZW5fZWxz ZQorKyAgICAgICAoYW5kIChlcV9hdHRyICJwcmVmaXgiICJtYXliZV92ZXgiKQorKwkgICAgKG5l IChzeW1ib2xfcmVmICI8U1NFTU9ERUkyNDpNT0RFPm1vZGUgPT0gREltb2RlIikgKGNvbnN0X2lu dCAwKSkpCisrICAgICAgIChjb25zdF9zdHJpbmcgIjEiKQorKyAgICAgICAoY29uc3Rfc3RyaW5n ICIqIikpKQorICAgIChzZXRfYXR0ciAiYXRobG9uX2RlY29kZSIgImRpcmVjdCIpCisgICAgKHNl dF9hdHRyICJhbWRmYW0xMF9kZWNvZGUiICJkb3VibGUiKQorICAgIChzZXRfYXR0ciAiZnBfaW50 X3NyYyIgInRydWUiKV0pCitAQCAtNjIwMCw2ICs2MzE1LDExIEBAIChkZWZpbmVfaW5zbiAiKmFk ZGRpXzFfcmV4NjQiCisgCSAgICAgIChjb25zdF9zdHJpbmcgImluY2RlYyIpCisgCSAgIF0KKyAJ ICAgKGNvbnN0X3N0cmluZyAiYWx1IikpKQorKyAgIChzZXQgKGF0dHIgImxlbmd0aF9pbW1lZGlh dGUiKQorKyAgICAgIChpZl90aGVuX2Vsc2UKKysJKGFuZCAoZXFfYXR0ciAidHlwZSIgImFsdSIp IChtYXRjaF9vcGVyYW5kIDIgImNvbnN0MTI4X29wZXJhbmQiICIiKSkKKysJKGNvbnN0X3N0cmlu ZyAiMSIpCisrCShjb25zdF9zdHJpbmcgIioiKSkpCisgICAgKHNldF9hdHRyICJtb2RlIiAiREki KV0pCisgCisgOzsgQ29udmVydCBsZWEgdG8gdGhlIGxlYSBwYXR0ZXJuIHRvIGF2b2lkIGZsYWdz IGRlcGVuZGVuY3kuCitAQCAtNjI2NCw2ICs2Mzg0LDExIEBAIChkZWZpbmVfaW5zbiAiKmFkZGRp XzJfcmV4NjQiCisgICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5kOkRJIDIgImluY2Rl Y19vcGVyYW5kIiAiIikKKyAJKGNvbnN0X3N0cmluZyAiaW5jZGVjIikKKyAJKGNvbnN0X3N0cmlu ZyAiYWx1IikpKQorKyAgIChzZXQgKGF0dHIgImxlbmd0aF9pbW1lZGlhdGUiKQorKyAgICAgIChp Zl90aGVuX2Vsc2UKKysJKGFuZCAoZXFfYXR0ciAidHlwZSIgImFsdSIpIChtYXRjaF9vcGVyYW5k IDIgImNvbnN0MTI4X29wZXJhbmQiICIiKSkKKysJKGNvbnN0X3N0cmluZyAiMSIpCisrCShjb25z dF9zdHJpbmcgIioiKSkpCisgICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0pCisgCisgKGRlZmlu ZV9pbnNuICIqYWRkZGlfM19yZXg2NCIKK0BAIC02MzEzLDYgKzY0MzgsMTEgQEAgKGRlZmluZV9p bnNuICIqYWRkZGlfM19yZXg2NCIKKyAgICAgIChpZl90aGVuX2Vsc2UgKG1hdGNoX29wZXJhbmQ6 REkgMiAiaW5jZGVjX29wZXJhbmQiICIiKQorIAkoY29uc3Rfc3RyaW5nICJpbmNkZWMiKQorIAko Y29uc3Rfc3RyaW5nICJhbHUiKSkpCisrICAgKHNldCAoYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIp CisrICAgICAgKGlmX3RoZW5fZWxzZQorKwkoYW5kIChlcV9hdHRyICJ0eXBlIiAiYWx1IikgKG1h dGNoX29wZXJhbmQgMiAiY29uc3QxMjhfb3BlcmFuZCIgIiIpKQorKwkoY29uc3Rfc3RyaW5nICIx IikKKysJKGNvbnN0X3N0cmluZyAiKiIpKSkKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJESSIpXSkK KyAKKyA7IEZvciBjb21wYXJpc29ucyBhZ2FpbnN0IDEsIC0xIGFuZCAxMjgsIHdlIG1heSBnZW5l cmF0ZSBiZXR0ZXIgY29kZQorQEAgLTYzNjAsNiArNjQ5MCwxMSBAQCAoZGVmaW5lX2luc24gIiph ZGRkaV80X3JleDY0IgorICAgICAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfb3BlcmFuZDpESSAyICJp bmNkZWNfb3BlcmFuZCIgIiIpCisgCShjb25zdF9zdHJpbmcgImluY2RlYyIpCisgCShjb25zdF9z dHJpbmcgImFsdSIpKSkKKysgICAoc2V0IChhdHRyICJsZW5ndGhfaW1tZWRpYXRlIikKKysgICAg ICAoaWZfdGhlbl9lbHNlCisrCShhbmQgKGVxX2F0dHIgInR5cGUiICJhbHUiKSAobWF0Y2hfb3Bl cmFuZCAyICJjb25zdDEyOF9vcGVyYW5kIiAiIikpCisrCShjb25zdF9zdHJpbmcgIjEiKQorKwko Y29uc3Rfc3RyaW5nICIqIikpKQorICAgIChzZXRfYXR0ciAibW9kZSIgIkRJIildKQorIAorIChk ZWZpbmVfaW5zbiAiKmFkZGRpXzVfcmV4NjQiCitAQCAtNjQwOSw2ICs2NTQ0LDExIEBAIChkZWZp bmVfaW5zbiAiKmFkZGRpXzVfcmV4NjQiCisgICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVy YW5kOkRJIDIgImluY2RlY19vcGVyYW5kIiAiIikKKyAJKGNvbnN0X3N0cmluZyAiaW5jZGVjIikK KyAJKGNvbnN0X3N0cmluZyAiYWx1IikpKQorKyAgIChzZXQgKGF0dHIgImxlbmd0aF9pbW1lZGlh dGUiKQorKyAgICAgIChpZl90aGVuX2Vsc2UKKysJKGFuZCAoZXFfYXR0ciAidHlwZSIgImFsdSIp IChtYXRjaF9vcGVyYW5kIDIgImNvbnN0MTI4X29wZXJhbmQiICIiKSkKKysJKGNvbnN0X3N0cmlu ZyAiMSIpCisrCShjb25zdF9zdHJpbmcgIioiKSkpCisgICAgKHNldF9hdHRyICJtb2RlIiAiREki KV0pCisgCisgCitAQCAtNjQ2OSw2ICs2NjA5LDExIEBAIChkZWZpbmVfaW5zbiAiKmFkZHNpXzEi CisgCSAgICAgIChjb25zdF9zdHJpbmcgImluY2RlYyIpCisgCSAgIF0KKyAJICAgKGNvbnN0X3N0 cmluZyAiYWx1IikpKQorKyAgIChzZXQgKGF0dHIgImxlbmd0aF9pbW1lZGlhdGUiKQorKyAgICAg IChpZl90aGVuX2Vsc2UKKysJKGFuZCAoZXFfYXR0ciAidHlwZSIgImFsdSIpIChtYXRjaF9vcGVy YW5kIDIgImNvbnN0MTI4X29wZXJhbmQiICIiKSkKKysJKGNvbnN0X3N0cmluZyAiMSIpCisrCShj b25zdF9zdHJpbmcgIioiKSkpCisgICAgKHNldF9hdHRyICJtb2RlIiAiU0kiKV0pCisgCisgOzsg Q29udmVydCBsZWEgdG8gdGhlIGxlYSBwYXR0ZXJuIHRvIGF2b2lkIGZsYWdzIGRlcGVuZGVuY3ku CitAQCAtNjU0OSw2ICs2Njk0LDExIEBAIChkZWZpbmVfaW5zbiAiYWRkc2lfMV96ZXh0IgorIAkg ICAgICAoY29uc3Rfc3RyaW5nICJpbmNkZWMiKQorIAkgICBdCisgCSAgIChjb25zdF9zdHJpbmcg ImFsdSIpKSkKKysgICAoc2V0IChhdHRyICJsZW5ndGhfaW1tZWRpYXRlIikKKysgICAgICAoaWZf dGhlbl9lbHNlCisrCShhbmQgKGVxX2F0dHIgInR5cGUiICJhbHUiKSAobWF0Y2hfb3BlcmFuZCAy ICJjb25zdDEyOF9vcGVyYW5kIiAiIikpCisrCShjb25zdF9zdHJpbmcgIjEiKQorKwkoY29uc3Rf c3RyaW5nICIqIikpKQorICAgIChzZXRfYXR0ciAibW9kZSIgIlNJIildKQorIAorIDs7IENvbnZl cnQgbGVhIHRvIHRoZSBsZWEgcGF0dGVybiB0byBhdm9pZCBmbGFncyBkZXBlbmRlbmN5LgorQEAg LTY2MTIsNiArNjc2MiwxMSBAQCAoZGVmaW5lX2luc24gIiphZGRzaV8yIgorICAgICAgKGlmX3Ro ZW5fZWxzZSAobWF0Y2hfb3BlcmFuZDpTSSAyICJpbmNkZWNfb3BlcmFuZCIgIiIpCisgCShjb25z dF9zdHJpbmcgImluY2RlYyIpCisgCShjb25zdF9zdHJpbmcgImFsdSIpKSkKKysgICAoc2V0IChh dHRyICJsZW5ndGhfaW1tZWRpYXRlIikKKysgICAgICAoaWZfdGhlbl9lbHNlCisrCShhbmQgKGVx X2F0dHIgInR5cGUiICJhbHUiKSAobWF0Y2hfb3BlcmFuZCAyICJjb25zdDEyOF9vcGVyYW5kIiAi IikpCisrCShjb25zdF9zdHJpbmcgIjEiKQorKwkoY29uc3Rfc3RyaW5nICIqIikpKQorICAgIChz ZXRfYXR0ciAibW9kZSIgIlNJIildKQorIAorIDs7IFNlZSBjb21tZW50IGZvciBhZGRzaV8xX3pl eHQgd2h5IHdlIGRvIHVzZSBub25pbW1lZGlhdGVfb3BlcmFuZAorQEAgLTY2NTgsNiArNjgxMywx MSBAQCAoZGVmaW5lX2luc24gIiphZGRzaV8yX3pleHQiCisgICAgICAoaWZfdGhlbl9lbHNlICht YXRjaF9vcGVyYW5kOlNJIDIgImluY2RlY19vcGVyYW5kIiAiIikKKyAJKGNvbnN0X3N0cmluZyAi aW5jZGVjIikKKyAJKGNvbnN0X3N0cmluZyAiYWx1IikpKQorKyAgIChzZXQgKGF0dHIgImxlbmd0 aF9pbW1lZGlhdGUiKQorKyAgICAgIChpZl90aGVuX2Vsc2UKKysJKGFuZCAoZXFfYXR0ciAidHlw ZSIgImFsdSIpIChtYXRjaF9vcGVyYW5kIDIgImNvbnN0MTI4X29wZXJhbmQiICIiKSkKKysJKGNv bnN0X3N0cmluZyAiMSIpCisrCShjb25zdF9zdHJpbmcgIioiKSkpCisgICAgKHNldF9hdHRyICJt b2RlIiAiU0kiKV0pCisgCisgKGRlZmluZV9pbnNuICIqYWRkc2lfMyIKK0BAIC02NzAyLDYgKzY4 NjIsMTEgQEAgKGRlZmluZV9pbnNuICIqYWRkc2lfMyIKKyAgICAgIChpZl90aGVuX2Vsc2UgKG1h dGNoX29wZXJhbmQ6U0kgMiAiaW5jZGVjX29wZXJhbmQiICIiKQorIAkoY29uc3Rfc3RyaW5nICJp bmNkZWMiKQorIAkoY29uc3Rfc3RyaW5nICJhbHUiKSkpCisrICAgKHNldCAoYXR0ciAibGVuZ3Ro X2ltbWVkaWF0ZSIpCisrICAgICAgKGlmX3RoZW5fZWxzZQorKwkoYW5kIChlcV9hdHRyICJ0eXBl IiAiYWx1IikgKG1hdGNoX29wZXJhbmQgMiAiY29uc3QxMjhfb3BlcmFuZCIgIiIpKQorKwkoY29u c3Rfc3RyaW5nICIxIikKKysJKGNvbnN0X3N0cmluZyAiKiIpKSkKKyAgICAoc2V0X2F0dHIgIm1v ZGUiICJTSSIpXSkKKyAKKyA7OyBTZWUgY29tbWVudCBmb3IgYWRkc2lfMV96ZXh0IHdoeSB3ZSBk byB1c2Ugbm9uaW1tZWRpYXRlX29wZXJhbmQKK0BAIC02NzQ2LDYgKzY5MTEsMTEgQEAgKGRlZmlu ZV9pbnNuICIqYWRkc2lfM196ZXh0IgorICAgICAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfb3BlcmFu ZDpTSSAyICJpbmNkZWNfb3BlcmFuZCIgIiIpCisgCShjb25zdF9zdHJpbmcgImluY2RlYyIpCisg CShjb25zdF9zdHJpbmcgImFsdSIpKSkKKysgICAoc2V0IChhdHRyICJsZW5ndGhfaW1tZWRpYXRl IikKKysgICAgICAoaWZfdGhlbl9lbHNlCisrCShhbmQgKGVxX2F0dHIgInR5cGUiICJhbHUiKSAo bWF0Y2hfb3BlcmFuZCAyICJjb25zdDEyOF9vcGVyYW5kIiAiIikpCisrCShjb25zdF9zdHJpbmcg IjEiKQorKwkoY29uc3Rfc3RyaW5nICIqIikpKQorICAgIChzZXRfYXR0ciAibW9kZSIgIlNJIild KQorIAorIDsgRm9yIGNvbXBhcmlzb25zIGFnYWluc3QgMSwgLTEgYW5kIDEyOCwgd2UgbWF5IGdl bmVyYXRlIGJldHRlciBjb2RlCitAQCAtNjc5MSw2ICs2OTYxLDExIEBAIChkZWZpbmVfaW5zbiAi KmFkZHNpXzQiCisgICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5kOlNJIDIgImluY2Rl Y19vcGVyYW5kIiAiIikKKyAJKGNvbnN0X3N0cmluZyAiaW5jZGVjIikKKyAJKGNvbnN0X3N0cmlu ZyAiYWx1IikpKQorKyAgIChzZXQgKGF0dHIgImxlbmd0aF9pbW1lZGlhdGUiKQorKyAgICAgIChp Zl90aGVuX2Vsc2UKKysJKGFuZCAoZXFfYXR0ciAidHlwZSIgImFsdSIpIChtYXRjaF9vcGVyYW5k IDIgImNvbnN0MTI4X29wZXJhbmQiICIiKSkKKysJKGNvbnN0X3N0cmluZyAiMSIpCisrCShjb25z dF9zdHJpbmcgIioiKSkpCisgICAgKHNldF9hdHRyICJtb2RlIiAiU0kiKV0pCisgCisgKGRlZmlu ZV9pbnNuICIqYWRkc2lfNSIKK0BAIC02ODM3LDYgKzcwMTIsMTEgQEAgKGRlZmluZV9pbnNuICIq YWRkc2lfNSIKKyAgICAgIChpZl90aGVuX2Vsc2UgKG1hdGNoX29wZXJhbmQ6U0kgMiAiaW5jZGVj X29wZXJhbmQiICIiKQorIAkoY29uc3Rfc3RyaW5nICJpbmNkZWMiKQorIAkoY29uc3Rfc3RyaW5n ICJhbHUiKSkpCisrICAgKHNldCAoYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIpCisrICAgICAgKGlm X3RoZW5fZWxzZQorKwkoYW5kIChlcV9hdHRyICJ0eXBlIiAiYWx1IikgKG1hdGNoX29wZXJhbmQg MiAiY29uc3QxMjhfb3BlcmFuZCIgIiIpKQorKwkoY29uc3Rfc3RyaW5nICIxIikKKysJKGNvbnN0 X3N0cmluZyAiKiIpKSkKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJTSSIpXSkKKyAKKyAoZGVmaW5l X2V4cGFuZCAiYWRkaGkzIgorQEAgLTY4OTEsNiArNzA3MSwxMSBAQCAoZGVmaW5lX2luc24gIiph ZGRoaV8xX2xlYSIKKyAJKGlmX3RoZW5fZWxzZSAobWF0Y2hfb3BlcmFuZDpISSAyICJpbmNkZWNf b3BlcmFuZCIgIiIpCisgCSAgIChjb25zdF9zdHJpbmcgImluY2RlYyIpCisgCSAgIChjb25zdF9z dHJpbmcgImFsdSIpKSkpCisrICAgKHNldCAoYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIpCisrICAg ICAgKGlmX3RoZW5fZWxzZQorKwkoYW5kIChlcV9hdHRyICJ0eXBlIiAiYWx1IikgKG1hdGNoX29w ZXJhbmQgMiAiY29uc3QxMjhfb3BlcmFuZCIgIiIpKQorKwkoY29uc3Rfc3RyaW5nICIxIikKKysJ KGNvbnN0X3N0cmluZyAiKiIpKSkKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJISSxISSxTSSIpXSkK KyAKKyAoZGVmaW5lX2luc24gIiphZGRoaV8xIgorQEAgLTY5MzAsNiArNzExNSwxMSBAQCAoZGVm aW5lX2luc24gIiphZGRoaV8xIgorICAgICAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfb3BlcmFuZDpI SSAyICJpbmNkZWNfb3BlcmFuZCIgIiIpCisgCShjb25zdF9zdHJpbmcgImluY2RlYyIpCisgCShj b25zdF9zdHJpbmcgImFsdSIpKSkKKysgICAoc2V0IChhdHRyICJsZW5ndGhfaW1tZWRpYXRlIikK KysgICAgICAoaWZfdGhlbl9lbHNlCisrCShhbmQgKGVxX2F0dHIgInR5cGUiICJhbHUiKSAobWF0 Y2hfb3BlcmFuZCAyICJjb25zdDEyOF9vcGVyYW5kIiAiIikpCisrCShjb25zdF9zdHJpbmcgIjEi KQorKwkoY29uc3Rfc3RyaW5nICIqIikpKQorICAgIChzZXRfYXR0ciAibW9kZSIgIkhJIildKQor IAorIChkZWZpbmVfaW5zbiAiKmFkZGhpXzIiCitAQCAtNjk3Miw2ICs3MTYyLDExIEBAIChkZWZp bmVfaW5zbiAiKmFkZGhpXzIiCisgICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5kOkhJ IDIgImluY2RlY19vcGVyYW5kIiAiIikKKyAJKGNvbnN0X3N0cmluZyAiaW5jZGVjIikKKyAJKGNv bnN0X3N0cmluZyAiYWx1IikpKQorKyAgIChzZXQgKGF0dHIgImxlbmd0aF9pbW1lZGlhdGUiKQor KyAgICAgIChpZl90aGVuX2Vsc2UKKysJKGFuZCAoZXFfYXR0ciAidHlwZSIgImFsdSIpIChtYXRj aF9vcGVyYW5kIDIgImNvbnN0MTI4X29wZXJhbmQiICIiKSkKKysJKGNvbnN0X3N0cmluZyAiMSIp CisrCShjb25zdF9zdHJpbmcgIioiKSkpCisgICAgKHNldF9hdHRyICJtb2RlIiAiSEkiKV0pCisg CisgKGRlZmluZV9pbnNuICIqYWRkaGlfMyIKK0BAIC03MDExLDYgKzcyMDYsMTEgQEAgKGRlZmlu ZV9pbnNuICIqYWRkaGlfMyIKKyAgICAgIChpZl90aGVuX2Vsc2UgKG1hdGNoX29wZXJhbmQ6SEkg MiAiaW5jZGVjX29wZXJhbmQiICIiKQorIAkoY29uc3Rfc3RyaW5nICJpbmNkZWMiKQorIAkoY29u c3Rfc3RyaW5nICJhbHUiKSkpCisrICAgKHNldCAoYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIpCisr ICAgICAgKGlmX3RoZW5fZWxzZQorKwkoYW5kIChlcV9hdHRyICJ0eXBlIiAiYWx1IikgKG1hdGNo X29wZXJhbmQgMiAiY29uc3QxMjhfb3BlcmFuZCIgIiIpKQorKwkoY29uc3Rfc3RyaW5nICIxIikK KysJKGNvbnN0X3N0cmluZyAiKiIpKSkKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJISSIpXSkKKyAK KyA7IFNlZSBjb21tZW50cyBhYm92ZSBhZGRzaV80IGZvciBkZXRhaWxzLgorQEAgLTcwNDksNyAr NzI0OSwxMiBAQCAoZGVmaW5lX2luc24gIiphZGRoaV80IgorICAgICAgKGlmX3RoZW5fZWxzZSAo bWF0Y2hfb3BlcmFuZDpISSAyICJpbmNkZWNfb3BlcmFuZCIgIiIpCisgCShjb25zdF9zdHJpbmcg ImluY2RlYyIpCisgCShjb25zdF9zdHJpbmcgImFsdSIpKSkKKy0gICAoc2V0X2F0dHIgIm1vZGUi ICJTSSIpXSkKKysgICAoc2V0IChhdHRyICJsZW5ndGhfaW1tZWRpYXRlIikKKysgICAgICAoaWZf dGhlbl9lbHNlCisrCShhbmQgKGVxX2F0dHIgInR5cGUiICJhbHUiKSAobWF0Y2hfb3BlcmFuZCAy ICJjb25zdDEyOF9vcGVyYW5kIiAiIikpCisrCShjb25zdF9zdHJpbmcgIjEiKQorKwkoY29uc3Rf c3RyaW5nICIqIikpKQorKyAgIChzZXRfYXR0ciAibW9kZSIgIkhJIildKQorIAorIAorIChkZWZp bmVfaW5zbiAiKmFkZGhpXzUiCitAQCAtNzA5MSw2ICs3Mjk2LDExIEBAIChkZWZpbmVfaW5zbiAi KmFkZGhpXzUiCisgICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5kOkhJIDIgImluY2Rl Y19vcGVyYW5kIiAiIikKKyAJKGNvbnN0X3N0cmluZyAiaW5jZGVjIikKKyAJKGNvbnN0X3N0cmlu ZyAiYWx1IikpKQorKyAgIChzZXQgKGF0dHIgImxlbmd0aF9pbW1lZGlhdGUiKQorKyAgICAgIChp Zl90aGVuX2Vsc2UKKysJKGFuZCAoZXFfYXR0ciAidHlwZSIgImFsdSIpIChtYXRjaF9vcGVyYW5k IDIgImNvbnN0MTI4X29wZXJhbmQiICIiKSkKKysJKGNvbnN0X3N0cmluZyAiMSIpCisrCShjb25z dF9zdHJpbmcgIioiKSkpCisgICAgKHNldF9hdHRyICJtb2RlIiAiSEkiKV0pCisgCisgKGRlZmlu ZV9leHBhbmQgImFkZHFpMyIKK0BAIC03MTQ5LDYgKzczNTksMTEgQEAgKGRlZmluZV9pbnNuICIq YWRkcWlfMV9sZWEiCisgCShpZl90aGVuX2Vsc2UgKG1hdGNoX29wZXJhbmQ6UUkgMiAiaW5jZGVj X29wZXJhbmQiICIiKQorIAkgICAoY29uc3Rfc3RyaW5nICJpbmNkZWMiKQorIAkgICAoY29uc3Rf c3RyaW5nICJhbHUiKSkpKQorKyAgIChzZXQgKGF0dHIgImxlbmd0aF9pbW1lZGlhdGUiKQorKyAg ICAgIChpZl90aGVuX2Vsc2UKKysJKGFuZCAoZXFfYXR0ciAidHlwZSIgImFsdSIpIChtYXRjaF9v cGVyYW5kIDIgImNvbnN0MTI4X29wZXJhbmQiICIiKSkKKysJKGNvbnN0X3N0cmluZyAiMSIpCisr CShjb25zdF9zdHJpbmcgIioiKSkpCisgICAgKHNldF9hdHRyICJtb2RlIiAiUUksUUksU0ksU0ki KV0pCisgCisgKGRlZmluZV9pbnNuICIqYWRkcWlfMSIKK0BAIC03MTk1LDYgKzc0MTAsMTEgQEAg KGRlZmluZV9pbnNuICIqYWRkcWlfMSIKKyAgICAgIChpZl90aGVuX2Vsc2UgKG1hdGNoX29wZXJh bmQ6UUkgMiAiaW5jZGVjX29wZXJhbmQiICIiKQorIAkoY29uc3Rfc3RyaW5nICJpbmNkZWMiKQor IAkoY29uc3Rfc3RyaW5nICJhbHUiKSkpCisrICAgKHNldCAoYXR0ciAibGVuZ3RoX2ltbWVkaWF0 ZSIpCisrICAgICAgKGlmX3RoZW5fZWxzZQorKwkoYW5kIChlcV9hdHRyICJ0eXBlIiAiYWx1Iikg KG1hdGNoX29wZXJhbmQgMiAiY29uc3QxMjhfb3BlcmFuZCIgIiIpKQorKwkoY29uc3Rfc3RyaW5n ICIxIikKKysJKGNvbnN0X3N0cmluZyAiKiIpKSkKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJRSSxR SSxTSSIpXSkKKyAKKyAoZGVmaW5lX2luc24gIiphZGRxaV8xX3NscCIKK0BAIC03NDMwLDYgKzc2 NTAsNyBAQCAoZGVmaW5lX2luc24gImFkZHFpX2V4dF8xIgorICAgICAgKGlmX3RoZW5fZWxzZSAo bWF0Y2hfb3BlcmFuZDpRSSAyICJpbmNkZWNfb3BlcmFuZCIgIiIpCisgCShjb25zdF9zdHJpbmcg ImluY2RlYyIpCisgCShjb25zdF9zdHJpbmcgImFsdSIpKSkKKysgICAoc2V0X2F0dHIgIm1vZHJt IiAiMSIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiUUkiKV0pCisgCisgKGRlZmluZV9pbnNuICIq YWRkcWlfZXh0XzFfcmV4NjQiCitAQCAtNzQ2Niw2ICs3Njg3LDcgQEAgKGRlZmluZV9pbnNuICIq YWRkcWlfZXh0XzFfcmV4NjQiCisgICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5kOlFJ IDIgImluY2RlY19vcGVyYW5kIiAiIikKKyAJKGNvbnN0X3N0cmluZyAiaW5jZGVjIikKKyAJKGNv bnN0X3N0cmluZyAiYWx1IikpKQorKyAgIChzZXRfYXR0ciAibW9kcm0iICIxIikKKyAgICAoc2V0 X2F0dHIgIm1vZGUiICJRSSIpXSkKKyAKKyAoZGVmaW5lX2luc24gIiphZGRxaV9leHRfMiIKK0BA IC04OTI1LDYgKzkxNDcsNyBAQCAoZGVmaW5lX2luc24gIip0ZXN0cWlfZXh0XzAiCisgICBbKHNl dF9hdHRyICJ0eXBlIiAidGVzdCIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiUUkiKQorICAgIChz ZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQorKyAgIChzZXRfYXR0ciAibW9kcm0iICIx IikKKyAgICAoc2V0X2F0dHIgInBlbnRfcGFpciIgIm5wIildKQorIAorIChkZWZpbmVfaW5zbiAi KnRlc3RxaV9leHRfMSIKK0BAIC05MTUxLDkgKzkzNzQsOSBAQCAoZGVmaW5lX2luc24gIiphbmRk aV8xX3JleDY0IgorIAorIAlvcGVyYW5kc1sxXSA9IGdlbl9sb3dwYXJ0IChtb2RlLCBvcGVyYW5k c1sxXSk7CisgCWlmIChtb2RlID09IFFJbW9kZSkKKy0JICByZXR1cm4gIm1vdnp7YnF8eH1cdHsl MSwlMHwlMCwgJTF9IjsKKysJICByZXR1cm4gIm1vdnp7Ymx8eH1cdHslMSwgJWswfCVrMCwgJTF9 IjsKKyAJZWxzZQorLQkgIHJldHVybiAibW92ent3cXx4fVx0eyUxLCUwfCUwLCAlMX0iOworKwkg IHJldHVybiAibW92ent3bHx4fVx0eyUxLCAlazB8JWswLCAlMX0iOworICAgICAgIH0KKyAKKyAg ICAgZGVmYXVsdDoKK0BAIC05MTY2LDcgKzkzODksMTQgQEAgKGRlZmluZV9pbnNuICIqYW5kZGlf MV9yZXg2NCIKKyB9CisgICBbKHNldF9hdHRyICJ0eXBlIiAiYWx1LGFsdSxhbHUsaW1vdngiKQor ICAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIiosKiwqLDAiKQorLSAgIChzZXRfYXR0 ciAibW9kZSIgIlNJLERJLERJLERJIildKQorKyAgIChzZXQgKGF0dHIgInByZWZpeF9yZXgiKQor KyAgICAgKGlmX3RoZW5fZWxzZQorKyAgICAgICAoYW5kIChlcV9hdHRyICJ0eXBlIiAiaW1vdngi KQorKwkgICAgKGFuZCAobmUgKHN5bWJvbF9yZWYgIklOVFZBTCAob3BlcmFuZHNbMl0pID09IDB4 ZmYiKSAoY29uc3RfaW50IDApKQorKwkJIChtYXRjaF9vcGVyYW5kIDEgImV4dF9RSXJlZ19ub21v ZGVfb3BlcmFuZCIgIiIpKSkKKysgICAgICAgKGNvbnN0X3N0cmluZyAiMSIpCisrICAgICAgIChj b25zdF9zdHJpbmcgIioiKSkpCisrICAgKHNldF9hdHRyICJtb2RlIiAiU0ksREksREksU0kiKV0p CisgCisgKGRlZmluZV9pbnNuICIqYW5kZGlfMiIKKyAgIFsoc2V0IChyZWcgRkxBR1NfUkVHKQor QEAgLTkyMTUsOSArOTQ0NSw5IEBAIChkZWZpbmVfaW5zbiAiKmFuZHNpXzEiCisgCisgCW9wZXJh bmRzWzFdID0gZ2VuX2xvd3BhcnQgKG1vZGUsIG9wZXJhbmRzWzFdKTsKKyAJaWYgKG1vZGUgPT0g UUltb2RlKQorLQkgIHJldHVybiAibW92entibHx4fVx0eyUxLCUwfCUwLCAlMX0iOworKwkgIHJl dHVybiAibW92entibHx4fVx0eyUxLCAlMHwlMCwgJTF9IjsKKyAJZWxzZQorLQkgIHJldHVybiAi bW92ent3bHx4fVx0eyUxLCUwfCUwLCAlMX0iOworKwkgIHJldHVybiAibW92ent3bHx4fVx0eyUx LCAlMHwlMCwgJTF9IjsKKyAgICAgICB9CisgCisgICAgIGRlZmF1bHQ6CitAQCAtOTIyNiw2ICs5 NDU2LDEzIEBAIChkZWZpbmVfaW5zbiAiKmFuZHNpXzEiCisgICAgIH0KKyB9CisgICBbKHNldF9h dHRyICJ0eXBlIiAiYWx1LGFsdSxpbW92eCIpCisrICAgKHNldCAoYXR0ciAicHJlZml4X3JleCIp CisrICAgICAoaWZfdGhlbl9lbHNlCisrICAgICAgIChhbmQgKGVxX2F0dHIgInR5cGUiICJpbW92 eCIpCisrCSAgICAoYW5kIChuZSAoc3ltYm9sX3JlZiAiSU5UVkFMIChvcGVyYW5kc1syXSkgPT0g MHhmZiIpIChjb25zdF9pbnQgMCkpCisrCQkgKG1hdGNoX29wZXJhbmQgMSAiZXh0X1FJcmVnX25v bW9kZV9vcGVyYW5kIiAiIikpKQorKyAgICAgICAoY29uc3Rfc3RyaW5nICIxIikKKysgICAgICAg KGNvbnN0X3N0cmluZyAiKiIpKSkKKyAgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIq LCosMCIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiU0kiKV0pCisgCitAQCAtOTMzNCw2ICs5NTcx LDEyIEBAIChkZWZpbmVfaW5zbiAiKmFuZGhpXzEiCisgfQorICAgWyhzZXRfYXR0ciAidHlwZSIg ImFsdSxhbHUsaW1vdngiKQorICAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIiosKiww IikKKysgICAoc2V0IChhdHRyICJwcmVmaXhfcmV4IikKKysgICAgIChpZl90aGVuX2Vsc2UKKysg ICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgImltb3Z4IikKKysJICAgIChtYXRjaF9vcGVyYW5k IDEgImV4dF9RSXJlZ19ub21vZGVfb3BlcmFuZCIgIiIpKQorKyAgICAgICAoY29uc3Rfc3RyaW5n ICIxIikKKysgICAgICAgKGNvbnN0X3N0cmluZyAiKiIpKSkKKyAgICAoc2V0X2F0dHIgIm1vZGUi ICJISSxISSxTSSIpXSkKKyAKKyAoZGVmaW5lX2luc24gIiphbmRoaV8yIgorQEAgLTk0NTMsNiAr OTY5Niw3IEBAIChkZWZpbmVfaW5zbiAiYW5kcWlfZXh0XzAiCisgICAiYW5ke2J9XHR7JTIsICVo MHwlaDAsICUyfSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJhbHUiKQorICAgIChzZXRfYXR0ciAi bGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQorKyAgIChzZXRfYXR0ciAibW9kcm0iICIxIikKKyAgICAo c2V0X2F0dHIgIm1vZGUiICJRSSIpXSkKKyAKKyA7OyBHZW5lcmF0ZWQgYnkgcGVlcGhvbGUgdHJh bnNsYXRpbmcgdGVzdCB0byBhbmQuICBUaGlzIHNob3dzIHVwCitAQCAtOTQ4MSw2ICs5NzI1LDcg QEAgKGRlZmluZV9pbnNuICIqYW5kcWlfZXh0XzBfY2MiCisgICAiYW5ke2J9XHR7JTIsICVoMHwl aDAsICUyfSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJhbHUiKQorICAgIChzZXRfYXR0ciAibGVu Z3RoX2ltbWVkaWF0ZSIgIjEiKQorKyAgIChzZXRfYXR0ciAibW9kcm0iICIxIikKKyAgICAoc2V0 X2F0dHIgIm1vZGUiICJRSSIpXSkKKyAKKyAoZGVmaW5lX2luc24gIiphbmRxaV9leHRfMSIKK0BA IC05ODU1LDYgKzEwMTAwLDcgQEAgKGRlZmluZV9pbnNuICIqaW9ycWlfZXh0XzAiCisgICAib3J7 Yn1cdHslMiwgJWgwfCVoMCwgJTJ9IgorICAgWyhzZXRfYXR0ciAidHlwZSIgImFsdSIpCisgICAg KHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisrICAgKHNldF9hdHRyICJtb2RybSIg IjEiKQorICAgIChzZXRfYXR0ciAibW9kZSIgIlFJIildKQorIAorIChkZWZpbmVfaW5zbiAiKmlv cnFpX2V4dF8xIgorQEAgLTEwMTg1LDYgKzEwNDMxLDcgQEAgKGRlZmluZV9pbnNuICIqeG9ycWlf ZXh0XzAiCisgICAieG9ye2J9XHR7JTIsICVoMHwlaDAsICUyfSIKKyAgIFsoc2V0X2F0dHIgInR5 cGUiICJhbHUiKQorICAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQorKyAgIChz ZXRfYXR0ciAibW9kcm0iICIxIikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJRSSIpXSkKKyAKKyAo ZGVmaW5lX2luc24gIip4b3JxaV9leHRfMSIKK0BAIC0xMDMwMyw2ICsxMDU1MCw3IEBAIChkZWZp bmVfaW5zbiAiKnhvcnFpX2NjX2V4dF8xIgorICAgIiFUQVJHRVRfNjRCSVQgJiYgaXg4Nl9tYXRj aF9jY21vZGUgKGluc24sIENDTk9tb2RlKSIKKyAgICJ4b3J7Yn1cdHslMiwgJWgwfCVoMCwgJTJ9 IgorICAgWyhzZXRfYXR0ciAidHlwZSIgImFsdSIpCisrICAgKHNldF9hdHRyICJtb2RybSIgIjEi KQorICAgIChzZXRfYXR0ciAibW9kZSIgIlFJIildKQorIAorIChkZWZpbmVfaW5zbiAiKnhvcnFp X2NjX2V4dF8xX3JleDY0IgorQEAgLTEwMzI0LDYgKzEwNTcyLDcgQEAgKGRlZmluZV9pbnNuICIq eG9ycWlfY2NfZXh0XzFfcmV4NjQiCisgICAiVEFSR0VUXzY0QklUICYmIGl4ODZfbWF0Y2hfY2Nt b2RlIChpbnNuLCBDQ05PbW9kZSkiCisgICAieG9ye2J9XHR7JTIsICVoMHwlaDAsICUyfSIKKyAg IFsoc2V0X2F0dHIgInR5cGUiICJhbHUiKQorKyAgIChzZXRfYXR0ciAibW9kcm0iICIxIikKKyAg ICAoc2V0X2F0dHIgIm1vZGUiICJRSSIpXSkKKyAKKyAoZGVmaW5lX2V4cGFuZCAieG9ycWlfY2Nf ZXh0XzEiCitAQCAtMTExMjYsNiArMTEzNzUsNyBAQCAoZGVmaW5lX2luc24gIiphdnhfYXNobHRp MyIKKyB9CisgICBbKHNldF9hdHRyICJ0eXBlIiAic3NlaXNoZnQiKQorICAgIChzZXRfYXR0ciAi cHJlZml4IiAidmV4IikKKysgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKKyAg ICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKKyAKKyAoZGVmaW5lX2luc24gInNzZTJfYXNobHRp MyIKK0BAIC0xMTEzOSw2ICsxMTM4OSw3IEBAIChkZWZpbmVfaW5zbiAic3NlMl9hc2hsdGkzIgor IH0KKyAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vpc2hmdCIpCisgICAgKHNldF9hdHRyICJwcmVm aXhfZGF0YTE2IiAiMSIpCisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisg ICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCisgCisgKGRlZmluZV9pbnNuICIqYXNobHRpM18x IgorQEAgLTExMjc4LDYgKzExNTI5LDE1IEBAIChkZWZpbmVfaW5zbiAiKmFzaGxkaTNfMV9yZXg2 NCIKKyAJICAgICAgKGNvbnN0X3N0cmluZyAiYWx1IikKKyAJICAgXQorIAkgICAoY29uc3Rfc3Ry aW5nICJpc2hpZnQiKSkpCisrICAgKHNldCAoYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIpCisrICAg ICAoaWZfdGhlbl9lbHNlCisrICAgICAgIChpb3IgKGVxX2F0dHIgInR5cGUiICJhbHUiKQorKwkg ICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgImlzaGlmdCIpCisrCQkgKGFuZCAobWF0Y2hfb3BlcmFu ZCAyICJjb25zdDFfb3BlcmFuZCIgIiIpCisrCQkgICAgICAobmUgKHN5bWJvbF9yZWYgIlRBUkdF VF9TSElGVDEgfHwgb3B0aW1pemVfZnVuY3Rpb25fZm9yX3NpemVfcCAoY2Z1bikiKQorKwkJCSAg KGNvbnN0X2ludCAwKSkpKSkKKysgICAgICAgKGNvbnN0X3N0cmluZyAiMCIpCisrICAgICAgIChj b25zdF9zdHJpbmcgIioiKSkpCisgICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0pCisgCisgOzsg Q29udmVydCBsZWEgdG8gdGhlIGxlYSBwYXR0ZXJuIHRvIGF2b2lkIGZsYWdzIGRlcGVuZGVuY3ku CitAQCAtMTEzMzcsNiArMTE1OTcsMTUgQEAgKGRlZmluZV9pbnNuICIqYXNobGRpM19jbXBfcmV4 NjQiCisgCSAgICAgIChjb25zdF9zdHJpbmcgImFsdSIpCisgCSAgIF0KKyAJICAgKGNvbnN0X3N0 cmluZyAiaXNoaWZ0IikpKQorKyAgIChzZXQgKGF0dHIgImxlbmd0aF9pbW1lZGlhdGUiKQorKyAg ICAgKGlmX3RoZW5fZWxzZQorKyAgICAgICAoaW9yIChlcV9hdHRyICJ0eXBlIiAiYWx1IikKKysJ ICAgIChhbmQgKGVxX2F0dHIgInR5cGUiICJpc2hpZnQiKQorKwkJIChhbmQgKG1hdGNoX29wZXJh bmQgMiAiY29uc3QxX29wZXJhbmQiICIiKQorKwkJICAgICAgKG5lIChzeW1ib2xfcmVmICJUQVJH RVRfU0hJRlQxIHx8IG9wdGltaXplX2Z1bmN0aW9uX2Zvcl9zaXplX3AgKGNmdW4pIikKKysJCQkg IChjb25zdF9pbnQgMCkpKSkpCisrICAgICAgIChjb25zdF9zdHJpbmcgIjAiKQorKyAgICAgICAo Y29uc3Rfc3RyaW5nICIqIikpKQorICAgIChzZXRfYXR0ciAibW9kZSIgIkRJIildKQorIAorIChk ZWZpbmVfaW5zbiAiKmFzaGxkaTNfY2Nvbmx5X3JleDY0IgorQEAgLTExMzc5LDYgKzExNjQ4LDE1 IEBAIChkZWZpbmVfaW5zbiAiKmFzaGxkaTNfY2Nvbmx5X3JleDY0IgorIAkgICAgICAoY29uc3Rf c3RyaW5nICJhbHUiKQorIAkgICBdCisgCSAgIChjb25zdF9zdHJpbmcgImlzaGlmdCIpKSkKKysg ICAoc2V0IChhdHRyICJsZW5ndGhfaW1tZWRpYXRlIikKKysgICAgIChpZl90aGVuX2Vsc2UKKysg ICAgICAgKGlvciAoZXFfYXR0ciAidHlwZSIgImFsdSIpCisrCSAgICAoYW5kIChlcV9hdHRyICJ0 eXBlIiAiaXNoaWZ0IikKKysJCSAoYW5kIChtYXRjaF9vcGVyYW5kIDIgImNvbnN0MV9vcGVyYW5k IiAiIikKKysJCSAgICAgIChuZSAoc3ltYm9sX3JlZiAiVEFSR0VUX1NISUZUMSB8fCBvcHRpbWl6 ZV9mdW5jdGlvbl9mb3Jfc2l6ZV9wIChjZnVuKSIpCisrCQkJICAoY29uc3RfaW50IDApKSkpKQor KyAgICAgICAoY29uc3Rfc3RyaW5nICIwIikKKysgICAgICAgKGNvbnN0X3N0cmluZyAiKiIpKSkK KyAgICAoc2V0X2F0dHIgIm1vZGUiICJESSIpXSkKKyAKKyAoZGVmaW5lX2luc24gIiphc2hsZGkz XzEiCitAQCAtMTE1MTgsNiArMTE3OTYsMTUgQEAgKGRlZmluZV9pbnNuICIqYXNobHNpM18xIgor IAkgICAgICAoY29uc3Rfc3RyaW5nICJhbHUiKQorIAkgICBdCisgCSAgIChjb25zdF9zdHJpbmcg ImlzaGlmdCIpKSkKKysgICAoc2V0IChhdHRyICJsZW5ndGhfaW1tZWRpYXRlIikKKysgICAgIChp Zl90aGVuX2Vsc2UKKysgICAgICAgKGlvciAoZXFfYXR0ciAidHlwZSIgImFsdSIpCisrCSAgICAo YW5kIChlcV9hdHRyICJ0eXBlIiAiaXNoaWZ0IikKKysJCSAoYW5kIChtYXRjaF9vcGVyYW5kIDIg ImNvbnN0MV9vcGVyYW5kIiAiIikKKysJCSAgICAgIChuZSAoc3ltYm9sX3JlZiAiVEFSR0VUX1NI SUZUMSB8fCBvcHRpbWl6ZV9mdW5jdGlvbl9mb3Jfc2l6ZV9wIChjZnVuKSIpCisrCQkJICAoY29u c3RfaW50IDApKSkpKQorKyAgICAgICAoY29uc3Rfc3RyaW5nICIwIikKKysgICAgICAgKGNvbnN0 X3N0cmluZyAiKiIpKSkKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJTSSIpXSkKKyAKKyA7OyBDb252 ZXJ0IGxlYSB0byB0aGUgbGVhIHBhdHRlcm4gdG8gYXZvaWQgZmxhZ3MgZGVwZW5kZW5jeS4KK0BA IC0xMTYwMiw2ICsxMTg4OSwxNSBAQCAoZGVmaW5lX2luc24gIiphc2hsc2kzXzFfemV4dCIKKyAJ ICAgICAgKGNvbnN0X3N0cmluZyAiYWx1IikKKyAJICAgXQorIAkgICAoY29uc3Rfc3RyaW5nICJp c2hpZnQiKSkpCisrICAgKHNldCAoYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIpCisrICAgICAoaWZf dGhlbl9lbHNlCisrICAgICAgIChpb3IgKGVxX2F0dHIgInR5cGUiICJhbHUiKQorKwkgICAgKGFu ZCAoZXFfYXR0ciAidHlwZSIgImlzaGlmdCIpCisrCQkgKGFuZCAobWF0Y2hfb3BlcmFuZCAyICJj b25zdDFfb3BlcmFuZCIgIiIpCisrCQkgICAgICAobmUgKHN5bWJvbF9yZWYgIlRBUkdFVF9TSElG VDEgfHwgb3B0aW1pemVfZnVuY3Rpb25fZm9yX3NpemVfcCAoY2Z1bikiKQorKwkJCSAgKGNvbnN0 X2ludCAwKSkpKSkKKysgICAgICAgKGNvbnN0X3N0cmluZyAiMCIpCisrICAgICAgIChjb25zdF9z dHJpbmcgIioiKSkpCisgICAgKHNldF9hdHRyICJtb2RlIiAiU0kiKV0pCisgCisgOzsgQ29udmVy dCBsZWEgdG8gdGhlIGxlYSBwYXR0ZXJuIHRvIGF2b2lkIGZsYWdzIGRlcGVuZGVuY3kuCitAQCAt MTE2NjMsNiArMTE5NTksMTUgQEAgKGRlZmluZV9pbnNuICIqYXNobHNpM19jbXAiCisgCSAgICAg IChjb25zdF9zdHJpbmcgImFsdSIpCisgCSAgIF0KKyAJICAgKGNvbnN0X3N0cmluZyAiaXNoaWZ0 IikpKQorKyAgIChzZXQgKGF0dHIgImxlbmd0aF9pbW1lZGlhdGUiKQorKyAgICAgKGlmX3RoZW5f ZWxzZQorKyAgICAgICAoaW9yIChlcV9hdHRyICJ0eXBlIiAiYWx1IikKKysJICAgIChhbmQgKGVx X2F0dHIgInR5cGUiICJpc2hpZnQiKQorKwkJIChhbmQgKG1hdGNoX29wZXJhbmQgMiAiY29uc3Qx X29wZXJhbmQiICIiKQorKwkJICAgICAgKG5lIChzeW1ib2xfcmVmICJUQVJHRVRfU0hJRlQxIHx8 IG9wdGltaXplX2Z1bmN0aW9uX2Zvcl9zaXplX3AgKGNmdW4pIikKKysJCQkgIChjb25zdF9pbnQg MCkpKSkpCisrICAgICAgIChjb25zdF9zdHJpbmcgIjAiKQorKyAgICAgICAoY29uc3Rfc3RyaW5n ICIqIikpKQorICAgIChzZXRfYXR0ciAibW9kZSIgIlNJIildKQorIAorIChkZWZpbmVfaW5zbiAi KmFzaGxzaTNfY2Nvbmx5IgorQEAgLTExNzA0LDYgKzEyMDA5LDE1IEBAIChkZWZpbmVfaW5zbiAi KmFzaGxzaTNfY2Nvbmx5IgorIAkgICAgICAoY29uc3Rfc3RyaW5nICJhbHUiKQorIAkgICBdCisg CSAgIChjb25zdF9zdHJpbmcgImlzaGlmdCIpKSkKKysgICAoc2V0IChhdHRyICJsZW5ndGhfaW1t ZWRpYXRlIikKKysgICAgIChpZl90aGVuX2Vsc2UKKysgICAgICAgKGlvciAoZXFfYXR0ciAidHlw ZSIgImFsdSIpCisrCSAgICAoYW5kIChlcV9hdHRyICJ0eXBlIiAiaXNoaWZ0IikKKysJCSAoYW5k IChtYXRjaF9vcGVyYW5kIDIgImNvbnN0MV9vcGVyYW5kIiAiIikKKysJCSAgICAgIChuZSAoc3lt Ym9sX3JlZiAiVEFSR0VUX1NISUZUMSB8fCBvcHRpbWl6ZV9mdW5jdGlvbl9mb3Jfc2l6ZV9wIChj ZnVuKSIpCisrCQkJICAoY29uc3RfaW50IDApKSkpKQorKyAgICAgICAoY29uc3Rfc3RyaW5nICIw IikKKysgICAgICAgKGNvbnN0X3N0cmluZyAiKiIpKSkKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJT SSIpXSkKKyAKKyAoZGVmaW5lX2luc24gIiphc2hsc2kzX2NtcF96ZXh0IgorQEAgLTExNzQ2LDYg KzEyMDYwLDE1IEBAIChkZWZpbmVfaW5zbiAiKmFzaGxzaTNfY21wX3pleHQiCisgCSAgICAgIChj b25zdF9zdHJpbmcgImFsdSIpCisgCSAgIF0KKyAJICAgKGNvbnN0X3N0cmluZyAiaXNoaWZ0Iikp KQorKyAgIChzZXQgKGF0dHIgImxlbmd0aF9pbW1lZGlhdGUiKQorKyAgICAgKGlmX3RoZW5fZWxz ZQorKyAgICAgICAoaW9yIChlcV9hdHRyICJ0eXBlIiAiYWx1IikKKysJICAgIChhbmQgKGVxX2F0 dHIgInR5cGUiICJpc2hpZnQiKQorKwkJIChhbmQgKG1hdGNoX29wZXJhbmQgMiAiY29uc3QxX29w ZXJhbmQiICIiKQorKwkJICAgICAgKG5lIChzeW1ib2xfcmVmICJUQVJHRVRfU0hJRlQxIHx8IG9w dGltaXplX2Z1bmN0aW9uX2Zvcl9zaXplX3AgKGNmdW4pIikKKysJCQkgIChjb25zdF9pbnQgMCkp KSkpCisrICAgICAgIChjb25zdF9zdHJpbmcgIjAiKQorKyAgICAgICAoY29uc3Rfc3RyaW5nICIq IikpKQorICAgIChzZXRfYXR0ciAibW9kZSIgIlNJIildKQorIAorIChkZWZpbmVfZXhwYW5kICJh c2hsaGkzIgorQEAgLTExNzkxLDYgKzEyMTE0LDE1IEBAIChkZWZpbmVfaW5zbiAiKmFzaGxoaTNf MV9sZWEiCisgCSAgICAgIChjb25zdF9zdHJpbmcgImFsdSIpCisgCSAgIF0KKyAJICAgKGNvbnN0 X3N0cmluZyAiaXNoaWZ0IikpKQorKyAgIChzZXQgKGF0dHIgImxlbmd0aF9pbW1lZGlhdGUiKQor KyAgICAgKGlmX3RoZW5fZWxzZQorKyAgICAgICAoaW9yIChlcV9hdHRyICJ0eXBlIiAiYWx1IikK KysJICAgIChhbmQgKGVxX2F0dHIgInR5cGUiICJpc2hpZnQiKQorKwkJIChhbmQgKG1hdGNoX29w ZXJhbmQgMiAiY29uc3QxX29wZXJhbmQiICIiKQorKwkJICAgICAgKG5lIChzeW1ib2xfcmVmICJU QVJHRVRfU0hJRlQxIHx8IG9wdGltaXplX2Z1bmN0aW9uX2Zvcl9zaXplX3AgKGNmdW4pIikKKysJ CQkgIChjb25zdF9pbnQgMCkpKSkpCisrICAgICAgIChjb25zdF9zdHJpbmcgIjAiKQorKyAgICAg ICAoY29uc3Rfc3RyaW5nICIqIikpKQorICAgIChzZXRfYXR0ciAibW9kZSIgIkhJLFNJIildKQor IAorIChkZWZpbmVfaW5zbiAiKmFzaGxoaTNfMSIKK0BAIC0xMTgyNSw2ICsxMjE1NywxNSBAQCAo ZGVmaW5lX2luc24gIiphc2hsaGkzXzEiCisgCSAgICAgIChjb25zdF9zdHJpbmcgImFsdSIpCisg CSAgIF0KKyAJICAgKGNvbnN0X3N0cmluZyAiaXNoaWZ0IikpKQorKyAgIChzZXQgKGF0dHIgImxl bmd0aF9pbW1lZGlhdGUiKQorKyAgICAgKGlmX3RoZW5fZWxzZQorKyAgICAgICAoaW9yIChlcV9h dHRyICJ0eXBlIiAiYWx1IikKKysJICAgIChhbmQgKGVxX2F0dHIgInR5cGUiICJpc2hpZnQiKQor KwkJIChhbmQgKG1hdGNoX29wZXJhbmQgMiAiY29uc3QxX29wZXJhbmQiICIiKQorKwkJICAgICAg KG5lIChzeW1ib2xfcmVmICJUQVJHRVRfU0hJRlQxIHx8IG9wdGltaXplX2Z1bmN0aW9uX2Zvcl9z aXplX3AgKGNmdW4pIikKKysJCQkgIChjb25zdF9pbnQgMCkpKSkpCisrICAgICAgIChjb25zdF9z dHJpbmcgIjAiKQorKyAgICAgICAoY29uc3Rfc3RyaW5nICIqIikpKQorICAgIChzZXRfYXR0ciAi bW9kZSIgIkhJIildKQorIAorIDs7IFRoaXMgcGF0dGVybiBjYW4ndCBhY2NlcHQgYSB2YXJpYWJs ZSBzaGlmdCBjb3VudCwgc2luY2Ugc2hpZnRzIGJ5CitAQCAtMTE4NzAsNiArMTIyMTEsMTUgQEAg KGRlZmluZV9pbnNuICIqYXNobGhpM19jbXAiCisgCSAgICAgIChjb25zdF9zdHJpbmcgImFsdSIp CisgCSAgIF0KKyAJICAgKGNvbnN0X3N0cmluZyAiaXNoaWZ0IikpKQorKyAgIChzZXQgKGF0dHIg Imxlbmd0aF9pbW1lZGlhdGUiKQorKyAgICAgKGlmX3RoZW5fZWxzZQorKyAgICAgICAoaW9yIChl cV9hdHRyICJ0eXBlIiAiYWx1IikKKysJICAgIChhbmQgKGVxX2F0dHIgInR5cGUiICJpc2hpZnQi KQorKwkJIChhbmQgKG1hdGNoX29wZXJhbmQgMiAiY29uc3QxX29wZXJhbmQiICIiKQorKwkJICAg ICAgKG5lIChzeW1ib2xfcmVmICJUQVJHRVRfU0hJRlQxIHx8IG9wdGltaXplX2Z1bmN0aW9uX2Zv cl9zaXplX3AgKGNmdW4pIikKKysJCQkgIChjb25zdF9pbnQgMCkpKSkpCisrICAgICAgIChjb25z dF9zdHJpbmcgIjAiKQorKyAgICAgICAoY29uc3Rfc3RyaW5nICIqIikpKQorICAgIChzZXRfYXR0 ciAibW9kZSIgIkhJIildKQorIAorIChkZWZpbmVfaW5zbiAiKmFzaGxoaTNfY2Nvbmx5IgorQEAg LTExOTExLDYgKzEyMjYxLDE1IEBAIChkZWZpbmVfaW5zbiAiKmFzaGxoaTNfY2Nvbmx5IgorIAkg ICAgICAoY29uc3Rfc3RyaW5nICJhbHUiKQorIAkgICBdCisgCSAgIChjb25zdF9zdHJpbmcgImlz aGlmdCIpKSkKKysgICAoc2V0IChhdHRyICJsZW5ndGhfaW1tZWRpYXRlIikKKysgICAgIChpZl90 aGVuX2Vsc2UKKysgICAgICAgKGlvciAoZXFfYXR0ciAidHlwZSIgImFsdSIpCisrCSAgICAoYW5k IChlcV9hdHRyICJ0eXBlIiAiaXNoaWZ0IikKKysJCSAoYW5kIChtYXRjaF9vcGVyYW5kIDIgImNv bnN0MV9vcGVyYW5kIiAiIikKKysJCSAgICAgIChuZSAoc3ltYm9sX3JlZiAiVEFSR0VUX1NISUZU MSB8fCBvcHRpbWl6ZV9mdW5jdGlvbl9mb3Jfc2l6ZV9wIChjZnVuKSIpCisrCQkJICAoY29uc3Rf aW50IDApKSkpKQorKyAgICAgICAoY29uc3Rfc3RyaW5nICIwIikKKysgICAgICAgKGNvbnN0X3N0 cmluZyAiKiIpKSkKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJISSIpXSkKKyAKKyAoZGVmaW5lX2V4 cGFuZCAiYXNobHFpMyIKK0BAIC0xMTk3Niw2ICsxMjMzNSwxNSBAQCAoZGVmaW5lX2luc24gIiph c2hscWkzXzFfbGVhIgorIAkgICAgICAoY29uc3Rfc3RyaW5nICJhbHUiKQorIAkgICBdCisgCSAg IChjb25zdF9zdHJpbmcgImlzaGlmdCIpKSkKKysgICAoc2V0IChhdHRyICJsZW5ndGhfaW1tZWRp YXRlIikKKysgICAgIChpZl90aGVuX2Vsc2UKKysgICAgICAgKGlvciAoZXFfYXR0ciAidHlwZSIg ImFsdSIpCisrCSAgICAoYW5kIChlcV9hdHRyICJ0eXBlIiAiaXNoaWZ0IikKKysJCSAoYW5kICht YXRjaF9vcGVyYW5kIDIgImNvbnN0MV9vcGVyYW5kIiAiIikKKysJCSAgICAgIChuZSAoc3ltYm9s X3JlZiAiVEFSR0VUX1NISUZUMSB8fCBvcHRpbWl6ZV9mdW5jdGlvbl9mb3Jfc2l6ZV9wIChjZnVu KSIpCisrCQkJICAoY29uc3RfaW50IDApKSkpKQorKyAgICAgICAoY29uc3Rfc3RyaW5nICIwIikK KysgICAgICAgKGNvbnN0X3N0cmluZyAiKiIpKSkKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJRSSxT SSxTSSIpXSkKKyAKKyAoZGVmaW5lX2luc24gIiphc2hscWkzXzEiCitAQCAtMTIwMjgsNiArMTIz OTYsMTUgQEAgKGRlZmluZV9pbnNuICIqYXNobHFpM18xIgorIAkgICAgICAoY29uc3Rfc3RyaW5n ICJhbHUiKQorIAkgICBdCisgCSAgIChjb25zdF9zdHJpbmcgImlzaGlmdCIpKSkKKysgICAoc2V0 IChhdHRyICJsZW5ndGhfaW1tZWRpYXRlIikKKysgICAgIChpZl90aGVuX2Vsc2UKKysgICAgICAg KGlvciAoZXFfYXR0ciAidHlwZSIgImFsdSIpCisrCSAgICAoYW5kIChlcV9hdHRyICJ0eXBlIiAi aXNoaWZ0IikKKysJCSAoYW5kIChtYXRjaF9vcGVyYW5kIDIgImNvbnN0MV9vcGVyYW5kIiAiIikK KysJCSAgICAgIChuZSAoc3ltYm9sX3JlZiAiVEFSR0VUX1NISUZUMSB8fCBvcHRpbWl6ZV9mdW5j dGlvbl9mb3Jfc2l6ZV9wIChjZnVuKSIpCisrCQkJICAoY29uc3RfaW50IDApKSkpKQorKyAgICAg ICAoY29uc3Rfc3RyaW5nICIwIikKKysgICAgICAgKGNvbnN0X3N0cmluZyAiKiIpKSkKKyAgICAo c2V0X2F0dHIgIm1vZGUiICJRSSxTSSIpXSkKKyAKKyA7OyBUaGlzIHBhdHRlcm4gY2FuJ3QgYWNj ZXB0IGEgdmFyaWFibGUgc2hpZnQgY291bnQsIHNpbmNlIHNoaWZ0cyBieQorQEAgLTEyMDczLDYg KzEyNDUwLDE1IEBAIChkZWZpbmVfaW5zbiAiKmFzaGxxaTNfY21wIgorIAkgICAgICAoY29uc3Rf c3RyaW5nICJhbHUiKQorIAkgICBdCisgCSAgIChjb25zdF9zdHJpbmcgImlzaGlmdCIpKSkKKysg ICAoc2V0IChhdHRyICJsZW5ndGhfaW1tZWRpYXRlIikKKysgICAgIChpZl90aGVuX2Vsc2UKKysg ICAgICAgKGlvciAoZXFfYXR0ciAidHlwZSIgImFsdSIpCisrCSAgICAoYW5kIChlcV9hdHRyICJ0 eXBlIiAiaXNoaWZ0IikKKysJCSAoYW5kIChtYXRjaF9vcGVyYW5kIDIgImNvbnN0MV9vcGVyYW5k IiAiIikKKysJCSAgICAgIChuZSAoc3ltYm9sX3JlZiAiVEFSR0VUX1NISUZUMSB8fCBvcHRpbWl6 ZV9mdW5jdGlvbl9mb3Jfc2l6ZV9wIChjZnVuKSIpCisrCQkJICAoY29uc3RfaW50IDApKSkpKQor KyAgICAgICAoY29uc3Rfc3RyaW5nICIwIikKKysgICAgICAgKGNvbnN0X3N0cmluZyAiKiIpKSkK KyAgICAoc2V0X2F0dHIgIm1vZGUiICJRSSIpXSkKKyAKKyAoZGVmaW5lX2luc24gIiphc2hscWkz X2Njb25seSIKK0BAIC0xMjExNCw2ICsxMjUwMCwxNSBAQCAoZGVmaW5lX2luc24gIiphc2hscWkz X2Njb25seSIKKyAJICAgICAgKGNvbnN0X3N0cmluZyAiYWx1IikKKyAJICAgXQorIAkgICAoY29u c3Rfc3RyaW5nICJpc2hpZnQiKSkpCisrICAgKHNldCAoYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIp CisrICAgICAoaWZfdGhlbl9lbHNlCisrICAgICAgIChpb3IgKGVxX2F0dHIgInR5cGUiICJhbHUi KQorKwkgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgImlzaGlmdCIpCisrCQkgKGFuZCAobWF0Y2hf b3BlcmFuZCAyICJjb25zdDFfb3BlcmFuZCIgIiIpCisrCQkgICAgICAobmUgKHN5bWJvbF9yZWYg IlRBUkdFVF9TSElGVDEgfHwgb3B0aW1pemVfZnVuY3Rpb25fZm9yX3NpemVfcCAoY2Z1bikiKQor KwkJCSAgKGNvbnN0X2ludCAwKSkpKSkKKysgICAgICAgKGNvbnN0X3N0cmluZyAiMCIpCisrICAg ICAgIChjb25zdF9zdHJpbmcgIioiKSkpCisgICAgKHNldF9hdHRyICJtb2RlIiAiUUkiKV0pCisg CisgOzsgU2VlIGNvbW1lbnQgYWJvdmUgYGFzaGxkaTMnIGFib3V0IGhvdyB0aGlzIHdvcmtzLgor QEAgLTEyMjMyLDEwICsxMjYyNyw4IEBAIChkZWZpbmVfaW5zbiAiKmFzaHJkaTNfMV9vbmVfYml0 X3JleDY0IgorICAgICYmIGl4ODZfYmluYXJ5X29wZXJhdG9yX29rIChBU0hJRlRSVCwgREltb2Rl LCBvcGVyYW5kcykiCisgICAic2Fye3F9XHQlMCIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJpc2hp ZnQiKQorLSAgIChzZXQgKGF0dHIgImxlbmd0aCIpCistICAgICAoaWZfdGhlbl9lbHNlIChtYXRj aF9vcGVyYW5kOkRJIDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKQorLQkoY29uc3Rfc3RyaW5nICIy IikKKy0JKGNvbnN0X3N0cmluZyAiKiIpKSldKQorKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVk aWF0ZSIgIjAiKQorKyAgIChzZXRfYXR0ciAibW9kZSIgIkRJIildKQorIAorIChkZWZpbmVfaW5z biAiKmFzaHJkaTNfMV9yZXg2NCIKKyAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRJIDAgIm5vbmlt bWVkaWF0ZV9vcGVyYW5kIiAiPXJtLHJtIikKK0BAIC0xMjI2NiwxMCArMTI2NTksOCBAQCAoZGVm aW5lX2luc24gIiphc2hyZGkzX29uZV9iaXRfY21wX3JleDY0CisgICAgJiYgaXg4Nl9iaW5hcnlf b3BlcmF0b3Jfb2sgKEFTSElGVFJULCBESW1vZGUsIG9wZXJhbmRzKSIKKyAgICJzYXJ7cX1cdCUw IgorICAgWyhzZXRfYXR0ciAidHlwZSIgImlzaGlmdCIpCistICAgKHNldCAoYXR0ciAibGVuZ3Ro IikKKy0gICAgIChpZl90aGVuX2Vsc2UgKG1hdGNoX29wZXJhbmQ6REkgMCAicmVnaXN0ZXJfb3Bl cmFuZCIgIiIpCistCShjb25zdF9zdHJpbmcgIjIiKQorLQkoY29uc3Rfc3RyaW5nICIqIikpKV0p CisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMCIpCisrICAgKHNldF9hdHRyICJt b2RlIiAiREkiKV0pCisgCisgKGRlZmluZV9pbnNuICIqYXNocmRpM19vbmVfYml0X2Njb25seV9y ZXg2NCIKKyAgIFsoc2V0IChyZWcgRkxBR1NfUkVHKQorQEAgLTEyMjg0LDcgKzEyNjc1LDggQEAg KGRlZmluZV9pbnNuICIqYXNocmRpM19vbmVfYml0X2Njb25seV9yZQorICAgICYmIGl4ODZfYmlu YXJ5X29wZXJhdG9yX29rIChBU0hJRlRSVCwgREltb2RlLCBvcGVyYW5kcykiCisgICAic2Fye3F9 XHQlMCIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJpc2hpZnQiKQorLSAgIChzZXRfYXR0ciAibGVu Z3RoIiAiMiIpXSkKKysgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIwIikKKysgICAo c2V0X2F0dHIgIm1vZGUiICJESSIpXSkKKyAKKyA7OyBUaGlzIHBhdHRlcm4gY2FuJ3QgYWNjZXB0 IGEgdmFyaWFibGUgc2hpZnQgY291bnQsIHNpbmNlIHNoaWZ0cyBieQorIDs7IHplcm8gZG9uJ3Qg YWZmZWN0IHRoZSBmbGFncy4gIFdlIGFzc3VtZSB0aGF0IHNoaWZ0cyBieSBjb25zdGFudAorQEAg LTEyNDUyLDEwICsxMjg0NCw4IEBAIChkZWZpbmVfaW5zbiAiKmFzaHJzaTNfMV9vbmVfYml0Igor ICAgICYmIGl4ODZfYmluYXJ5X29wZXJhdG9yX29rIChBU0hJRlRSVCwgU0ltb2RlLCBvcGVyYW5k cykiCisgICAic2Fye2x9XHQlMCIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJpc2hpZnQiKQorLSAg IChzZXQgKGF0dHIgImxlbmd0aCIpCistICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5k OlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKQorLQkoY29uc3Rfc3RyaW5nICIyIikKKy0JKGNv bnN0X3N0cmluZyAiKiIpKSldKQorKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjAi KQorKyAgIChzZXRfYXR0ciAibW9kZSIgIlNJIildKQorIAorIChkZWZpbmVfaW5zbiAiKmFzaHJz aTNfMV9vbmVfYml0X3pleHQiCisgICBbKHNldCAobWF0Y2hfb3BlcmFuZDpESSAwICJyZWdpc3Rl cl9vcGVyYW5kIiAiPXIiKQorQEAgLTEyNDY3LDcgKzEyODU3LDggQEAgKGRlZmluZV9pbnNuICIq YXNocnNpM18xX29uZV9iaXRfemV4dCIKKyAgICAmJiBpeDg2X2JpbmFyeV9vcGVyYXRvcl9vayAo QVNISUZUUlQsIFNJbW9kZSwgb3BlcmFuZHMpIgorICAgInNhcntsfVx0JWswIgorICAgWyhzZXRf YXR0ciAidHlwZSIgImlzaGlmdCIpCistICAgKHNldF9hdHRyICJsZW5ndGgiICIyIildKQorKyAg IChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjAiKQorKyAgIChzZXRfYXR0ciAibW9kZSIg IlNJIildKQorIAorIChkZWZpbmVfaW5zbiAiKmFzaHJzaTNfMSIKKyAgIFsoc2V0IChtYXRjaF9v cGVyYW5kOlNJIDAgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAiPXJtLHJtIikKK0BAIC0xMjUwOSwx MCArMTI5MDAsOCBAQCAoZGVmaW5lX2luc24gIiphc2hyc2kzX29uZV9iaXRfY21wIgorICAgICYm IGl4ODZfYmluYXJ5X29wZXJhdG9yX29rIChBU0hJRlRSVCwgU0ltb2RlLCBvcGVyYW5kcykiCisg ICAic2Fye2x9XHQlMCIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJpc2hpZnQiKQorLSAgIChzZXQg KGF0dHIgImxlbmd0aCIpCistICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5kOlNJIDAg InJlZ2lzdGVyX29wZXJhbmQiICIiKQorLQkoY29uc3Rfc3RyaW5nICIyIikKKy0JKGNvbnN0X3N0 cmluZyAiKiIpKSldKQorKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjAiKQorKyAg IChzZXRfYXR0ciAibW9kZSIgIlNJIildKQorIAorIChkZWZpbmVfaW5zbiAiKmFzaHJzaTNfb25l X2JpdF9jY29ubHkiCisgICBbKHNldCAocmVnIEZMQUdTX1JFRykKK0BAIC0xMjUyNiw3ICsxMjkx NSw4IEBAIChkZWZpbmVfaW5zbiAiKmFzaHJzaTNfb25lX2JpdF9jY29ubHkiCisgICAgJiYgaXg4 Nl9iaW5hcnlfb3BlcmF0b3Jfb2sgKEFTSElGVFJULCBTSW1vZGUsIG9wZXJhbmRzKSIKKyAgICJz YXJ7bH1cdCUwIgorICAgWyhzZXRfYXR0ciAidHlwZSIgImlzaGlmdCIpCistICAgKHNldF9hdHRy ICJsZW5ndGgiICIyIildKQorKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjAiKQor KyAgIChzZXRfYXR0ciAibW9kZSIgIlNJIildKQorIAorIChkZWZpbmVfaW5zbiAiKmFzaHJzaTNf b25lX2JpdF9jbXBfemV4dCIKKyAgIFsoc2V0IChyZWcgRkxBR1NfUkVHKQorQEAgLTEyNTQyLDcg KzEyOTMyLDggQEAgKGRlZmluZV9pbnNuICIqYXNocnNpM19vbmVfYml0X2NtcF96ZXh0IgorICAg ICYmIGl4ODZfYmluYXJ5X29wZXJhdG9yX29rIChBU0hJRlRSVCwgU0ltb2RlLCBvcGVyYW5kcyki CisgICAic2Fye2x9XHQlazAiCisgICBbKHNldF9hdHRyICJ0eXBlIiAiaXNoaWZ0IikKKy0gICAo c2V0X2F0dHIgImxlbmd0aCIgIjIiKV0pCisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRl IiAiMCIpCisrICAgKHNldF9hdHRyICJtb2RlIiAiU0kiKV0pCisgCisgOzsgVGhpcyBwYXR0ZXJu IGNhbid0IGFjY2VwdCBhIHZhcmlhYmxlIHNoaWZ0IGNvdW50LCBzaW5jZSBzaGlmdHMgYnkKKyA7 OyB6ZXJvIGRvbid0IGFmZmVjdCB0aGUgZmxhZ3MuICBXZSBhc3N1bWUgdGhhdCBzaGlmdHMgYnkg Y29uc3RhbnQKK0BAIC0xMjYwOCwxMCArMTI5OTksOCBAQCAoZGVmaW5lX2luc24gIiphc2hyaGkz XzFfb25lX2JpdCIKKyAgICAmJiBpeDg2X2JpbmFyeV9vcGVyYXRvcl9vayAoQVNISUZUUlQsIEhJ bW9kZSwgb3BlcmFuZHMpIgorICAgInNhcnt3fVx0JTAiCisgICBbKHNldF9hdHRyICJ0eXBlIiAi aXNoaWZ0IikKKy0gICAoc2V0IChhdHRyICJsZW5ndGgiKQorLSAgICAgKGlmX3RoZW5fZWxzZSAo bWF0Y2hfb3BlcmFuZCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKKy0JKGNvbnN0X3N0cmluZyAi MiIpCistCShjb25zdF9zdHJpbmcgIioiKSkpXSkKKysgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1l ZGlhdGUiICIwIikKKysgICAoc2V0X2F0dHIgIm1vZGUiICJISSIpXSkKKyAKKyAoZGVmaW5lX2lu c24gIiphc2hyaGkzXzEiCisgICBbKHNldCAobWF0Y2hfb3BlcmFuZDpISSAwICJub25pbW1lZGlh dGVfb3BlcmFuZCIgIj1ybSxybSIpCitAQCAtMTI2NDEsMTAgKzEzMDMwLDggQEAgKGRlZmluZV9p bnNuICIqYXNocmhpM19vbmVfYml0X2NtcCIKKyAgICAmJiBpeDg2X2JpbmFyeV9vcGVyYXRvcl9v ayAoQVNISUZUUlQsIEhJbW9kZSwgb3BlcmFuZHMpIgorICAgInNhcnt3fVx0JTAiCisgICBbKHNl dF9hdHRyICJ0eXBlIiAiaXNoaWZ0IikKKy0gICAoc2V0IChhdHRyICJsZW5ndGgiKQorLSAgICAg KGlmX3RoZW5fZWxzZSAobWF0Y2hfb3BlcmFuZCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKKy0J KGNvbnN0X3N0cmluZyAiMiIpCistCShjb25zdF9zdHJpbmcgIioiKSkpXSkKKysgICAoc2V0X2F0 dHIgImxlbmd0aF9pbW1lZGlhdGUiICIwIikKKysgICAoc2V0X2F0dHIgIm1vZGUiICJISSIpXSkK KyAKKyAoZGVmaW5lX2luc24gIiphc2hyaGkzX29uZV9iaXRfY2Nvbmx5IgorICAgWyhzZXQgKHJl ZyBGTEFHU19SRUcpCitAQCAtMTI2NTgsNyArMTMwNDUsOCBAQCAoZGVmaW5lX2luc24gIiphc2hy aGkzX29uZV9iaXRfY2Nvbmx5IgorICAgICYmIGl4ODZfYmluYXJ5X29wZXJhdG9yX29rIChBU0hJ RlRSVCwgSEltb2RlLCBvcGVyYW5kcykiCisgICAic2Fye3d9XHQlMCIKKyAgIFsoc2V0X2F0dHIg InR5cGUiICJpc2hpZnQiKQorLSAgIChzZXRfYXR0ciAibGVuZ3RoIiAiMiIpXSkKKysgICAoc2V0 X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIwIikKKysgICAoc2V0X2F0dHIgIm1vZGUiICJISSIp XSkKKyAKKyA7OyBUaGlzIHBhdHRlcm4gY2FuJ3QgYWNjZXB0IGEgdmFyaWFibGUgc2hpZnQgY291 bnQsIHNpbmNlIHNoaWZ0cyBieQorIDs7IHplcm8gZG9uJ3QgYWZmZWN0IHRoZSBmbGFncy4gIFdl IGFzc3VtZSB0aGF0IHNoaWZ0cyBieSBjb25zdGFudAorQEAgLTEyNzA4LDEwICsxMzA5Niw4IEBA IChkZWZpbmVfaW5zbiAiKmFzaHJxaTNfMV9vbmVfYml0IgorICAgICYmIGl4ODZfYmluYXJ5X29w ZXJhdG9yX29rIChBU0hJRlRSVCwgUUltb2RlLCBvcGVyYW5kcykiCisgICAic2Fye2J9XHQlMCIK KyAgIFsoc2V0X2F0dHIgInR5cGUiICJpc2hpZnQiKQorLSAgIChzZXQgKGF0dHIgImxlbmd0aCIp CistICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5kIDAgInJlZ2lzdGVyX29wZXJhbmQi ICIiKQorLQkoY29uc3Rfc3RyaW5nICIyIikKKy0JKGNvbnN0X3N0cmluZyAiKiIpKSldKQorKyAg IChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjAiKQorKyAgIChzZXRfYXR0ciAibW9kZSIg IlFJIildKQorIAorIChkZWZpbmVfaW5zbiAiKmFzaHJxaTNfMV9vbmVfYml0X3NscCIKKyAgIFso c2V0IChzdHJpY3RfbG93X3BhcnQgKG1hdGNoX29wZXJhbmQ6UUkgMCAibm9uaW1tZWRpYXRlX29w ZXJhbmQiICIrcW0iKSkKK0BAIC0xMjcyMywxMCArMTMxMDksOCBAQCAoZGVmaW5lX2luc24gIiph c2hycWkzXzFfb25lX2JpdF9zbHAiCisgICAgJiYgaXg4Nl9iaW5hcnlfb3BlcmF0b3Jfb2sgKEFT SElGVFJULCBRSW1vZGUsIG9wZXJhbmRzKSIKKyAgICJzYXJ7Yn1cdCUwIgorICAgWyhzZXRfYXR0 ciAidHlwZSIgImlzaGlmdDEiKQorLSAgIChzZXQgKGF0dHIgImxlbmd0aCIpCistICAgICAoaWZf dGhlbl9lbHNlIChtYXRjaF9vcGVyYW5kIDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKQorLQkoY29u c3Rfc3RyaW5nICIyIikKKy0JKGNvbnN0X3N0cmluZyAiKiIpKSldKQorKyAgIChzZXRfYXR0ciAi bGVuZ3RoX2ltbWVkaWF0ZSIgIjAiKQorKyAgIChzZXRfYXR0ciAibW9kZSIgIlFJIildKQorIAor IChkZWZpbmVfaW5zbiAiKmFzaHJxaTNfMSIKKyAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFJIDAg Im5vbmltbWVkaWF0ZV9vcGVyYW5kIiAiPXFtLHFtIikKK0BAIC0xMjc2OSwxMCArMTMxNTMsOCBA QCAoZGVmaW5lX2luc24gIiphc2hycWkzX29uZV9iaXRfY21wIgorICAgICYmIGl4ODZfYmluYXJ5 X29wZXJhdG9yX29rIChBU0hJRlRSVCwgUUltb2RlLCBvcGVyYW5kcykiCisgICAic2Fye2J9XHQl MCIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJpc2hpZnQiKQorLSAgIChzZXQgKGF0dHIgImxlbmd0 aCIpCistICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5kIDAgInJlZ2lzdGVyX29wZXJh bmQiICIiKQorLQkoY29uc3Rfc3RyaW5nICIyIikKKy0JKGNvbnN0X3N0cmluZyAiKiIpKSldKQor KyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjAiKQorKyAgIChzZXRfYXR0ciAibW9k ZSIgIlFJIildKQorIAorIChkZWZpbmVfaW5zbiAiKmFzaHJxaTNfb25lX2JpdF9jY29ubHkiCisg ICBbKHNldCAocmVnIEZMQUdTX1JFRykKK0BAIC0xMjc4Niw3ICsxMzE2OCw4IEBAIChkZWZpbmVf aW5zbiAiKmFzaHJxaTNfb25lX2JpdF9jY29ubHkiCisgICAgJiYgaXg4Nl9iaW5hcnlfb3BlcmF0 b3Jfb2sgKEFTSElGVFJULCBRSW1vZGUsIG9wZXJhbmRzKSIKKyAgICJzYXJ7Yn1cdCUwIgorICAg WyhzZXRfYXR0ciAidHlwZSIgImlzaGlmdCIpCistICAgKHNldF9hdHRyICJsZW5ndGgiICIyIild KQorKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjAiKQorKyAgIChzZXRfYXR0ciAi bW9kZSIgIlFJIildKQorIAorIDs7IFRoaXMgcGF0dGVybiBjYW4ndCBhY2NlcHQgYSB2YXJpYWJs ZSBzaGlmdCBjb3VudCwgc2luY2Ugc2hpZnRzIGJ5CisgOzsgemVybyBkb24ndCBhZmZlY3QgdGhl IGZsYWdzLiAgV2UgYXNzdW1lIHRoYXQgc2hpZnRzIGJ5IGNvbnN0YW50CitAQCAtMTI4NDYsNiAr MTMyMjksNyBAQCAoZGVmaW5lX2luc24gIiphdnhfbHNocnRpMyIKKyB9CisgICBbKHNldF9hdHRy ICJ0eXBlIiAic3NlaXNoZnQiKQorICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKKysgICAo c2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJU SSIpXSkKKyAKKyAoZGVmaW5lX2luc24gInNzZTJfbHNocnRpMyIKK0BAIC0xMjg1OSw2ICsxMzI0 Myw3IEBAIChkZWZpbmVfaW5zbiAic3NlMl9sc2hydGkzIgorIH0KKyAgIFsoc2V0X2F0dHIgInR5 cGUiICJzc2Vpc2hmdCIpCisgICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMSIpCisrICAg KHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisgICAgKHNldF9hdHRyICJtb2RlIiAi VEkiKV0pCisgCisgKGRlZmluZV9pbnNuICIqbHNocnRpM18xIgorQEAgLTEyOTA4LDEwICsxMzI5 Myw4IEBAIChkZWZpbmVfaW5zbiAiKmxzaHJkaTNfMV9vbmVfYml0X3JleDY0IgorICAgICYmIGl4 ODZfYmluYXJ5X29wZXJhdG9yX29rIChMU0hJRlRSVCwgSEltb2RlLCBvcGVyYW5kcykiCisgICAi c2hye3F9XHQlMCIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJpc2hpZnQiKQorLSAgIChzZXQgKGF0 dHIgImxlbmd0aCIpCistICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5kOkRJIDAgInJl Z2lzdGVyX29wZXJhbmQiICIiKQorLQkoY29uc3Rfc3RyaW5nICIyIikKKy0JKGNvbnN0X3N0cmlu ZyAiKiIpKSldKQorKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjAiKQorKyAgIChz ZXRfYXR0ciAibW9kZSIgIkRJIildKQorIAorIChkZWZpbmVfaW5zbiAiKmxzaHJkaTNfMV9yZXg2 NCIKKyAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRJIDAgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAi PXJtLHJtIikKK0BAIC0xMjk0MiwxMCArMTMzMjUsOCBAQCAoZGVmaW5lX2luc24gIipsc2hyZGkz X2NtcF9vbmVfYml0X3JleDY0CisgICAgJiYgaXg4Nl9iaW5hcnlfb3BlcmF0b3Jfb2sgKExTSElG VFJULCBISW1vZGUsIG9wZXJhbmRzKSIKKyAgICJzaHJ7cX1cdCUwIgorICAgWyhzZXRfYXR0ciAi dHlwZSIgImlzaGlmdCIpCistICAgKHNldCAoYXR0ciAibGVuZ3RoIikKKy0gICAgIChpZl90aGVu X2Vsc2UgKG1hdGNoX29wZXJhbmQ6REkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpCistCShjb25z dF9zdHJpbmcgIjIiKQorLQkoY29uc3Rfc3RyaW5nICIqIikpKV0pCisrICAgKHNldF9hdHRyICJs ZW5ndGhfaW1tZWRpYXRlIiAiMCIpCisrICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0pCisgCisg KGRlZmluZV9pbnNuICIqbHNocmRpM19jY29ubHlfb25lX2JpdF9yZXg2NCIKKyAgIFsoc2V0IChy ZWcgRkxBR1NfUkVHKQorQEAgLTEyOTYwLDcgKzEzMzQxLDggQEAgKGRlZmluZV9pbnNuICIqbHNo cmRpM19jY29ubHlfb25lX2JpdF9yZQorICAgICYmIGl4ODZfYmluYXJ5X29wZXJhdG9yX29rIChM U0hJRlRSVCwgSEltb2RlLCBvcGVyYW5kcykiCisgICAic2hye3F9XHQlMCIKKyAgIFsoc2V0X2F0 dHIgInR5cGUiICJpc2hpZnQiKQorLSAgIChzZXRfYXR0ciAibGVuZ3RoIiAiMiIpXSkKKysgICAo c2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIwIikKKysgICAoc2V0X2F0dHIgIm1vZGUiICJE SSIpXSkKKyAKKyA7OyBUaGlzIHBhdHRlcm4gY2FuJ3QgYWNjZXB0IGEgdmFyaWFibGUgc2hpZnQg Y291bnQsIHNpbmNlIHNoaWZ0cyBieQorIDs7IHplcm8gZG9uJ3QgYWZmZWN0IHRoZSBmbGFncy4g IFdlIGFzc3VtZSB0aGF0IHNoaWZ0cyBieSBjb25zdGFudAorQEAgLTEzMDQ1LDEwICsxMzQyNyw4 IEBAIChkZWZpbmVfaW5zbiAiKmxzaHJzaTNfMV9vbmVfYml0IgorICAgICYmIGl4ODZfYmluYXJ5 X29wZXJhdG9yX29rIChMU0hJRlRSVCwgSEltb2RlLCBvcGVyYW5kcykiCisgICAic2hye2x9XHQl MCIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJpc2hpZnQiKQorLSAgIChzZXQgKGF0dHIgImxlbmd0 aCIpCistICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29w ZXJhbmQiICIiKQorLQkoY29uc3Rfc3RyaW5nICIyIikKKy0JKGNvbnN0X3N0cmluZyAiKiIpKSld KQorKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjAiKQorKyAgIChzZXRfYXR0ciAi bW9kZSIgIlNJIildKQorIAorIChkZWZpbmVfaW5zbiAiKmxzaHJzaTNfMV9vbmVfYml0X3pleHQi CisgICBbKHNldCAobWF0Y2hfb3BlcmFuZDpESSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQor QEAgLTEzMDYwLDcgKzEzNDQwLDggQEAgKGRlZmluZV9pbnNuICIqbHNocnNpM18xX29uZV9iaXRf emV4dCIKKyAgICAmJiBpeDg2X2JpbmFyeV9vcGVyYXRvcl9vayAoTFNISUZUUlQsIEhJbW9kZSwg b3BlcmFuZHMpIgorICAgInNocntsfVx0JWswIgorICAgWyhzZXRfYXR0ciAidHlwZSIgImlzaGlm dCIpCistICAgKHNldF9hdHRyICJsZW5ndGgiICIyIildKQorKyAgIChzZXRfYXR0ciAibGVuZ3Ro X2ltbWVkaWF0ZSIgIjAiKQorKyAgIChzZXRfYXR0ciAibW9kZSIgIlNJIildKQorIAorIChkZWZp bmVfaW5zbiAiKmxzaHJzaTNfMSIKKyAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgIm5vbmlt bWVkaWF0ZV9vcGVyYW5kIiAiPXJtLHJtIikKK0BAIC0xMzEwMywxMCArMTM0ODQsOCBAQCAoZGVm aW5lX2luc24gIipsc2hyc2kzX29uZV9iaXRfY21wIgorICAgICYmIGl4ODZfYmluYXJ5X29wZXJh dG9yX29rIChMU0hJRlRSVCwgSEltb2RlLCBvcGVyYW5kcykiCisgICAic2hye2x9XHQlMCIKKyAg IFsoc2V0X2F0dHIgInR5cGUiICJpc2hpZnQiKQorLSAgIChzZXQgKGF0dHIgImxlbmd0aCIpCist ICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQi ICIiKQorLQkoY29uc3Rfc3RyaW5nICIyIikKKy0JKGNvbnN0X3N0cmluZyAiKiIpKSldKQorKyAg IChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjAiKQorKyAgIChzZXRfYXR0ciAibW9kZSIg IlNJIildKQorIAorIChkZWZpbmVfaW5zbiAiKmxzaHJzaTNfb25lX2JpdF9jY29ubHkiCisgICBb KHNldCAocmVnIEZMQUdTX1JFRykKK0BAIC0xMzEyMCw3ICsxMzQ5OSw4IEBAIChkZWZpbmVfaW5z biAiKmxzaHJzaTNfb25lX2JpdF9jY29ubHkiCisgICAgJiYgaXg4Nl9iaW5hcnlfb3BlcmF0b3Jf b2sgKExTSElGVFJULCBISW1vZGUsIG9wZXJhbmRzKSIKKyAgICJzaHJ7bH1cdCUwIgorICAgWyhz ZXRfYXR0ciAidHlwZSIgImlzaGlmdCIpCistICAgKHNldF9hdHRyICJsZW5ndGgiICIyIildKQor KyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjAiKQorKyAgIChzZXRfYXR0ciAibW9k ZSIgIlNJIildKQorIAorIChkZWZpbmVfaW5zbiAiKmxzaHJzaTNfY21wX29uZV9iaXRfemV4dCIK KyAgIFsoc2V0IChyZWcgRkxBR1NfUkVHKQorQEAgLTEzMTM2LDcgKzEzNTE2LDggQEAgKGRlZmlu ZV9pbnNuICIqbHNocnNpM19jbXBfb25lX2JpdF96ZXh0IgorICAgICYmIGl4ODZfYmluYXJ5X29w ZXJhdG9yX29rIChMU0hJRlRSVCwgSEltb2RlLCBvcGVyYW5kcykiCisgICAic2hye2x9XHQlazAi CisgICBbKHNldF9hdHRyICJ0eXBlIiAiaXNoaWZ0IikKKy0gICAoc2V0X2F0dHIgImxlbmd0aCIg IjIiKV0pCisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMCIpCisrICAgKHNldF9h dHRyICJtb2RlIiAiU0kiKV0pCisgCisgOzsgVGhpcyBwYXR0ZXJuIGNhbid0IGFjY2VwdCBhIHZh cmlhYmxlIHNoaWZ0IGNvdW50LCBzaW5jZSBzaGlmdHMgYnkKKyA7OyB6ZXJvIGRvbid0IGFmZmVj dCB0aGUgZmxhZ3MuICBXZSBhc3N1bWUgdGhhdCBzaGlmdHMgYnkgY29uc3RhbnQKK0BAIC0xMzIw MiwxMCArMTM1ODMsOCBAQCAoZGVmaW5lX2luc24gIipsc2hyaGkzXzFfb25lX2JpdCIKKyAgICAm JiBpeDg2X2JpbmFyeV9vcGVyYXRvcl9vayAoTFNISUZUUlQsIEhJbW9kZSwgb3BlcmFuZHMpIgor ICAgInNocnt3fVx0JTAiCisgICBbKHNldF9hdHRyICJ0eXBlIiAiaXNoaWZ0IikKKy0gICAoc2V0 IChhdHRyICJsZW5ndGgiKQorLSAgICAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfb3BlcmFuZCAwICJy ZWdpc3Rlcl9vcGVyYW5kIiAiIikKKy0JKGNvbnN0X3N0cmluZyAiMiIpCistCShjb25zdF9zdHJp bmcgIioiKSkpXSkKKysgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIwIikKKysgICAo c2V0X2F0dHIgIm1vZGUiICJISSIpXSkKKyAKKyAoZGVmaW5lX2luc24gIipsc2hyaGkzXzEiCisg ICBbKHNldCAobWF0Y2hfb3BlcmFuZDpISSAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIj1ybSxy bSIpCitAQCAtMTMyMzUsMTAgKzEzNjE0LDggQEAgKGRlZmluZV9pbnNuICIqbHNocmhpM19vbmVf Yml0X2NtcCIKKyAgICAmJiBpeDg2X2JpbmFyeV9vcGVyYXRvcl9vayAoTFNISUZUUlQsIEhJbW9k ZSwgb3BlcmFuZHMpIgorICAgInNocnt3fVx0JTAiCisgICBbKHNldF9hdHRyICJ0eXBlIiAiaXNo aWZ0IikKKy0gICAoc2V0IChhdHRyICJsZW5ndGgiKQorLSAgICAgKGlmX3RoZW5fZWxzZSAobWF0 Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKKy0JKGNvbnN0X3N0cmluZyAi MiIpCistCShjb25zdF9zdHJpbmcgIioiKSkpXSkKKysgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1l ZGlhdGUiICIwIikKKysgICAoc2V0X2F0dHIgIm1vZGUiICJISSIpXSkKKyAKKyAoZGVmaW5lX2lu c24gIipsc2hyaGkzX29uZV9iaXRfY2Nvbmx5IgorICAgWyhzZXQgKHJlZyBGTEFHU19SRUcpCitA QCAtMTMyNTIsNyArMTM2MjksOCBAQCAoZGVmaW5lX2luc24gIipsc2hyaGkzX29uZV9iaXRfY2Nv bmx5IgorICAgICYmIGl4ODZfYmluYXJ5X29wZXJhdG9yX29rIChMU0hJRlRSVCwgSEltb2RlLCBv cGVyYW5kcykiCisgICAic2hye3d9XHQlMCIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJpc2hpZnQi KQorLSAgIChzZXRfYXR0ciAibGVuZ3RoIiAiMiIpXSkKKysgICAoc2V0X2F0dHIgImxlbmd0aF9p bW1lZGlhdGUiICIwIikKKysgICAoc2V0X2F0dHIgIm1vZGUiICJISSIpXSkKKyAKKyA7OyBUaGlz IHBhdHRlcm4gY2FuJ3QgYWNjZXB0IGEgdmFyaWFibGUgc2hpZnQgY291bnQsIHNpbmNlIHNoaWZ0 cyBieQorIDs7IHplcm8gZG9uJ3QgYWZmZWN0IHRoZSBmbGFncy4gIFdlIGFzc3VtZSB0aGF0IHNo aWZ0cyBieSBjb25zdGFudAorQEAgLTEzMzAyLDEwICsxMzY4MCw4IEBAIChkZWZpbmVfaW5zbiAi KmxzaHJxaTNfMV9vbmVfYml0IgorICAgICYmIGl4ODZfYmluYXJ5X29wZXJhdG9yX29rIChMU0hJ RlRSVCwgUUltb2RlLCBvcGVyYW5kcykiCisgICAic2hye2J9XHQlMCIKKyAgIFsoc2V0X2F0dHIg InR5cGUiICJpc2hpZnQiKQorLSAgIChzZXQgKGF0dHIgImxlbmd0aCIpCistICAgICAoaWZfdGhl bl9lbHNlIChtYXRjaF9vcGVyYW5kIDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKQorLQkoY29uc3Rf c3RyaW5nICIyIikKKy0JKGNvbnN0X3N0cmluZyAiKiIpKSldKQorKyAgIChzZXRfYXR0ciAibGVu Z3RoX2ltbWVkaWF0ZSIgIjAiKQorKyAgIChzZXRfYXR0ciAibW9kZSIgIlFJIildKQorIAorIChk ZWZpbmVfaW5zbiAiKmxzaHJxaTNfMV9vbmVfYml0X3NscCIKKyAgIFsoc2V0IChzdHJpY3RfbG93 X3BhcnQgKG1hdGNoX29wZXJhbmQ6UUkgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQiICIrcW0iKSkK K0BAIC0xMzMxNiwxMCArMTM2OTIsOCBAQCAoZGVmaW5lX2luc24gIipsc2hycWkzXzFfb25lX2Jp dF9zbHAiCisgICAgJiYgKFRBUkdFVF9TSElGVDEgfHwgb3B0aW1pemVfZnVuY3Rpb25fZm9yX3Np emVfcCAoY2Z1bikpIgorICAgInNocntifVx0JTAiCisgICBbKHNldF9hdHRyICJ0eXBlIiAiaXNo aWZ0MSIpCistICAgKHNldCAoYXR0ciAibGVuZ3RoIikKKy0gICAgIChpZl90aGVuX2Vsc2UgKG1h dGNoX29wZXJhbmQgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpCistCShjb25zdF9zdHJpbmcgIjIi KQorLQkoY29uc3Rfc3RyaW5nICIqIikpKV0pCisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRp YXRlIiAiMCIpCisrICAgKHNldF9hdHRyICJtb2RlIiAiUUkiKV0pCisgCisgKGRlZmluZV9pbnNu ICIqbHNocnFpM18xIgorICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UUkgMCAibm9uaW1tZWRpYXRl X29wZXJhbmQiICI9cW0scW0iKQorQEAgLTEzMzYyLDEwICsxMzczNiw4IEBAIChkZWZpbmVfaW5z biAiKmxzaHJxaTJfb25lX2JpdF9jbXAiCisgICAgJiYgaXg4Nl9iaW5hcnlfb3BlcmF0b3Jfb2sg KExTSElGVFJULCBRSW1vZGUsIG9wZXJhbmRzKSIKKyAgICJzaHJ7Yn1cdCUwIgorICAgWyhzZXRf YXR0ciAidHlwZSIgImlzaGlmdCIpCistICAgKHNldCAoYXR0ciAibGVuZ3RoIikKKy0gICAgIChp Zl90aGVuX2Vsc2UgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpCist CShjb25zdF9zdHJpbmcgIjIiKQorLQkoY29uc3Rfc3RyaW5nICIqIikpKV0pCisrICAgKHNldF9h dHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMCIpCisrICAgKHNldF9hdHRyICJtb2RlIiAiUUkiKV0p CisgCisgKGRlZmluZV9pbnNuICIqbHNocnFpMl9vbmVfYml0X2Njb25seSIKKyAgIFsoc2V0IChy ZWcgRkxBR1NfUkVHKQorQEAgLTEzMzc5LDcgKzEzNzUxLDggQEAgKGRlZmluZV9pbnNuICIqbHNo cnFpMl9vbmVfYml0X2Njb25seSIKKyAgICAmJiBpeDg2X2JpbmFyeV9vcGVyYXRvcl9vayAoTFNI SUZUUlQsIFFJbW9kZSwgb3BlcmFuZHMpIgorICAgInNocntifVx0JTAiCisgICBbKHNldF9hdHRy ICJ0eXBlIiAiaXNoaWZ0IikKKy0gICAoc2V0X2F0dHIgImxlbmd0aCIgIjIiKV0pCisrICAgKHNl dF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMCIpCisrICAgKHNldF9hdHRyICJtb2RlIiAiUUki KV0pCisgCisgOzsgVGhpcyBwYXR0ZXJuIGNhbid0IGFjY2VwdCBhIHZhcmlhYmxlIHNoaWZ0IGNv dW50LCBzaW5jZSBzaGlmdHMgYnkKKyA7OyB6ZXJvIGRvbid0IGFmZmVjdCB0aGUgZmxhZ3MuICBX ZSBhc3N1bWUgdGhhdCBzaGlmdHMgYnkgY29uc3RhbnQKK0BAIC0xMzQ2OCwxMCArMTM4NDEsOCBA QCAoZGVmaW5lX2luc24gIipyb3Rsc2kzXzFfb25lX2JpdF9yZXg2NCIKKyAgICAmJiBpeDg2X2Jp bmFyeV9vcGVyYXRvcl9vayAoUk9UQVRFLCBESW1vZGUsIG9wZXJhbmRzKSIKKyAgICJyb2x7cX1c dCUwIgorICAgWyhzZXRfYXR0ciAidHlwZSIgInJvdGF0ZSIpCistICAgKHNldCAoYXR0ciAibGVu Z3RoIikKKy0gICAgIChpZl90aGVuX2Vsc2UgKG1hdGNoX29wZXJhbmQ6REkgMCAicmVnaXN0ZXJf b3BlcmFuZCIgIiIpCistCShjb25zdF9zdHJpbmcgIjIiKQorLQkoY29uc3Rfc3RyaW5nICIqIikp KV0pCisrICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMCIpCisrICAgKHNldF9hdHRy ICJtb2RlIiAiREkiKV0pCisgCisgKGRlZmluZV9pbnNuICIqcm90bGRpM18xX3JleDY0IgorICAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6REkgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQiICI9cm0scm0i KQorQEAgLTEzNTAxLDEwICsxMzg3Miw4IEBAIChkZWZpbmVfaW5zbiAiKnJvdGxzaTNfMV9vbmVf Yml0IgorICAgICYmIGl4ODZfYmluYXJ5X29wZXJhdG9yX29rIChST1RBVEUsIFNJbW9kZSwgb3Bl cmFuZHMpIgorICAgInJvbHtsfVx0JTAiCisgICBbKHNldF9hdHRyICJ0eXBlIiAicm90YXRlIikK Ky0gICAoc2V0IChhdHRyICJsZW5ndGgiKQorLSAgICAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfb3Bl cmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKKy0JKGNvbnN0X3N0cmluZyAiMiIpCist CShjb25zdF9zdHJpbmcgIioiKSkpXSkKKysgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUi ICIwIikKKysgICAoc2V0X2F0dHIgIm1vZGUiICJTSSIpXSkKKyAKKyAoZGVmaW5lX2luc24gIipy b3Rsc2kzXzFfb25lX2JpdF96ZXh0IgorICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6REkgMCAicmVn aXN0ZXJfb3BlcmFuZCIgIj1yIikKK0BAIC0xMzUxNyw3ICsxMzg4Niw4IEBAIChkZWZpbmVfaW5z biAiKnJvdGxzaTNfMV9vbmVfYml0X3pleHQiCisgICAgJiYgaXg4Nl9iaW5hcnlfb3BlcmF0b3Jf b2sgKFJPVEFURSwgU0ltb2RlLCBvcGVyYW5kcykiCisgICAicm9se2x9XHQlazAiCisgICBbKHNl dF9hdHRyICJ0eXBlIiAicm90YXRlIikKKy0gICAoc2V0X2F0dHIgImxlbmd0aCIgIjIiKV0pCisr ICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMCIpCisrICAgKHNldF9hdHRyICJtb2Rl IiAiU0kiKV0pCisgCisgKGRlZmluZV9pbnNuICIqcm90bHNpM18xIgorICAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6U0kgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQiICI9cm0scm0iKQorQEAgLTEzNTYw LDEwICsxMzkzMCw4IEBAIChkZWZpbmVfaW5zbiAiKnJvdGxoaTNfMV9vbmVfYml0IgorICAgICYm IGl4ODZfYmluYXJ5X29wZXJhdG9yX29rIChST1RBVEUsIEhJbW9kZSwgb3BlcmFuZHMpIgorICAg InJvbHt3fVx0JTAiCisgICBbKHNldF9hdHRyICJ0eXBlIiAicm90YXRlIikKKy0gICAoc2V0IChh dHRyICJsZW5ndGgiKQorLSAgICAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfb3BlcmFuZCAwICJyZWdp c3Rlcl9vcGVyYW5kIiAiIikKKy0JKGNvbnN0X3N0cmluZyAiMiIpCistCShjb25zdF9zdHJpbmcg IioiKSkpXSkKKysgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIwIikKKysgICAoc2V0 X2F0dHIgIm1vZGUiICJISSIpXSkKKyAKKyAoZGVmaW5lX2luc24gIipyb3RsaGkzXzEiCisgICBb KHNldCAobWF0Y2hfb3BlcmFuZDpISSAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIj1ybSxybSIp CitAQCAtMTM2MDMsMTAgKzEzOTcxLDggQEAgKGRlZmluZV9pbnNuICIqcm90bHFpM18xX29uZV9i aXRfc2xwIgorICAgICYmIChUQVJHRVRfU0hJRlQxIHx8IG9wdGltaXplX2Z1bmN0aW9uX2Zvcl9z aXplX3AgKGNmdW4pKSIKKyAgICJyb2x7Yn1cdCUwIgorICAgWyhzZXRfYXR0ciAidHlwZSIgInJv dGF0ZTEiKQorLSAgIChzZXQgKGF0dHIgImxlbmd0aCIpCistICAgICAoaWZfdGhlbl9lbHNlICht YXRjaF9vcGVyYW5kIDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKQorLQkoY29uc3Rfc3RyaW5nICIy IikKKy0JKGNvbnN0X3N0cmluZyAiKiIpKSldKQorKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVk aWF0ZSIgIjAiKQorKyAgIChzZXRfYXR0ciAibW9kZSIgIlFJIildKQorIAorIChkZWZpbmVfaW5z biAiKnJvdGxxaTNfMV9vbmVfYml0IgorICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UUkgMCAibm9u aW1tZWRpYXRlX29wZXJhbmQiICI9cW0iKQorQEAgLTEzNjE3LDEwICsxMzk4Myw4IEBAIChkZWZp bmVfaW5zbiAiKnJvdGxxaTNfMV9vbmVfYml0IgorICAgICYmIGl4ODZfYmluYXJ5X29wZXJhdG9y X29rIChST1RBVEUsIFFJbW9kZSwgb3BlcmFuZHMpIgorICAgInJvbHtifVx0JTAiCisgICBbKHNl dF9hdHRyICJ0eXBlIiAicm90YXRlIikKKy0gICAoc2V0IChhdHRyICJsZW5ndGgiKQorLSAgICAg KGlmX3RoZW5fZWxzZSAobWF0Y2hfb3BlcmFuZCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKKy0J KGNvbnN0X3N0cmluZyAiMiIpCistCShjb25zdF9zdHJpbmcgIioiKSkpXSkKKysgICAoc2V0X2F0 dHIgImxlbmd0aF9pbW1lZGlhdGUiICIwIikKKysgICAoc2V0X2F0dHIgIm1vZGUiICJRSSIpXSkK KyAKKyAoZGVmaW5lX2luc24gIipyb3RscWkzXzFfc2xwIgorICAgWyhzZXQgKHN0cmljdF9sb3df cGFydCAobWF0Y2hfb3BlcmFuZDpRSSAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIitxbSxxbSIp KQorQEAgLTEzNzAwLDEwICsxNDA2NCw4IEBAIChkZWZpbmVfaW5zbiAiKnJvdHJkaTNfMV9vbmVf Yml0X3JleDY0IgorICAgICYmIGl4ODZfYmluYXJ5X29wZXJhdG9yX29rIChST1RBVEVSVCwgRElt b2RlLCBvcGVyYW5kcykiCisgICAicm9ye3F9XHQlMCIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJy b3RhdGUiKQorLSAgIChzZXQgKGF0dHIgImxlbmd0aCIpCistICAgICAoaWZfdGhlbl9lbHNlICht YXRjaF9vcGVyYW5kOkRJIDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKQorLQkoY29uc3Rfc3RyaW5n ICIyIikKKy0JKGNvbnN0X3N0cmluZyAiKiIpKSldKQorKyAgIChzZXRfYXR0ciAibGVuZ3RoX2lt bWVkaWF0ZSIgIjAiKQorKyAgIChzZXRfYXR0ciAibW9kZSIgIkRJIildKQorIAorIChkZWZpbmVf aW5zbiAiKnJvdHJkaTNfMV9yZXg2NCIKKyAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRJIDAgIm5v bmltbWVkaWF0ZV9vcGVyYW5kIiAiPXJtLHJtIikKK0BAIC0xMzczMywxMCArMTQwOTUsOCBAQCAo ZGVmaW5lX2luc24gIipyb3Ryc2kzXzFfb25lX2JpdCIKKyAgICAmJiBpeDg2X2JpbmFyeV9vcGVy YXRvcl9vayAoUk9UQVRFUlQsIFNJbW9kZSwgb3BlcmFuZHMpIgorICAgInJvcntsfVx0JTAiCisg ICBbKHNldF9hdHRyICJ0eXBlIiAicm90YXRlIikKKy0gICAoc2V0IChhdHRyICJsZW5ndGgiKQor LSAgICAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5k IiAiIikKKy0JKGNvbnN0X3N0cmluZyAiMiIpCistCShjb25zdF9zdHJpbmcgIioiKSkpXSkKKysg ICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIwIikKKysgICAoc2V0X2F0dHIgIm1vZGUi ICJTSSIpXSkKKyAKKyAoZGVmaW5lX2luc24gIipyb3Ryc2kzXzFfb25lX2JpdF96ZXh0IgorICAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6REkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKK0BAIC0x Mzc0OSwxMCArMTQxMDksOCBAQCAoZGVmaW5lX2luc24gIipyb3Ryc2kzXzFfb25lX2JpdF96ZXh0 IgorICAgICYmIGl4ODZfYmluYXJ5X29wZXJhdG9yX29rIChST1RBVEVSVCwgU0ltb2RlLCBvcGVy YW5kcykiCisgICAicm9ye2x9XHQlazAiCisgICBbKHNldF9hdHRyICJ0eXBlIiAicm90YXRlIikK Ky0gICAoc2V0IChhdHRyICJsZW5ndGgiKQorLSAgICAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfb3Bl cmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKKy0JKGNvbnN0X3N0cmluZyAiMiIpCist CShjb25zdF9zdHJpbmcgIioiKSkpXSkKKysgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUi ICIwIikKKysgICAoc2V0X2F0dHIgIm1vZGUiICJTSSIpXSkKKyAKKyAoZGVmaW5lX2luc24gIipy b3Ryc2kzXzEiCisgICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJub25pbW1lZGlhdGVfb3Bl cmFuZCIgIj1ybSxybSIpCitAQCAtMTM3OTUsMTAgKzE0MTUzLDggQEAgKGRlZmluZV9pbnNuICIq cm90cmhpM19vbmVfYml0IgorICAgICYmIGl4ODZfYmluYXJ5X29wZXJhdG9yX29rIChST1RBVEVS VCwgSEltb2RlLCBvcGVyYW5kcykiCisgICAicm9ye3d9XHQlMCIKKyAgIFsoc2V0X2F0dHIgInR5 cGUiICJyb3RhdGUiKQorLSAgIChzZXQgKGF0dHIgImxlbmd0aCIpCistICAgICAoaWZfdGhlbl9l bHNlIChtYXRjaF9vcGVyYW5kIDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKQorLQkoY29uc3Rfc3Ry aW5nICIyIikKKy0JKGNvbnN0X3N0cmluZyAiKiIpKSldKQorKyAgIChzZXRfYXR0ciAibGVuZ3Ro X2ltbWVkaWF0ZSIgIjAiKQorKyAgIChzZXRfYXR0ciAibW9kZSIgIkhJIildKQorIAorIChkZWZp bmVfaW5zbiAiKnJvdHJoaTNfMSIKKyAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgIm5vbmlt bWVkaWF0ZV9vcGVyYW5kIiAiPXJtLHJtIikKK0BAIC0xMzgzOCwxMCArMTQxOTQsOCBAQCAoZGVm aW5lX2luc24gIipyb3RycWkzXzFfb25lX2JpdCIKKyAgICAmJiBpeDg2X2JpbmFyeV9vcGVyYXRv cl9vayAoUk9UQVRFUlQsIFFJbW9kZSwgb3BlcmFuZHMpIgorICAgInJvcntifVx0JTAiCisgICBb KHNldF9hdHRyICJ0eXBlIiAicm90YXRlIikKKy0gICAoc2V0IChhdHRyICJsZW5ndGgiKQorLSAg ICAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfb3BlcmFuZCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikK Ky0JKGNvbnN0X3N0cmluZyAiMiIpCistCShjb25zdF9zdHJpbmcgIioiKSkpXSkKKysgICAoc2V0 X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIwIikKKysgICAoc2V0X2F0dHIgIm1vZGUiICJRSSIp XSkKKyAKKyAoZGVmaW5lX2luc24gIipyb3RycWkzXzFfb25lX2JpdF9zbHAiCisgICBbKHNldCAo c3RyaWN0X2xvd19wYXJ0IChtYXRjaF9vcGVyYW5kOlFJIDAgIm5vbmltbWVkaWF0ZV9vcGVyYW5k IiAiK3FtIikpCitAQCAtMTM4NTIsMTAgKzE0MjA2LDggQEAgKGRlZmluZV9pbnNuICIqcm90cnFp M18xX29uZV9iaXRfc2xwIgorICAgICYmIChUQVJHRVRfU0hJRlQxIHx8IG9wdGltaXplX2Z1bmN0 aW9uX2Zvcl9zaXplX3AgKGNmdW4pKSIKKyAgICJyb3J7Yn1cdCUwIgorICAgWyhzZXRfYXR0ciAi dHlwZSIgInJvdGF0ZTEiKQorLSAgIChzZXQgKGF0dHIgImxlbmd0aCIpCistICAgICAoaWZfdGhl bl9lbHNlIChtYXRjaF9vcGVyYW5kIDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKQorLQkoY29uc3Rf c3RyaW5nICIyIikKKy0JKGNvbnN0X3N0cmluZyAiKiIpKSldKQorKyAgIChzZXRfYXR0ciAibGVu Z3RoX2ltbWVkaWF0ZSIgIjAiKQorKyAgIChzZXRfYXR0ciAibW9kZSIgIlFJIildKQorIAorIChk ZWZpbmVfaW5zbiAiKnJvdHJxaTNfMSIKKyAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFJIDAgIm5v bmltbWVkaWF0ZV9vcGVyYW5kIiAiPXFtLHFtIikKK0BAIC0xMzk2Myw3ICsxNDMxNSw5IEBAIChk ZWZpbmVfaW5zbiAiKmJ0c3EiCisgICAgKGNsb2JiZXIgKHJlZzpDQyBGTEFHU19SRUcpKV0KKyAg ICJUQVJHRVRfNjRCSVQgJiYgKFRBUkdFVF9VU0VfQlQgfHwgcmVsb2FkX2NvbXBsZXRlZCkiCisg ICAiYnRze3F9XHR7JTEsICUwfCUwLCAlMX0iCistICBbKHNldF9hdHRyICJ0eXBlIiAiYWx1MSIp XSkKKysgIFsoc2V0X2F0dHIgInR5cGUiICJhbHUxIikKKysgICAoc2V0X2F0dHIgInByZWZpeF8w ZiIgIjEiKQorKyAgIChzZXRfYXR0ciAibW9kZSIgIkRJIildKQorIAorIChkZWZpbmVfaW5zbiAi KmJ0cnEiCisgICBbKHNldCAoemVyb19leHRyYWN0OkRJIChtYXRjaF9vcGVyYW5kOkRJIDAgInJl Z2lzdGVyX29wZXJhbmQiICIrciIpCitAQCAtMTM5NzMsNyArMTQzMjcsOSBAQCAoZGVmaW5lX2lu c24gIipidHJxIgorICAgIChjbG9iYmVyIChyZWc6Q0MgRkxBR1NfUkVHKSldCisgICAiVEFSR0VU XzY0QklUICYmIChUQVJHRVRfVVNFX0JUIHx8IHJlbG9hZF9jb21wbGV0ZWQpIgorICAgImJ0cntx fVx0eyUxLCAlMHwlMCwgJTF9IgorLSAgWyhzZXRfYXR0ciAidHlwZSIgImFsdTEiKV0pCisrICBb KHNldF9hdHRyICJ0eXBlIiAiYWx1MSIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfMGYiICIxIikK KysgICAoc2V0X2F0dHIgIm1vZGUiICJESSIpXSkKKyAKKyAoZGVmaW5lX2luc24gIipidGNxIgor ICAgWyhzZXQgKHplcm9fZXh0cmFjdDpESSAobWF0Y2hfb3BlcmFuZDpESSAwICJyZWdpc3Rlcl9v cGVyYW5kIiAiK3IiKQorQEAgLTEzOTgzLDcgKzE0MzM5LDkgQEAgKGRlZmluZV9pbnNuICIqYnRj cSIKKyAgICAoY2xvYmJlciAocmVnOkNDIEZMQUdTX1JFRykpXQorICAgIlRBUkdFVF82NEJJVCAm JiAoVEFSR0VUX1VTRV9CVCB8fCByZWxvYWRfY29tcGxldGVkKSIKKyAgICJidGN7cX1cdHslMSwg JTB8JTAsICUxfSIKKy0gIFsoc2V0X2F0dHIgInR5cGUiICJhbHUxIildKQorKyAgWyhzZXRfYXR0 ciAidHlwZSIgImFsdTEiKQorKyAgIChzZXRfYXR0ciAicHJlZml4XzBmIiAiMSIpCisrICAgKHNl dF9hdHRyICJtb2RlIiAiREkiKV0pCisgCisgOzsgQWxsb3cgTm9jb25hIHRvIGF2b2lkIHRoZXNl IGluc3RydWN0aW9ucyBpZiBhIHJlZ2lzdGVyIGlzIGF2YWlsYWJsZS4KKyAKK0BAIC0xNDA5NCw3 ICsxNDQ1Miw5IEBAIChkZWZpbmVfaW5zbiAiKmJ0ZGlfcmV4NjQiCisgCSAgKGNvbnN0X2ludCAw KSkpXQorICAgIlRBUkdFVF82NEJJVCAmJiAoVEFSR0VUX1VTRV9CVCB8fCBvcHRpbWl6ZV9mdW5j dGlvbl9mb3Jfc2l6ZV9wIChjZnVuKSkiCisgICAiYnR7cX1cdHslMSwgJTB8JTAsICUxfSIKKy0g IFsoc2V0X2F0dHIgInR5cGUiICJhbHUxIildKQorKyAgWyhzZXRfYXR0ciAidHlwZSIgImFsdTEi KQorKyAgIChzZXRfYXR0ciAicHJlZml4XzBmIiAiMSIpCisrICAgKHNldF9hdHRyICJtb2RlIiAi REkiKV0pCisgCisgKGRlZmluZV9pbnNuICIqYnRzaSIKKyAgIFsoc2V0IChyZWc6Q0NDIEZMQUdT X1JFRykKK0BAIC0xNDEwNiw3ICsxNDQ2Niw5IEBAIChkZWZpbmVfaW5zbiAiKmJ0c2kiCisgCSAg KGNvbnN0X2ludCAwKSkpXQorICAgIlRBUkdFVF9VU0VfQlQgfHwgb3B0aW1pemVfZnVuY3Rpb25f Zm9yX3NpemVfcCAoY2Z1bikiCisgICAiYnR7bH1cdHslMSwgJTB8JTAsICUxfSIKKy0gIFsoc2V0 X2F0dHIgInR5cGUiICJhbHUxIildKQorKyAgWyhzZXRfYXR0ciAidHlwZSIgImFsdTEiKQorKyAg IChzZXRfYXR0ciAicHJlZml4XzBmIiAiMSIpCisrICAgKHNldF9hdHRyICJtb2RlIiAiU0kiKV0p CisgDAorIDs7IFN0b3JlLWZsYWcgaW5zdHJ1Y3Rpb25zLgorIAorQEAgLTE0MjMxLDYgKzE0NTkz LDcgQEAgKGRlZmluZV9pbnNuICIqYXZ4X3NldGNjPG1vZGU+IgorICAgInZjbXAlRDFzPHNzZW1v ZGVmc3VmZml4Plx0eyUzLCAlMiwgJTB8JTAsICUyLCAlM30iCisgICBbKHNldF9hdHRyICJ0eXBl IiAic3NlY21wIikKKyAgICAoc2V0X2F0dHIgInByZWZpeCIgInZleCIpCisrICAgKHNldF9hdHRy ICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+Iild KQorIAorIChkZWZpbmVfaW5zbiAiKnNzZV9zZXRjYzxtb2RlPiIKK0BAIC0xNDI0MSw2ICsxNDYw NCw3IEBAIChkZWZpbmVfaW5zbiAiKnNzZV9zZXRjYzxtb2RlPiIKKyAgICJTU0VfRkxPQVRfTU9E RV9QICg8TU9ERT5tb2RlKSAmJiAhVEFSR0VUX1NTRTUiCisgICAiY21wJUQxczxzc2Vtb2RlZnN1 ZmZpeD5cdHslMywgJTB8JTAsICUzfSIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2VjbXAiKQor KyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQorICAgIChzZXRfYXR0ciAibW9k ZSIgIjxNT0RFPiIpXSkKKyAKKyAoZGVmaW5lX2luc24gIipzc2U1X3NldGNjPG1vZGU+IgorQEAg LTE0MjUxLDYgKzE0NjE1LDcgQEAgKGRlZmluZV9pbnNuICIqc3NlNV9zZXRjYzxtb2RlPiIKKyAg ICJUQVJHRVRfU1NFNSIKKyAgICJjb20lWTFzPHNzZW1vZGVmc3VmZml4Plx0eyUzLCAlMiwgJTB8 JTAsICUyLCAlM30iCisgICBbKHNldF9hdHRyICJ0eXBlIiAic3NlNGFyZyIpCisrICAgKHNldF9h dHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCisgICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+ IildKQorIAorIAwKK0BAIC0xNTI4NSw3ICsxNTY1MCw3IEBAIChkZWZpbmVfaW5zbiAicmV0dXJu X2ludGVybmFsX2xvbmciCisgICAgKHVuc3BlYyBbKGNvbnN0X2ludCAwKV0gVU5TUEVDX1JFUCld CisgICAicmVsb2FkX2NvbXBsZXRlZCIKKyAgICJyZXBcO3JldCIKKy0gIFsoc2V0X2F0dHIgImxl bmd0aCIgIjEiKQorKyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMiIpCisgICAgKHNldF9hdHRyICJh dG9tX3VuaXQiICJqZXUiKQorICAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjAiKQor ICAgIChzZXRfYXR0ciAicHJlZml4X3JlcCIgIjEiKQorQEAgLTE1MzY3LDcgKzE1NzMyLDggQEAg KGRlZmluZV9pbnNuICJzZXRfZ290X3JleDY0IgorICAgIlRBUkdFVF82NEJJVCIKKyAgICJsZWF7 cX1cdHtfR0xPQkFMX09GRlNFVF9UQUJMRV8oJSVyaXApLCAlMHwlMCwgX0dMT0JBTF9PRkZTRVRf VEFCTEVfW3JpcF19IgorICAgWyhzZXRfYXR0ciAidHlwZSIgImxlYSIpCistICAgKHNldF9hdHRy ICJsZW5ndGgiICI2IildKQorKyAgIChzZXRfYXR0ciAibGVuZ3RoX2FkZHJlc3MiICI0IikKKysg ICAoc2V0X2F0dHIgIm1vZGUiICJESSIpXSkKKyAKKyAoZGVmaW5lX2luc24gInNldF9yaXBfcmV4 NjQiCisgICBbKHNldCAobWF0Y2hfb3BlcmFuZDpESSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIi KQorQEAgLTE1Mzc1LDcgKzE1NzQxLDggQEAgKGRlZmluZV9pbnNuICJzZXRfcmlwX3JleDY0Igor ICAgIlRBUkdFVF82NEJJVCIKKyAgICJsZWF7cX1cdHslbDEoJSVyaXApLCAlMHwlMCwgJWwxW3Jp cF19IgorICAgWyhzZXRfYXR0ciAidHlwZSIgImxlYSIpCistICAgKHNldF9hdHRyICJsZW5ndGgi ICI2IildKQorKyAgIChzZXRfYXR0ciAibGVuZ3RoX2FkZHJlc3MiICI0IikKKysgICAoc2V0X2F0 dHIgIm1vZGUiICJESSIpXSkKKyAKKyAoZGVmaW5lX2luc24gInNldF9nb3Rfb2Zmc2V0X3JleDY0 IgorICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6REkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikK K0BAIC0xNTM4NSw3ICsxNTc1Miw5IEBAIChkZWZpbmVfaW5zbiAic2V0X2dvdF9vZmZzZXRfcmV4 NjQiCisgICAiVEFSR0VUXzY0QklUIgorICAgIm1vdmFic3txfVx0eyRfR0xPQkFMX09GRlNFVF9U QUJMRV8tJWwxLCAlMHwlMCwgT0ZGU0VUIEZMQVQ6X0dMT0JBTF9PRkZTRVRfVEFCTEVfLSVsMX0i CisgICBbKHNldF9hdHRyICJ0eXBlIiAiaW1vdiIpCistICAgKHNldF9hdHRyICJsZW5ndGgiICIx MSIpXSkKKysgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIwIikKKysgICAoc2V0X2F0 dHIgImxlbmd0aF9hZGRyZXNzIiAiOCIpCisrICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0pCisg CisgKGRlZmluZV9leHBhbmQgImVwaWxvZ3VlIgorICAgWyhjb25zdF9pbnQgMCldCitAQCAtMTU1 MDgsNyArMTU4NzcsOSBAQCAoZGVmaW5lX2luc24gIipmZnNzaV8xIgorIAkoY3R6OlNJIChtYXRj aF9kdXAgMSkpKV0KKyAgICIiCisgICAiYnNme2x9XHR7JTEsICUwfCUwLCAlMX0iCistICBbKHNl dF9hdHRyICJwcmVmaXhfMGYiICIxIildKQorKyAgWyhzZXRfYXR0ciAidHlwZSIgImFsdTEiKQor KyAgIChzZXRfYXR0ciAicHJlZml4XzBmIiAiMSIpCisrICAgKHNldF9hdHRyICJtb2RlIiAiU0ki KV0pCisgCisgKGRlZmluZV9leHBhbmQgImZmc2RpMiIKKyAgIFsoc2V0IChtYXRjaF9kdXAgMikg KGNvbnN0X2ludCAtMSkpCitAQCAtMTU1MzQsNyArMTU5MDUsOSBAQCAoZGVmaW5lX2luc24gIipm ZnNkaV8xIgorIAkoY3R6OkRJIChtYXRjaF9kdXAgMSkpKV0KKyAgICJUQVJHRVRfNjRCSVQiCisg ICAiYnNme3F9XHR7JTEsICUwfCUwLCAlMX0iCistICBbKHNldF9hdHRyICJwcmVmaXhfMGYiICIx IildKQorKyAgWyhzZXRfYXR0ciAidHlwZSIgImFsdTEiKQorKyAgIChzZXRfYXR0ciAicHJlZml4 XzBmIiAiMSIpCisrICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0pCisgCisgKGRlZmluZV9pbnNu ICJjdHpzaTIiCisgICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5k IiAiPXIiKQorQEAgLTE1NTQyLDcgKzE1OTE1LDkgQEAgKGRlZmluZV9pbnNuICJjdHpzaTIiCisg ICAgKGNsb2JiZXIgKHJlZzpDQyBGTEFHU19SRUcpKV0KKyAgICIiCisgICAiYnNme2x9XHR7JTEs ICUwfCUwLCAlMX0iCistICBbKHNldF9hdHRyICJwcmVmaXhfMGYiICIxIildKQorKyAgWyhzZXRf YXR0ciAidHlwZSIgImFsdTEiKQorKyAgIChzZXRfYXR0ciAicHJlZml4XzBmIiAiMSIpCisrICAg KHNldF9hdHRyICJtb2RlIiAiU0kiKV0pCisgCisgKGRlZmluZV9pbnNuICJjdHpkaTIiCisgICBb KHNldCAobWF0Y2hfb3BlcmFuZDpESSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQorQEAgLTE1 NTUwLDcgKzE1OTI1LDkgQEAgKGRlZmluZV9pbnNuICJjdHpkaTIiCisgICAgKGNsb2JiZXIgKHJl ZzpDQyBGTEFHU19SRUcpKV0KKyAgICJUQVJHRVRfNjRCSVQiCisgICAiYnNme3F9XHR7JTEsICUw fCUwLCAlMX0iCistICBbKHNldF9hdHRyICJwcmVmaXhfMGYiICIxIildKQorKyAgWyhzZXRfYXR0 ciAidHlwZSIgImFsdTEiKQorKyAgIChzZXRfYXR0ciAicHJlZml4XzBmIiAiMSIpCisrICAgKHNl dF9hdHRyICJtb2RlIiAiREkiKV0pCisgCisgKGRlZmluZV9leHBhbmQgImNsenNpMiIKKyAgIFso cGFyYWxsZWwKK0BAIC0xNTU4Nyw3ICsxNTk2NCw4IEBAIChkZWZpbmVfaW5zbiAiKmJzciIKKyAg ICAoY2xvYmJlciAocmVnOkNDIEZMQUdTX1JFRykpXQorICAgIiIKKyAgICJic3J7bH1cdHslMSwg JTB8JTAsICUxfSIKKy0gIFsoc2V0X2F0dHIgInByZWZpeF8wZiIgIjEiKQorKyAgWyhzZXRfYXR0 ciAidHlwZSIgImFsdTEiKQorKyAgIChzZXRfYXR0ciAicHJlZml4XzBmIiAiMSIpCisgICAgKHNl dF9hdHRyICJtb2RlIiAiU0kiKV0pCisgCisgKGRlZmluZV9pbnNuICJwb3Bjb3VudDxtb2RlPjIi CitAQCAtMTU3NzEsNyArMTYxNDksOCBAQCAoZGVmaW5lX2luc24gIipic3JfcmV4NjQiCisgICAg KGNsb2JiZXIgKHJlZzpDQyBGTEFHU19SRUcpKV0KKyAgICJUQVJHRVRfNjRCSVQiCisgICAiYnNy e3F9XHR7JTEsICUwfCUwLCAlMX0iCistICBbKHNldF9hdHRyICJwcmVmaXhfMGYiICIxIikKKysg IFsoc2V0X2F0dHIgInR5cGUiICJhbHUxIikKKysgICAoc2V0X2F0dHIgInByZWZpeF8wZiIgIjEi KQorICAgIChzZXRfYXR0ciAibW9kZSIgIkRJIildKQorIAorIChkZWZpbmVfZXhwYW5kICJjbHpo aTIiCitAQCAtMTU4MDksNyArMTYxODgsOCBAQCAoZGVmaW5lX2luc24gIipic3JoaSIKKyAgICAo Y2xvYmJlciAocmVnOkNDIEZMQUdTX1JFRykpXQorICAgIiIKKyAgICJic3J7d31cdHslMSwgJTB8 JTAsICUxfSIKKy0gIFsoc2V0X2F0dHIgInByZWZpeF8wZiIgIjEiKQorKyAgWyhzZXRfYXR0ciAi dHlwZSIgImFsdTEiKQorKyAgIChzZXRfYXR0ciAicHJlZml4XzBmIiAiMSIpCisgICAgKHNldF9h dHRyICJtb2RlIiAiSEkiKV0pCisgCisgKGRlZmluZV9leHBhbmQgInBhcml0eWRpMiIKK0BAIC0x ODkwMSw2ICsxOTI4MSw3IEBAIChkZWZpbmVfaW5zbiAiZnhhbTxtb2RlPjJfaTM4NyIKKyAgICJU QVJHRVRfVVNFX0ZBTkNZX01BVEhfMzg3IgorICAgImZ4YW1cblx0Zm5zdHN3XHQlMCIKKyAgIFso c2V0X2F0dHIgInR5cGUiICJtdWx0aSIpCisrICAgKHNldF9hdHRyICJsZW5ndGgiICI0IikKKyAg ICAoc2V0X2F0dHIgInVuaXQiICJpMzg3IikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4i KV0pCisgCitAQCAtMTkxOTAsNiArMTk1NzEsNyBAQCAoZGVmaW5lX2luc24gIipzdHJtb3ZxaV9y ZXhfMSIKKyAgICJtb3ZzYiIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJzdHIiKQorICAgIChzZXRf YXR0ciAibWVtb3J5IiAiYm90aCIpCisrICAgKHNldF9hdHRyICJwcmVmaXhfcmV4IiAiMCIpCisg ICAgKHNldF9hdHRyICJtb2RlIiAiUUkiKV0pCisgCisgKGRlZmluZV9leHBhbmQgInJlcF9tb3Yi CitAQCAtMTk0NDYsNiArMTk4MjgsNyBAQCAoZGVmaW5lX2luc24gIipzdHJzZXRxaV9yZXhfMSIK KyAgICJzdG9zYiIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJzdHIiKQorICAgIChzZXRfYXR0ciAi bWVtb3J5IiAic3RvcmUiKQorKyAgIChzZXRfYXR0ciAicHJlZml4X3JleCIgIjAiKQorICAgIChz ZXRfYXR0ciAibW9kZSIgIlFJIildKQorIAorIChkZWZpbmVfZXhwYW5kICJyZXBfc3RvcyIKK0BA IC0xOTUzOSw2ICsxOTkyMiw3IEBAIChkZWZpbmVfaW5zbiAiKnJlcF9zdG9zcWlfcmV4NjQiCisg ICBbKHNldF9hdHRyICJ0eXBlIiAic3RyIikKKyAgICAoc2V0X2F0dHIgInByZWZpeF9yZXAiICIx IikKKyAgICAoc2V0X2F0dHIgIm1lbW9yeSIgInN0b3JlIikKKysgICAoc2V0X2F0dHIgInByZWZp eF9yZXgiICIwIikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJRSSIpXSkKKyAKKyAoZGVmaW5lX2V4 cGFuZCAiY21wc3RybnNpIgorQEAgLTE5NjY1LDYgKzIwMDQ5LDcgQEAgKGRlZmluZV9pbnNuICIq Y21wc3RybnFpX256X3JleF8xIgorICAgInJlcHogY21wc2IiCisgICBbKHNldF9hdHRyICJ0eXBl IiAic3RyIikKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJRSSIpCisrICAgKHNldF9hdHRyICJwcmVm aXhfcmV4IiAiMCIpCisgICAgKHNldF9hdHRyICJwcmVmaXhfcmVwIiAiMSIpXSkKKyAKKyA7OyBU aGUgc2FtZSwgYnV0IHRoZSBjb3VudCBpcyBub3Qga25vd24gdG8gbm90IGJlIHplcm8uCitAQCAt MTk3MTgsNiArMjAxMDMsNyBAQCAoZGVmaW5lX2luc24gIipjbXBzdHJucWlfcmV4XzEiCisgICAi cmVweiBjbXBzYiIKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJzdHIiKQorICAgIChzZXRfYXR0ciAi bW9kZSIgIlFJIikKKysgICAoc2V0X2F0dHIgInByZWZpeF9yZXgiICIwIikKKyAgICAoc2V0X2F0 dHIgInByZWZpeF9yZXAiICIxIildKQorIAorIChkZWZpbmVfZXhwYW5kICJzdHJsZW5zaSIKK0BA IC0xOTc3OSw2ICsyMDE2NSw3IEBAIChkZWZpbmVfaW5zbiAiKnN0cmxlbnFpX3JleF8xIgorICAg InJlcG56IHNjYXNiIgorICAgWyhzZXRfYXR0ciAidHlwZSIgInN0ciIpCisgICAgKHNldF9hdHRy ICJtb2RlIiAiUUkiKQorKyAgIChzZXRfYXR0ciAicHJlZml4X3JleCIgIjAiKQorICAgIChzZXRf YXR0ciAicHJlZml4X3JlcCIgIjEiKV0pCisgCisgOzsgUGVlcGhvbGUgb3B0aW1pemF0aW9ucyB0 byBjbGVhbiB1cCBhZnRlciBjbXBzdHJuKi4gIFRoaXMgc2hvdWxkIGJlCitAQCAtMjAyOTksNiAr MjA2ODYsMTQgQEAgKGRlZmluZV9pbnNuICJwcm9fZXBpbG9ndWVfYWRqdXN0X3N0YWNrXworIAkJ IChjb25zdF9zdHJpbmcgImltb3YiKQorIAkgICAgICBdCisgCSAgICAgIChjb25zdF9zdHJpbmcg ImxlYSIpKSkKKysgICAoc2V0IChhdHRyICJsZW5ndGhfaW1tZWRpYXRlIikKKysJKGNvbmQgWyhl cV9hdHRyICJ0eXBlIiAiaW1vdiIpCisrCQkgKGNvbnN0X3N0cmluZyAiMCIpCisrCSAgICAgICAo YW5kIChlcV9hdHRyICJ0eXBlIiAiYWx1IikKKysJCSAgICAobWF0Y2hfb3BlcmFuZCAyICJjb25z dDEyOF9vcGVyYW5kIiAiIikpCisrCQkgKGNvbnN0X3N0cmluZyAiMSIpCisrCSAgICAgIF0KKysJ ICAgICAgKGNvbnN0X3N0cmluZyAiKiIpKSkKKyAgICAoc2V0X2F0dHIgIm1vZGUiICJTSSIpXSkK KyAKKyAoZGVmaW5lX2luc24gInByb19lcGlsb2d1ZV9hZGp1c3Rfc3RhY2tfcmV4NjQiCitAQCAt MjAzNDMsNiArMjA3MzgsMTQgQEAgKGRlZmluZV9pbnNuICJwcm9fZXBpbG9ndWVfYWRqdXN0X3N0 YWNrXworIAkJIChjb25zdF9zdHJpbmcgImltb3YiKQorIAkgICAgICBdCisgCSAgICAgIChjb25z dF9zdHJpbmcgImxlYSIpKSkKKysgICAoc2V0IChhdHRyICJsZW5ndGhfaW1tZWRpYXRlIikKKysJ KGNvbmQgWyhlcV9hdHRyICJ0eXBlIiAiaW1vdiIpCisrCQkgKGNvbnN0X3N0cmluZyAiMCIpCisr CSAgICAgICAoYW5kIChlcV9hdHRyICJ0eXBlIiAiYWx1IikKKysJCSAgICAobWF0Y2hfb3BlcmFu ZCAyICJjb25zdDEyOF9vcGVyYW5kIiAiIikpCisrCQkgKGNvbnN0X3N0cmluZyAiMSIpCisrCSAg ICAgIF0KKysJICAgICAgKGNvbnN0X3N0cmluZyAiKiIpKSkKKyAgICAoc2V0X2F0dHIgIm1vZGUi ICJESSIpXSkKKyAKKyAoZGVmaW5lX2luc24gInByb19lcGlsb2d1ZV9hZGp1c3Rfc3RhY2tfcmV4 NjRfMiIKK0BAIC0yMTgzMCw2ICsyMjIzMyw3IEBAIChkZWZpbmVfaW5zbiAiKnByZWZldGNoX3Nz ZSIKKyB9CisgICBbKHNldF9hdHRyICJ0eXBlIiAic3NlIikKKyAgICAoc2V0X2F0dHIgImF0b21f c3NlX2F0dHIiICJwcmVmZXRjaCIpCisrICAgKHNldCAoYXR0ciAibGVuZ3RoX2FkZHJlc3MiKSAo c3ltYm9sX3JlZiAibWVtb3J5X2FkZHJlc3NfbGVuZ3RoIChvcGVyYW5kc1swXSkiKSkKKyAgICAo c2V0X2F0dHIgIm1lbW9yeSIgIm5vbmUiKV0pCisgCisgKGRlZmluZV9pbnNuICIqcHJlZmV0Y2hf c3NlX3JleCIKK0BAIC0yMTg0OSw2ICsyMjI1Myw3IEBAIChkZWZpbmVfaW5zbiAiKnByZWZldGNo X3NzZV9yZXgiCisgfQorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZSIpCisgICAgKHNldF9hdHRy ICJhdG9tX3NzZV9hdHRyIiAicHJlZmV0Y2giKQorKyAgIChzZXQgKGF0dHIgImxlbmd0aF9hZGRy ZXNzIikgKHN5bWJvbF9yZWYgIm1lbW9yeV9hZGRyZXNzX2xlbmd0aCAob3BlcmFuZHNbMF0pIikp CisgICAgKHNldF9hdHRyICJtZW1vcnkiICJub25lIildKQorIAorIChkZWZpbmVfaW5zbiAiKnBy ZWZldGNoXzNkbm93IgorQEAgLTIxODYzLDYgKzIyMjY4LDcgQEAgKGRlZmluZV9pbnNuICIqcHJl ZmV0Y2hfM2Rub3ciCisgICAgIHJldHVybiAicHJlZmV0Y2h3XHQlYTAiOworIH0KKyAgIFsoc2V0 X2F0dHIgInR5cGUiICJtbXgiKQorKyAgIChzZXQgKGF0dHIgImxlbmd0aF9hZGRyZXNzIikgKHN5 bWJvbF9yZWYgIm1lbW9yeV9hZGRyZXNzX2xlbmd0aCAob3BlcmFuZHNbMF0pIikpCisgICAgKHNl dF9hdHRyICJtZW1vcnkiICJub25lIildKQorIAorIChkZWZpbmVfaW5zbiAiKnByZWZldGNoXzNk bm93X3JleCIKK0BAIC0yMTg3Nyw2ICsyMjI4Myw3IEBAIChkZWZpbmVfaW5zbiAiKnByZWZldGNo XzNkbm93X3JleCIKKyAgICAgcmV0dXJuICJwcmVmZXRjaHdcdCVhMCI7CisgfQorICAgWyhzZXRf YXR0ciAidHlwZSIgIm1teCIpCisrICAgKHNldCAoYXR0ciAibGVuZ3RoX2FkZHJlc3MiKSAoc3lt Ym9sX3JlZiAibWVtb3J5X2FkZHJlc3NfbGVuZ3RoIChvcGVyYW5kc1swXSkiKSkKKyAgICAoc2V0 X2F0dHIgIm1lbW9yeSIgIm5vbmUiKV0pCisgCisgKGRlZmluZV9leHBhbmQgInN0YWNrX3Byb3Rl Y3Rfc2V0IgorQEAgLTIyMDM1LDYgKzIyNDQyLDE0IEBAIChkZWZpbmVfaW5zbiAic3NlNF8yX2Ny YzMyPG1vZGU+IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZzEiKQorICAgIChzZXRfYXR0 ciAicHJlZml4X3JlcCIgIjEiKQorICAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCisr ICAgKHNldCAoYXR0ciAicHJlZml4X2RhdGExNiIpCisrICAgICAoaWZfdGhlbl9lbHNlIChtYXRj aF9vcGVyYW5kOkhJIDIgIiIgIiIpCisrICAgICAgIChjb25zdF9zdHJpbmcgIjEiKQorKyAgICAg ICAoY29uc3Rfc3RyaW5nICIqIikpKQorKyAgIChzZXQgKGF0dHIgInByZWZpeF9yZXgiKQorKyAg ICAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfb3BlcmFuZDpRSSAyICJleHRfUUlyZWdfb3BlcmFuZCIg IiIpCisrICAgICAgIChjb25zdF9zdHJpbmcgIjEiKQorKyAgICAgICAoY29uc3Rfc3RyaW5nICIq IikpKQorICAgIChzZXRfYXR0ciAibW9kZSIgIlNJIildKQorIAorIChkZWZpbmVfaW5zbiAic3Nl NF8yX2NyYzMyZGkiCistLS0gZ2NjL291dHB1dC5oLmpqCTIwMDktMDEtMTQgMTI6MDY6MjkuMDAw MDAwMDAwICswMTAwCisrKysgZ2NjL291dHB1dC5oCTIwMDktMDYtMDkgMTA6NDY6MDkuMDAwMDAw MDAwICswMjAwCitAQCAtMSw3ICsxLDcgQEAKKyAvKiBEZWNsYXJhdGlvbnMgZm9yIGluc24tb3V0 cHV0LmMuICBUaGVzZSBmdW5jdGlvbnMgYXJlIGRlZmluZWQgaW4gcmVjb2cuYywKKyAgICBmaW5h bC5jLCBhbmQgdmFyYXNtLmMuCisgICAgQ29weXJpZ2h0IChDKSAxOTg3LCAxOTkxLCAxOTk0LCAx OTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorLSAgIDIwMDMsIDIwMDQsIDIwMDUs IDIwMDYsIDIwMDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgMjAw MywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KKyAKKyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHQ0MuCisgCitAQCAtOTQsNiAr OTQsMTAgQEAgZXh0ZXJuIGludCBpbnNuX2N1cnJlbnRfcmVmZXJlbmNlX2FkZHJlcworICAgIERl ZmluZWQgaW4gZmluYWwuYy4gICovCisgZXh0ZXJuIGludCBsYWJlbF90b19hbGlnbm1lbnQgKHJ0 eCk7CisgCisrLyogRmluZCB0aGUgYWxpZ25tZW50IG1heGltdW0gc2tpcCBhc3NvY2lhdGVkIHdp dGggYSBDT0RFX0xBQkVMLgorKyAgIERlZmluZWQgaW4gZmluYWwuYy4gICovCisrZXh0ZXJuIGlu dCBsYWJlbF90b19tYXhfc2tpcCAocnR4KTsKKysKKyAvKiBPdXRwdXQgYSBMQUJFTF9SRUYsIG9y IGEgYmFyZSBDT0RFX0xBQkVMLCBhcyBhbiBhc3NlbWJsZXIgc3ltYm9sLiAgKi8KKyBleHRlcm4g dm9pZCBvdXRwdXRfYXNtX2xhYmVsIChydHgpOworIAoKZGlmZiAtLWdpdCBhL2djYzQ0LXByMzk4 NTYucGF0Y2ggYi9nY2M0NC1wcjM5ODU2LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCA1YmM4OGZlLi4wMDAwMDAwCi0tLSBhL2djYzQ0LXByMzk4NTYucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSw0MyArMCwwIEBACi0yMDA5LTA0LTI0ICBWbGFkaW1pciBNYWthcm92ICA8dm1h a2Fyb3ZAcmVkaGF0LmNvbT4KLQotCVBSIHRhcmdldC8zOTg1NgotCSogcmVnLXN0YWNrLmMgKHN1 YnN0X3N0YWNrX3JlZ3NfcGF0KTogUmVtb3ZlIGdjY19hc3NlcnQgZm9yIG5vdGUKLQlmb3IgY2xv YmJlci4KLQotLS0tIGdjYy9yZWctc3RhY2suYwkocmV2aXNpb24gMTQ2NjQ4KQotKysrIGdjYy9y ZWctc3RhY2suYwkod29ya2luZyBjb3B5KQotQEAgLTEzNzEsMjEgKzEzNzEsMjMgQEAgc3Vic3Rf c3RhY2tfcmVnc19wYXQgKHJ0eCBpbnNuLCBzdGFjayByZQotIAotIAkgICAgaWYgKHBhdCAhPSBQ QVRURVJOIChpbnNuKSkKLSAJICAgICAgewotLQkJLyogVGhlIGZpeF90cnVuY2RpXzEgcGF0dGVy biB3YW50cyB0byBiZSBhYmxlIHRvIGFsbG9jYXRlCi0tCQkgICBpdHMgb3duIHNjcmF0Y2ggcmVn aXN0ZXIuICBJdCBkb2VzIHRoaXMgYnkgY2xvYmJlcmluZwotLQkJICAgYW4gZnAgcmVnIHNvIHRo YXQgaXQgaXMgYXNzdXJlZCBvZiBhbiBlbXB0eSByZWctc3RhY2sKLS0JCSAgIHJlZ2lzdGVyLiAg SWYgdGhlIHJlZ2lzdGVyIGlzIGxpdmUsIGtpbGwgaXQgbm93LgotLQkJICAgUmVtb3ZlIHRoZSBE RUFEL1VOVVNFRCBub3RlIHNvIHdlIGRvbid0IHRyeSB0byBraWxsIGl0Ci0tCQkgICBsYXRlciB0 b28uICAqLwotKwkJLyogVGhlIGZpeF90cnVuY2RpXzEgcGF0dGVybiB3YW50cyB0byBiZSBhYmxl IHRvCi0rCQkgICBhbGxvY2F0ZSBpdHMgb3duIHNjcmF0Y2ggcmVnaXN0ZXIuICBJdCBkb2VzIHRo aXMgYnkKLSsJCSAgIGNsb2JiZXJpbmcgYW4gZnAgcmVnIHNvIHRoYXQgaXQgaXMgYXNzdXJlZCBv ZiBhbgotKwkJICAgZW1wdHkgcmVnLXN0YWNrIHJlZ2lzdGVyLiAgSWYgdGhlIHJlZ2lzdGVyIGlz IGxpdmUsCi0rCQkgICBraWxsIGl0IG5vdy4gIFJlbW92ZSB0aGUgREVBRC9VTlVTRUQgbm90ZSBz byB3ZQotKwkJICAgZG9uJ3QgdHJ5IHRvIGtpbGwgaXQgbGF0ZXIgdG9vLgotKwotKwkJICAgSW4g cmVhbGl0eSB0aGUgVU5VU0VEIG5vdGUgY2FuIGJlIGFic2VudCBpbiBzb21lCi0rCQkgICBjb21w bGljYXRlZCBjYXNlcyB3aGVuIHRoZSByZWdpc3RlciBpcyByZXVzZWQgZm9yCi0rCQkgICBwYXJ0 aWFsbHkgc2V0IHZhcmlhYmxlLiAgKi8KLSAKLSAJCWlmIChub3RlKQotIAkJICBlbWl0X3BvcF9p bnNuIChpbnNuLCByZWdzdGFjaywgKmRlc3QsIEVNSVRfQkVGT1JFKTsKLSAJCWVsc2UKLS0JCSAg ewotLQkJICAgIG5vdGUgPSBmaW5kX3JlZ19ub3RlIChpbnNuLCBSRUdfVU5VU0VELCAqZGVzdCk7 Ci0tCQkgICAgZ2NjX2Fzc2VydCAobm90ZSk7Ci0tCQkgIH0KLS0JCXJlbW92ZV9ub3RlIChpbnNu LCBub3RlKTsKLSsJCSAgbm90ZSA9IGZpbmRfcmVnX25vdGUgKGluc24sIFJFR19VTlVTRUQsICpk ZXN0KTsKLSsJCWlmIChub3RlKQotKwkJICByZW1vdmVfbm90ZSAoaW5zbiwgbm90ZSk7Ci0gCQly ZXBsYWNlX3JlZyAoZGVzdCwgRklSU1RfU1RBQ0tfUkVHICsgMSk7Ci0gCSAgICAgIH0KLSAJICAg IGVsc2UKCmRpZmYgLS1naXQgYS9nY2M0NC1wcjM5OTQyLnBhdGNoIGIvZ2NjNDQtcHIzOTk0Mi5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWI3N2ViNi4uMDAwMDAwMAotLS0g YS9nY2M0NC1wcjM5OTQyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotMjAw OS0wNS0wNSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+Ci0KLQlQUiB0YXJnZXQv Mzk5NDIKLQkqIGNvbmZpZy9pMzg2L3g4Ni02NC5oIChBU01fT1VUUFVUX01BWF9TS0lQX0FMSUdO KTogRG9uJ3QgZW1pdCBzZWNvbmQKLQkucDJhbGlnbiAzIGlmIE1BWF9TS0lQIGlzIHNtYWxsZXIg dGhhbiA3LgotCSogY29uZmlnL2kzODYvbGludXguaCAoQVNNX09VVFBVVF9NQVhfU0tJUF9BTElH Tik6IExpa2V3aXNlLgotCi0tLS0gZ2NjL2NvbmZpZy9pMzg2L3g4Ni02NC5oLmpqCTIwMDktMDUt MDUgMDg6MzM6MjAuMDAwMDAwMDAwICswMjAwCi0rKysgZ2NjL2NvbmZpZy9pMzg2L3g4Ni02NC5o CTIwMDktMDUtMDUgMTY6Mzc6MTMuMDAwMDAwMDAwICswMjAwCi1AQCAtNzQsNyArNzQsOSBAQCBz ZWUgdGhlIGZpbGVzIENPUFlJTkczIGFuZCBDT1BZSU5HLlJVTlRJCi0gCWZwcmludGYgKChGSUxF KSwgIlx0LnAyYWxpZ24gJWQsLCVkXG4iLCAoTE9HKSwgKE1BWF9TS0lQKSk7CVwKLSAJLyogTWFr ZSBzdXJlIHRoYXQgd2UgaGF2ZSBhdCBsZWFzdCA4IGJ5dGUgYWxpZ25tZW50IGlmID4gOCBieXRl IFwKLSAJICAgYWxpZ25tZW50IGlzIHByZWZlcnJlZC4gICovCQkJCQlcCi0tCWlmICgoTE9HKSA+ IDMgJiYgKDEgPDwgKExPRykpID4gKChNQVhfU0tJUCkgKyAxKSkJCVwKLSsJaWYgKChMT0cpID4g MwkJCQkJCQlcCi0rCSAgICAmJiAoMSA8PCAoTE9HKSkgPiAoKE1BWF9TS0lQKSArIDEpCQkJCVwK LSsJICAgICYmIChNQVhfU0tJUCkgPj0gNykJCQkJCQlcCi0gCSAgZnByaW50ZiAoKEZJTEUpLCAi XHQucDJhbGlnbiAzXG4iKTsJCQkJXAotICAgICAgIH0JCQkJCQkJCQlcCi0gICAgIH0JCQkJCQkJ CQlcCi0tLS0gZ2NjL2NvbmZpZy9pMzg2L2xpbnV4LmguamoJMjAwOS0wNS0wNSAwODozMzoyMC4w MDAwMDAwMDAgKzAyMDAKLSsrKyBnY2MvY29uZmlnL2kzODYvbGludXguaAkyMDA5LTA1LTA1IDE2 OjM3OjEzLjAwMDAwMDAwMCArMDIwMAotQEAgLTE1Myw3ICsxNTMsOSBAQCBhbG9uZyB3aXRoIEdD Qzsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAgCi0gCWZwcmludGYgKChGSUxFKSwgIlx0LnAyYWxp Z24gJWQsLCVkXG4iLCAoTE9HKSwgKE1BWF9TS0lQKSk7CVwKLSAJLyogTWFrZSBzdXJlIHRoYXQg d2UgaGF2ZSBhdCBsZWFzdCA4IGJ5dGUgYWxpZ25tZW50IGlmID4gOCBieXRlIFwKLSAJICAgYWxp Z25tZW50IGlzIHByZWZlcnJlZC4gICovCQkJCQlcCi0tCWlmICgoTE9HKSA+IDMgJiYgKDEgPDwg KExPRykpID4gKChNQVhfU0tJUCkgKyAxKSkJCVwKLSsJaWYgKChMT0cpID4gMwkJCQkJCQlcCi0r CSAgICAmJiAoMSA8PCAoTE9HKSkgPiAoKE1BWF9TS0lQKSArIDEpCQkJCVwKLSsJICAgICYmIChN QVhfU0tJUCkgPj0gNykJCQkJCQlcCi0gCSAgZnByaW50ZiAoKEZJTEUpLCAiXHQucDJhbGlnbiAz XG4iKTsJCQkJXAotICAgICAgIH0JCQkJCQkJCQlcCi0gICAgIH0JCQkJCQkJCQlcCgpkaWZmIC0t Z2l0IGEvZ2NjNDQtdW53aW5kLWRlYnVnLWhvb2sucGF0Y2ggYi9nY2M0NC11bndpbmQtZGVidWct aG9vay5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMDg0YmU1Ci0t LSAvZGV2L251bGwKKysrIGIvZ2NjNDQtdW53aW5kLWRlYnVnLWhvb2sucGF0Y2gKQEAgLTAsMCAr MSw0NiBAQAorMjAwOS0wNS0yNyAgVG9tIFRyb21leSAgPHRyb21leUByZWRoYXQuY29tPgorCisJ KiB1bndpbmQtZHcyLmMgKF9VbndpbmRfRGVidWdIb29rKTogTmV3IGZ1bmN0aW9uLgorCSh1d19p bnN0YWxsX2NvbnRleHQpOiBDYWxsIF9VbndpbmRfRGVidWdIb29rLgorCistLS0gZ2NjL3Vud2lu ZC1kdzIuYwkocmV2aXNpb24gMTQ3OTMzKQorKysrIGdjYy91bndpbmQtZHcyLmMJKHJldmlzaW9u IDE0NzkzNCkKK0BAIC0xNDczLDE4ICsxNDczLDMxIEBAIHV3X2luaXRfY29udGV4dF8xIChzdHJ1 Y3QgX1Vud2luZF9Db250ZXgKKyAgIGNvbnRleHQtPnJhID0gX19idWlsdGluX2V4dHJhY3RfcmV0 dXJuX2FkZHIgKG91dGVyX3JhKTsKKyB9CisgCisrc3RhdGljIHZvaWQgX1Vud2luZF9EZWJ1Z0hv b2sgKHZvaWQgKiwgdm9pZCAqKSBfX2F0dHJpYnV0ZV9fICgoX19ub2lubGluZV9fKSk7CisrCisr LyogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZHVyaW5nIHVud2luZGluZy4gIEl0IGlzIGludGVu ZGVkIGFzIGEgaG9vaworKyAgIGZvciBhIGRlYnVnZ2VyIHRvIGludGVyY2VwdCBleGNlcHRpb25z LiAgQ0ZBIGlzIHRoZSBDRkEgb2YgdGhlCisrICAgdGFyZ2V0IGZyYW1lLiAgSEFORExFUiBpcyB0 aGUgUEMgdG8gd2hpY2ggY29udHJvbCB3aWxsIGJlCisrICAgdHJhbnNmZXJyZWQuICAqLworK3N0 YXRpYyB2b2lkCisrX1Vud2luZF9EZWJ1Z0hvb2sgKHZvaWQgKmNmYSBfX2F0dHJpYnV0ZV9fICgo X191bnVzZWRfXykpLAorKwkJICAgdm9pZCAqaGFuZGxlciBfX2F0dHJpYnV0ZV9fICgoX191bnVz ZWRfXykpKQorK3sKKysgIGFzbSAoIiIpOworK30KKyAKKyAvKiBJbnN0YWxsIFRBUkdFVCBpbnRv IENVUlJFTlQgc28gdGhhdCB3ZSBjYW4gcmV0dXJuIHRvIGl0LiAgVGhpcyBpcyBhCisgICAgbWFj cm8gYmVjYXVzZSBfX2J1aWx0aW5fZWhfcmV0dXJuIG11c3QgYmUgaW52b2tlZCBpbiB0aGUgY29u dGV4dCBvZgorICAgIG91ciBjYWxsZXIuICAqLworIAorLSNkZWZpbmUgdXdfaW5zdGFsbF9jb250 ZXh0KENVUlJFTlQsIFRBUkdFVCkJCQkJIFwKKy0gIGRvCQkJCQkJCQkJIFwKKy0gICAgewkJCQkJ CQkJCSBcCistICAgICAgbG9uZyBvZmZzZXQgPSB1d19pbnN0YWxsX2NvbnRleHRfMSAoKENVUlJF TlQpLCAoVEFSR0VUKSk7CQkgXAorLSAgICAgIHZvaWQgKmhhbmRsZXIgPSBfX2J1aWx0aW5fZnJv Yl9yZXR1cm5fYWRkciAoKFRBUkdFVCktPnJhKTsJIFwKKy0gICAgICBfX2J1aWx0aW5fZWhfcmV0 dXJuIChvZmZzZXQsIGhhbmRsZXIpOwkJCQkgXAorLSAgICB9CQkJCQkJCQkJIFwKKysjZGVmaW5l IHV3X2luc3RhbGxfY29udGV4dChDVVJSRU5ULCBUQVJHRVQpCQkJCVwKKysgIGRvCQkJCQkJCQkJ XAorKyAgICB7CQkJCQkJCQkJXAorKyAgICAgIGxvbmcgb2Zmc2V0ID0gdXdfaW5zdGFsbF9jb250 ZXh0XzEgKChDVVJSRU5UKSwgKFRBUkdFVCkpOwkJXAorKyAgICAgIHZvaWQgKmhhbmRsZXIgPSBf X2J1aWx0aW5fZnJvYl9yZXR1cm5fYWRkciAoKFRBUkdFVCktPnJhKTsJXAorKyAgICAgIF9Vbndp bmRfRGVidWdIb29rICgoVEFSR0VUKS0+Y2ZhLCBoYW5kbGVyKTsJCQlcCisrICAgICAgX19idWls dGluX2VoX3JldHVybiAob2Zmc2V0LCBoYW5kbGVyKTsJCQkJXAorKyAgICB9CQkJCQkJCQkJXAor ICAgd2hpbGUgKDApCisgCisgc3RhdGljIGxvbmcKCmRpZmYgLS1naXQgYS9zb3VyY2VzIGIvc291 cmNlcwppbmRleCA1ZDQ1ZGM5Li5lMGE0MDBiIDEwMDY0NAotLS0gYS9zb3VyY2VzCisrKyBiL3Nv dXJjZXMKQEAgLTEsMiArMSwyIEBACiAyNjU5ZjA5YzJlNDNlZjhiN2Q0NDA2MzIxNzUzZjFiMiAg ZmFzdGphci0wLjk3LnRhci5negotMjcxMzQwYTE4ODNhNTk1YzVjOGI0ZmUxMDA3Mzg5ZmEgIGdj Yy00LjQuMC0yMDA5MDUxNC50YXIuYnoyCithYTg1MDgwNDc3YjdmMWY1YjZjNTI2ZDJhZDQ4YmJm NyAgZ2NjLTQuNC4wLTIwMDkwNjA5LnRhci5iejIK