From: Jon Olav Hauglid Date: March 8 2011 9:21am Subject: bzr commit into mysql-trunk branch (jon.hauglid:3732) List-Archive: http://lists.mysql.com/commits/132576 Message-Id: <201103080922.p286wgxK009603@rcsinet15.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 I0F0IGZpbGU6Ly8vZXhwb3J0L2hvbWUveC9teXNxbC10cnVuay10ZXN0LyBiYXNlZCBvbiByZXZp ZDpqb24uaGF1Z2xpZEBvcmFjbGUuY29tLTIwMTEwMzA3MTM1NjQ0LWU3ZGF2aHVvYjM2N2N0ZngK CiAzNzMyIEpvbiBPbGF2IEhhdWdsaWQJMjAxMS0wMy0wOCBbbWVyZ2VdCiAgICAgIE1lcmdlIGZy b20gbXlzcWwtNS41IHRvIG15c3FsLXRydW5rCiAgICAgIFRleHQgY29uZmxpY3QgaW4gY2xpZW50 L215c3FsY2hlY2suYwogICAgICBUZXh0IGNvbmZsaWN0IGluIHNxbC9zaGFyZS9lcnJtc2ctdXRm OC50eHQKICAgICAgVGV4dCBjb25mbGljdCBpbiBzcWwvc3FsX2xleC5oCgogICAgYWRkZWQ6CiAg ICAgIG15c3FsLXRlc3Qvc3RkX2RhdGEvYnVnNDcyMDUuZnJtCiAgICBtb2RpZmllZDoKICAgICAg Y2xpZW50L215c3FsY2hlY2suYwogICAgICBteXNxbC10ZXN0L3IvbXlzcWxjaGVjay5yZXN1bHQK ICAgICAgbXlzcWwtdGVzdC90L215c3FsY2hlY2sudGVzdAogICAgICBzcWwvaGFuZGxlci5jYwog ICAgICBzcWwvaGFuZGxlci5oCiAgICAgIHNxbC9zaGFyZS9lcnJtc2ctdXRmOC50eHQKICAgICAg c3FsL3NxbF9hZG1pbi5jYwogICAgICBzcWwvc3FsX2xleC5oCiAgICAgIHNxbC9zcWxfeWFjYy55 eQogICAgICBzdG9yYWdlL2FyY2hpdmUvaGFfYXJjaGl2ZS5oCiAgICAgIHN0b3JhZ2UvY3N2L2hh X3RpbmEuaAogICAgICBzdG9yYWdlL2ZlZGVyYXRlZC9oYV9mZWRlcmF0ZWQuaAogICAgICBzdG9y YWdlL215aXNhbS9oYV9teWlzYW0uY2MKPT09IG1vZGlmaWVkIGZpbGUgJ2NsaWVudC9teXNxbGNo ZWNrLmMnCi0tLSBhL2NsaWVudC9teXNxbGNoZWNrLmMJMjAxMS0wMS0xNiAwNDowMjoyOSArMDAw MAorKysgYi9jbGllbnQvbXlzcWxjaGVjay5jCTIwMTEtMDMtMDggMDk6MjE6MzkgKzAwMDAKQEAg LTQyLDcgKzQyLDcgQEAgc3RhdGljIGNoYXIgKm9wdF9wYXNzd29yZCA9IDAsICpjdXJyZW50Xwog CSAgICAqZGVmYXVsdF9jaGFyc2V0PSAwLCAqY3VycmVudF9ob3N0PSAwOwogc3RhdGljIGNoYXIg Km9wdF9wbHVnaW5fZGlyPSAwLCAqb3B0X2RlZmF1bHRfYXV0aD0gMDsKIHN0YXRpYyBpbnQgZmly c3RfZXJyb3IgPSAwOwotRFlOQU1JQ19BUlJBWSB0YWJsZXM0cmVwYWlyOworRFlOQU1JQ19BUlJB WSB0YWJsZXM0cmVwYWlyLCB0YWJsZXM0cmVidWlsZDsKICNpZmRlZiBIQVZFX1NNRU0KIHN0YXRp YyBjaGFyICpzaGFyZWRfbWVtb3J5X2Jhc2VfbmFtZT0wOwogI2VuZGlmCkBAIC02MzAsNiArNjMw LDI3IEBAIHN0YXRpYyBpbnQgZml4X2RhdGFiYXNlX3N0b3JhZ2VfbmFtZShjb24KICAgcmV0dXJu IHJjOwogfQogCitzdGF0aWMgaW50IHJlYnVpbGRfdGFibGUoY2hhciAqbmFtZSkKK3sKKyAgY2hh ciAqcXVlcnksICpwdHI7CisgIGludCByYz0gMDsKKyAgcXVlcnk9IChjaGFyKilteV9tYWxsb2Mo c2l6ZW9mKGNoYXIpICogKDEyICsgZml4ZWRfbmFtZV9sZW5ndGgobmFtZSkgKyA2ICsgMSksCisg ICAgICAgICAgICAgICAgICAgICAgICAgIE1ZRihNWV9XTUUpKTsKKyAgaWYgKCFxdWVyeSkKKyAg ICByZXR1cm4gMTsKKyAgcHRyPSBzdHJtb3YocXVlcnksICJBTFRFUiBUQUJMRSAiKTsKKyAgcHRy PSBmaXhfdGFibGVfbmFtZShwdHIsIG5hbWUpOworICBwdHI9IHN0cnhtb3YocHRyLCAiIEZPUkNF IiwgTnVsbFMpOworICBpZiAobXlzcWxfcmVhbF9xdWVyeShzb2NrLCBxdWVyeSwgKHVpbnQpKHB0 ciAtIHF1ZXJ5KSkpCisgIHsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0byAlc1xuIiwg cXVlcnkpOworICAgIGZwcmludGYoc3RkZXJyLCAiRXJyb3I6ICVzXG4iLCBteXNxbF9lcnJvcihz b2NrKSk7CisgICAgcmM9IDE7CisgIH0KKyAgbXlfZnJlZShxdWVyeSk7CisgIHJldHVybiByYzsK K30KKwogc3RhdGljIGludCBwcm9jZXNzX29uZV9kYihjaGFyICpkYXRhYmFzZSkKIHsKICAgaWYg KHdoYXRfdG9fZG8gPT0gRE9fVVBHUkFERSkKQEAgLTc0Myw3ICs3NjQsNyBAQCBzdGF0aWMgdm9p ZCBwcmludF9yZXN1bHQoKQogICBNWVNRTF9ST1cgcm93OwogICBjaGFyIHByZXZbTkFNRV9MRU4q MisyXTsKICAgdWludCBpOwotICBteV9ib29sIGZvdW5kX2Vycm9yPTA7CisgIG15X2Jvb2wgZm91 bmRfZXJyb3I9MCwgdGFibGVfcmVidWlsZD0wOwogCiAgIHJlcyA9IG15c3FsX3VzZV9yZXN1bHQo c29jayk7CiAKQEAgLTc2Miw4ICs3ODMsMTQgQEAgc3RhdGljIHZvaWQgcHJpbnRfcmVzdWx0KCkK ICAgICAgICovCiAgICAgICBpZiAoZm91bmRfZXJyb3IgJiYgb3B0X2F1dG9fcmVwYWlyICYmIHdo YXRfdG9fZG8gIT0gRE9fUkVQQUlSICYmCiAJICBzdHJjbXAocm93WzNdLCJPSyIpKQotCWluc2Vy dF9keW5hbWljKCZ0YWJsZXM0cmVwYWlyLCBwcmV2KTsKKyAgICAgIHsKKyAgICAgICAgaWYgKHRh YmxlX3JlYnVpbGQpCisgICAgICAgICAgaW5zZXJ0X2R5bmFtaWMoJnRhYmxlczRyZWJ1aWxkLCBw cmV2KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgIGluc2VydF9keW5hbWljKCZ0YWJsZXM0cmVw YWlyLCBwcmV2KTsKKyAgICAgIH0KICAgICAgIGZvdW5kX2Vycm9yPTA7CisgICAgICB0YWJsZV9y ZWJ1aWxkPTA7CiAgICAgICBpZiAob3B0X3NpbGVudCkKIAljb250aW51ZTsKICAgICB9CkBAIC03 NzMsNyArODAwLDExIEBAIHN0YXRpYyB2b2lkIHByaW50X3Jlc3VsdCgpCiAgICAgewogICAgICAg cHJpbnRmKCIlc1xuJS05czogJXMiLCByb3dbMF0sIHJvd1syXSwgcm93WzNdKTsKICAgICAgIGlm IChzdHJjbXAocm93WzJdLCJub3RlIikpCisgICAgICB7CiAJZm91bmRfZXJyb3I9MTsKKyAgICAg ICAgaWYgKG9wdF9hdXRvX3JlcGFpciAmJiBzdHJzdHIocm93WzNdLCAiQUxURVIgVEFCTEUiKSAh PSBOVUxMKQorICAgICAgICAgIHRhYmxlX3JlYnVpbGQ9MTsKKyAgICAgIH0KICAgICB9CiAgICAg ZWxzZQogICAgICAgcHJpbnRmKCIlLTlzOiAlcyIsIHJvd1syXSwgcm93WzNdKTsKQEAgLTc4Miw3 ICs4MTMsMTIgQEAgc3RhdGljIHZvaWQgcHJpbnRfcmVzdWx0KCkKICAgfQogICAvKiBhZGQgdGhl IGxhc3QgdGFibGUgdG8gYmUgcmVwYWlyZWQgdG8gdGhlIGxpc3QgKi8KICAgaWYgKGZvdW5kX2Vy cm9yICYmIG9wdF9hdXRvX3JlcGFpciAmJiB3aGF0X3RvX2RvICE9IERPX1JFUEFJUikKLSAgICBp bnNlcnRfZHluYW1pYygmdGFibGVzNHJlcGFpciwgcHJldik7CisgIHsKKyAgICBpZiAodGFibGVf cmVidWlsZCkKKyAgICAgIGluc2VydF9keW5hbWljKCZ0YWJsZXM0cmVidWlsZCwgcHJldik7Cisg ICAgZWxzZQorICAgICAgaW5zZXJ0X2R5bmFtaWMoJnRhYmxlczRyZXBhaXIsIHByZXYpOworICB9 CiAgIG15c3FsX2ZyZWVfcmVzdWx0KHJlcyk7CiB9CiAKQEAgLTg4Miw3ICs5MTgsOCBAQCBpbnQg bWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgIH0KIAogICBpZiAob3B0X2F1dG9fcmVwYWly ICYmCi0gICAgICBteV9pbml0X2R5bmFtaWNfYXJyYXkoJnRhYmxlczRyZXBhaXIsIHNpemVvZihj aGFyKSooTkFNRV9MRU4qMisyKSwxNiw2NCkpCisgICAgICAobXlfaW5pdF9keW5hbWljX2FycmF5 KCZ0YWJsZXM0cmVwYWlyLCBzaXplb2YoY2hhcikqKE5BTUVfTEVOKjIrMiksMTYsNjQpIHx8Cisg ICAgICAgbXlfaW5pdF9keW5hbWljX2FycmF5KCZ0YWJsZXM0cmVidWlsZCwgc2l6ZW9mKGNoYXIp KihOQU1FX0xFTioyKzIpLDE2LDY0KSkpCiAgIHsKICAgICBmaXJzdF9lcnJvciA9IDE7CiAgICAg Z290byBlbmQ7CkBAIC05MDAsNyArOTM3LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiph cmd2KQogICB7CiAgICAgdWludCBpOwogCi0gICAgaWYgKCFvcHRfc2lsZW50ICYmIHRhYmxlczRy ZXBhaXIuZWxlbWVudHMpCisgICAgaWYgKCFvcHRfc2lsZW50ICYmICh0YWJsZXM0cmVwYWlyLmVs ZW1lbnRzIHx8IHRhYmxlczRyZWJ1aWxkLmVsZW1lbnRzKSkKICAgICAgIHB1dHMoIlxuUmVwYWly aW5nIHRhYmxlcyIpOwogICAgIHdoYXRfdG9fZG8gPSBET19SRVBBSVI7CiAgICAgZm9yIChpID0g MDsgaSA8IHRhYmxlczRyZXBhaXIuZWxlbWVudHMgOyBpKyspCkBAIC05MDgsMTEgKzk0NSwxNiBA QCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgICBjaGFyICpuYW1lPSAoY2hh ciopIGR5bmFtaWNfYXJyYXlfcHRyKCZ0YWJsZXM0cmVwYWlyLCBpKTsKICAgICAgIGhhbmRsZV9y ZXF1ZXN0X2Zvcl90YWJsZXMobmFtZSwgZml4ZWRfbmFtZV9sZW5ndGgobmFtZSkpOwogICAgIH0K KyAgICBmb3IgKGkgPSAwOyBpIDwgdGFibGVzNHJlYnVpbGQuZWxlbWVudHMgOyBpKyspCisgICAg ICByZWJ1aWxkX3RhYmxlKChjaGFyKikgZHluYW1pY19hcnJheV9wdHIoJnRhYmxlczRyZWJ1aWxk LCBpKSk7CiAgIH0KICBlbmQ6CiAgIGRiRGlzY29ubmVjdChjdXJyZW50X2hvc3QpOwogICBpZiAo b3B0X2F1dG9fcmVwYWlyKQorICB7CiAgICAgZGVsZXRlX2R5bmFtaWMoJnRhYmxlczRyZXBhaXIp OworICAgIGRlbGV0ZV9keW5hbWljKCZ0YWJsZXM0cmVidWlsZCk7CisgIH0KICAgbXlfZnJlZShv cHRfcGFzc3dvcmQpOwogI2lmZGVmIEhBVkVfU01FTQogICBteV9mcmVlKHNoYXJlZF9tZW1vcnlf YmFzZV9uYW1lKTsKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3IvbXlzcWxjaGVjay5y ZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvci9teXNxbGNoZWNrLnJlc3VsdAkyMDEwLTEyLTE3IDEx OjI4OjU5ICswMDAwCisrKyBiL215c3FsLXRlc3Qvci9teXNxbGNoZWNrLnJlc3VsdAkyMDExLTAz LTA4IDA5OjIxOjM5ICswMDAwCkBAIC0xMTcsNyArMTE3LDcgQEAgbXlzcWwudGltZV96b25lX25h bWUKIG15c3FsLnRpbWVfem9uZV90cmFuc2l0aW9uICAgICAgICAgICAgICAgICAgICAgICAgIFRh YmxlIGlzIGFscmVhZHkgdXAgdG8gZGF0ZQogbXlzcWwudGltZV96b25lX3RyYW5zaXRpb25fdHlw ZSAgICAgICAgICAgICAgICAgICAgVGFibGUgaXMgYWxyZWFkeSB1cCB0byBkYXRlCiBteXNxbC51 c2VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSBpcyBhbHJl YWR5IHVwIHRvIGRhdGUKLWNyZWF0ZSB0YWJsZSB0MSAoYSBpbnQpOworY3JlYXRlIHRhYmxlIHQx IChhIGludCkgZW5naW5lPW15aXNhbTsKIGNyZWF0ZSB2aWV3IHYxIGFzIHNlbGVjdCAqIGZyb20g dDE7CiB0ZXN0LnQxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBP SwogdGVzdC50MSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFi bGUgaXMgYWxyZWFkeSB1cCB0byBkYXRlCkBAIC0xMjUsMTQgKzEyNSwxNCBAQCB0ZXN0LnQxCiB0 ZXN0LnQxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSBp cyBhbHJlYWR5IHVwIHRvIGRhdGUKIGRyb3AgdmlldyB2MTsKIGRyb3AgdGFibGUgdDE7Ci1jcmVh dGUgdGFibGUgYHRgYDFgKGEgaW50KTsKLWNyZWF0ZSB0YWJsZSBgdCAxYChhIGludCk7CitjcmVh dGUgdGFibGUgYHRgYDFgKGEgaW50KSBlbmdpbmU9bXlpc2FtOworY3JlYXRlIHRhYmxlIGB0IDFg KGEgaW50KSBlbmdpbmU9bXlpc2FtOwogdGVzdC50IDEgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgT0sKIHRlc3QudGAxICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE9LCiBkcm9wIHRhYmxlIGB0YGAxYCwgYHQgMWA7CiBjcmVhdGUgZGF0 YWJhc2UgZF9idWcyNTM0NzsKIHVzZSBkX2J1ZzI1MzQ3OwotY3JlYXRlIHRhYmxlIHRfYnVnMjUz NDcgKGEgaW50KTsKK2NyZWF0ZSB0YWJsZSB0X2J1ZzI1MzQ3IChhIGludCkgZW5naW5lPW15aXNh bTsKIGNyZWF0ZSB2aWV3IHZfYnVnMjUzNDcgYXMgc2VsZWN0ICogZnJvbSB0X2J1ZzI1MzQ3Owog aW5zZXJ0IGludG8gdF9idWcyNTM0NyB2YWx1ZXMgKDEpLCgyKSwoMyk7CiBmbHVzaCB0YWJsZXM7 CkBAIC0xNzIsMTUgKzE3MiwxNSBAQCBUYWJsZQlPcAlNc2dfdHlwZQlNc2dfdGV4dAogdGVzdC52 MQljaGVjawlzdGF0dXMJT0sKIGluZm9ybWF0aW9uX3NjaGVtYS5yb3V0aW5lcwljaGVjawlub3Rl CVRoZSBzdG9yYWdlIGVuZ2luZSBmb3IgdGhlIHRhYmxlIGRvZXNuJ3Qgc3VwcG9ydCBjaGVjawog ZHJvcCB2aWV3IHYxOwotQ1JFQVRFIFRBQkxFIHQxKGEgSU5UKTsKLUNSRUFURSBUQUJMRSB0Mihh IElOVCk7CitDUkVBVEUgVEFCTEUgdDEoYSBJTlQpIGVuZ2luZT1teWlzYW07CitDUkVBVEUgVEFC TEUgdDIoYSBJTlQpIGVuZ2luZT1teWlzYW07CiB0ZXN0LnQxCiBFcnJvciAgICA6IEluY29ycmVj dCBpbmZvcm1hdGlvbiBpbiBmaWxlOiAnLi90ZXN0L3QxLmZybScKIGVycm9yICAgIDogQ29ycnVw dAogdGVzdC50MiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0sK IERST1AgVEFCTEUgdDEsIHQyOwogRW5kIG9mIDUuMCB0ZXN0cwotY3JlYXRlIHRhYmxlIHQxKGEg aW50KTsKK2NyZWF0ZSB0YWJsZSB0MShhIGludCkgZW5naW5lPW15aXNhbTsKIGNyZWF0ZSB2aWV3 IHYxIGFzIHNlbGVjdCAqIGZyb20gdDE7CiBzaG93IHRhYmxlczsKIFRhYmxlc19pbl90ZXN0CkBA IC0yMDAsNyArMjAwLDcgQEAgdi0xCiBkcm9wIHZpZXcgdjEsIGB2LTFgOwogZHJvcCB0YWJsZSB0 MTsKIFNFVCBOQU1FUyB1dGY4OwotQ1JFQVRFIFRBQkxFIGAjbXlzcWw1MCNAYCAoYSBJTlQpOwor Q1JFQVRFIFRBQkxFIGAjbXlzcWw1MCNAYCAoYSBJTlQpIGVuZ2luZT1teWlzYW07CiBTSE9XIFRB QkxFUzsKIFRhYmxlc19pbl90ZXN0CiAjbXlzcWw1MCNACkBAIC0yMTEsNyArMjExLDcgQEAgU0hP VyBUQUJMRVM7CiBUYWJsZXNfaW5fdGVzdAogQAogRFJPUCBUQUJMRSBgQGA7Ci1DUkVBVEUgVEFC TEUgYNGPYCAoYSBJTlQpOworQ1JFQVRFIFRBQkxFIGDRj2AgKGEgSU5UKSBlbmdpbmU9bXlpc2Ft OwogU0VUIE5BTUVTIERFRkFVTFQ7CiBteXNxbGNoZWNrIC0tZGVmYXVsdC1jaGFyYWN0ZXItc2V0 PSJsYXRpbjEiIC0tZGF0YWJhc2VzIHRlc3QKIHRlc3QuPwpAQCAtMjI0LDggKzIyNCw4IEBAIERS T1AgVEFCTEUgYNGPYDsKIFNFVCBOQU1FUyBERUZBVUxUOwogQ1JFQVRFIERBVEFCQVNFIGAjbXlz cWw1MCNhQGJgOwogVVNFIGAjbXlzcWw1MCNhQGJgOwotQ1JFQVRFIFRBQkxFIGAjbXlzcWw1MCNj QGRgIChhIElOVCk7Ci1DUkVBVEUgVEFCTEUgdDEgKGEgSU5UKTsKK0NSRUFURSBUQUJMRSBgI215 c3FsNTAjY0BkYCAoYSBJTlQpIGVuZ2luZT1teWlzYW07CitDUkVBVEUgVEFCTEUgdDEgKGEgSU5U KSBlbmdpbmU9bXlpc2FtOwogU0VMRUNUICogRlJPTSBJTkZPUk1BVElPTl9TQ0hFTUEuVFJJR0dF UlMKIFdIRVJFIFRSSUdHRVJfU0NIRU1BPSIjbXlzcWw1MCNhQGIiIE9SREVSIEJZIHRyaWdnZXJf bmFtZTsKIFRSSUdHRVJfQ0FUQUxPRwlUUklHR0VSX1NDSEVNQQlUUklHR0VSX05BTUUJRVZFTlRf TUFOSVBVTEFUSU9OCUVWRU5UX09CSkVDVF9DQVRBTE9HCUVWRU5UX09CSkVDVF9TQ0hFTUEJRVZF TlRfT0JKRUNUX1RBQkxFCUFDVElPTl9PUkRFUglBQ1RJT05fQ09ORElUSU9OCUFDVElPTl9TVEFU RU1FTlQJQUNUSU9OX09SSUVOVEFUSU9OCUFDVElPTl9USU1JTkcJQUNUSU9OX1JFRkVSRU5DRV9P TERfVEFCTEUJQUNUSU9OX1JFRkVSRU5DRV9ORVdfVEFCTEUJQUNUSU9OX1JFRkVSRU5DRV9PTERf Uk9XCUFDVElPTl9SRUZFUkVOQ0VfTkVXX1JPVwlDUkVBVEVECVNRTF9NT0RFCURFRklORVIJQ0hB UkFDVEVSX1NFVF9DTElFTlQJQ09MTEFUSU9OX0NPTk5FQ1RJT04JREFUQUJBU0VfQ09MTEFUSU9O CkBAIC0yNTQsMTIgKzI1NCwxMiBAQCBVU0UgdGVzdDsKICMgQnVnICMzMTgyMTogLS1hbGwtaW4t MSBhbmQgLS1maXgtdGFibGUtbmFtZXMgZG9uJ3Qgd29yayB0b2dldGhlcgogIwogZHJvcCB0YWJs ZSBpZiBleGlzdHMgYCNteXNxbDUwI3QxLTFgOwotY3JlYXRlIHRhYmxlIGAjbXlzcWw1MCN0MS0x YCAoYSBpbnQpOworY3JlYXRlIHRhYmxlIGAjbXlzcWw1MCN0MS0xYCAoYSBpbnQpIGVuZ2luZT1t eWlzYW07CiBzaG93IHRhYmxlcyBsaWtlICd0MS0xJzsKIFRhYmxlc19pbl90ZXN0ICh0MS0xKQog dDEtMQogZHJvcCB0YWJsZSBgdDEtMWA7Ci1jcmVhdGUgdGFibGUgYCNteXNxbDUwI3QxLTFgIChh IGludCk7CitjcmVhdGUgdGFibGUgYCNteXNxbDUwI3QxLTFgIChhIGludCkgZW5naW5lPW15aXNh bTsKIHNob3cgdGFibGVzIGxpa2UgJ3QxLTEnOwogVGFibGVzX2luX3Rlc3QgKHQxLTEpCiB0MS0x CkBAIC0yNjgsMyArMjY4LDY3IEBAIEVuZCBvZiA1LjEgdGVzdHMKICMKICMgQnVnICMzNTI2OTog bXlzcWxjaGVjayBiZWhhdmVzIGRpZmZlcmVudCBkZXBlbmRpbmcgb24gb3JkZXIgb2YgcGFyYW1l dGVycwogIworIworIyBCdWcjMTE3NTU0MzEgNDcyMDU6IE1BUCAnUkVQQUlSIFRBQkxFJyBUTyBS RUNSRUFURSArQU5BTFlaRSBGT1IKKyMgICAgICAgICAgICAgIEVOR0lORVMgTk9UIFNVUFBPUlRJ TkcgTkFUSVZFCisjCitEUk9QIFRBQkxFIElGIEVYSVNUUyBidWc0NzIwNTsKKyMKKyMgVGVzdCAx OiBDaGVjayB0aGF0IEFMVEVSIFRBQkxFIC4uLiByZWJ1aWxkcyB0aGUgdGFibGUKK0NSRUFURSBU QUJMRSBidWc0NzIwNShhIFZBUkNIQVIoMjApIFBSSU1BUlkgS0VZKQorREVGQVVMVCBDSEFSQUNU RVIgU0VUIHV0ZjggQ09MTEFURSB1dGY4X2dlbmVyYWxfY2kgZW5naW5lPWlubm9kYjsKK0lOU0VS VCBJTlRPIGJ1ZzQ3MjA1IFZBTFVFUyAoImZvb2JhciIpOworRkxVU0ggVEFCTEUgYnVnNDcyMDU7 CisjIFJlcGxhY2UgdGhlIEZSTSB3aXRoIGEgNS4wIEZSTSB0aGF0IHdpbGwgcmVxdWlyZSB1cGdy YWRlCisjIFNob3VsZCBpbmRpY2F0ZSB0aGF0IEFMVEVSIFRBQkxFIC4uLiBGT1JDRSBpcyBuZWVk ZWQKK0NIRUNLIFRBQkxFIGJ1ZzQ3MjA1IEZPUiBVUEdSQURFOworVGFibGUJT3AJTXNnX3R5cGUJ TXNnX3RleHQKK3Rlc3QuYnVnNDcyMDUJY2hlY2sJZXJyb3IJVGFibGUgcmVidWlsZCByZXF1aXJl ZC4gUGxlYXNlIGRvICJBTFRFUiBUQUJMRSBgYnVnNDcyMDVgIEZPUkNFIiBvciBkdW1wL3JlbG9h ZCB0byBmaXggaXQhCisjIEFMVEVSIFRBQkxFIC4uLiBGT1JDRSBzaG91bGQgcmVidWlsZCB0aGUg dGFibGUKKyMgYW5kIHRoZXJlZm9yZSBvdXRwdXQgImFmZmVjdGVkIHJvd3M6IDEiCitBTFRFUiBU QUJMRSBidWc0NzIwNSBGT1JDRTsKK2FmZmVjdGVkIHJvd3M6IDEKK2luZm86IFJlY29yZHM6IDEg IER1cGxpY2F0ZXM6IDAgIFdhcm5pbmdzOiAwCisjIFRhYmxlIHNob3VsZCBub3cgYmUgb2sKK0NI RUNLIFRBQkxFIGJ1ZzQ3MjA1IEZPUiBVUEdSQURFOworVGFibGUJT3AJTXNnX3R5cGUJTXNnX3Rl eHQKK3Rlc3QuYnVnNDcyMDUJY2hlY2sJc3RhdHVzCU9LCitEUk9QIFRBQkxFIGJ1ZzQ3MjA1Owor IworIyBUZXN0IDI6IElubm9EQiAtIFJFUEFJUiBub3Qgc3VwcG9ydGVkCitDUkVBVEUgVEFCTEUg YnVnNDcyMDUoYSBWQVJDSEFSKDIwKSBQUklNQVJZIEtFWSkKK0RFRkFVTFQgQ0hBUkFDVEVSIFNF VCB1dGY4IENPTExBVEUgdXRmOF9nZW5lcmFsX2NpIGVuZ2luZT1pbm5vZGI7CitGTFVTSCBUQUJM RSBidWc0NzIwNTsKKyMgUmVwbGFjZSB0aGUgRlJNIHdpdGggYSA1LjAgRlJNIHRoYXQgd2lsbCBy ZXF1aXJlIHVwZ3JhZGUKKyMgU2hvdWxkIGluZGljYXRlIHRoYXQgQUxURVIgVEFCTEUgLi4gRk9S Q0UgaXMgbmVlZGVkCitDSEVDSyBUQUJMRSBidWc0NzIwNSBGT1IgVVBHUkFERTsKK1RhYmxlCU9w CU1zZ190eXBlCU1zZ190ZXh0Cit0ZXN0LmJ1ZzQ3MjA1CWNoZWNrCWVycm9yCVRhYmxlIHJlYnVp bGQgcmVxdWlyZWQuIFBsZWFzZSBkbyAiQUxURVIgVEFCTEUgYGJ1ZzQ3MjA1YCBGT1JDRSIgb3Ig ZHVtcC9yZWxvYWQgdG8gZml4IGl0IQorIyBSdW5uaW5nIG15c3FsY2hlY2sgdG8gY2hlY2sgYW5k IHVwZ3JhZGUKK3Rlc3QuYnVnNDcyMDUKK2Vycm9yICAgIDogVGFibGUgcmVidWlsZCByZXF1aXJl ZC4gUGxlYXNlIGRvICJBTFRFUiBUQUJMRSBgYnVnNDcyMDVgIEZPUkNFIiBvciBkdW1wL3JlbG9h ZCB0byBmaXggaXQhCisKK1JlcGFpcmluZyB0YWJsZXMKKyMgVGFibGUgc2hvdWxkIG5vdyBiZSBv aworQ0hFQ0sgVEFCTEUgYnVnNDcyMDUgRk9SIFVQR1JBREU7CitUYWJsZQlPcAlNc2dfdHlwZQlN c2dfdGV4dAordGVzdC5idWc0NzIwNQljaGVjawlzdGF0dXMJT0sKK0RST1AgVEFCTEUgYnVnNDcy MDU7CisjCisjIFRlc3QgMzogTXlJU0FNIC0gUkVQQUlSIHN1cHBvcnRlZAorIyBVc2UgYW4gb2xk IEZSTSB0aGF0IHdpbGwgcmVxdWlyZSB1cGdyYWRlCisjIFNob3VsZCBpbmRpY2F0ZSB0aGF0IFJF UEFJUiBUQUJMRSBpcyBuZWVkZWQKK0NIRUNLIFRBQkxFIGJ1ZzQ3MjA1IEZPUiBVUEdSQURFOwor VGFibGUJT3AJTXNnX3R5cGUJTXNnX3RleHQKK3Rlc3QuYnVnNDcyMDUJY2hlY2sJZXJyb3IJVGFi bGUgdXBncmFkZSByZXF1aXJlZC4gUGxlYXNlIGRvICJSRVBBSVIgVEFCTEUgYGJ1ZzQ3MjA1YCIg b3IgZHVtcC9yZWxvYWQgdG8gZml4IGl0IQorIyBSdW5uaW5nIG15c3FsY2hlY2sgdG8gY2hlY2sg YW5kIHVwZ3JhZGUKK3Rlc3QuYnVnNDcyMDUKK2Vycm9yICAgIDogVGFibGUgdXBncmFkZSByZXF1 aXJlZC4gUGxlYXNlIGRvICJSRVBBSVIgVEFCTEUgYGJ1ZzQ3MjA1YCIgb3IgZHVtcC9yZWxvYWQg dG8gZml4IGl0IQorCitSZXBhaXJpbmcgdGFibGVzCit0ZXN0LmJ1ZzQ3MjA1ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBPSworIyBUYWJsZSBzaG91bGQgbm93IGJlIG9rCitD SEVDSyBUQUJMRSBidWc0NzIwNSBGT1IgVVBHUkFERTsKK1RhYmxlCU9wCU1zZ190eXBlCU1zZ190 ZXh0Cit0ZXN0LmJ1ZzQ3MjA1CWNoZWNrCXN0YXR1cwlPSworRFJPUCBUQUJMRSBidWc0NzIwNTsK Cj09PSBhZGRlZCBmaWxlICdteXNxbC10ZXN0L3N0ZF9kYXRhL2J1ZzQ3MjA1LmZybScKQmluYXJ5 IGZpbGVzIGEvbXlzcWwtdGVzdC9zdGRfZGF0YS9idWc0NzIwNS5mcm0JMTk3MC0wMS0wMSAwMDow MDowMCArMDAwMCBhbmQgYi9teXNxbC10ZXN0L3N0ZF9kYXRhL2J1ZzQ3MjA1LmZybQkyMDExLTAz LTA4IDA4OjQxOjU3ICswMDAwIGRpZmZlcgoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qv dC9teXNxbGNoZWNrLnRlc3QnCi0tLSBhL215c3FsLXRlc3QvdC9teXNxbGNoZWNrLnRlc3QJMjAx MC0xMC0yNSAxMzo0OTo1NSArMDAwMAorKysgYi9teXNxbC10ZXN0L3QvbXlzcWxjaGVjay50ZXN0 CTIwMTEtMDMtMDggMDk6MjE6MzkgKzAwMDAKQEAgLTIsNiArMiw4IEBACiAjIEVtYmVkZGVkIHNl cnZlciBkb2Vzbid0IHN1cHBvcnQgZXh0ZXJuYWwgY2xpZW50cwogLS1zb3VyY2UgaW5jbHVkZS9u b3RfZW1iZWRkZWQuaW5jCiAKKy0tc291cmNlIGluY2x1ZGUvaGF2ZV9pbm5vZGIuaW5jCisKICMg Y2hlY2sgdGhhdCBDU1YgZW5naW5lIHdhcyBjb21waWxlZCBpbiwgYXMgdGhlIHJlc3VsdCBvZiB0 aGUgdGVzdAogIyBkZXBlbmRzIG9uIHRoZSBwcmVzZW5jZSBvZiB0aGUgbG9nIHRhYmxlcyAod2hp Y2ggYXJlIENTVi1iYXNlZCkuCiAtLXNvdXJjZSBpbmNsdWRlL2hhdmVfY3N2LmluYwpAQCAtMzQs NyArMzYsNyBAQCBkcm9wIGRhdGFiYXNlIGlmIGV4aXN0cyBjbGllbnRfdGVzdF9kYjsKICMKICMg QnVnICMxNjUwMjogbXlzcWxjaGVjayB0cmllcyB0byBjaGVjayB2aWV3cwogIwotY3JlYXRlIHRh YmxlIHQxIChhIGludCk7CitjcmVhdGUgdGFibGUgdDEgKGEgaW50KSBlbmdpbmU9bXlpc2FtOwog Y3JlYXRlIHZpZXcgdjEgYXMgc2VsZWN0ICogZnJvbSB0MTsKIC0tcmVwbGFjZV9yZXN1bHQgJ1Rh YmxlIGlzIGFscmVhZHkgdXAgdG8gZGF0ZScgT0sKIC0tZXhlYyAkTVlTUUxfQ0hFQ0sgLS1hbmFs eXplIC0tZGF0YWJhc2VzIHRlc3QKQEAgLTQ4LDggKzUwLDggQEAgZHJvcCB0YWJsZSB0MTsKICMK ICMgQnVnICMzMDY1NDogbXlzcWxjaGVjayBmYWlscyBkdXJpbmcgdXBncmFkZSBvZiB0YWJsZXMg d2hvc2UgbmFtZXMgaW5jbHVkZSBiYWNrdGlja3MKICMKLWNyZWF0ZSB0YWJsZSBgdGBgMWAoYSBp bnQpOwotY3JlYXRlIHRhYmxlIGB0IDFgKGEgaW50KTsKK2NyZWF0ZSB0YWJsZSBgdGBgMWAoYSBp bnQpIGVuZ2luZT1teWlzYW07CitjcmVhdGUgdGFibGUgYHQgMWAoYSBpbnQpIGVuZ2luZT1teWlz YW07CiAtLXJlcGxhY2VfcmVzdWx0ICdUYWJsZSBpcyBhbHJlYWR5IHVwIHRvIGRhdGUnIE9LCiAt LWV4ZWMgJE1ZU1FMX0NIRUNLIC0tZGF0YWJhc2VzIHRlc3QKIGRyb3AgdGFibGUgYHRgYDFgLCBg dCAxYDsKQEAgLTU5LDcgKzYxLDcgQEAgZHJvcCB0YWJsZSBgdGBgMWAsIGB0IDFgOwogIwogY3Jl YXRlIGRhdGFiYXNlIGRfYnVnMjUzNDc7CiB1c2UgZF9idWcyNTM0NzsKLWNyZWF0ZSB0YWJsZSB0 X2J1ZzI1MzQ3IChhIGludCk7CitjcmVhdGUgdGFibGUgdF9idWcyNTM0NyAoYSBpbnQpIGVuZ2lu ZT1teWlzYW07CiBjcmVhdGUgdmlldyB2X2J1ZzI1MzQ3IGFzIHNlbGVjdCAqIGZyb20gdF9idWcy NTM0NzsKIGluc2VydCBpbnRvIHRfYnVnMjUzNDcgdmFsdWVzICgxKSwoMiksKDMpOwogZmx1c2gg dGFibGVzOwpAQCAtOTEsOCArOTMsOCBAQCBkcm9wIHZpZXcgdjE7CiAjIEJ1ZyMzNzUyNzogbXlz cWxjaGVjayBmYWlscyB0byByZXBvcnQgZW50aXJlIGRhdGFiYXNlIAogIyB3aGVuIGZybSBmaWxl IGNvcnJ1cHRpb24KICMKLUNSRUFURSBUQUJMRSB0MShhIElOVCk7Ci1DUkVBVEUgVEFCTEUgdDIo YSBJTlQpOworQ1JFQVRFIFRBQkxFIHQxKGEgSU5UKSBlbmdpbmU9bXlpc2FtOworQ1JFQVRFIFRB QkxFIHQyKGEgSU5UKSBlbmdpbmU9bXlpc2FtOwogIyBiYWNrdXAgdGhlbiBudWxsIHQxLmZybQog LS1jb3B5X2ZpbGUgJE1ZU1FMRF9EQVRBRElSL3Rlc3QvdDEuZnJtICRNWVNRTERfREFUQURJUi90 ZXN0L3QxLmZybS5iYWsKIC0tcmVtb3ZlX2ZpbGUgJE1ZU1FMRF9EQVRBRElSL3Rlc3QvdDEuZnJt CkBAIC0xMTIsNyArMTE0LDcgQEAgRFJPUCBUQUJMRSB0MSwgdDI7CiAjCiAjIEJ1ZyAjMzA2Nzk6 IDUuMSBuYW1lIGVuY29kaW5nIG5vdCBwZXJmb3JtZWQgZm9yIHZpZXdzIGR1cmluZyB1cGdyYWRl CiAjCi1jcmVhdGUgdGFibGUgdDEoYSBpbnQpOworY3JlYXRlIHRhYmxlIHQxKGEgaW50KSBlbmdp bmU9bXlpc2FtOwogY3JlYXRlIHZpZXcgdjEgYXMgc2VsZWN0ICogZnJvbSB0MTsKIHNob3cgdGFi bGVzOwogbGV0ICRNWVNRTERfREFUQURJUj0gYHNlbGVjdCBAQGRhdGFkaXJgOwpAQCAtMTMxLDcg KzEzMyw3IEBAIGRyb3AgdGFibGUgdDE7CiAjICAgICAgICAgICAgIHRyaWdnZXJzCiAjCiBTRVQg TkFNRVMgdXRmODsKLUNSRUFURSBUQUJMRSBgI215c3FsNTAjQGAgKGEgSU5UKTsKK0NSRUFURSBU QUJMRSBgI215c3FsNTAjQGAgKGEgSU5UKSBlbmdpbmU9bXlpc2FtOwogU0hPVyBUQUJMRVM7CiBT RVQgTkFNRVMgREVGQVVMVDsKIC0tZWNobyBteXNxbGNoZWNrIC0tZml4LXRhYmxlLW5hbWVzIC0t ZGF0YWJhc2VzIHRlc3QKQEAgLTE0MCw3ICsxNDIsNyBAQCBTRVQgTkFNRVMgdXRmODsKIFNIT1cg VEFCTEVTOwogRFJPUCBUQUJMRSBgQGA7CiAKLUNSRUFURSBUQUJMRSBg0Y9gIChhIElOVCk7CitD UkVBVEUgVEFCTEUgYNGPYCAoYSBJTlQpIGVuZ2luZT1teWlzYW07CiBTRVQgTkFNRVMgREVGQVVM VDsKIC0tZWNobyBteXNxbGNoZWNrIC0tZGVmYXVsdC1jaGFyYWN0ZXItc2V0PSJsYXRpbjEiIC0t ZGF0YWJhc2VzIHRlc3QKICMgRXJyb3IgcmV0dXJuZWQgZGVwZW5kcyBvbiBwbGF0Zm9ybSwgcmVw bGFjZSBpdCB3aXRoICJUYWJsZSBkb2Vzbid0IGV4aXN0IgpAQCAtMTU0LDggKzE1Niw4IEBAIFNF VCBOQU1FUyBERUZBVUxUOwogCiBDUkVBVEUgREFUQUJBU0UgYCNteXNxbDUwI2FAYmA7CiBVU0Ug YCNteXNxbDUwI2FAYmA7Ci1DUkVBVEUgVEFCTEUgYCNteXNxbDUwI2NAZGAgKGEgSU5UKTsKLUNS RUFURSBUQUJMRSB0MSAoYSBJTlQpOworQ1JFQVRFIFRBQkxFIGAjbXlzcWw1MCNjQGRgIChhIElO VCkgZW5naW5lPW15aXNhbTsKK0NSRUFURSBUQUJMRSB0MSAoYSBJTlQpIGVuZ2luZT1teWlzYW07 CiAKICMgQ3JlYXRlIDUuMCBsaWtlIHRyaWdnZXJzCiBsZXQgJE1ZU1FMVEVTVF9WQVJESVI9IGBz ZWxlY3QgQEBkYXRhZGlyYDsKQEAgLTIwNywxMiArMjA5LDEyIEBAIFVTRSB0ZXN0OwogZHJvcCB0 YWJsZSBpZiBleGlzdHMgYCNteXNxbDUwI3QxLTFgOwogLS1lbmFibGVfd2FybmluZ3MKIAotY3Jl YXRlIHRhYmxlIGAjbXlzcWw1MCN0MS0xYCAoYSBpbnQpOworY3JlYXRlIHRhYmxlIGAjbXlzcWw1 MCN0MS0xYCAoYSBpbnQpIGVuZ2luZT1teWlzYW07CiAtLWV4ZWMgJE1ZU1FMX0NIRUNLIC0tYWxs LWluLTEgLS1maXgtdGFibGUtbmFtZXMgLS1kYXRhYmFzZXMgdGVzdAogc2hvdyB0YWJsZXMgbGlr ZSAndDEtMSc7CiBkcm9wIHRhYmxlIGB0MS0xYDsKIAotY3JlYXRlIHRhYmxlIGAjbXlzcWw1MCN0 MS0xYCAoYSBpbnQpOworY3JlYXRlIHRhYmxlIGAjbXlzcWw1MCN0MS0xYCAoYSBpbnQpIGVuZ2lu ZT1teWlzYW07CiAtLWV4ZWMgJE1ZU1FMX0NIRUNLIC0tYWxsLWluLTEgLS1maXgtdGFibGUtbmFt ZXMgdGVzdCAiI215c3FsNTAjdDEtMSIKIHNob3cgdGFibGVzIGxpa2UgJ3QxLTEnOwogZHJvcCB0 YWJsZSBgdDEtMWA7CkBAIC0yMzQsMyArMjM2LDgzIEBAIGRyb3AgdGFibGUgYHQxLTFgOwogLS1l cnJvciAxCiAtLWV4ZWMgJE1ZU1FMX0NIRUNLIC1hb2MgdGVzdCAiI215c3FsNTAjdDEtMSIKIAor CistLWVjaG8gIworLS1lY2hvICMgQnVnIzExNzU1NDMxIDQ3MjA1OiBNQVAgJ1JFUEFJUiBUQUJM RScgVE8gUkVDUkVBVEUgK0FOQUxZWkUgRk9SCistLWVjaG8gIyAgICAgICAgICAgICAgRU5HSU5F UyBOT1QgU1VQUE9SVElORyBOQVRJVkUKKy0tZWNobyAjCisKKy0tZGlzYWJsZV93YXJuaW5ncwor RFJPUCBUQUJMRSBJRiBFWElTVFMgYnVnNDcyMDU7CistLWVuYWJsZV93YXJuaW5ncworCistLWVj aG8gIworLS1lY2hvICMgVGVzdCAxOiBDaGVjayB0aGF0IEFMVEVSIFRBQkxFIC4uLiByZWJ1aWxk cyB0aGUgdGFibGUKKworQ1JFQVRFIFRBQkxFIGJ1ZzQ3MjA1KGEgVkFSQ0hBUigyMCkgUFJJTUFS WSBLRVkpCisgIERFRkFVTFQgQ0hBUkFDVEVSIFNFVCB1dGY4IENPTExBVEUgdXRmOF9nZW5lcmFs X2NpIGVuZ2luZT1pbm5vZGI7CisKK0lOU0VSVCBJTlRPIGJ1ZzQ3MjA1IFZBTFVFUyAoImZvb2Jh ciIpOworRkxVU0ggVEFCTEUgYnVnNDcyMDU7CisKKy0tZWNobyAjIFJlcGxhY2UgdGhlIEZSTSB3 aXRoIGEgNS4wIEZSTSB0aGF0IHdpbGwgcmVxdWlyZSB1cGdyYWRlCitsZXQgJE1ZU1FMRF9EQVRB RElSPSBgc2VsZWN0IEBAZGF0YWRpcmA7CistLXJlbW92ZV9maWxlICRNWVNRTERfREFUQURJUi90 ZXN0L2J1ZzQ3MjA1LmZybQorLS1jb3B5X2ZpbGUgc3RkX2RhdGEvYnVnNDcyMDUuZnJtICRNWVNR TERfREFUQURJUi90ZXN0L2J1ZzQ3MjA1LmZybQorCistLWVjaG8gIyBTaG91bGQgaW5kaWNhdGUg dGhhdCBBTFRFUiBUQUJMRSAuLi4gRk9SQ0UgaXMgbmVlZGVkCitDSEVDSyBUQUJMRSBidWc0NzIw NSBGT1IgVVBHUkFERTsKKworLS1lY2hvICMgQUxURVIgVEFCTEUgLi4uIEZPUkNFIHNob3VsZCBy ZWJ1aWxkIHRoZSB0YWJsZQorLS1lY2hvICMgYW5kIHRoZXJlZm9yZSBvdXRwdXQgImFmZmVjdGVk IHJvd3M6IDEiCistLWVuYWJsZV9pbmZvCitBTFRFUiBUQUJMRSBidWc0NzIwNSBGT1JDRTsKKy0t ZGlzYWJsZV9pbmZvCisKKy0tZWNobyAjIFRhYmxlIHNob3VsZCBub3cgYmUgb2sKK0NIRUNLIFRB QkxFIGJ1ZzQ3MjA1IEZPUiBVUEdSQURFOworCitEUk9QIFRBQkxFIGJ1ZzQ3MjA1OworCistLWVj aG8gIworLS1lY2hvICMgVGVzdCAyOiBJbm5vREIgLSBSRVBBSVIgbm90IHN1cHBvcnRlZAorCitD UkVBVEUgVEFCTEUgYnVnNDcyMDUoYSBWQVJDSEFSKDIwKSBQUklNQVJZIEtFWSkKKyAgREVGQVVM VCBDSEFSQUNURVIgU0VUIHV0ZjggQ09MTEFURSB1dGY4X2dlbmVyYWxfY2kgZW5naW5lPWlubm9k YjsKKworRkxVU0ggVEFCTEUgYnVnNDcyMDU7CisKKy0tZWNobyAjIFJlcGxhY2UgdGhlIEZSTSB3 aXRoIGEgNS4wIEZSTSB0aGF0IHdpbGwgcmVxdWlyZSB1cGdyYWRlCitsZXQgJE1ZU1FMRF9EQVRB RElSPSBgc2VsZWN0IEBAZGF0YWRpcmA7CistLXJlbW92ZV9maWxlICRNWVNRTERfREFUQURJUi90 ZXN0L2J1ZzQ3MjA1LmZybQorLS1jb3B5X2ZpbGUgc3RkX2RhdGEvYnVnNDcyMDUuZnJtICRNWVNR TERfREFUQURJUi90ZXN0L2J1ZzQ3MjA1LmZybQorCistLWVjaG8gIyBTaG91bGQgaW5kaWNhdGUg dGhhdCBBTFRFUiBUQUJMRSAuLiBGT1JDRSBpcyBuZWVkZWQKK0NIRUNLIFRBQkxFIGJ1ZzQ3MjA1 IEZPUiBVUEdSQURFOworCistLWVjaG8gIyBSdW5uaW5nIG15c3FsY2hlY2sgdG8gY2hlY2sgYW5k IHVwZ3JhZGUKKy0tZXhlYyAkTVlTUUxfQ0hFQ0sgLS1jaGVjay11cGdyYWRlIC0tYXV0by1yZXBh aXIgdGVzdAorCistLWVjaG8gIyBUYWJsZSBzaG91bGQgbm93IGJlIG9rCitDSEVDSyBUQUJMRSBi dWc0NzIwNSBGT1IgVVBHUkFERTsKKworRFJPUCBUQUJMRSBidWc0NzIwNTsKKworLS1lY2hvICMK Ky0tZWNobyAjIFRlc3QgMzogTXlJU0FNIC0gUkVQQUlSIHN1cHBvcnRlZAorCistLWVjaG8gIyBV c2UgYW4gb2xkIEZSTSB0aGF0IHdpbGwgcmVxdWlyZSB1cGdyYWRlCistLWNvcHlfZmlsZSBzdGRf ZGF0YS9idWczNjA1NS5mcm0gJE1ZU1FMRF9EQVRBRElSL3Rlc3QvYnVnNDcyMDUuZnJtCistLWNv cHlfZmlsZSBzdGRfZGF0YS9idWczNjA1NS5NWUQgJE1ZU1FMRF9EQVRBRElSL3Rlc3QvYnVnNDcy MDUuTVlECistLWNvcHlfZmlsZSBzdGRfZGF0YS9idWczNjA1NS5NWUkgJE1ZU1FMRF9EQVRBRElS L3Rlc3QvYnVnNDcyMDUuTVlJCisKKy0tZWNobyAjIFNob3VsZCBpbmRpY2F0ZSB0aGF0IFJFUEFJ UiBUQUJMRSBpcyBuZWVkZWQKK0NIRUNLIFRBQkxFIGJ1ZzQ3MjA1IEZPUiBVUEdSQURFOworCist LWVjaG8gIyBSdW5uaW5nIG15c3FsY2hlY2sgdG8gY2hlY2sgYW5kIHVwZ3JhZGUKKy0tZXhlYyAk TVlTUUxfQ0hFQ0sgLS1jaGVjay11cGdyYWRlIC0tYXV0by1yZXBhaXIgdGVzdAorCistLWVjaG8g IyBUYWJsZSBzaG91bGQgbm93IGJlIG9rCitDSEVDSyBUQUJMRSBidWc0NzIwNSBGT1IgVVBHUkFE RTsKKworRFJPUCBUQUJMRSBidWc0NzIwNTsKCj09PSBtb2RpZmllZCBmaWxlICdzcWwvaGFuZGxl ci5jYycKLS0tIGEvc3FsL2hhbmRsZXIuY2MJMjAxMS0wMy0wMSAxNDo0NzowMSArMDAwMAorKysg Yi9zcWwvaGFuZGxlci5jYwkyMDExLTAzLTA4IDA5OjIxOjM5ICswMDAwCkBAIC0zNDMxLDkgKzM0 MzEsMTMgQEAgaW50IGhhbmRsZXI6OmhhX3JlcGFpcihUSEQqIHRoZCwgSEFfQ0hFQwogICBpbnQg cmVzdWx0OwogICBtYXJrX3RyeF9yZWFkX3dyaXRlKCk7CiAKLSAgaWYgKChyZXN1bHQ9IHJlcGFp cih0aGQsIGNoZWNrX29wdCkpKQotICAgIHJldHVybiByZXN1bHQ7Ci0gIHJldHVybiB1cGRhdGVf ZnJtX3ZlcnNpb24odGFibGUpOworICByZXN1bHQ9IHJlcGFpcih0aGQsIGNoZWNrX29wdCk7Cisg IERCVUdfQVNTRVJUKHJlc3VsdCA9PSBIQV9BRE1JTl9OT1RfSU1QTEVNRU5URUQgfHwKKyAgICAg ICAgICAgICAgaGFfdGFibGVfZmxhZ3MoKSAmIEhBX0NBTl9SRVBBSVIpOworCisgIGlmIChyZXN1 bHQgPT0gSEFfQURNSU5fT0spCisgICAgcmVzdWx0PSB1cGRhdGVfZnJtX3ZlcnNpb24odGFibGUp OworICByZXR1cm4gcmVzdWx0OwogfQogCiAKCj09PSBtb2RpZmllZCBmaWxlICdzcWwvaGFuZGxl ci5oJwotLS0gYS9zcWwvaGFuZGxlci5oCTIwMTEtMDItMDIgMjI6MDI6MjkgKzAwMDAKKysrIGIv c3FsL2hhbmRsZXIuaAkyMDExLTAzLTA4IDA5OjIxOjM5ICswMDAwCkBAIC0xNTMsNiArMTUzLDEy IEBACiAgICAgb3JkZXJlZC4KICovCiAjZGVmaW5lIEhBX0RVUExJQ0FURV9LRVlfTk9UX0lOX09S REVSICAgIChMTCgxKSA8PCAzNikKKy8qCisgIEVuZ2luZSBzdXBwb3J0cyBSRVBBSVIgVEFCTEUu IFVzZWQgYnkgQ0hFQ0sgVEFCTEUgRk9SIFVQR1JBREUgaWYgYW4KKyAgaW5jb21wYXRpYmxlIHRh YmxlIGlzIGRldGVjdGVkLiBJZiB0aGlzIGZsYWcgaXMgc2V0LCBDSEVDSyBUQUJMRSBGT1IgVVBH UkFERQorICB3aWxsIHJlcG9ydCBFUl9UQUJMRV9ORUVEU19VUEdSQURFLCBvdGhlcndpc2UgRVJf VEFCTEVfTkVFRF9SRUJVSUxELgorKi8KKyNkZWZpbmUgSEFfQ0FOX1JFUEFJUiAgICAgICAgICAg ICAgICAgICAgKExMKDEpIDw8IDM3KQogCiAvKgogICBTZXQgb2YgYWxsIGJpbmxvZyBmbGFncy4g Q3VycmVudGx5IG9ubHkgY29udGFpbiB0aGUgY2FwYWJpbGl0aWVzCkBAIC0yMzM3LDcgKzIzNDMs MTAgQEAgcHJpdmF0ZToKICAgICAgdXBvbiB0aGUgdGFibGUuCiAgICovCiAgIHZpcnR1YWwgaW50 IHJlcGFpcihUSEQqIHRoZCwgSEFfQ0hFQ0tfT1BUKiBjaGVja19vcHQpCi0gIHsgcmV0dXJuIEhB X0FETUlOX05PVF9JTVBMRU1FTlRFRDsgfQorICB7CisgICAgREJVR19BU1NFUlQoIShoYV90YWJs ZV9mbGFncygpICYgSEFfQ0FOX1JFUEFJUikpOworICAgIHJldHVybiBIQV9BRE1JTl9OT1RfSU1Q TEVNRU5URUQ7CisgIH0KICAgdmlydHVhbCB2b2lkIHN0YXJ0X2J1bGtfaW5zZXJ0KGhhX3Jvd3Mg cm93cykge30KICAgdmlydHVhbCBpbnQgZW5kX2J1bGtfaW5zZXJ0KCkgeyByZXR1cm4gMDsgfQog cHJvdGVjdGVkOgoKPT09IG1vZGlmaWVkIGZpbGUgJ3NxbC9zaGFyZS9lcnJtc2ctdXRmOC50eHQn Ci0tLSBhL3NxbC9zaGFyZS9lcnJtc2ctdXRmOC50eHQJMjAxMS0wMi0yMSAxNTo1NTo1OCArMDAw MAorKysgYi9zcWwvc2hhcmUvZXJybXNnLXV0ZjgudHh0CTIwMTEtMDMtMDggMDk6MjE6MzkgKzAw MDAKQEAgLTY0ODcsMyArNjQ4Nyw4IEBAIEVSX05PX1NVQ0hfUEFSVElUSU9OCiAgIHNsbyAiUGFy dGl0aW9uICclLS42NHMnIGRvZXNuJ3QgZXhpc3QiCiAgIHNwYSAiUGFydGljaW9uICclLS42NHMn IG5vIGV4aXN0ZSIKICAgc3dlICJEZXQgZmlubnMgaW5nZW4gcGFydGl0aW9uIHNvbSBoZXRlciAn JS0uNjRzJyIKKworIyBXaGVuIHRyYW5zbGF0aW5nIHRoaXMgZXJyb3IgbWVzc2FnZSBtYWtlIHN1 cmUgdG8gaW5jbHVkZSAiQUxURVIgVEFCTEUiIGluIHRoZQorIyBtZXNzYWdlIGFzIG15c3FsY2hl Y2sgcGFyc2VzIHRoZSBlcnJvciBtZXNzYWdlIGxvb2tpbmcgZm9yIEFMVEVSIFRBQkxFLgorRVJf VEFCTEVfTkVFRFNfUkVCVUlMRAorICAgICAgICBlbmcgIlRhYmxlIHJlYnVpbGQgcmVxdWlyZWQu IFBsZWFzZSBkbyBcIkFMVEVSIFRBQkxFIGAlLS4zMnNgIEZPUkNFXCIgb3IgZHVtcC9yZWxvYWQg dG8gZml4IGl0ISIKCj09PSBtb2RpZmllZCBmaWxlICdzcWwvc3FsX2FkbWluLmNjJwotLS0gYS9z cWwvc3FsX2FkbWluLmNjCTIwMTEtMDEtMTAgMTM6MjY6MTMgKzAwMDAKKysrIGIvc3FsL3NxbF9h ZG1pbi5jYwkyMDExLTAzLTA4IDA5OjIxOjM5ICswMDAwCkBAIC03NzcsOCArNzc3LDEyIEBAIHNl bmRfcmVzdWx0X21lc3NhZ2U6CiAgICAgICBzaXplX3QgbGVuZ3RoOwogCiAgICAgICBwcm90b2Nv bC0+c3RvcmUoU1RSSU5HX1dJVEhfTEVOKCJlcnJvciIpLCBzeXN0ZW1fY2hhcnNldF9pbmZvKTsK LSAgICAgIGxlbmd0aD1teV9zbnByaW50ZihidWYsIHNpemVvZihidWYpLCBFUihFUl9UQUJMRV9O RUVEU19VUEdSQURFKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZS0+dGFibGVfbmFt ZSk7CisgICAgICBpZiAodGFibGUtPnRhYmxlLT5maWxlLT5oYV90YWJsZV9mbGFncygpICYgSEFf Q0FOX1JFUEFJUikKKyAgICAgICAgbGVuZ3RoPSBteV9zbnByaW50ZihidWYsIHNpemVvZihidWYp LCBFUihFUl9UQUJMRV9ORUVEU19VUEdSQURFKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0YWJsZS0+dGFibGVfbmFtZSk7CisgICAgICBlbHNlCisgICAgICAgIGxlbmd0aD0gbXlfc25w cmludGYoYnVmLCBzaXplb2YoYnVmKSwgRVIoRVJfVEFCTEVfTkVFRFNfUkVCVUlMRCksCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdGFibGUtPnRhYmxlX25hbWUpOwogICAgICAgcHJvdG9j b2wtPnN0b3JlKGJ1ZiwgbGVuZ3RoLCBzeXN0ZW1fY2hhcnNldF9pbmZvKTsKICAgICAgIGZhdGFs X2Vycm9yPTE7CiAgICAgICBicmVhazsKCj09PSBtb2RpZmllZCBmaWxlICdzcWwvc3FsX2xleC5o JwotLS0gYS9zcWwvc3FsX2xleC5oCTIwMTEtMDMtMDEgMTQ6NDc6MDEgKzAwMDAKKysrIGIvc3Fs L3NxbF9sZXguaAkyMDExLTAzLTA4IDA5OjIxOjM5ICswMDAwCkBAIC04ODksMjEgKzg4OSwyMCBA QCBpbmxpbmUgYm9vbCBzdF9zZWxlY3RfbGV4X3VuaXQ6OmlzX3VuaW9uCiAjZGVmaW5lIEFMVEVS X0NIQU5HRV9DT0xVTU5fREVGQVVMVCAoMUwgPDwgOCkKICNkZWZpbmUgQUxURVJfS0VZU19PTk9G RiAgICAgICAgKDFMIDw8IDkpCiAjZGVmaW5lIEFMVEVSX0NPTlZFUlQgICAgICAgICAgICgxTCA8 PCAxMCkKLSNkZWZpbmUgQUxURVJfRk9SQ0UJCSgxTCA8PCAxMSkKLSNkZWZpbmUgQUxURVJfUkVD UkVBVEUgICAgICAgICAgKDFMIDw8IDEyKQotI2RlZmluZSBBTFRFUl9BRERfUEFSVElUSU9OICAg ICAoMUwgPDwgMTMpCi0jZGVmaW5lIEFMVEVSX0RST1BfUEFSVElUSU9OICAgICgxTCA8PCAxNCkK LSNkZWZpbmUgQUxURVJfQ09BTEVTQ0VfUEFSVElUSU9OICgxTCA8PCAxNSkKLSNkZWZpbmUgQUxU RVJfUkVPUkdBTklaRV9QQVJUSVRJT04gKDFMIDw8IDE2KSAKLSNkZWZpbmUgQUxURVJfUEFSVElU SU9OICAgICAgICAgICgxTCA8PCAxNykKLSNkZWZpbmUgQUxURVJfQURNSU5fUEFSVElUSU9OICAg ICgxTCA8PCAxOCkKLSNkZWZpbmUgQUxURVJfVEFCTEVfUkVPUkcgICAgICAgICgxTCA8PCAxOSkK LSNkZWZpbmUgQUxURVJfUkVCVUlMRF9QQVJUSVRJT04gICgxTCA8PCAyMCkKLSNkZWZpbmUgQUxU RVJfQUxMX1BBUlRJVElPTiAgICAgICgxTCA8PCAyMSkKLSNkZWZpbmUgQUxURVJfUkVNT1ZFX1BB UlRJVElPTklORyAoMUwgPDwgMjIpCi0jZGVmaW5lIEFMVEVSX0ZPUkVJR05fS0VZICAgICAgICAo MUwgPDwgMjMpCi0jZGVmaW5lIEFMVEVSX0VYQ0hBTkdFX1BBUlRJVElPTiAoMUwgPDwgMjQpCi0j ZGVmaW5lIEFMVEVSX1RSVU5DQVRFX1BBUlRJVElPTiAoMUwgPDwgMjUpCisjZGVmaW5lIEFMVEVS X1JFQ1JFQVRFICAgICAgICAgICgxTCA8PCAxMSkKKyNkZWZpbmUgQUxURVJfQUREX1BBUlRJVElP TiAgICAgKDFMIDw8IDEyKQorI2RlZmluZSBBTFRFUl9EUk9QX1BBUlRJVElPTiAgICAoMUwgPDwg MTMpCisjZGVmaW5lIEFMVEVSX0NPQUxFU0NFX1BBUlRJVElPTiAoMUwgPDwgMTQpCisjZGVmaW5l IEFMVEVSX1JFT1JHQU5JWkVfUEFSVElUSU9OICgxTCA8PCAxNSkgCisjZGVmaW5lIEFMVEVSX1BB UlRJVElPTiAgICAgICAgICAoMUwgPDwgMTYpCisjZGVmaW5lIEFMVEVSX0FETUlOX1BBUlRJVElP TiAgICAoMUwgPDwgMTcpCisjZGVmaW5lIEFMVEVSX1RBQkxFX1JFT1JHICAgICAgICAoMUwgPDwg MTgpCisjZGVmaW5lIEFMVEVSX1JFQlVJTERfUEFSVElUSU9OICAoMUwgPDwgMTkpCisjZGVmaW5l IEFMVEVSX0FMTF9QQVJUSVRJT04gICAgICAoMUwgPDwgMjApCisjZGVmaW5lIEFMVEVSX1JFTU9W RV9QQVJUSVRJT05JTkcgKDFMIDw8IDIxKQorI2RlZmluZSBBTFRFUl9GT1JFSUdOX0tFWSAgICAg ICAgKDFMIDw8IDIyKQorI2RlZmluZSBBTFRFUl9FWENIQU5HRV9QQVJUSVRJT04gKDFMIDw8IDIz KQorI2RlZmluZSBBTFRFUl9UUlVOQ0FURV9QQVJUSVRJT04gKDFMIDw8IDI0KQogCiBlbnVtIGVu dW1fYWx0ZXJfdGFibGVfY2hhbmdlX2xldmVsCiB7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL3Nx bF95YWNjLnl5JwotLS0gYS9zcWwvc3FsX3lhY2MueXkJMjAxMS0wMi0yMSAxMTozNDoxNCArMDAw MAorKysgYi9zcWwvc3FsX3lhY2MueXkJMjAxMS0wMy0wOCAwOToyMTozOSArMDAwMApAQCAtNjg2 MSw3ICs2ODYxLDcgQEAgYWx0ZXJfbGlzdF9pdGVtOgogICAgICAgICAgIH0KICAgICAgICAgfCBG T1JDRV9TWU0KICAgICAgICAgICB7Ci0gICAgICAgICAgICBMZXgtPmFsdGVyX2luZm8uZmxhZ3N8 PSBBTFRFUl9GT1JDRTsKKyAgICAgICAgICAgIExleC0+YWx0ZXJfaW5mby5mbGFnc3w9IEFMVEVS X1JFQ1JFQVRFOwogICAgICAgICAgIH0KICAgICAgICAgfCBhbHRlcl9vcmRlcl9jbGF1c2UKICAg ICAgICAgICB7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9hcmNoaXZlL2hhX2FyY2hpdmUu aCcKLS0tIGEvc3RvcmFnZS9hcmNoaXZlL2hhX2FyY2hpdmUuaAkyMDEwLTEwLTA3IDEyOjQ3OjE1 ICswMDAwCisrKyBiL3N0b3JhZ2UvYXJjaGl2ZS9oYV9hcmNoaXZlLmgJMjAxMS0wMy0wOCAwOToy MTozOSArMDAwMApAQCAtOTAsNyArOTAsNyBAQCBwdWJsaWM6CiAgICAgcmV0dXJuIChIQV9OT19U UkFOU0FDVElPTlMgfCBIQV9SRUNfTk9UX0lOX1NFUSB8IEhBX0NBTl9CSVRfRklFTEQgfAogICAg ICAgICAgICAgSEFfQklOTE9HX1JPV19DQVBBQkxFIHwgSEFfQklOTE9HX1NUTVRfQ0FQQUJMRSB8 CiAgICAgICAgICAgICBIQV9TVEFUU19SRUNPUkRTX0lTX0VYQUNUIHwKLSAgICAgICAgICAgIEhB X0hBU19SRUNPUkRTIHwKKyAgICAgICAgICAgIEhBX0hBU19SRUNPUkRTIHwgSEFfQ0FOX1JFUEFJ UiB8CiAgICAgICAgICAgICBIQV9GSUxFX0JBU0VEIHwgSEFfQ0FOX0lOU0VSVF9ERUxBWUVEIHwg SEFfQ0FOX0dFT01FVFJZKTsKICAgfQogICB1bG9uZyBpbmRleF9mbGFncyh1aW50IGlkeCwgdWlu dCBwYXJ0LCBib29sIGFsbF9wYXJ0cykgY29uc3QKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdl L2Nzdi9oYV90aW5hLmgnCi0tLSBhL3N0b3JhZ2UvY3N2L2hhX3RpbmEuaAkyMDEwLTA3LTA4IDIx OjIwOjA4ICswMDAwCisrKyBiL3N0b3JhZ2UvY3N2L2hhX3RpbmEuaAkyMDExLTAzLTA4IDA4OjQx OjU3ICswMDAwCkBAIC0xMDYsNyArMTA2LDggQEAgcHVibGljOgogICB1bG9uZ2xvbmcgdGFibGVf ZmxhZ3MoKSBjb25zdAogICB7CiAgICAgcmV0dXJuIChIQV9OT19UUkFOU0FDVElPTlMgfCBIQV9S RUNfTk9UX0lOX1NFUSB8IEhBX05PX0FVVE9fSU5DUkVNRU5UIHwKLSAgICAgICAgICAgIEhBX0JJ TkxPR19ST1dfQ0FQQUJMRSB8IEhBX0JJTkxPR19TVE1UX0NBUEFCTEUpOworICAgICAgICAgICAg SEFfQklOTE9HX1JPV19DQVBBQkxFIHwgSEFfQklOTE9HX1NUTVRfQ0FQQUJMRSB8CisgICAgICAg ICAgICBIQV9DQU5fUkVQQUlSKTsKICAgfQogICB1bG9uZyBpbmRleF9mbGFncyh1aW50IGlkeCwg dWludCBwYXJ0LCBib29sIGFsbF9wYXJ0cykgY29uc3QKICAgewoKPT09IG1vZGlmaWVkIGZpbGUg J3N0b3JhZ2UvZmVkZXJhdGVkL2hhX2ZlZGVyYXRlZC5oJwotLS0gYS9zdG9yYWdlL2ZlZGVyYXRl ZC9oYV9mZWRlcmF0ZWQuaAkyMDEwLTEwLTA2IDE0OjM0OjI4ICswMDAwCisrKyBiL3N0b3JhZ2Uv ZmVkZXJhdGVkL2hhX2ZlZGVyYXRlZC5oCTIwMTEtMDMtMDggMDg6NDE6NTcgKzAwMDAKQEAgLTE0 OSw3ICsxNDksOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBIQV9CSU5MT0dfUk9XX0NBUEFCTEUg fCBIQV9CSU5MT0dfU1RNVF9DQVBBQkxFIHwKICAgICAgICAgICAgIEhBX05PX1BSRUZJWF9DSEFS X0tFWVMgfCBIQV9QUklNQVJZX0tFWV9SRVFVSVJFRF9GT1JfREVMRVRFIHwKICAgICAgICAgICAg IEhBX05PX1RSQU5TQUNUSU9OUyAvKiB1bnRpbCBmaXhlZCBieSBXTCMyOTUyICovIHwKLSAgICAg ICAgICAgIEhBX1BBUlRJQUxfQ09MVU1OX1JFQUQgfCBIQV9OVUxMX0lOX0tFWSk7CisgICAgICAg ICAgICBIQV9QQVJUSUFMX0NPTFVNTl9SRUFEIHwgSEFfTlVMTF9JTl9LRVkgfAorICAgICAgICAg ICAgSEFfQ0FOX1JFUEFJUik7CiAgIH0KICAgLyoKICAgICBUaGlzIGlzIGEgYml0bWFwIG9mIGZs YWdzIHRoYXQgc2F5cyBob3cgdGhlIHN0b3JhZ2UgZW5naW5lCgo9PT0gbW9kaWZpZWQgZmlsZSAn c3RvcmFnZS9teWlzYW0vaGFfbXlpc2FtLmNjJwotLS0gYS9zdG9yYWdlL215aXNhbS9oYV9teWlz YW0uY2MJMjAxMS0wMS0xMyAwNzozMzowMyArMDAwMAorKysgYi9zdG9yYWdlL215aXNhbS9oYV9t eWlzYW0uY2MJMjAxMS0wMy0wOCAwOToyMTozOSArMDAwMApAQCAtNjM5LDcgKzYzOSw3IEBAIGhh X215aXNhbTo6aGFfbXlpc2FtKGhhbmRsZXJ0b24gKmh0b24sIFQKICAgICAgICAgICAgICAgICAg IEhBX0RVUExJQ0FURV9QT1MgfCBIQV9DQU5fSU5ERVhfQkxPQlMgfCBIQV9BVVRPX1BBUlRfS0VZ IHwKICAgICAgICAgICAgICAgICAgIEhBX0ZJTEVfQkFTRUQgfCBIQV9DQU5fR0VPTUVUUlkgfCBI QV9OT19UUkFOU0FDVElPTlMgfAogICAgICAgICAgICAgICAgICAgSEFfQ0FOX0lOU0VSVF9ERUxB WUVEIHwgSEFfQ0FOX0JJVF9GSUVMRCB8IEhBX0NBTl9SVFJFRUtFWVMgfAotICAgICAgICAgICAg ICAgICAgSEFfSEFTX1JFQ09SRFMgfCBIQV9TVEFUU19SRUNPUkRTX0lTX0VYQUNUKSwKKyAgICAg ICAgICAgICAgICAgIEhBX0hBU19SRUNPUkRTIHwgSEFfU1RBVFNfUkVDT1JEU19JU19FWEFDVCB8 IEhBX0NBTl9SRVBBSVIpLAogICAgY2FuX2VuYWJsZV9pbmRleGVzKDEpCiB7fQogCgpObyBidW5k bGUgKHJlYXNvbjogcmV2aXNpb24gaXMgYSBtZXJnZSAoeW91IGNhbiBmb3JjZSBnZW5lcmF0aW9u IG9mIGEgYnVuZGxlIHdpdGggZW52IHZhciBCWlJfRk9SQ0VfQlVORExFPTEpKS4=