From: Date: June 26 2008 11:46pm Subject: bzr push into mysql-6.0 tree (marc.alff:2673 to 2673) WL#2110 List-Archive: http://lists.mysql.com/commits/48591 Message-Id: <20080626214624.090BE1DC617@lambda.WEBLAB> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============6296026602897442015==" --===============6296026602897442015== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline ------------------------------------------------------------ revno: 2673 revision-id: marc.alff@stripped parent: marc.alff@stripped committer: Marc Alff branch nick: mysql-6.0-wl2110 timestamp: Thu 2008-06-26 15:44:37 -0600 message: WL#2110 (SIGNAL) Implemented MESSAGE_TEXT as VARCHAR(128) UTF8, reverted previous changes to SQL_condition::m_message_text, added tests. modified: mysql-test/r/ctype_latin1.result sp1f-ctype_latin1.result-20040511083157-edwoof7up5tbnhaknkmf43jvbl7zsh4i mysql-test/r/ctype_recoding.result sp1f-ctype_recoding.resul-20030318094243-sc2kkvirv75e53jtcskvxmwgtatqxmf5 mysql-test/r/foreign_key_checks_basic.result sp1f-foreign_key_checks_b-20080410131242-6b6tt57kgtu6zpagzc42lf2gm7uut3ay mysql-test/r/signal.result signal.result-20080611224319-aa42sf2jr6ihptyl-1 mysql-test/r/signal_utf32.result signal_utf32.result-20080611224325-bv73mb5o3g7ad7lp-1 mysql-test/r/sql_big_selects_basic.result sp1f-sql_big_selects_basi-20080410131341-ljaezylhd2hvqmfb6kgftqkitdi76u62 mysql-test/r/sql_big_tables_basic.result sp1f-sql_big_tables_basic-20080410131341-aiakqqrxl4vasct6hem5jinnxw4sh5ra mysql-test/r/sql_buffer_result_basic.result sp1f-sql_buffer_result_ba-20080410131341-pt5fok4gyqv4n2kvx3mgnwuzhbehaonz mysql-test/r/sql_log_bin_basic.result sp1f-sql_log_bin_basic.re-20080410131342-2ceotu5mnetnoty3ioymuitlqyv2gxzx mysql-test/r/sql_log_off_basic.result sp1f-sql_log_off_basic.re-20080410131342-rmcglmkdmr4mj5dsnwkc6tc3irhj22lo mysql-test/r/sql_notes_basic.result sp1f-sql_notes_basic.resu-20080410131342-d6rqhfyt2rhlhixdyhlzjk27ujwdlvgh mysql-test/r/sql_quote_show_create_basic.result sp1f-sql_quote_show_creat-20080410131343-mijaoh7gvze5q2nmprcepq65tj732ghd mysql-test/r/sql_safe_updates_basic.result sp1f-sql_safe_updates_bas-20080410131343-ssdyc3qxnhq44xhmhicphbjtaihtjhfj mysql-test/r/sql_warnings_basic.result sp1f-sql_warnings_basic.r-20080410131343-sftxyyoy6ursxguooiylcynxbugk2q35 mysql-test/t/signal.test signal.test-20080611224156-hevtr9l77edo4e56-1 sql/derror.cc sp1f-derror.cc-19700101030959-542noqujcieu5kewg2mfhks47cvxjspq sql/mysql_priv.h sp1f-mysql_priv.h-19700101030959-4fl65tqpop5zfgxaxkqotu2fa2ree5ci sql/mysqld.cc sp1f-mysqld.cc-19700101030959-zpswdvekpvixxzxf7gdtofzel7nywtfj sql/sql_class.cc sp1f-sql_class.cc-19700101030959-rpotnweaff2pikkozh3butrf7mv3oero sql/sql_class.h sp1f-sql_class.h-19700101030959-jnqnbrjyqsvgncsibnumsmg3lyi7pa5s sql/sql_signal.cc sql_signal.cc-20080611224941-9w7mcyprafw0sq21-1 sql/sql_yacc.yy sp1f-sql_yacc.yy-19700101030959-wvn4qyy2drpmge7kaq3dysprbhlrv27j --===============6296026602897442015== Content-Type: text/text/x-diff; charset="8-bit"; name="patch-2673.diff" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline PT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvci9jdHlwZV9sYXRpbjEucmVzdWx0JwotLS0g YS9teXNxbC10ZXN0L3IvY3R5cGVfbGF0aW4xLnJlc3VsdAkyMDA4LTA2LTExIDIyOjUzOjQ3ICsw MDAwCisrKyBiL215c3FsLXRlc3Qvci9jdHlwZV9sYXRpbjEucmVzdWx0CTIwMDgtMDYtMjYgMjE6 NDQ6MzcgKzAwMDAKQEAgLTM2NSw3ICszNjUsNyBAQAogYWJfZGVmCiBkcm9wIHRhYmxlIHQxOwog Q1JFQVRFIFRBQkxFIIRhIChhIGludCk7Ci1FUlJPUiA0MjAwMDogWW91IGhhdmUgYW4gZXJyb3Ig aW4geW91ciBTUUwgc3ludGF4OyBjaGVjayB0aGUgbWFudWFsIHRoYXQgY29ycmVzcG9uZHMgdG8g eW91ciBNeVNRTCBzZXJ2ZXIgdmVyc2lvbiBmb3IgdGhlIHJpZ2h0IHN5bnRheCB0byB1c2UgbmVh ciAnP2EgKGEgaW50KScgYXQgbGluZSAxCitFUlJPUiA0MjAwMDogWW91IGhhdmUgYW4gZXJyb3Ig aW4geW91ciBTUUwgc3ludGF4OyBjaGVjayB0aGUgbWFudWFsIHRoYXQgY29ycmVzcG9uZHMgdG8g eW91ciBNeVNRTCBzZXJ2ZXIgdmVyc2lvbiBmb3IgdGhlIHJpZ2h0IHN5bnRheCB0byB1c2UgbmVh ciAnhGEgKGEgaW50KScgYXQgbGluZSAxCiBTRUxFQ1QgJ4RhJyBhcyBzdHI7CiBzdHIKIIRhCgo9 PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9yL2N0eXBlX3JlY29kaW5nLnJlc3VsdCcKLS0t IGEvbXlzcWwtdGVzdC9yL2N0eXBlX3JlY29kaW5nLnJlc3VsdAkyMDA4LTA2LTExIDIyOjUzOjQ3 ICswMDAwCisrKyBiL215c3FsLXRlc3Qvci9jdHlwZV9yZWNvZGluZy5yZXN1bHQJMjAwOC0wNi0y NiAyMTo0NDozNyArMDAwMApAQCAtMTYyLDEwICsxNjIsMTAgQEAKIERST1AgVEFCTEUgdDE7CiBT RVQgTkFNRVMgYmluYXJ5OwogQ1JFQVRFIFRBQkxFIGBnb29k0MzPyM9gIChhIGludCk7Ci1FUlJP UiBIWTAwMDogSW52YWxpZCB1dGY4IGNoYXJhY3RlciBzdHJpbmc6ICc/Pz8/PycKK0VSUk9SIEhZ MDAwOiBJbnZhbGlkIHV0ZjggY2hhcmFjdGVyIHN0cmluZzogJ9DMz8jPJwogU0VUIE5BTUVTIHV0 Zjg7CiBDUkVBVEUgVEFCTEUgYGdvb2TQzM/Iz2AgKGEgaW50KTsKLUVSUk9SIEhZMDAwOiBJbnZh bGlkIHV0ZjggY2hhcmFjdGVyIHN0cmluZzogJz8/Pz8/YCAoYSBpbnQpJworRVJST1IgSFkwMDA6 IEludmFsaWQgdXRmOCBjaGFyYWN0ZXIgc3RyaW5nOiAn0MzPyM9gIChhIGludCknCiBzZXQgbmFt ZXMgbGF0aW4xOwogY3JlYXRlIHRhYmxlIHQxIChhIGNoYXIoMTApIGNoYXJhY3RlciBzZXQga29p OHIsIGIgdGV4dCBjaGFyYWN0ZXIgc2V0IGtvaThyKTsKIGluc2VydCBpbnRvIHQxIHZhbHVlcyAo J3Rlc3QnLCd0ZXN0Jyk7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9yL2ZvcmVpZ25f a2V5X2NoZWNrc19iYXNpYy5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvci9mb3JlaWduX2tleV9j aGVja3NfYmFzaWMucmVzdWx0CTIwMDgtMDYtMTEgMjI6NTM6NDcgKzAwMDAKKysrIGIvbXlzcWwt dGVzdC9yL2ZvcmVpZ25fa2V5X2NoZWNrc19iYXNpYy5yZXN1bHQJMjAwOC0wNi0yNiAyMTo0NDoz NyArMDAwMApAQCAtNTIsNyArNTIsNyBAQAogU0VUIEBAc2Vzc2lvbi5mb3JlaWduX2tleV9jaGVj a3MgPSDTRkY7CiBFUlJPUiA0MjAwMDogVmFyaWFibGUgJ2ZvcmVpZ25fa2V5X2NoZWNrcycgY2Fu J3QgYmUgc2V0IHRvIHRoZSB2YWx1ZSBvZiAnw5NGRicKIFNFVCBAQHNlc3Npb24uZm9yZWlnbl9r ZXlfY2hlY2tzID0gJ7knOwotRVJST1IgNDIwMDA6IFZhcmlhYmxlICdmb3JlaWduX2tleV9jaGVj a3MnIGNhbid0IGJlIHNldCB0byB0aGUgdmFsdWUgb2YgJz8nCitFUlJPUiA0MjAwMDogVmFyaWFi bGUgJ2ZvcmVpZ25fa2V5X2NoZWNrcycgY2FuJ3QgYmUgc2V0IHRvIHRoZSB2YWx1ZSBvZiAnuScK IFNFVCBAQHNlc3Npb24uZm9yZWlnbl9rZXlfY2hlY2tzID0gTk87CiBFUlJPUiA0MjAwMDogVmFy aWFibGUgJ2ZvcmVpZ25fa2V5X2NoZWNrcycgY2FuJ3QgYmUgc2V0IHRvIHRoZSB2YWx1ZSBvZiAn Tk8nCiAnIy0tLS0tLS0tLS0tLS0tLS0tLS1GTl9EWU5WQVJTXzAzMl8wNS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0jJwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvci9zaWduYWwu cmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3Ivc2lnbmFsLnJlc3VsdAkyMDA4LTA2LTI0IDIzOjQx OjI0ICswMDAwCisrKyBiL215c3FsLXRlc3Qvci9zaWduYWwucmVzdWx0CTIwMDgtMDYtMjYgMjE6 NDQ6MzcgKzAwMDAKQEAgLTE2MzIsNiArMTYzMiwxNiBAQAogY2FsbCB0ZXN0X3NpZ25hbCgpICQk CiBFUlJPUiBBQUJCQjogVXNlciB2YXJpYWJsZQogZHJvcCBwcm9jZWR1cmUgdGVzdF9zaWduYWwg JCQKK2NyZWF0ZSBwcm9jZWR1cmUgdGVzdF9pbnZhbGlkKCkKK2JlZ2luCitERUNMQVJFIHNvbWV0 aGluZyBDT05ESVRJT04gRk9SIFNRTFNUQVRFICJBQUJCQiI7CitTSUdOQUwgc29tZXRoaW5nIFNF VAorTUVTU0FHRV9URVhUID0gQG1lc3NhZ2VfdGV4dCA6PSAnaWxsZWdhbCcsCitNWVNRTF9FUlJO TyA9IEBzcWxjb2RlIDo9IDEyMzQ7CitlbmQgJCQKK0VSUk9SIDQyMDAwOiBZb3UgaGF2ZSBhbiBl cnJvciBpbiB5b3VyIFNRTCBzeW50YXg7IGNoZWNrIHRoZSBtYW51YWwgdGhhdCBjb3JyZXNwb25k cyB0byB5b3VyIE15U1FMIHNlcnZlciB2ZXJzaW9uIGZvciB0aGUgcmlnaHQgc3ludGF4IHRvIHVz ZSBuZWFyICcKK01ZU1FMX0VSUk5PID0gQHNxbGNvZGUgOj0gMTIzNDsKK2VuZCcgYXQgbGluZSA1 CiBjcmVhdGUgcHJvY2VkdXJlIHRlc3Rfc2lnbmFsKCkKIGJlZ2luCiBERUNMQVJFIGFhYSBWQVJD SEFSKDY0KTsKQEAgLTE5NTMsNiArMTk2MywyMSBAQAogaW5zZXJ0IGludG8gdDEgdmFsdWVzICg1 KSwgKDYpICQkCiBFUlJPUiAwM1hYWDogVGhpcyB0cmlnZ2VyIFNJR05BTCBhbiBlcnJvciwgYT01 CiBkcm9wIHRhYmxlIHQxICQkCitjcmVhdGUgdGFibGUgdDEgKGVycm5vIGludGVnZXIsIG1zZyB2 YXJjaGFyKDEyOCkpICQkCitjcmVhdGUgdHJpZ2dlciB0MV9haSBhZnRlciBpbnNlcnQgb24gdDEg Zm9yIGVhY2ggcm93CitiZWdpbgorREVDTEFSRSB3YXJuIENPTkRJVElPTiBGT1IgU1FMU1RBVEUg IjAxWFhYIjsKK1NJR05BTCB3YXJuIFNFVAorTUVTU0FHRV9URVhUID0gTkVXLm1zZywKK01ZU1FM X0VSUk5PID0gTkVXLmVycm5vOworZW5kICQkCitpbnNlcnQgaW50byB0MSBzZXQgZXJybm89MTAx MiwgbXNnPSdXYXJuaW5nIG1lc3NhZ2UgMSBpbiB0cmlnZ2VyJyAkJAorV2FybmluZ3M6CitXYXJu aW5nCTEwMTIJV2FybmluZyBtZXNzYWdlIDEgaW4gdHJpZ2dlcgoraW5zZXJ0IGludG8gdDEgc2V0 IGVycm5vPTEwMTMsIG1zZz0nV2FybmluZyBtZXNzYWdlIDIgaW4gdHJpZ2dlcicgJCQKK1dhcm5p bmdzOgorV2FybmluZwkxMDEzCVdhcm5pbmcgbWVzc2FnZSAyIGluIHRyaWdnZXIKK2Ryb3AgdGFi bGUgdDEgJCQKIGRyb3AgdGFibGUgaWYgZXhpc3RzIHQxICQkCiBkcm9wIHByb2NlZHVyZSBpZiBl eGlzdHMgcDEgJCQKIGRyb3AgZnVuY3Rpb24gaWYgZXhpc3RzIGYxICQkCgo9PT0gbW9kaWZpZWQg ZmlsZSAnbXlzcWwtdGVzdC9yL3NpZ25hbF91dGYzMi5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qv ci9zaWduYWxfdXRmMzIucmVzdWx0CTIwMDgtMDYtMjQgMjM6NDE6MjQgKzAwMDAKKysrIGIvbXlz cWwtdGVzdC9yL3NpZ25hbF91dGYzMi5yZXN1bHQJMjAwOC0wNi0yNiAyMTo0NDozNyArMDAwMApA QCAtMzAsNSArMzAsNSBAQAogc2lnbmFsIHNxbHN0YXRlICc3Nzc3Nyc7CiBlbmQgJCQKIGNhbGwg dGVzdF9zaWduYWwoKSAkJAotRVJST1IgNzc3Nzc6IMOMw4zDjMOMw4zDjMOMw4zDjMOMw4zDjMOM w4zDjMOMw4zDjMOMw4zDjMOMw4zDjMOMw4zDjMOMw4zDjMOMw4zDjMOMw4zDjMOMw4zDjMOMw4zD jMOMw4zDjMOMw4zDjMOMw4zDjMOMw4zDjMOMw4zDjMOMw4zDjMOMw4zDjMOMw4zDjMOMw4zDjMOM w4zDjMOMw4zDjMOMw4zDjMOMw4zDjMOMw4zDjMOMw4zDjMOMw4zDjMOMw4zDjMOMw4zDjMOMw4zD jMOMw4zDjMOMw4zDjMOMw4zDjMOMw4zDjMOMw4zDjMOMw4zDjMOMw4zDjMOMw4zDjMOMw4zDjMOM w4wKK0VSUk9SIDc3Nzc3OiDMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzAogZHJvcCBwcm9jZWR1cmUgdGVzdF9zaWdu YWwgJCQKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3Ivc3FsX2JpZ19zZWxlY3RzX2Jh c2ljLnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9yL3NxbF9iaWdfc2VsZWN0c19iYXNpYy5yZXN1 bHQJMjAwOC0wNi0xMSAyMjo1Mzo0NyArMDAwMAorKysgYi9teXNxbC10ZXN0L3Ivc3FsX2JpZ19z ZWxlY3RzX2Jhc2ljLnJlc3VsdAkyMDA4LTA2LTI2IDIxOjQ0OjM3ICswMDAwCkBAIC01MSw3ICs1 MSw3IEBACiBTRVQgQEBzZXNzaW9uLnNxbF9iaWdfc2VsZWN0cyA9INNGRjsKIEVSUk9SIDQyMDAw OiBWYXJpYWJsZSAnc3FsX2JpZ19zZWxlY3RzJyBjYW4ndCBiZSBzZXQgdG8gdGhlIHZhbHVlIG9m ICfDk0ZGJwogU0VUIEBAc2Vzc2lvbi5zcWxfYmlnX3NlbGVjdHMgPSAnuSc7Ci1FUlJPUiA0MjAw MDogVmFyaWFibGUgJ3NxbF9iaWdfc2VsZWN0cycgY2FuJ3QgYmUgc2V0IHRvIHRoZSB2YWx1ZSBv ZiAnPycKK0VSUk9SIDQyMDAwOiBWYXJpYWJsZSAnc3FsX2JpZ19zZWxlY3RzJyBjYW4ndCBiZSBz ZXQgdG8gdGhlIHZhbHVlIG9mICe5JwogU0VUIEBAc2Vzc2lvbi5zcWxfYmlnX3NlbGVjdHMgPSBO TzsKIEVSUk9SIDQyMDAwOiBWYXJpYWJsZSAnc3FsX2JpZ19zZWxlY3RzJyBjYW4ndCBiZSBzZXQg dG8gdGhlIHZhbHVlIG9mICdOTycKICcjLS0tLS0tLS0tLS0tLS0tLS0tLUZOX0RZTlZBUlNfMTUz XzA1LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMnCgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlz cWwtdGVzdC9yL3NxbF9iaWdfdGFibGVzX2Jhc2ljLnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9y L3NxbF9iaWdfdGFibGVzX2Jhc2ljLnJlc3VsdAkyMDA4LTA2LTExIDIyOjUzOjQ3ICswMDAwCisr KyBiL215c3FsLXRlc3Qvci9zcWxfYmlnX3RhYmxlc19iYXNpYy5yZXN1bHQJMjAwOC0wNi0yNiAy MTo0NDozNyArMDAwMApAQCAtNTYsNyArNTYsNyBAQAogU0VUIEBAc2Vzc2lvbi5zcWxfYmlnX3Rh YmxlcyA9INNGRjsKIEVSUk9SIDQyMDAwOiBWYXJpYWJsZSAnc3FsX2JpZ190YWJsZXMnIGNhbid0 IGJlIHNldCB0byB0aGUgdmFsdWUgb2YgJ8OTRkYnCiBTRVQgQEBzZXNzaW9uLnNxbF9iaWdfdGFi bGVzID0gJ7knOwotRVJST1IgNDIwMDA6IFZhcmlhYmxlICdzcWxfYmlnX3RhYmxlcycgY2FuJ3Qg YmUgc2V0IHRvIHRoZSB2YWx1ZSBvZiAnPycKK0VSUk9SIDQyMDAwOiBWYXJpYWJsZSAnc3FsX2Jp Z190YWJsZXMnIGNhbid0IGJlIHNldCB0byB0aGUgdmFsdWUgb2YgJ7knCiBTRVQgQEBzZXNzaW9u LnNxbF9iaWdfdGFibGVzID0gTk87CiBFUlJPUiA0MjAwMDogVmFyaWFibGUgJ3NxbF9iaWdfdGFi bGVzJyBjYW4ndCBiZSBzZXQgdG8gdGhlIHZhbHVlIG9mICdOTycKICcjLS0tLS0tLS0tLS0tLS0t LS0tLUZOX0RZTlZBUlNfMTU0XzA1LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMnCgo9PT0g bW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9yL3NxbF9idWZmZXJfcmVzdWx0X2Jhc2ljLnJlc3Vs dCcKLS0tIGEvbXlzcWwtdGVzdC9yL3NxbF9idWZmZXJfcmVzdWx0X2Jhc2ljLnJlc3VsdAkyMDA4 LTA2LTExIDIyOjUzOjQ3ICswMDAwCisrKyBiL215c3FsLXRlc3Qvci9zcWxfYnVmZmVyX3Jlc3Vs dF9iYXNpYy5yZXN1bHQJMjAwOC0wNi0yNiAyMTo0NDozNyArMDAwMApAQCAtNjQsNyArNjQsNyBA QAogU0VUIEBAc2Vzc2lvbi5zcWxfYnVmZmVyX3Jlc3VsdCA9INNGRjsKIEVSUk9SIDQyMDAwOiBW YXJpYWJsZSAnc3FsX2J1ZmZlcl9yZXN1bHQnIGNhbid0IGJlIHNldCB0byB0aGUgdmFsdWUgb2Yg J8OTRkYnCiBTRVQgQEBzZXNzaW9uLnNxbF9idWZmZXJfcmVzdWx0ID0gJ7knOwotRVJST1IgNDIw MDA6IFZhcmlhYmxlICdzcWxfYnVmZmVyX3Jlc3VsdCcgY2FuJ3QgYmUgc2V0IHRvIHRoZSB2YWx1 ZSBvZiAnPycKK0VSUk9SIDQyMDAwOiBWYXJpYWJsZSAnc3FsX2J1ZmZlcl9yZXN1bHQnIGNhbid0 IGJlIHNldCB0byB0aGUgdmFsdWUgb2YgJ7knCiBTRVQgQEBzZXNzaW9uLnNxbF9idWZmZXJfcmVz dWx0ID0gTk87CiBFUlJPUiA0MjAwMDogVmFyaWFibGUgJ3NxbF9idWZmZXJfcmVzdWx0JyBjYW4n dCBiZSBzZXQgdG8gdGhlIHZhbHVlIG9mICdOTycKICcjLS0tLS0tLS0tLS0tLS0tLS0tLUZOX0RZ TlZBUlNfMTU1XzA1LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMnCgo9PT0gbW9kaWZpZWQg ZmlsZSAnbXlzcWwtdGVzdC9yL3NxbF9sb2dfYmluX2Jhc2ljLnJlc3VsdCcKLS0tIGEvbXlzcWwt dGVzdC9yL3NxbF9sb2dfYmluX2Jhc2ljLnJlc3VsdAkyMDA4LTA2LTExIDIyOjUzOjQ3ICswMDAw CisrKyBiL215c3FsLXRlc3Qvci9zcWxfbG9nX2Jpbl9iYXNpYy5yZXN1bHQJMjAwOC0wNi0yNiAy MTo0NDozNyArMDAwMApAQCAtNTYsNyArNTYsNyBAQAogU0VUIEBAc2Vzc2lvbi5zcWxfbG9nX2Jp biA9INNGRjsKIEVSUk9SIDQyMDAwOiBWYXJpYWJsZSAnc3FsX2xvZ19iaW4nIGNhbid0IGJlIHNl dCB0byB0aGUgdmFsdWUgb2YgJ8OTRkYnCiBTRVQgQEBzZXNzaW9uLnNxbF9sb2dfYmluID0gJ7kn OwotRVJST1IgNDIwMDA6IFZhcmlhYmxlICdzcWxfbG9nX2JpbicgY2FuJ3QgYmUgc2V0IHRvIHRo ZSB2YWx1ZSBvZiAnPycKK0VSUk9SIDQyMDAwOiBWYXJpYWJsZSAnc3FsX2xvZ19iaW4nIGNhbid0 IGJlIHNldCB0byB0aGUgdmFsdWUgb2YgJ7knCiBTRVQgQEBzZXNzaW9uLnNxbF9sb2dfYmluID0g Tk87CiBFUlJPUiA0MjAwMDogVmFyaWFibGUgJ3NxbF9sb2dfYmluJyBjYW4ndCBiZSBzZXQgdG8g dGhlIHZhbHVlIG9mICdOTycKICcjLS0tLS0tLS0tLS0tLS0tLS0tLUZOX0RZTlZBUlNfMTU2XzA1 LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMnCgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwt dGVzdC9yL3NxbF9sb2dfb2ZmX2Jhc2ljLnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9yL3NxbF9s b2dfb2ZmX2Jhc2ljLnJlc3VsdAkyMDA4LTA2LTExIDIyOjUzOjQ3ICswMDAwCisrKyBiL215c3Fs LXRlc3Qvci9zcWxfbG9nX29mZl9iYXNpYy5yZXN1bHQJMjAwOC0wNi0yNiAyMTo0NDozNyArMDAw MApAQCAtNTYsNyArNTYsNyBAQAogU0VUIEBAc2Vzc2lvbi5zcWxfbG9nX29mZiA9INNGRjsKIEVS Uk9SIDQyMDAwOiBWYXJpYWJsZSAnc3FsX2xvZ19vZmYnIGNhbid0IGJlIHNldCB0byB0aGUgdmFs dWUgb2YgJ8OTRkYnCiBTRVQgQEBzZXNzaW9uLnNxbF9sb2dfb2ZmID0gJ7knOwotRVJST1IgNDIw MDA6IFZhcmlhYmxlICdzcWxfbG9nX29mZicgY2FuJ3QgYmUgc2V0IHRvIHRoZSB2YWx1ZSBvZiAn PycKK0VSUk9SIDQyMDAwOiBWYXJpYWJsZSAnc3FsX2xvZ19vZmYnIGNhbid0IGJlIHNldCB0byB0 aGUgdmFsdWUgb2YgJ7knCiBTRVQgQEBzZXNzaW9uLnNxbF9sb2dfb2ZmID0gTk87CiBFUlJPUiA0 MjAwMDogVmFyaWFibGUgJ3NxbF9sb2dfb2ZmJyBjYW4ndCBiZSBzZXQgdG8gdGhlIHZhbHVlIG9m ICdOTycKICcjLS0tLS0tLS0tLS0tLS0tLS0tLUZOX0RZTlZBUlNfMTU3XzA1LS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSMnCgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9yL3NxbF9u b3Rlc19iYXNpYy5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvci9zcWxfbm90ZXNfYmFzaWMucmVz dWx0CTIwMDgtMDYtMTEgMjI6NTM6NDcgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9yL3NxbF9ub3Rl c19iYXNpYy5yZXN1bHQJMjAwOC0wNi0yNiAyMTo0NDozNyArMDAwMApAQCAtNTYsNyArNTYsNyBA QAogU0VUIEBAc2Vzc2lvbi5zcWxfbm90ZXMgPSDTRkY7CiBFUlJPUiA0MjAwMDogVmFyaWFibGUg J3NxbF9ub3RlcycgY2FuJ3QgYmUgc2V0IHRvIHRoZSB2YWx1ZSBvZiAnw5NGRicKIFNFVCBAQHNl c3Npb24uc3FsX25vdGVzID0gJ7knOwotRVJST1IgNDIwMDA6IFZhcmlhYmxlICdzcWxfbm90ZXMn IGNhbid0IGJlIHNldCB0byB0aGUgdmFsdWUgb2YgJz8nCitFUlJPUiA0MjAwMDogVmFyaWFibGUg J3NxbF9ub3RlcycgY2FuJ3QgYmUgc2V0IHRvIHRoZSB2YWx1ZSBvZiAnuScKIFNFVCBAQHNlc3Np b24uc3FsX25vdGVzID0gTk87CiBFUlJPUiA0MjAwMDogVmFyaWFibGUgJ3NxbF9ub3RlcycgY2Fu J3QgYmUgc2V0IHRvIHRoZSB2YWx1ZSBvZiAnTk8nCiAnIy0tLS0tLS0tLS0tLS0tLS0tLS1GTl9E WU5WQVJTXzE2MV8wNS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jJwoKPT09IG1vZGlmaWVk IGZpbGUgJ215c3FsLXRlc3Qvci9zcWxfcXVvdGVfc2hvd19jcmVhdGVfYmFzaWMucmVzdWx0Jwot LS0gYS9teXNxbC10ZXN0L3Ivc3FsX3F1b3RlX3Nob3dfY3JlYXRlX2Jhc2ljLnJlc3VsdAkyMDA4 LTA2LTExIDIyOjUzOjQ3ICswMDAwCisrKyBiL215c3FsLXRlc3Qvci9zcWxfcXVvdGVfc2hvd19j cmVhdGVfYmFzaWMucmVzdWx0CTIwMDgtMDYtMjYgMjE6NDQ6MzcgKzAwMDAKQEAgLTU2LDcgKzU2 LDcgQEAKIFNFVCBAQHNlc3Npb24uc3FsX3F1b3RlX3Nob3dfY3JlYXRlID0g00ZGOwogRVJST1Ig NDIwMDA6IFZhcmlhYmxlICdzcWxfcXVvdGVfc2hvd19jcmVhdGUnIGNhbid0IGJlIHNldCB0byB0 aGUgdmFsdWUgb2YgJ8OTRkYnCiBTRVQgQEBzZXNzaW9uLnNxbF9xdW90ZV9zaG93X2NyZWF0ZSA9 ICe5JzsKLUVSUk9SIDQyMDAwOiBWYXJpYWJsZSAnc3FsX3F1b3RlX3Nob3dfY3JlYXRlJyBjYW4n dCBiZSBzZXQgdG8gdGhlIHZhbHVlIG9mICc/JworRVJST1IgNDIwMDA6IFZhcmlhYmxlICdzcWxf cXVvdGVfc2hvd19jcmVhdGUnIGNhbid0IGJlIHNldCB0byB0aGUgdmFsdWUgb2YgJ7knCiBTRVQg QEBzZXNzaW9uLnNxbF9xdW90ZV9zaG93X2NyZWF0ZSA9IE5POwogRVJST1IgNDIwMDA6IFZhcmlh YmxlICdzcWxfcXVvdGVfc2hvd19jcmVhdGUnIGNhbid0IGJlIHNldCB0byB0aGUgdmFsdWUgb2Yg J05PJwogJyMtLS0tLS0tLS0tLS0tLS0tLS0tRk5fRFlOVkFSU18xNjJfMDUtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tIycKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3Ivc3FsX3Nh ZmVfdXBkYXRlc19iYXNpYy5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvci9zcWxfc2FmZV91cGRh dGVzX2Jhc2ljLnJlc3VsdAkyMDA4LTA2LTExIDIyOjUzOjQ3ICswMDAwCisrKyBiL215c3FsLXRl c3Qvci9zcWxfc2FmZV91cGRhdGVzX2Jhc2ljLnJlc3VsdAkyMDA4LTA2LTI2IDIxOjQ0OjM3ICsw MDAwCkBAIC01Niw3ICs1Niw3IEBACiBTRVQgQEBzZXNzaW9uLnNxbF9zYWZlX3VwZGF0ZXMgPSDT RkY7CiBFUlJPUiA0MjAwMDogVmFyaWFibGUgJ3NxbF9zYWZlX3VwZGF0ZXMnIGNhbid0IGJlIHNl dCB0byB0aGUgdmFsdWUgb2YgJ8OTRkYnCiBTRVQgQEBzZXNzaW9uLnNxbF9zYWZlX3VwZGF0ZXMg PSAnuSc7Ci1FUlJPUiA0MjAwMDogVmFyaWFibGUgJ3NxbF9zYWZlX3VwZGF0ZXMnIGNhbid0IGJl IHNldCB0byB0aGUgdmFsdWUgb2YgJz8nCitFUlJPUiA0MjAwMDogVmFyaWFibGUgJ3NxbF9zYWZl X3VwZGF0ZXMnIGNhbid0IGJlIHNldCB0byB0aGUgdmFsdWUgb2YgJ7knCiBTRVQgQEBzZXNzaW9u LnNxbF9zYWZlX3VwZGF0ZXMgPSBOTzsKIEVSUk9SIDQyMDAwOiBWYXJpYWJsZSAnc3FsX3NhZmVf dXBkYXRlcycgY2FuJ3QgYmUgc2V0IHRvIHRoZSB2YWx1ZSBvZiAnTk8nCiAnIy0tLS0tLS0tLS0t LS0tLS0tLS1GTl9EWU5WQVJTXzE2M18wNS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jJwoK PT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvci9zcWxfd2FybmluZ3NfYmFzaWMucmVzdWx0 JwotLS0gYS9teXNxbC10ZXN0L3Ivc3FsX3dhcm5pbmdzX2Jhc2ljLnJlc3VsdAkyMDA4LTA2LTEx IDIyOjUzOjQ3ICswMDAwCisrKyBiL215c3FsLXRlc3Qvci9zcWxfd2FybmluZ3NfYmFzaWMucmVz dWx0CTIwMDgtMDYtMjYgMjE6NDQ6MzcgKzAwMDAKQEAgLTU2LDcgKzU2LDcgQEAKIFNFVCBAQHNl c3Npb24uc3FsX3dhcm5pbmdzID0g00ZGOwogRVJST1IgNDIwMDA6IFZhcmlhYmxlICdzcWxfd2Fy bmluZ3MnIGNhbid0IGJlIHNldCB0byB0aGUgdmFsdWUgb2YgJ8OTRkYnCiBTRVQgQEBzZXNzaW9u LnNxbF93YXJuaW5ncyA9ICe5JzsKLUVSUk9SIDQyMDAwOiBWYXJpYWJsZSAnc3FsX3dhcm5pbmdz JyBjYW4ndCBiZSBzZXQgdG8gdGhlIHZhbHVlIG9mICc/JworRVJST1IgNDIwMDA6IFZhcmlhYmxl ICdzcWxfd2FybmluZ3MnIGNhbid0IGJlIHNldCB0byB0aGUgdmFsdWUgb2YgJ7knCiBTRVQgQEBz ZXNzaW9uLnNxbF93YXJuaW5ncyA9IE5POwogRVJST1IgNDIwMDA6IFZhcmlhYmxlICdzcWxfd2Fy bmluZ3MnIGNhbid0IGJlIHNldCB0byB0aGUgdmFsdWUgb2YgJ05PJwogJyMtLS0tLS0tLS0tLS0t LS0tLS0tRk5fRFlOVkFSU18xNjZfMDUtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIycKCj09 PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3Qvc2lnbmFsLnRlc3QnCi0tLSBhL215c3FsLXRl c3QvdC9zaWduYWwudGVzdAkyMDA4LTA2LTI0IDIzOjQxOjI0ICswMDAwCisrKyBiL215c3FsLXRl c3QvdC9zaWduYWwudGVzdAkyMDA4LTA2LTI2IDIxOjQ0OjM3ICswMDAwCkBAIC0xOTcwLDYgKzE5 NzAsMTYgQEAKIGNhbGwgdGVzdF9zaWduYWwoKSAkJAogZHJvcCBwcm9jZWR1cmUgdGVzdF9zaWdu YWwgJCQKIAorLS1lcnJvciBFUl9QQVJTRV9FUlJPUgorY3JlYXRlIHByb2NlZHVyZSB0ZXN0X2lu dmFsaWQoKQorYmVnaW4KKyAgREVDTEFSRSBzb21ldGhpbmcgQ09ORElUSU9OIEZPUiBTUUxTVEFU RSAiQUFCQkIiOworCisgIFNJR05BTCBzb21ldGhpbmcgU0VUCisgICAgTUVTU0FHRV9URVhUID0g QG1lc3NhZ2VfdGV4dCA6PSAnaWxsZWdhbCcsCisgICAgTVlTUUxfRVJSTk8gPSBAc3FsY29kZSA6 PSAxMjM0OworZW5kICQkCisKICMjIGNyZWF0ZSBwcm9jZWR1cmUgdGVzdF9zaWduYWwoKQogIyMg YmVnaW4KICMjICAgREVDTEFSRSBzb21ldGhpbmcgQ09ORElUSU9OIEZPUiBTUUxTVEFURSAiMTIz NDUiOwpAQCAtMjM4MSw2ICsyMzkxLDIyIEBACiAKIGRyb3AgdGFibGUgdDEgJCQKIAorY3JlYXRl IHRhYmxlIHQxIChlcnJubyBpbnRlZ2VyLCBtc2cgdmFyY2hhcigxMjgpKSAkJAorCitjcmVhdGUg dHJpZ2dlciB0MV9haSBhZnRlciBpbnNlcnQgb24gdDEgZm9yIGVhY2ggcm93CitiZWdpbgorICBE RUNMQVJFIHdhcm4gQ09ORElUSU9OIEZPUiBTUUxTVEFURSAiMDFYWFgiOworCisgIFNJR05BTCB3 YXJuIFNFVAorICAgIE1FU1NBR0VfVEVYVCA9IE5FVy5tc2csCisgICAgTVlTUUxfRVJSTk8gPSBO RVcuZXJybm87CitlbmQgJCQKKworaW5zZXJ0IGludG8gdDEgc2V0IGVycm5vPTEwMTIsIG1zZz0n V2FybmluZyBtZXNzYWdlIDEgaW4gdHJpZ2dlcicgJCQKK2luc2VydCBpbnRvIHQxIHNldCBlcnJu bz0xMDEzLCBtc2c9J1dhcm5pbmcgbWVzc2FnZSAyIGluIHRyaWdnZXInICQkCisKK2Ryb3AgdGFi bGUgdDEgJCQKKwogLS1kaXNhYmxlX3dhcm5pbmdzCiBkcm9wIHRhYmxlIGlmIGV4aXN0cyB0MSAk JAogZHJvcCBwcm9jZWR1cmUgaWYgZXhpc3RzIHAxICQkCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3Fs L2RlcnJvci5jYycKLS0tIGEvc3FsL2RlcnJvci5jYwkyMDA4LTA0LTA5IDAwOjU2OjQ5ICswMDAw CisrKyBiL3NxbC9kZXJyb3IuY2MJMjAwOC0wNi0yNiAyMTo0NDozNyArMDAwMApAQCAtMTIxLDcg KzEyMSw3IEBACiAgIH0KICAgCiAgIC8qIFRPRE86IENvbnZlcnQgdGhlIGNoYXJhY3RlciBzZXQg dG8gc2VydmVyIHN5c3RlbSBjaGFyYWN0ZXIgc2V0ICovCi0gIGlmICghZ2V0X2NoYXJzZXQoaGVh ZFszMF0sTVlGKE1ZX1dNRSkpKQorICBpZiAoIShlcnJvcl9tZXNzYWdlX2NoYXJzZXRfaW5mbz0g Z2V0X2NoYXJzZXQoaGVhZFszMF0sTVlGKE1ZX1dNRSkpKSkKICAgewogICAgIHNxbF9wcmludF9l cnJvcigiQ2hhcmFjdGVyIHNldCAjJWQgaXMgbm90IHN1cHBvcnRlZCBmb3IgbWVzc2FnZWZpbGUg JyVzJyIsCiAgICAgICAgICAgICAgICAgICAgIChpbnQpaGVhZFszMF0sbmFtZSk7Cgo9PT0gbW9k aWZpZWQgZmlsZSAnc3FsL215c3FsX3ByaXYuaCcKLS0tIGEvc3FsL215c3FsX3ByaXYuaAkyMDA4 LTA2LTIwIDIzOjAwOjQ0ICswMDAwCisrKyBiL3NxbC9teXNxbF9wcml2LmgJMjAwOC0wNi0yNiAy MTo0NDozNyArMDAwMApAQCAtMTUyLDYgKzE1MiwxMCBAQAogZXh0ZXJuIENIQVJTRVRfSU5GTyAq c3lzdGVtX2NoYXJzZXRfaW5mbywgKmZpbGVzX2NoYXJzZXRfaW5mbyA7CiBleHRlcm4gQ0hBUlNF VF9JTkZPICpuYXRpb25hbF9jaGFyc2V0X2luZm8sICp0YWJsZV9hbGlhc19jaGFyc2V0OwogCisv KioKKyAgQ2hhcmFjdGVyIHNldCBvZiB0aGUgYnVpbGRpbiBlcnJvciBtZXNzYWdlcyBsb2FkZWQg ZnJvbSBlcnJtc2cuc3lzLgorKi8KK2V4dGVybiBDSEFSU0VUX0lORk8gKmVycm9yX21lc3NhZ2Vf Y2hhcnNldF9pbmZvOwogCiBlbnVtIERlcml2YXRpb24KIHsKCj09PSBtb2RpZmllZCBmaWxlICdz cWwvbXlzcWxkLmNjJwotLS0gYS9zcWwvbXlzcWxkLmNjCTIwMDgtMDYtMjAgMjM6MDA6NDQgKzAw MDAKKysrIGIvc3FsL215c3FsZC5jYwkyMDA4LTA2LTI2IDIxOjQ0OjM3ICswMDAwCkBAIC02NTEs NiArNjUxLDcgQEAKIENIQVJTRVRfSU5GTyAqc3lzdGVtX2NoYXJzZXRfaW5mbywgKmZpbGVzX2No YXJzZXRfaW5mbyA7CiBDSEFSU0VUX0lORk8gKm5hdGlvbmFsX2NoYXJzZXRfaW5mbywgKnRhYmxl X2FsaWFzX2NoYXJzZXQ7CiBDSEFSU0VUX0lORk8gKmNoYXJhY3Rlcl9zZXRfZmlsZXN5c3RlbTsK K0NIQVJTRVRfSU5GTyAqZXJyb3JfbWVzc2FnZV9jaGFyc2V0X2luZm89IE5VTEw7CiAKIE1ZX0xP Q0FMRSAqbXlfZGVmYXVsdF9sY190aW1lX25hbWVzOwogCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3Fs L3NxbF9jbGFzcy5jYycKLS0tIGEvc3FsL3NxbF9jbGFzcy5jYwkyMDA4LTA2LTI0IDE4OjI1OjU0 ICswMDAwCisrKyBiL3NxbC9zcWxfY2xhc3MuY2MJMjAwOC0wNi0yNiAyMTo0NDozNyArMDAwMApA QCAtNDEyLDM1ICs0MTIsNiBAQAogICBtX3N0YXR1cz0gREFfRU1QVFk7CiB9CiAKLXZvaWQKLURp YWdub3N0aWNzX2FyZWE6OnNldF91dGY4X21lc3NhZ2UoY29uc3QgY2hhciogdXRmOF9tZXNzYWdl KQotewotICBpZiAodXRmOF9tZXNzYWdlKQotICB7Ci0gICAgdWludCBjb252ZXJ0X2Vycm9yPSAw OwotICAgIHVpbnQzMiBjb3B5X2xlbjsKLQotICAgIC8qCi0gICAgICBFbmZvcmNlIHRoYXQgbV9t ZXNzYWdlIGlzIGEgdmFsaWQgVVRGOCBzdHJpbmcsCi0gICAgICBhbmQgaXMgcHJvcGVybHkgdGVy bWluYXRlZC4KLSAgICAgIE5vdGU6IGFueSBpbnZhbGlkIGNoYXJhY3RlciBpbiB1dGY4X21lc3Nh Z2Ugd2lsbCBiZQotICAgICAgY29udmVydGVkIHRvIGEgJz8nIGNoYXJhY3Rlci4KLSAgICAqLwot ICAgIGNvcHlfbGVuPSBjb3B5X2FuZF9jb252ZXJ0KG1fbWVzc2FnZSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzaXplb2YobV9tZXNzYWdlKSAtIDEsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJiBteV9jaGFyc2V0X3V0ZjhfYmluLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHV0ZjhfbWVzc2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHJsZW4odXRmOF9tZXNzYWdlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm IG15X2NoYXJzZXRfdXRmOF9iaW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiBj b252ZXJ0X2Vycm9yKTsKLSAgICBEQlVHX0FTU0VSVChjb3B5X2xlbiA8IHNpemVvZihtX21lc3Nh Z2UpKTsKLSAgICBtX21lc3NhZ2VbY29weV9sZW5dPSAnXDAnOwotICB9Ci0gIGVsc2UKLSAgICBt X21lc3NhZ2VbMF09ICdcMCc7Ci19Ci0KLQogLyoqCiAgIFNldCBPSyBzdGF0dXMgLS0gZW5kcyBj b21tYW5kcyB0aGF0IGRvIG5vdCByZXR1cm4gYQogICByZXN1bHQgc2V0LCBlLmcuIElOU0VSVC9V UERBVEUvREVMRVRFLgpAQCAtNDY2LDcgKzQzNywxMCBAQAogICBtX3RvdGFsX3dhcm5fY291bnQ9 IHRoZC0+dG90YWxfd2Fybl9jb3VudDsKICAgbV9hZmZlY3RlZF9yb3dzPSBhZmZlY3RlZF9yb3dz X2FyZzsKICAgbV9sYXN0X2luc2VydF9pZD0gbGFzdF9pbnNlcnRfaWRfYXJnOwotICBzZXRfdXRm OF9tZXNzYWdlKG1lc3NhZ2VfYXJnKTsKKyAgaWYgKG1lc3NhZ2VfYXJnKQorICAgIHN0cm1ha2Uo bV9tZXNzYWdlLCBtZXNzYWdlX2FyZywgc2l6ZW9mKG1fbWVzc2FnZSkgLSAxKTsKKyAgZWxzZQor ICAgIG1fbWVzc2FnZVswXT0gJ1wwJzsKICAgbV9zdGF0dXM9IERBX09LOwogCiAgIGlmICghIG1f c3RtdF9hcmVhLmlzX3JlYWRfb25seSgpKQpAQCAtNTQwLDkgKzUxNCw5IEBACiAjZW5kaWYKIAog ICBtX3NxbF9lcnJubz0gc3FsX2Vycm5vX2FyZzsKLSAgc3RybmNweShtX3NxbHN0YXRlLCBzcWxz dGF0ZSwgNSk7Ci0gIG1fc3Fsc3RhdGVbNV09ICdcMCc7Ci0gIHNldF91dGY4X21lc3NhZ2UobWVz c2FnZV9hcmcpOworICBzdHJuY3B5KG1fc3Fsc3RhdGUsIHNxbHN0YXRlLCBTUUxTVEFURV9MRU5H VEgpOworICBtX3NxbHN0YXRlW1NRTFNUQVRFX0xFTkdUSF09ICdcMCc7CisgIHN0cm1ha2UobV9t ZXNzYWdlLCBtZXNzYWdlX2FyZywgc2l6ZW9mKG1fbWVzc2FnZSkgLSAxKTsKICAgbV9zdGF0dXM9 IERBX0VSUk9SOwogfQogCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL3NxbF9jbGFzcy5oJwotLS0g YS9zcWwvc3FsX2NsYXNzLmgJMjAwOC0wNi0yMCAyMzowMDo0NCArMDAwMAorKysgYi9zcWwvc3Fs X2NsYXNzLmgJMjAwOC0wNi0yNiAyMTo0NDozNyArMDAwMApAQCAtMTI5MSwxNCArMTI5MSwxNSBA QAogICB2b2lkIHNldF9wcmludGYoVEhEICp0aGQsIHVpbnQgY29kZSwgY29uc3QgY2hhciAqc3Ry LAogICAgICAgICAgICAgICAgICAgTVlTUUxfRVJST1I6OmVudW1fd2FybmluZ19sZXZlbCBsZXZl bCwgbXlmIE15RmxhZ3MsIC4uLik7CiAKLSAgdm9pZCBzZXRfdXRmOF9tZXNzYWdlX3RleHQoY29u c3QgY2hhciogc3RyKTsKLSAgdm9pZCBzZXRfbWVzc2FnZV90ZXh0KFRIRCAqdGhkLCBTdHJpbmcg KnN0cik7CisgIC8qKgorICAgIFNldCB0aGUgY29uZGl0aW9uIG1lc3NhZ2UgdGVzdC4KKyAgICBA cGFyYW0gc3RyIE1lc3NhZ2UgdGV4dCwgZXhwcmVzc2VkIGluIHRoZSBjaGFyYWN0ZXIgc2V0IGRl cml2ZWQgZnJvbQorICAgIHRoZSBzZXJ2ZXIgLS1sYW5ndWFnZSBvcHRpb24KKyAgKi8KKyAgdm9p ZCBzZXRfYnVpbHRpbl9tZXNzYWdlX3RleHQoY29uc3QgY2hhciogc3RyKTsKKwogICBjb25zdCBj aGFyKiBnZXRfbWVzc2FnZV90ZXh0KCkgY29uc3Q7Ci0gIGNvbnN0IFN0cmluZyogZ2V0X21lc3Nh Z2VfdGV4dF9zdHJpbmcoKSBjb25zdAotICB7IHJldHVybiAmIG1fbWVzc2FnZV90ZXh0OyB9CiAK LSAgLyoqIFRoZSBsZW5ndGggaW4gY2hhcmFjdGVycyBvZiBtX21lc3NhZ2VfdGV4dC4gKi8KLSAg aW50IGdldF9tZXNzYWdlX2xlbmd0aCgpIGNvbnN0OwogICAvKiogVGhlIGxlbmd0aCBpbiBieXRl cyBvZiBtX21lc3NhZ2VfdGV4dC4gKi8KICAgaW50IGdldF9tZXNzYWdlX29jdGV0X2xlbmd0aCgp IGNvbnN0OwogCkBAIC0xMzIxLDYgKzEzMjIsNyBAQAogICBVVEY4U3RyaW5nNjQgbV9jdXJzb3Jf bmFtZTsKIAogcHJpdmF0ZToKKyAgLyoqIE1lc3NhZ2UgdGV4dCwgZXhwcmVzc2VkIGluIHRoZSBj aGFyYWN0ZXIgc2V0IGltcGxpZWQgYnkgLS1sYW5ndWFnZS4gKi8KICAgU3RyaW5nIG1fbWVzc2Fn ZV90ZXh0OwogCiBwdWJsaWM6CkBAIC0xNTM4LDggKzE1NDAsNiBAQAogICBEaWFnbm9zdGljc19h cmVhKCkgeyByZXNldF9kaWFnbm9zdGljc19hcmVhKCk7IH0KIAogcHJpdmF0ZToKLSAgdm9pZCBz ZXRfdXRmOF9tZXNzYWdlKGNvbnN0IGNoYXIqIHV0ZjhfbWVzc2FnZSk7Ci0KICAgLyoqIE1lc3Nh Z2UgYnVmZmVyLiBDYW4gYmUgdXNlZCBieSBPSyBvciBFUlJPUiBzdGF0dXMuICovCiAgIGNoYXIg bV9tZXNzYWdlW01ZU1FMX0VSUk1TR19TSVpFXTsKICAgLyoqCgo9PT0gbW9kaWZpZWQgZmlsZSAn c3FsL3NxbF9zaWduYWwuY2MnCi0tLSBhL3NxbC9zcWxfc2lnbmFsLmNjCTIwMDgtMDYtMjAgMjM6 MDA6NDQgKzAwMDAKKysrIGIvc3FsL3NxbF9zaWduYWwuY2MJMjAwOC0wNi0yNiAyMTo0NDozNyAr MDAwMApAQCAtMTgxLDggKzE4MSw2IEBACiAgICBtX2Jyb2tlbl9jYWxsZXIoRkFMU0UpCiB7CiAg IG1lbXNldChtX3JldHVybmVkX3NxbHN0YXRlLCAwLCBzaXplb2YobV9yZXR1cm5lZF9zcWxzdGF0 ZSkpOwotCi0gIG1fbWVzc2FnZV90ZXh0LnNldF9jaGFyc2V0KCYgbXlfY2hhcnNldF91dGY4X2Jp bik7CiB9CiAKIFNRTF9jb25kaXRpb24gKgpAQCAtMjA3LDcgKzIwNSw3IEBACiAKICAgICBjb3B5 PSBzdHJkdXBfcm9vdChtZW1fcm9vdCwgY29uZC0+bV9tZXNzYWdlX3RleHQucHRyKCkpOwogICAg IG1fbWVzc2FnZV90ZXh0LnNldChjb3B5LCBjb25kLT5tX21lc3NhZ2VfdGV4dC5sZW5ndGgoKSwK LSAgICAgICAgICAgICAgICAgICAgICAgJiBteV9jaGFyc2V0X3V0ZjhfYmluKTsKKyAgICAgICAg ICAgICAgICAgICAgICAgZXJyb3JfbWVzc2FnZV9jaGFyc2V0X2luZm8pOwogICB9CiAgIGVsc2UK ICAgICBtX21lc3NhZ2VfdGV4dC5sZW5ndGgoMCk7CkBAIC0yNzksNyArMjc3LDcgQEAKICAgbWVt Y3B5KG1fcmV0dXJuZWRfc3Fsc3RhdGUsIHNxbHN0YXRlLCBTUUxTVEFURV9MRU5HVEgpOwogICBt X3JldHVybmVkX3NxbHN0YXRlW1NRTFNUQVRFX0xFTkdUSCsxXT0gJ1wwJzsKIAotICBzZXRfdXRm OF9tZXNzYWdlX3RleHQoc3RyKTsKKyAgc2V0X2J1aWx0aW5fbWVzc2FnZV90ZXh0KHN0cik7CiAg IGlmICgobGV2ZWwgPT0gTVlTUUxfRVJST1I6OldBUk5fTEVWRUxfV0FSTikgJiYKICAgICAgIHRo ZC0+cmVhbGx5X2Fib3J0X29uX3dhcm5pbmcoKSkKICAgewpAQCAtMjk2LDM1ICsyOTQsMTAgQEAK IH0KIAogdm9pZAotU1FMX2NvbmRpdGlvbjo6c2V0X3V0ZjhfbWVzc2FnZV90ZXh0KGNvbnN0IGNo YXIqIHN0cikKLXsKLSAgdWludDMyIGxlbj0gc3RybGVuKHN0cik7Ci0KLSAgbV9tZXNzYWdlX3Rl eHQubGVuZ3RoKDApOwotICBtX21lc3NhZ2VfdGV4dC5hcHBlbmQoc3RyLCBsZW4sICYgbXlfY2hh cnNldF91dGY4X2Jpbik7Ci19Ci0KLXZvaWQKLVNRTF9jb25kaXRpb246OnNldF9tZXNzYWdlX3Rl eHQoVEhEICp0aGQsIFN0cmluZyAqc3RyKQotewotICBpZiAoc3RyKQotICB7Ci0gICAgbV9tZXNz YWdlX3RleHQubGVuZ3RoKDApOwotICAgIG1fbWVzc2FnZV90ZXh0LmFwcGVuZChzdHItPnB0cigp LCBzdHItPmxlbmd0aCgpLCBzdHItPmNoYXJzZXQoKSk7Ci0KLSAgICBpZiAobV9tZXNzYWdlX3Rl eHQubnVtY2hhcnMoKSA+IDEyOCkKLSAgICB7Ci0gICAgICBwdXNoX3dhcm5pbmdfcHJpbnRmKHRo ZCwgTVlTUUxfRVJST1I6OldBUk5fTEVWRUxfV0FSTiwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgRVJfVFJVTkNBVEVEX1dST05HX1ZBTFVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICBF UihFUl9UUlVOQ0FURURfV1JPTkdfVkFMVUUpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAi VkFSQ0hBUigxMjgpIiwgc3RyLT5jX3B0cl9zYWZlKCkpOwotCi0gICAgICB1aW50MzIgZW5kPSBt X21lc3NhZ2VfdGV4dC5jaGFycG9zKDEyOCk7Ci0gICAgICBtX21lc3NhZ2VfdGV4dC5sZW5ndGgo ZW5kKTsKLSAgICB9Ci0KLSAgICAodm9pZCkgbV9tZXNzYWdlX3RleHQuY19wdHJfc2FmZSgpOwot ICB9CitTUUxfY29uZGl0aW9uOjpzZXRfYnVpbHRpbl9tZXNzYWdlX3RleHQoY29uc3QgY2hhciog c3RyKQoreworICBtX21lc3NhZ2VfdGV4dC5zZXQoc3RyLCBzdHJsZW4oc3RyKSwgZXJyb3JfbWVz c2FnZV9jaGFyc2V0X2luZm8pOworICAodm9pZCkgbV9tZXNzYWdlX3RleHQuY19wdHJfc2FmZSgp OwogfQogCiBjb25zdCBjaGFyKgpAQCAtMzM0LDEyICszMDcsNiBAQAogfQogCiBpbnQKLVNRTF9j b25kaXRpb246OmdldF9tZXNzYWdlX2xlbmd0aCgpIGNvbnN0Ci17Ci0gIHJldHVybiBtX21lc3Nh Z2VfdGV4dC5udW1jaGFycygpOwotfQotCi1pbnQKIFNRTF9jb25kaXRpb246OmdldF9tZXNzYWdl X29jdGV0X2xlbmd0aCgpIGNvbnN0CiB7CiAgIHJldHVybiBtX21lc3NhZ2VfdGV4dC5sZW5ndGgo KTsKQEAgLTQzNyw3ICs0MDQsNyBAQAogICBpZiAoKHNxbHN0YXRlWzBdID09ICcwJykgJiYgKHNx bHN0YXRlWzFdID09ICcxJykpCiAgIHsKICAgICAvKiBTUUxTVEFURSBjbGFzcyAiMDEiOiB3YXJu aW5nICovCi0gICAgY29uZC0+c2V0X3V0ZjhfbWVzc2FnZV90ZXh0KEVSKEVSX1NJR05BTF9XQVJO KSk7CisgICAgY29uZC0+c2V0X2J1aWx0aW5fbWVzc2FnZV90ZXh0KEVSKEVSX1NJR05BTF9XQVJO KSk7CiAgICAgY29uZC0+bV9sZXZlbD0gTVlTUUxfRVJST1I6OldBUk5fTEVWRUxfV0FSTjsKICAg ICBpZiAoY29uZC0+bV9zcWxjb2RlID09IDApCiAgICAgICBjb25kLT5tX3NxbGNvZGU9IEVSX1NJ R05BTF9XQVJOOwpAQCAtNDQ1LDE0ICs0MTIsMTQgQEAKICAgZWxzZSBpZiAoKHNxbHN0YXRlWzBd ID09ICcwJykgJiYgKHNxbHN0YXRlWzFdID09ICcyJykpCiAgIHsKICAgICAvKiBTUUxTVEFURSBj bGFzcyAiMDIiOiBub3QgZm91bmQgKi8KLSAgICBjb25kLT5zZXRfdXRmOF9tZXNzYWdlX3RleHQo RVIoRVJfU0lHTkFMX05PVF9GT1VORCkpOworICAgIGNvbmQtPnNldF9idWlsdGluX21lc3NhZ2Vf dGV4dChFUihFUl9TSUdOQUxfTk9UX0ZPVU5EKSk7CiAgICAgY29uZC0+bV9sZXZlbD0gTVlTUUxf RVJST1I6OldBUk5fTEVWRUxfRVJST1I7CiAgICAgaWYgKGNvbmQtPm1fc3FsY29kZSA9PSAwKQog ICAgICAgY29uZC0+bV9zcWxjb2RlPSBFUl9TSUdOQUxfTk9UX0ZPVU5EOwogICB9CiAgIGVsc2UK ICAgewotICAgIGNvbmQtPnNldF91dGY4X21lc3NhZ2VfdGV4dChFUihFUl9TSUdOQUxfRVhDRVBU SU9OKSk7CisgICAgY29uZC0+c2V0X2J1aWx0aW5fbWVzc2FnZV90ZXh0KEVSKEVSX1NJR05BTF9F WENFUFRJT04pKTsKICAgICBjb25kLT5tX2xldmVsPSBNWVNRTF9FUlJPUjo6V0FSTl9MRVZFTF9F UlJPUjsKICAgICBpZiAoY29uZC0+bV9zcWxjb2RlID09IDApCiAgICAgICBjb25kLT5tX3NxbGNv ZGU9IEVSX1NJR05BTF9FWENFUFRJT047CkBAIC02MTQsOCArNTgxLDM0IEBACiAgICAgICBteV9l cnJvcihFUl9XUk9OR19WQUxVRV9GT1JfVkFSLCBNWUYoMCksICJNRVNTQUdFX1RFWFQiLCAiTlVM TCIpOwogICAgICAgREJVR19SRVRVUk4oMSk7CiAgICAgfQorICAgIC8qCisgICAgICBFbmZvcmNl IHRoYXQgU0VUIE1FU1NBR0VfVEVYVCA9IDx2YWx1ZT4gZXZhbHVhdGVzIHRoZSB2YWx1ZQorICAg ICAgYXMgVkFSQ0hBUigxMjgpIENIQVJBQ1RFUiBTRVQgVVRGOC4KKyAgICAqLwogICAgIHN0cj0g c2V0LT52YWxfc3RyKCYgc3RyX3ZhbHVlKTsKLSAgICBjb25kLT5zZXRfbWVzc2FnZV90ZXh0KHRo ZCwgc3RyKTsKKyAgICBTdHJpbmcgdXRmOF90ZXh0OworICAgIHV0ZjhfdGV4dC5zZXRfY2hhcnNl dCgmIG15X2NoYXJzZXRfdXRmOF9iaW4pOworICAgIHV0ZjhfdGV4dC5hcHBlbmQoc3RyLT5wdHIo KSwgc3RyLT5sZW5ndGgoKSwgc3RyLT5jaGFyc2V0KCkpOworICAgIGlmICh1dGY4X3RleHQubnVt Y2hhcnMoKSA+IDEyOCkKKyAgICB7CisgICAgICBwdXNoX3dhcm5pbmdfcHJpbnRmKHRoZCwgTVlT UUxfRVJST1I6OldBUk5fTEVWRUxfV0FSTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgRVJf VFJVTkNBVEVEX1dST05HX1ZBTFVFLAorICAgICAgICAgICAgICAgICAgICAgICAgICBFUihFUl9U UlVOQ0FURURfV1JPTkdfVkFMVUUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiVkFSQ0hB UigxMjgpIiwgc3RyLT5jX3B0cl9zYWZlKCkpOworCisgICAgICB1aW50MzIgZW5kPSB1dGY4X3Rl eHQuY2hhcnBvcygxMjgpOworICAgICAgdXRmOF90ZXh0Lmxlbmd0aChlbmQpOworICAgIH0KKwor ICAgIC8qCisgICAgICBDb252ZXJ0IHRvIHRoZSBjaGFyYWN0ZXIgc2V0IHVzZWQgd2l0aCAtLWxh bmd1YWdlLgorICAgICAgVGhpcyBjb2RlIHdpbGwgYmUgcmVtb3ZlZCBvbmNlIFdMI3h4eCBpcyBp bXBsZW1lbnRlZC4KKyAgICAqLworICAgIFN0cmluZyBjb252ZXJ0ZWRfdGV4dDsKKyAgICBjb252 ZXJ0ZWRfdGV4dC5zZXRfY2hhcnNldChlcnJvcl9tZXNzYWdlX2NoYXJzZXRfaW5mbyk7CisgICAg Y29udmVydGVkX3RleHQuYXBwZW5kKHV0ZjhfdGV4dC5wdHIoKSwgdXRmOF90ZXh0Lmxlbmd0aCgp LAorICAgICAgICAgICAgICAgICAgICAgICAgICB1dGY4X3RleHQuY2hhcnNldCgpKTsKKyAgICBj b25kLT5zZXRfYnVpbHRpbl9tZXNzYWdlX3RleHQoY29udmVydGVkX3RleHQuY19wdHJfc2FmZSgp KTsKICAgfQogCiAgIHNldD0gbV9zZXRfc2lnbmFsX2luZm9ybWF0aW9uLm1faXRlbVtESUFHX01Z U1FMX0VSUk5PXTsKQEAgLTgwNyw2ICs4MDAsOCBAQAogICBpbnQzMiBpbnRfdmFsdWU7CiAgIGNv bnN0IFN0cmluZyAqc3RyX3ZhbHVlOwogICBJdGVtICp2YWx1ZT0gTlVMTDsKKyAgU3RyaW5nIHV0 ZjhfdGV4dDsKKyAgY29uc3QgY2hhciogbGFuZ3VhZ2VfdGV4dDsKIAogICAvKiBGSVhNRTogdGhp cyBpcyBwcm90b3R5cGUgY29kZSwgdG8gYmUgY29udGludWVkICovCiAKQEAgLTg3OSwxMCArODc0 LDEzIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyX3Zh bHVlLT5jaGFyc2V0KCkpOwogICAgIGJyZWFrOwogICBjYXNlIERJQUdfTUVTU0FHRV9URVhUOgot ICAgIHN0cl92YWx1ZT0gY29uZC0+Z2V0X21lc3NhZ2VfdGV4dF9zdHJpbmcoKTsKLSAgICB2YWx1 ZT0gbmV3ICh0aGQtPm1lbV9yb290KSBJdGVtX3N0cmluZygiIiwgc3RyX3ZhbHVlLT5wdHIoKSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJfdmFsdWUtPmxl bmd0aCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cl92 YWx1ZS0+Y2hhcnNldCgpKTsKKyAgICBsYW5ndWFnZV90ZXh0PSBjb25kLT5nZXRfbWVzc2FnZV90 ZXh0KCk7CisgICAgdXRmOF90ZXh0LnNldF9jaGFyc2V0KCYgbXlfY2hhcnNldF91dGY4X2Jpbik7 CisgICAgdXRmOF90ZXh0LmFwcGVuZChsYW5ndWFnZV90ZXh0LCBzdHJsZW4obGFuZ3VhZ2VfdGV4 dCksCisgICAgICAgICAgICAgICAgICAgICBlcnJvcl9tZXNzYWdlX2NoYXJzZXRfaW5mbyk7Cisg ICAgdmFsdWU9IG5ldyAodGhkLT5tZW1fcm9vdCkgSXRlbV9zdHJpbmcoIiIsIHV0ZjhfdGV4dC5w dHIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGY4X3Rl eHQubGVuZ3RoKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dXRmOF90ZXh0LmNoYXJzZXQoKSk7CiAgICAgYnJlYWs7CiAgIGNhc2UgRElBR19NWVNRTF9FUlJO TzoKICAgICBpbnRfdmFsdWU9IGNvbmQtPm1fc3FsY29kZTsKQEAgLTkwNSw3ICs5MDMsMTEgQEAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJfdmFsdWUtPmNo YXJzZXQoKSk7CiAgICAgYnJlYWs7CiAgIGNhc2UgRElBR19NRVNTQUdFX0xFTkdUSDoKLSAgICBp bnRfdmFsdWU9IGNvbmQtPmdldF9tZXNzYWdlX2xlbmd0aCgpOworICAgIGxhbmd1YWdlX3RleHQ9 IGNvbmQtPmdldF9tZXNzYWdlX3RleHQoKTsKKyAgICB1dGY4X3RleHQuc2V0X2NoYXJzZXQoJiBt eV9jaGFyc2V0X3V0ZjhfYmluKTsKKyAgICB1dGY4X3RleHQuYXBwZW5kKGxhbmd1YWdlX3RleHQs IHN0cmxlbihsYW5ndWFnZV90ZXh0KSwKKyAgICAgICAgICAgICAgICAgICAgIGVycm9yX21lc3Nh Z2VfY2hhcnNldF9pbmZvKTsKKyAgICBpbnRfdmFsdWU9IHV0ZjhfdGV4dC5udW1jaGFycygpOwog ICAgIHZhbHVlPSBuZXcgKHRoZC0+bWVtX3Jvb3QpIEl0ZW1faW50KGludF92YWx1ZSk7CiAgICAg YnJlYWs7CiAgIGNhc2UgRElBR19NRVNTQUdFX09DVEVUX0xFTkdUSDoKCj09PSBtb2RpZmllZCBm aWxlICdzcWwvc3FsX3lhY2MueXknCi0tLSBhL3NxbC9zcWxfeWFjYy55eQkyMDA4LTA2LTI0IDIz OjQxOjI0ICswMDAwCisrKyBiL3NxbC9zcWxfeWFjYy55eQkyMDA4LTA2LTI2IDIxOjQ0OjM3ICsw MDAwCkBAIC0yODIyLDcgKzI4MjIsMjMgQEAKICAgICAgICAgICBsaXRlcmFsCiAgICAgICAgICAg eyAkJD0gJDE7IH0KICAgICAgICAgfCB2YXJpYWJsZQotICAgICAgICAgIHsgJCQ9ICQxOyB9Cisg ICAgICAgICAgeworICAgICAgICAgICAgaWYgKCQxLT50eXBlKCkgPT0gSXRlbTo6RlVOQ19JVEVN KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICBJdGVtX2Z1bmMgKml0ZW09IChJdGVtX2Z1 bmMqKSAkMTsKKyAgICAgICAgICAgICAgaWYgKGl0ZW0tPmZ1bmN0eXBlKCkgPT0gSXRlbV9mdW5j OjpTVVNFUlZBUl9GVU5DKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLyoKKyAg ICAgICAgICAgICAgICAgIERvbid0IGFsbG93IHRoZSBmb2xsb3dpbmcgc3ludGF4OgorICAgICAg ICAgICAgICAgICAgICBTSUdOQUwvUkVTSUdOQUwgLi4uCisgICAgICAgICAgICAgICAgICAgIFNF VCA8c2lnbmFsIGNvbmRpdGlvbiBpdGVtIG5hbWU+ID0gQGZvbyA6PSBleHByCisgICAgICAgICAg ICAgICAgKi8KKyAgICAgICAgICAgICAgICBteV9wYXJzZV9lcnJvcihFUihFUl9TWU5UQVhfRVJS T1IpKTsKKyAgICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgICAgICB9Cisg ICAgICAgICAgICB9CisgICAgICAgICAgICAkJD0gJDE7CisgICAgICAgICAgfQogICAgICAgICB8 IHNpbXBsZV9pZGVudAogICAgICAgICAgIHsgJCQ9ICQxOyB9CiAgICAgICAgIDsKCg== --===============6296026602897442015==--