From: marko.makela Date: May 2 2012 11:04am Subject: bzr push into mysql-trunk-wl5854 branch (marko.makela:3759 to 3761) WL#5854 List-Archive: http://lists.mysql.com/commits/143700 Message-Id: <201205021104.q42B4MNr029958@acsmt357.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDM3NjEgTWFya28gTcOka2Vsw6QJMjAxMi0wNS0wMgogICAgICBXTCM1ODU0IHBoYXNlIDE6IE1P RElGWS4uLk5VTEwgZm9yIFJPV19GT1JNQVQ9UkVEVU5EQU5UCiAgICAgIAogICAgICBjaGVja19p Zl9zdXBwb3J0ZWRfaW5wbGFjZV9hbHRlcigpOiBBbGxvdyBBTFRFUl9DT0xVTU5fTlVMTEFCTEUg Zm9yCiAgICAgIFJPV19GT1JNQVQ9UkVEVU5EQU5UIHRhYmxlcy4KICAgICAgCiAgICAgIGlubm9i YXNlX3NldF9udWxsYWJsZSgpOiBBbGxvdyBhIGNvbHVtbiB0byBiZSBzZXQgTlVMTCBpbgogICAg ICBhIFJPV19GT1JNQVQ9UkVEVU5EQU5UIHRhYmxlLgogICAgICAKICAgICAgY29tbWl0X2lucGxh Y2VfYWx0ZXJfdGFibGUoKTogSW52b2tlIGlubm9iYXNlX3NldF9udWxsYWJsZSgpIHdoZW4gbmVl ZGVkLgoKICAgIGFkZGVkOgogICAgICBteXNxbC10ZXN0L3N1aXRlL2lubm9kYi9yL2lubm9kYi1h bHRlci1udWxsYWJsZS5yZXN1bHQKICAgICAgbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvdC9pbm5v ZGItYWx0ZXItbnVsbGFibGUudGVzdAogICAgbW9kaWZpZWQ6CiAgICAgIHN0b3JhZ2UvaW5ub2Jh c2UvaGFuZGxlci9oYW5kbGVyMGFsdGVyLmNjCiAzNzYwIE1hcmtvIE3DpGtlbMOkCTIwMTItMDUt MDIKICAgICAgQnJhbmNoIG15c3FsLXRydW5rLXdsNTg1NCBmcm9tIG15c3FsLXRydW5rLgoKICAg IG1vZGlmaWVkOgogICAgICAuYnpyLW15c3FsL2RlZmF1bHQuY29uZgogMzc1OSBBbmRyZWkgRWxr aW4JMjAxMi0wNC0zMAogICAgICBCdWcjMTQwMTg4NDMgLSBGQVVMVFkgTE9HSUNTIElOIE1UU19E RUJVR19DT05DVVJSRU5UX0FDQ0VTUyBIQU5ETElORwogICAgICAKICAgICAgSW50cm9kdWNlZCB0 byB2ZXJpZnkgTVRTIGNvbmN1cnJlbnQgYmVoYXZpb3IgYG10c19kZWJ1Z19jb25jdXJyZW50X2Fj Y2VzcycKICAgICAgZGVidWcgZmxhZyB3YXMgdW5uZWNlc3NhbGlyeSBjaGVja2VkIGJ5IElPIHRo cmVhZCB3aGljaCBsZWFkcyB0byBhIGhhbmcgbGlrZS4gCiAgICAgIAogICAgICAgICBodHRwOi8v cGIyLm5vLm9yYWNsZS5jb20vd2ViLnB5P3RlbXBsYXRlPW15c3FsX3Nob3dfdGVzdF9mYWlsdXJl JnNlYXJjaD15ZXMmcHVzaF9pZD0zMzk2NzgzJnRlc3RfaWQ9MzQwMDM4OSZ0ZXN0X3J1bj1ycGxf YmlubG9nLWRlYnVnLWJpZyZ0ZXN0X3N1aXRlPXJwbCZ0ZXN0X2Nhc2U9cnBsX210c19kZWJ1Zwog ICAgICAKICAgICAgRml4ZWQgd2l0aCBleGNsdWRpbmcgb3RoZXIgdGhhbiBNVFMgd29ya2VyIHRo cmVhZHMgCiAgICAgIGZyb20gY2hlY2tpbmcgdGhlIGRlYnVnIGZsYWcuCiAgICAgIAogICAgICBP bmUtbGluZXIgZml4ZXMgc3VwcHJlc3NpbmcgYSB3YXJuaW5nIGluIHJwbF9maWx0ZXJfdGFibGVz X25vdF9leGlzdCBpcyBwaWdneWJhY2tlZC4KICAgICBAIG15c3FsLXRlc3Qvc3VpdGUvcnBsL3Iv cnBsX2ZpbHRlcl90YWJsZXNfbm90X2V4aXN0LnJlc3VsdAogICAgICAgIHJlc3VsdHMgZ290IHVw ZGF0ZWQuCiAgICAgQCBteXNxbC10ZXN0L3N1aXRlL3JwbC90L3JwbF9maWx0ZXJfdGFibGVzX25v dF9leGlzdC50ZXN0CiAgICAgICAgYSBuZWNlc3NhcnkgdW5zYWZlIHN1cHByZXNzaW9uIG9uIHRo ZSBtYXN0ZXIgc2lkZSBpcyBhZGRlZC4KCiAgICBtb2RpZmllZDoKICAgICAgbXlzcWwtdGVzdC9z dWl0ZS9ycGwvci9ycGxfZmlsdGVyX3RhYmxlc19ub3RfZXhpc3QucmVzdWx0CiAgICAgIG15c3Fs LXRlc3Qvc3VpdGUvcnBsL3QvcnBsX2ZpbHRlcl90YWJsZXNfbm90X2V4aXN0LnRlc3QKICAgICAg c3FsL3JwbF9pbmZvX3RhYmxlLmNjCj09PSBtb2RpZmllZCBmaWxlICcuYnpyLW15c3FsL2RlZmF1 bHQuY29uZicKLS0tIGEvLmJ6ci1teXNxbC9kZWZhdWx0LmNvbmYJcmV2aWQ6YW5kcmVpLmVsa2lu QG9yYWNsZS5jb20tMjAxMjA0MzAxNjE0MjYtODEwdnF6ODJ4dnAyYzlkeQorKysgYi8uYnpyLW15 c3FsL2RlZmF1bHQuY29uZglyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDUwMjEw NTg1Mi0wcm5vd2x0NnBubHNjZm1wCkBAIC0xLDQgKzEsNCBAQAogW01ZU1FMXQogcG9zdF9jb21t aXRfdG8gPSAiY29tbWl0c0BsaXN0cy5teXNxbC5jb20iCiBwb3N0X3B1c2hfdG8gPSAiY29tbWl0 c0BsaXN0cy5teXNxbC5jb20iCi10cmVlX25hbWUgPSAibXlzcWwtdHJ1bmsiCit0cmVlX25hbWUg PSAibXlzcWwtdHJ1bmstd2w1ODU0IgoKPT09IGFkZGVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUv aW5ub2RiL3IvaW5ub2RiLWFsdGVyLW51bGxhYmxlLnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9z dWl0ZS9pbm5vZGIvci9pbm5vZGItYWx0ZXItbnVsbGFibGUucmVzdWx0CTE5NzAtMDEtMDEgMDA6 MDA6MDAgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvci9pbm5vZGItYWx0ZXIt bnVsbGFibGUucmVzdWx0CXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTIwNTAyMTA1 ODUyLTBybm93bHQ2cG5sc2NmbXAKQEAgLTAsMCArMSw1OCBAQAorQ1JFQVRFIFRBQkxFIHRyIChj MSBJTlQgUFJJTUFSWSBLRVksIGMyIElOVCBOT1QgTlVMTCwgYzMgSU5UKQorRU5HSU5FPUlubm9E QiBST1dfRk9STUFUPVJFRFVOREFOVDsKK0NSRUFURSBUQUJMRSB0YyAoYzEgSU5UIFBSSU1BUlkg S0VZLCBjMiBJTlQgTk9UIE5VTEwsIGMzIElOVCkKK0VOR0lORT1Jbm5vREI7CitBTFRFUiBUQUJM RSB0ciBDSEFOR0UgYzEgYzEgSU5UIE5VTEwgRklSU1QsIEFMR09SSVRITT1JTlBMQUNFOworQUxU RVIgVEFCTEUgdGMgQ0hBTkdFIGMxIGMxIElOVCBOVUxMIEZJUlNULCBBTEdPUklUSE09SU5QTEFD RTsKK0FMVEVSIFRBQkxFIHRyIE1PRElGWSBjMyBJTlQgTk9UIE5VTEwsIEFMR09SSVRITT1JTlBM QUNFOworRVJST1IgNDIwMDA6IFRoaXMgdmVyc2lvbiBvZiBNeVNRTCBkb2Vzbid0IHlldCBzdXBw b3J0ICdBTFRFUiBUQUJMRSB0ciBNT0RJRlkgYzMgSU5UIE5PVCBOVUxMLCBBTEdPUklUSE09SU5Q TEFDRScKK0FMVEVSIFRBQkxFIHRjIE1PRElGWSBjMyBJTlQgTk9UIE5VTEwsIEFMR09SSVRITT1J TlBMQUNFOworRVJST1IgNDIwMDA6IFRoaXMgdmVyc2lvbiBvZiBNeVNRTCBkb2Vzbid0IHlldCBz dXBwb3J0ICdBTFRFUiBUQUJMRSB0YyBNT0RJRlkgYzMgSU5UIE5PVCBOVUxMLCBBTEdPUklUSE09 SU5QTEFDRScKK0FMVEVSIFRBQkxFIHRyIENIQU5HRSBjMiBjMiBJTlQsIENIQU5HRSBjMiBjMiBJ TlQgTk9UIE5VTEw7CitFUlJPUiA0MlMyMjogVW5rbm93biBjb2x1bW4gJ2MyJyBpbiAndHInCitB TFRFUiBUQUJMRSB0ciBNT0RJRlkgYzIgSU5ULCBNT0RJRlkgYzIgSU5UIE5PVCBOVUxMOworRVJS T1IgNDJTMjI6IFVua25vd24gY29sdW1uICdjMicgaW4gJ3RyJworQUxURVIgVEFCTEUgdHIgTU9E SUZZIGMyIElOVCBVTlNJR05FRCwgTU9ESUZZIGMyIElOVDsKK0VSUk9SIDQyUzIyOiBVbmtub3du IGNvbHVtbiAnYzInIGluICd0cicKK0FMVEVSIFRBQkxFIHRyIE1PRElGWSBjMiBDSEFSKDEpIE5P VCBOVUxMLCBNT0RJRlkgYzIgSU5UIE5PVCBOVUxMOworRVJST1IgNDJTMjI6IFVua25vd24gY29s dW1uICdjMicgaW4gJ3RyJworQUxURVIgVEFCTEUgdHIgQ0hBTkdFIGMyIGMyIElOVCBOT1QgTlVM TCwgQUxHT1JJVEhNPUlOUExBQ0U7CitBTFRFUiBUQUJMRSB0YyBDSEFOR0UgYzIgYzIgSU5UIE5P VCBOVUxMLCBBTEdPUklUSE09SU5QTEFDRTsKK0FMVEVSIFRBQkxFIHRyIE1PRElGWSBjMiBJTlQg Tk9UIE5VTEwsIEFMR09SSVRITT1JTlBMQUNFOworQUxURVIgVEFCTEUgdGMgTU9ESUZZIGMyIElO VCBOT1QgTlVMTCwgQUxHT1JJVEhNPUlOUExBQ0U7CitBTFRFUiBUQUJMRSB0ciBNT0RJRlkgYzIg SU5ULCBBTEdPUklUSE09SU5QTEFDRTsKK0FMVEVSIFRBQkxFIHRjIE1PRElGWSBjMiBJTlQsIEFM R09SSVRITT1JTlBMQUNFOworRVJST1IgNDIwMDA6IFRoaXMgdmVyc2lvbiBvZiBNeVNRTCBkb2Vz bid0IHlldCBzdXBwb3J0ICdBTFRFUiBUQUJMRSB0YyBNT0RJRlkgYzIgSU5ULCBBTEdPUklUSE09 SU5QTEFDRScKK0FMVEVSIFRBQkxFIHRyIE1PRElGWSBjMiBJTlQgTlVMTCwgQUxHT1JJVEhNPUlO UExBQ0U7CitBTFRFUiBUQUJMRSB0YyBNT0RJRlkgYzIgSU5UIE5VTEwsIEFMR09SSVRITT1JTlBM QUNFOworRVJST1IgNDIwMDA6IFRoaXMgdmVyc2lvbiBvZiBNeVNRTCBkb2Vzbid0IHlldCBzdXBw b3J0ICdBTFRFUiBUQUJMRSB0YyBNT0RJRlkgYzIgSU5UIE5VTEwsIEFMR09SSVRITT1JTlBMQUNF JworRFJPUCBUQUJMRSB0YywgdHI7CitDUkVBVEUgVEFCTEUgdHIgKGMxIElOVCBQUklNQVJZIEtF WSwgYzIgSU5UIE5PVCBOVUxMLCBjMyBJTlQpCitFTkdJTkU9SW5ub0RCIFJPV19GT1JNQVQ9UkVE VU5EQU5UOworQ1JFQVRFIFRBQkxFIHRjIChjMSBJTlQgUFJJTUFSWSBLRVksIGMyIElOVCBOT1Qg TlVMTCwgYzMgSU5UKQorRU5HSU5FPUlubm9EQjsKK0FMVEVSIFRBQkxFIHRyIENIQU5HRSBjMSBj MSBJTlQgTlVMTCBGSVJTVCwgQUxHT1JJVEhNPUlOUExBQ0U7CitBTFRFUiBUQUJMRSB0YyBDSEFO R0UgYzEgYzEgSU5UIE5VTEwgRklSU1QsIEFMR09SSVRITT1JTlBMQUNFOworQUxURVIgVEFCTEUg dHIgTU9ESUZZIGMzIElOVCBOT1QgTlVMTCwgQUxHT1JJVEhNPUlOUExBQ0U7CitFUlJPUiA0MjAw MDogVGhpcyB2ZXJzaW9uIG9mIE15U1FMIGRvZXNuJ3QgeWV0IHN1cHBvcnQgJ0FMVEVSIFRBQkxF IHRyIE1PRElGWSBjMyBJTlQgTk9UIE5VTEwsIEFMR09SSVRITT1JTlBMQUNFJworQUxURVIgVEFC TEUgdGMgTU9ESUZZIGMzIElOVCBOT1QgTlVMTCwgQUxHT1JJVEhNPUlOUExBQ0U7CitFUlJPUiA0 MjAwMDogVGhpcyB2ZXJzaW9uIG9mIE15U1FMIGRvZXNuJ3QgeWV0IHN1cHBvcnQgJ0FMVEVSIFRB QkxFIHRjIE1PRElGWSBjMyBJTlQgTk9UIE5VTEwsIEFMR09SSVRITT1JTlBMQUNFJworQUxURVIg VEFCTEUgdHIgQ0hBTkdFIGMyIGMyIElOVCwgQ0hBTkdFIGMyIGMyIElOVCBOT1QgTlVMTDsKK0VS Uk9SIDQyUzIyOiBVbmtub3duIGNvbHVtbiAnYzInIGluICd0cicKK0FMVEVSIFRBQkxFIHRyIE1P RElGWSBjMiBJTlQsIE1PRElGWSBjMiBJTlQgTk9UIE5VTEw7CitFUlJPUiA0MlMyMjogVW5rbm93 biBjb2x1bW4gJ2MyJyBpbiAndHInCitBTFRFUiBUQUJMRSB0ciBNT0RJRlkgYzIgSU5UIFVOU0lH TkVELCBNT0RJRlkgYzIgSU5UOworRVJST1IgNDJTMjI6IFVua25vd24gY29sdW1uICdjMicgaW4g J3RyJworQUxURVIgVEFCTEUgdHIgTU9ESUZZIGMyIENIQVIoMSkgTk9UIE5VTEwsIE1PRElGWSBj MiBJTlQgTk9UIE5VTEw7CitFUlJPUiA0MlMyMjogVW5rbm93biBjb2x1bW4gJ2MyJyBpbiAndHIn CitBTFRFUiBUQUJMRSB0ciBDSEFOR0UgYzIgYzIgSU5UIE5PVCBOVUxMLCBBTEdPUklUSE09SU5Q TEFDRTsKK0FMVEVSIFRBQkxFIHRjIENIQU5HRSBjMiBjMiBJTlQgTk9UIE5VTEwsIEFMR09SSVRI TT1JTlBMQUNFOworQUxURVIgVEFCTEUgdHIgTU9ESUZZIGMyIElOVCBOT1QgTlVMTCwgQUxHT1JJ VEhNPUlOUExBQ0U7CitBTFRFUiBUQUJMRSB0YyBNT0RJRlkgYzIgSU5UIE5PVCBOVUxMLCBBTEdP UklUSE09SU5QTEFDRTsKK0FMVEVSIFRBQkxFIHRyIE1PRElGWSBjMiBJTlQsIEFMR09SSVRITT1J TlBMQUNFOworQUxURVIgVEFCTEUgdGMgTU9ESUZZIGMyIElOVCwgQUxHT1JJVEhNPUlOUExBQ0U7 CitFUlJPUiA0MjAwMDogVGhpcyB2ZXJzaW9uIG9mIE15U1FMIGRvZXNuJ3QgeWV0IHN1cHBvcnQg J0FMVEVSIFRBQkxFIHRjIE1PRElGWSBjMiBJTlQsIEFMR09SSVRITT1JTlBMQUNFJworQUxURVIg VEFCTEUgdHIgTU9ESUZZIGMyIElOVCBOVUxMLCBBTEdPUklUSE09SU5QTEFDRTsKK0FMVEVSIFRB QkxFIHRjIE1PRElGWSBjMiBJTlQgTlVMTCwgQUxHT1JJVEhNPUlOUExBQ0U7CitFUlJPUiA0MjAw MDogVGhpcyB2ZXJzaW9uIG9mIE15U1FMIGRvZXNuJ3QgeWV0IHN1cHBvcnQgJ0FMVEVSIFRBQkxF IHRjIE1PRElGWSBjMiBJTlQgTlVMTCwgQUxHT1JJVEhNPUlOUExBQ0UnCitEUk9QIFRBQkxFIHRj LCB0cjsKCj09PSBhZGRlZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2lubm9kYi90L2lubm9kYi1h bHRlci1udWxsYWJsZS50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2lubm9kYi90L2lubm9k Yi1hbHRlci1udWxsYWJsZS50ZXN0CTE5NzAtMDEtMDEgMDA6MDA6MDAgKzAwMDAKKysrIGIvbXlz cWwtdGVzdC9zdWl0ZS9pbm5vZGIvdC9pbm5vZGItYWx0ZXItbnVsbGFibGUudGVzdAlyZXZpZDpt YXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDUwMjEwNTg1Mi0wcm5vd2x0NnBubHNjZm1wCkBA IC0wLDAgKzEsMTA0IEBACistLXNvdXJjZSBpbmNsdWRlL2hhdmVfaW5ub2RiLmluYworCisjIFdM IzU4NTQgcGFydCAxOiBNT0RJRlkuLi5OVUxMCisjIEZpcnN0LCB0aGlzIGlzIG9ubHkgaW1wbGVt ZW50ZWQgZm9yIFJPV19GT1JNQVQ9UkVEVU5EQU5UIHRhYmxlcywKKyMgYmVjYXVzZSB0aGF0IG9u ZSBkb2VzIG5vdCBjaGFuZ2UgdGhlIHN0b3JhZ2UgZm9ybWF0IG9mIEItdHJlZSByZWNvcmRzLgor IworIyBJbXBsZW1lbnRpbmcgdGhlIHJlc3Qgb2YgV0wjNTg1NCB3aWxsIHJlcXVpcmUgYSBtdWx0 aS12ZXJzaW9uZWQKKyMgZGF0YSBkaWN0aW9uYXJ5IChtdWx0aXBsZSBTWVNfVEFCTEVTIGFuZCBj bHVzdGVyZWQgaW5kZXggZm9yIHRoZSB0YWJsZSkuCisKK0NSRUFURSBUQUJMRSB0ciAoYzEgSU5U IFBSSU1BUlkgS0VZLCBjMiBJTlQgTk9UIE5VTEwsIGMzIElOVCkKK0VOR0lORT1Jbm5vREIgUk9X X0ZPUk1BVD1SRURVTkRBTlQ7CisKK0NSRUFURSBUQUJMRSB0YyAoYzEgSU5UIFBSSU1BUlkgS0VZ LCBjMiBJTlQgTk9UIE5VTEwsIGMzIElOVCkKK0VOR0lORT1Jbm5vREI7CisKKyMgVGhpcyBvbmUg d2lsbCBiZSBhIG5vLW9wLgorIyBNeVNRTCBzaG91bGQgcGVyaGFwcyBpc3N1ZSBhbiBlcnJvciwg YmVjYXVzZSBpdCByZWZ1c2VzIHRvIG1vZGlmeQorIyB0aGUgUFJJTUFSWSBLRVkgY29sdW1uIGMx IGZyb20gTk9UIE5VTEwgdG8gTlVMTC4KK0FMVEVSIFRBQkxFIHRyIENIQU5HRSBjMSBjMSBJTlQg TlVMTCBGSVJTVCwgQUxHT1JJVEhNPUlOUExBQ0U7CitBTFRFUiBUQUJMRSB0YyBDSEFOR0UgYzEg YzEgSU5UIE5VTEwgRklSU1QsIEFMR09SSVRITT1JTlBMQUNFOworCistLWVycm9yIEVSX05PVF9T VVBQT1JURURfWUVUCitBTFRFUiBUQUJMRSB0ciBNT0RJRlkgYzMgSU5UIE5PVCBOVUxMLCBBTEdP UklUSE09SU5QTEFDRTsKKy0tZXJyb3IgRVJfTk9UX1NVUFBPUlRFRF9ZRVQKK0FMVEVSIFRBQkxF IHRjIE1PRElGWSBjMyBJTlQgTk9UIE5VTEwsIEFMR09SSVRITT1JTlBMQUNFOworCisjIFJlcXVl c3Qgc29tZSBjb25mbGljdGluZyBjaGFuZ2VzIGZvciBhIHNpbmdsZSBjb2x1bW4uCistLWVycm9y IEVSX0JBRF9GSUVMRF9FUlJPUgorQUxURVIgVEFCTEUgdHIgQ0hBTkdFIGMyIGMyIElOVCwgQ0hB TkdFIGMyIGMyIElOVCBOT1QgTlVMTDsKKy0tZXJyb3IgRVJfQkFEX0ZJRUxEX0VSUk9SCitBTFRF UiBUQUJMRSB0ciBNT0RJRlkgYzIgSU5ULCBNT0RJRlkgYzIgSU5UIE5PVCBOVUxMOworLS1lcnJv ciBFUl9CQURfRklFTERfRVJST1IKK0FMVEVSIFRBQkxFIHRyIE1PRElGWSBjMiBJTlQgVU5TSUdO RUQsIE1PRElGWSBjMiBJTlQ7CistLWVycm9yIEVSX0JBRF9GSUVMRF9FUlJPUgorQUxURVIgVEFC TEUgdHIgTU9ESUZZIGMyIENIQVIoMSkgTk9UIE5VTEwsIE1PRElGWSBjMiBJTlQgTk9UIE5VTEw7 CisKKyMgTm8tb3BzLgorQUxURVIgVEFCTEUgdHIgQ0hBTkdFIGMyIGMyIElOVCBOT1QgTlVMTCwg QUxHT1JJVEhNPUlOUExBQ0U7CitBTFRFUiBUQUJMRSB0YyBDSEFOR0UgYzIgYzIgSU5UIE5PVCBO VUxMLCBBTEdPUklUSE09SU5QTEFDRTsKK0FMVEVSIFRBQkxFIHRyIE1PRElGWSBjMiBJTlQgTk9U IE5VTEwsIEFMR09SSVRITT1JTlBMQUNFOworQUxURVIgVEFCTEUgdGMgTU9ESUZZIGMyIElOVCBO T1QgTlVMTCwgQUxHT1JJVEhNPUlOUExBQ0U7CisKK0FMVEVSIFRBQkxFIHRyIE1PRElGWSBjMiBJ TlQsIEFMR09SSVRITT1JTlBMQUNFOworLS1lcnJvciBFUl9OT1RfU1VQUE9SVEVEX1lFVAorQUxU RVIgVEFCTEUgdGMgTU9ESUZZIGMyIElOVCwgQUxHT1JJVEhNPUlOUExBQ0U7CisKK0FMVEVSIFRB QkxFIHRyIE1PRElGWSBjMiBJTlQgTlVMTCwgQUxHT1JJVEhNPUlOUExBQ0U7CistLWVycm9yIEVS X05PVF9TVVBQT1JURURfWUVUCitBTFRFUiBUQUJMRSB0YyBNT0RJRlkgYzIgSU5UIE5VTEwsIEFM R09SSVRITT1JTlBMQUNFOworCitEUk9QIFRBQkxFIHRjLCB0cjsKKy0tc291cmNlIGluY2x1ZGUv aGF2ZV9pbm5vZGIuaW5jCisKKyMgV0wjNTg1NCBwYXJ0IDE6IE1PRElGWS4uLk5VTEwKKyMgVGhp cyBpcyBvbmx5IGltcGxlbWVudGVkIGZvciBST1dfRk9STUFUPVJFRFVOREFOVCB0YWJsZXMsCisj IGJlY2F1c2UgdGhhdCBvbmUgZG9lcyBub3QgY2hhbmdlIHRoZSBzdG9yYWdlIGZvcm1hdCBvZiBC LXRyZWUgcmVjb3Jkcy4KKyMKKyMgSW1wbGVtZW50aW5nIHRoZSBjaGFuZ2UgZm9yIGxhdGVyIElu bm9EQiBmb3JtYXRzIHdvdWxkIHJlcXVpcmUgYQorIyBtdWx0aS12ZXJzaW9uZWQgZGF0YSBkaWN0 aW9uYXJ5IChhbmQgbXVsdGktdmVyc2lvbmVkIFNZU19DT0xVTU5TIGF0IHRoYXQpLgorIyBJbXBs ZW1lbnRpbmcgQUREIENPTFVNTiBhbmQgRFJPUCBDT0xVTU4gb25seSBuZWVkcyBhIG11bHRpLXZl cnNpb25lZAorIyBjbHVzdGVyZWQgaW5kZXgsIGFuZCBzaW1wbGUgImFwcGVuZCIgdmVyc2lvbmlu ZyBvZiBTWVNfQ09MVU1OUy4KKworQ1JFQVRFIFRBQkxFIHRyIChjMSBJTlQgUFJJTUFSWSBLRVks IGMyIElOVCBOT1QgTlVMTCwgYzMgSU5UKQorRU5HSU5FPUlubm9EQiBST1dfRk9STUFUPVJFRFVO REFOVDsKKworQ1JFQVRFIFRBQkxFIHRjIChjMSBJTlQgUFJJTUFSWSBLRVksIGMyIElOVCBOT1Qg TlVMTCwgYzMgSU5UKQorRU5HSU5FPUlubm9EQjsKKworIyBUaGlzIG9uZSB3aWxsIGJlIGEgbm8t b3AuCisjIE15U1FMIHNob3VsZCBwZXJoYXBzIGlzc3VlIGFuIGVycm9yLCBiZWNhdXNlIGl0IHJl ZnVzZXMgdG8gbW9kaWZ5CisjIHRoZSBQUklNQVJZIEtFWSBjb2x1bW4gYzEgZnJvbSBOT1QgTlVM TCB0byBOVUxMLgorQUxURVIgVEFCTEUgdHIgQ0hBTkdFIGMxIGMxIElOVCBOVUxMIEZJUlNULCBB TEdPUklUSE09SU5QTEFDRTsKK0FMVEVSIFRBQkxFIHRjIENIQU5HRSBjMSBjMSBJTlQgTlVMTCBG SVJTVCwgQUxHT1JJVEhNPUlOUExBQ0U7CisKKy0tZXJyb3IgRVJfTk9UX1NVUFBPUlRFRF9ZRVQK K0FMVEVSIFRBQkxFIHRyIE1PRElGWSBjMyBJTlQgTk9UIE5VTEwsIEFMR09SSVRITT1JTlBMQUNF OworLS1lcnJvciBFUl9OT1RfU1VQUE9SVEVEX1lFVAorQUxURVIgVEFCTEUgdGMgTU9ESUZZIGMz IElOVCBOT1QgTlVMTCwgQUxHT1JJVEhNPUlOUExBQ0U7CisKKyMgUmVxdWVzdCBzb21lIGNvbmZs aWN0aW5nIGNoYW5nZXMgZm9yIGEgc2luZ2xlIGNvbHVtbi4KKy0tZXJyb3IgRVJfQkFEX0ZJRUxE X0VSUk9SCitBTFRFUiBUQUJMRSB0ciBDSEFOR0UgYzIgYzIgSU5ULCBDSEFOR0UgYzIgYzIgSU5U IE5PVCBOVUxMOworLS1lcnJvciBFUl9CQURfRklFTERfRVJST1IKK0FMVEVSIFRBQkxFIHRyIE1P RElGWSBjMiBJTlQsIE1PRElGWSBjMiBJTlQgTk9UIE5VTEw7CistLWVycm9yIEVSX0JBRF9GSUVM RF9FUlJPUgorQUxURVIgVEFCTEUgdHIgTU9ESUZZIGMyIElOVCBVTlNJR05FRCwgTU9ESUZZIGMy IElOVDsKKy0tZXJyb3IgRVJfQkFEX0ZJRUxEX0VSUk9SCitBTFRFUiBUQUJMRSB0ciBNT0RJRlkg YzIgQ0hBUigxKSBOT1QgTlVMTCwgTU9ESUZZIGMyIElOVCBOT1QgTlVMTDsKKworIyBOby1vcHMu CitBTFRFUiBUQUJMRSB0ciBDSEFOR0UgYzIgYzIgSU5UIE5PVCBOVUxMLCBBTEdPUklUSE09SU5Q TEFDRTsKK0FMVEVSIFRBQkxFIHRjIENIQU5HRSBjMiBjMiBJTlQgTk9UIE5VTEwsIEFMR09SSVRI TT1JTlBMQUNFOworQUxURVIgVEFCTEUgdHIgTU9ESUZZIGMyIElOVCBOT1QgTlVMTCwgQUxHT1JJ VEhNPUlOUExBQ0U7CitBTFRFUiBUQUJMRSB0YyBNT0RJRlkgYzIgSU5UIE5PVCBOVUxMLCBBTEdP UklUSE09SU5QTEFDRTsKKworQUxURVIgVEFCTEUgdHIgTU9ESUZZIGMyIElOVCwgQUxHT1JJVEhN PUlOUExBQ0U7CistLWVycm9yIEVSX05PVF9TVVBQT1JURURfWUVUCitBTFRFUiBUQUJMRSB0YyBN T0RJRlkgYzIgSU5ULCBBTEdPUklUSE09SU5QTEFDRTsKKworQUxURVIgVEFCTEUgdHIgTU9ESUZZ IGMyIElOVCBOVUxMLCBBTEdPUklUSE09SU5QTEFDRTsKKy0tZXJyb3IgRVJfTk9UX1NVUFBPUlRF RF9ZRVQKK0FMVEVSIFRBQkxFIHRjIE1PRElGWSBjMiBJTlQgTlVMTCwgQUxHT1JJVEhNPUlOUExB Q0U7CisKK0RST1AgVEFCTEUgdGMsIHRyOwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5u b2Jhc2UvaGFuZGxlci9oYW5kbGVyMGFsdGVyLmNjJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2hh bmRsZXIvaGFuZGxlcjBhbHRlci5jYwlyZXZpZDphbmRyZWkuZWxraW5Ab3JhY2xlLmNvbS0yMDEy MDQzMDE2MTQyNi04MTB2cXo4Mnh2cDJjOWR5CisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvaGFuZGxl ci9oYW5kbGVyMGFsdGVyLmNjCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTIwNTAy MTA1ODUyLTBybm93bHQ2cG5sc2NmbXAKQEAgLTU1LDkgKzU1LDE1IEBAIHN0YXRpYyBjb25zdCBB bHRlcl9pbnBsYWNlX2luZm86OkhBX0FMVEUKIAl8IEFsdGVyX2lucGxhY2VfaW5mbzo6QUxURVJf UkVOQU1FCiAJfCBBbHRlcl9pbnBsYWNlX2luZm86OkNIQU5HRV9DUkVBVEVfT1BUSU9OOwogCisv KiogT3BlcmF0aW9ucyBmb3IgYWx0ZXJpbmcgdGhlIHJlY29yZCBmb3JtYXQgKi8KK3N0YXRpYyBj b25zdCBBbHRlcl9pbnBsYWNlX2luZm86OkhBX0FMVEVSX0ZMQUdTIElOTk9CQVNFX0lOUExBQ0Vf UkVGT1JNQVQKKwk9IDA7CisKIC8qKiBPcGVyYXRpb25zIHRoYXQgSW5ub0RCIGNhbiBwZXJmb3Jt IG9ubGluZSAqLwogc3RhdGljIGNvbnN0IEFsdGVyX2lucGxhY2VfaW5mbzo6SEFfQUxURVJfRkxB R1MgSU5OT0JBU0VfT05MSU5FX09QRVJBVElPTlMKIAk9IElOTk9CQVNFX0lOUExBQ0VfSUdOT1JF CisJfCBJTk5PQkFTRV9JTlBMQUNFX1JFRk9STUFUCisJfCBBbHRlcl9pbnBsYWNlX2luZm86OkFM VEVSX0NPTFVNTl9OVUxMQUJMRQogCXwgQWx0ZXJfaW5wbGFjZV9pbmZvOjpBRERfSU5ERVgKIAl8 IEFsdGVyX2lucGxhY2VfaW5mbzo6RFJPUF9JTkRFWAogCXwgQWx0ZXJfaW5wbGFjZV9pbmZvOjpB RERfVU5JUVVFX0lOREVYCkBAIC0xOTksNiArMjA1LDIyIEBAIGhhX2lubm9iYXNlOjpjaGVja19p Zl9zdXBwb3J0ZWRfaW5wbGFjZV8KIAkJREJVR19SRVRVUk4oSEFfQUxURVJfSU5QTEFDRV9OT1Rf U1VQUE9SVEVEKTsKIAl9CiAKKwlpZiAoKGhhX2FsdGVyX2luZm8tPmhhbmRsZXJfZmxhZ3MKKwkg ICAgICYgQWx0ZXJfaW5wbGFjZV9pbmZvOjpBTFRFUl9DT0xVTU5fTlVMTEFCTEUpCisJICAgICYm IGRpY3RfdGFibGVfaXNfY29tcChwcmVidWlsdC0+dGFibGUpKSB7CisJCS8qIEZvciBub3csIHdl IG9ubHkgc3VwcG9ydCBjaGFuZ2luZyBhIGNvbHVtbiBmcm9tCisJCU5PVCBOVUxMIHRvIE5VTEwg d2hlbiBST1dfRk9STUFUPVJFRFVOREFOVC4gKi8KKwkJREJVR19SRVRVUk4oSEFfQUxURVJfSU5Q TEFDRV9OT1RfU1VQUE9SVEVEKTsKKwl9CisKKwlpZiAoIShoYV9hbHRlcl9pbmZvLT5oYW5kbGVy X2ZsYWdzICYKKwkgICAgICB+KElOTk9CQVNFX0lOUExBQ0VfUkVGT1JNQVQKKwkJfCBBbHRlcl9p bnBsYWNlX2luZm86OkFMVEVSX0NPTFVNTl9OVUxMQUJMRSkpKSB7CisJCS8qIFRoZXNlIG9wZXJh dGlvbnMgd2lsbCBhY3R1YWxseSBiZSBwZXJmb3JtZWQgZHVyaW5nCisJCWhhX2lubm9iYXNlOjpj b21taXRfaW5wbGFjZV9hbHRlcl90YWJsZSgpLiAqLworCQlEQlVHX1JFVFVSTihIQV9BTFRFUl9J TlBMQUNFX05PX0xPQ0spOworCX0KKwogCXVwZGF0ZV90aGQoKTsKIAl0cnhfc2VhcmNoX2xhdGNo X3JlbGVhc2VfaWZfcmVzZXJ2ZWQocHJlYnVpbHQtPnRyeCk7CiAKQEAgLTI1NCwxMSArMjc2LDYg QEAgaGFfaW5ub2Jhc2U6OmNoZWNrX2lmX3N1cHBvcnRlZF9pbnBsYWNlXwogCiAJcHJlYnVpbHQt PnRyeC0+d2lsbF9sb2NrKys7CiAKLQkvKiBUT0RPOiBSZWplY3QgaWYgY3JlYXRpbmcgYSBmdWxs dGV4dCBpbmRleCBhbmQgdGhlcmUgaXMgYW4KLQlpbmNvbXBhdGlibGUgRlRTX0RPQ19JRCBvciBG VFNfRE9DX0lEX0lOREVYLCBlaXRoZXIgaW4gdGhlIHRhYmxlCi0Jb3IgaW4gdGhlIGhhX2FsdGVy X2luZm8uIFdlIGNhbiBhbmQgc2hvdWxkIHJlamVjdCB0aGlzIGJlZm9yZQotCWxvY2tpbmcgdGhl IGRhdGEgZGljdGlvbmFyeS4gKi8KLQogCS8qIENyZWF0aW5nIHRoZSBwcmltYXJ5IGtleSByZXF1 aXJlcyBhbiBleGNsdXNpdmUgbG9jayBvbiB0aGUKIAl0YWJsZSBkdXJpbmcgdGhlIHdob2xlIGNv cHlpbmcgb3BlcmF0aW9uLiAqLwogCWlmIChoYV9hbHRlcl9pbmZvLT5oYW5kbGVyX2ZsYWdzICYg QWx0ZXJfaW5wbGFjZV9pbmZvOjpBRERfUEtfSU5ERVgpIHsKQEAgLTI3NDMsNiArMjc2MCw3OSBA QCBlcnJfZXhpdDoKIAlEQlVHX1JFVFVSTihmYWxzZSk7CiB9CiAKKy8qKiBBbGxvdyBhIGNvbHVt biB0byBiZSBzZXQgTlVMTCBpbiBhIFJPV19GT1JNQVQ9UkVEVU5EQU5UIHRhYmxlLgorQHBhcmFt IHRhYmxlX3NoYXJlCXRoZSBUQUJMRV9TSEFSRQorQHBhcmFtIHByZWJ1aWx0CQl0aGUgcHJlYnVp bHQgc3RydWN0CitAcGFyYW0gdHJ4CQlkYXRhIGRpY3Rpb25hcnkgdHJhbnNhY3Rpb24KK0BwYXJh bSBudGhfY29sCQkwLWJhc2VkIGluZGV4IG9mIHRoZSBjb2x1bW4KK0ByZXR2YWwgdHJ1ZQkJRmFp bHVyZQorQHJldHZhbCBmYWxzZQkJU3VjY2VzcyAqLworc3RhdGljIF9fYXR0cmlidXRlX18oKG5v bm51bGwsIHdhcm5fdW51c2VkX3Jlc3VsdCkpCitib29sCitpbm5vYmFzZV9zZXRfbnVsbGFibGUo CisvKj09PT09PT09PT09PT09PT09PSovCisJY29uc3QgVEFCTEVfU0hBUkUqCXRhYmxlX3NoYXJl LAorCXJvd19wcmVidWlsdF90KgkJcHJlYnVpbHQsCisJdHJ4X3QqCQkJdHJ4LAorCXVsaW50CQkJ bnRoX2NvbCkKK3sKKwlwYXJzX2luZm9fdCoJaW5mbzsKKwlkYmVycl90CQllcnJvcjsKKwlkaWN0 X2NvbF90Kgljb2w7CisKKwlEQlVHX0VOVEVSKCJpbm5vYmFzZV9zZXRfbnVsbGFibGUiKTsKKwlE QlVHX0FTU0VSVCh0cnhfZ2V0X2RpY3Rfb3BlcmF0aW9uKHRyeCkgPT0gVFJYX0RJQ1RfT1BfSU5E RVgpOworCXV0X2FkKHRyeC0+ZGljdF9vcGVyYXRpb25fbG9ja19tb2RlID09IFJXX1hfTEFUQ0gp OworCXV0X2FkKG11dGV4X293bigmZGljdF9zeXMtPm11dGV4KSk7CisjaWZkZWYgVU5JVl9TWU5D X0RFQlVHCisJdXRfYWQocndfbG9ja19vd24oJmRpY3Rfb3BlcmF0aW9uX2xvY2ssIFJXX0xPQ0tf RVgpKTsKKyNlbmRpZiAvKiBVTklWX1NZTkNfREVCVUcgKi8KKworCS8qIFRoZSBOVUxMIGZsYWcg aXMgc3RvcmVkIGluIFNZU19DT0xVTU5TLCBub3QgaW4gU1lTX0lOREVYRVMKKwkob3IgU1lTX0ZJ RUxEUykuIEFERCBDT0xVTU4gYW5kIERST1AgQ09MVU1OIHdpbGwgb25seQorCW11bHRpLXZlcnNp b24gdGhlIGNsdXN0ZXJlZCBpbmRleCwgbm90IHRoZSB0YWJsZSBjb2x1bW5zLgorCVRodXMsIHdl IGNhbiBvbmx5IGNoYW5nZSB0aGUgTlVMTGFibGUgZmxhZyBvZiBhIGNvbHVtbiBpbgorCXRhYmxl cyB3aGVyZSB0aGUgY2hhbmdlIGRvZXMgbm90IGFmZmVjdCB0aGUgQi10cmVlIHJlY29yZAorCWZv cm1hdCAoUk9XX0ZPUk1BVD1SRURVTkRBTlQpLiAqLworCXV0X2FkKCFkaWN0X3RhYmxlX2lzX2Nv bXAocHJlYnVpbHQtPnRhYmxlKSk7CisJY29sID0gZGljdF90YWJsZV9nZXRfbnRoX2NvbChwcmVi dWlsdC0+dGFibGUsIG50aF9jb2wpOworCisJdXRfYWQoY29sLT5wcnR5cGUgJiBEQVRBX05PVF9O VUxMKTsKKworCWluZm8gPSBwYXJzX2luZm9fY3JlYXRlKCk7CisKKwlwYXJzX2luZm9fYWRkX3Vs bF9saXRlcmFsKGluZm8sICJ0YWJsZWlkIiwgcHJlYnVpbHQtPnRhYmxlLT5pZCk7CisJcGFyc19p bmZvX2FkZF9pbnQ0X2xpdGVyYWwoaW5mbywgIm50aCIsIG50aF9jb2wpOworCXBhcnNfaW5mb19h ZGRfaW50NF9saXRlcmFsKGluZm8sICJwcnR5cGUiLAorCQkJCSAgIGNvbC0+cHJ0eXBlICYgfkRB VEFfTk9UX05VTEwpOworCisJdHJ4LT5vcF9pbmZvID0gInNldHRpbmcgY29sdW1uIG51bGxhYmxl IGluIFNZU19DT0xVTU5TIjsKKworCWVycm9yID0gcXVlX2V2YWxfc3FsKAorCQlpbmZvLAorCQki UFJPQ0VEVVJFIE5VTExBQkxFX1NZU19DT0xVTU5TX1BST0MgKCkgSVNcbiIKKwkJIkJFR0lOXG4i CisJCSJVUERBVEUgU1lTX0NPTFVNTlMgU0VUIFBSVFlQRT06cHJ0eXBlXG4iCisJCSJXSEVSRSBU QUJMRV9JRD06dGFibGVpZCBBTkQgUE9TPTpudGg7XG4iCisJCSJFTkQ7XG4iLAorCQlGQUxTRSwg dHJ4KTsKKworCURCVUdfRVhFQ1VURV9JRigiaWJfc2V0X251bGxhYmxlX2Vycm9yIiwKKwkJCWVy cm9yID0gREJfT1VUX09GX0ZJTEVfU1BBQ0U7KTsKKworCXRyeC0+b3BfaW5mbyA9ICIiOworCisJ aWYgKGVycm9yICE9IERCX1NVQ0NFU1MpIHsKKwkJbXlfZXJyb3JfaW5ub2RiKGVycm9yLCB0YWJs ZV9zaGFyZS0+dGFibGVfbmFtZS5zdHIsIDApOworCQl0cngtPmVycm9yX3N0YXRlID0gREJfU1VD Q0VTUzsKKwkJREJVR19SRVRVUk4odHJ1ZSk7CisJfQorCisJLyogU2V0IHRoZSBjb2x1bW4gbnVs bGFibGUgaW4gdGhlIGRhdGEgZGljdGlvbmFyeSBjYWNoZS4gKi8KKwljb2wtPnBydHlwZSAmPSB+ REFUQV9OT1RfTlVMTDsKKwlEQlVHX1JFVFVSTihmYWxzZSk7Cit9CisKIC8qKiBDb21taXQgb3Ig cm9sbGJhY2sgdGhlIGNoYW5nZXMgbWFkZSBkdXJpbmcKIHByZXBhcmVfaW5wbGFjZV9hbHRlcl90 YWJsZSgpIGFuZCBpbnBsYWNlX2FsdGVyX3RhYmxlKCkgaW5zaWRlCiB0aGUgc3RvcmFnZSBlbmdp bmUuIE5vdGUgdGhhdCB0aGUgYWxsb3dlZCBsZXZlbCBvZiBjb25jdXJyZW5jeQpAQCAtMjk2MCw2 ICszMDUwLDM5IEBAIHByb2Nlc3NlZF9maWVsZDoKIAkJfQogCX0KIAorCWlmIChlcnIgPT0gMCAm JiAhbmV3X2NsdXN0ZXJlZAorCSAgICAmJiAoaGFfYWx0ZXJfaW5mby0+aGFuZGxlcl9mbGFncwor CQkmIEFsdGVyX2lucGxhY2VfaW5mbzo6QUxURVJfQ09MVU1OX05VTExBQkxFKSkgeworCQlEQlVH X0FTU0VSVCghZGljdF90YWJsZV9pc19jb21wKHByZWJ1aWx0LT50YWJsZSkpOworCisJCUxpc3Rf aXRlcmF0b3JfZmFzdDxDcmVhdGVfZmllbGQ+IGNmX2l0OworCQl1bGludAkJCQljb2wgPSAwOwor CisJCWZvciAoRmllbGQqKiBmcCA9IHRhYmxlLT5maWVsZDsKKwkJICAgICBlcnIgPT0gMCAmJiBj b2wgPCBkaWN0X3RhYmxlX2dldF9uX2NvbHMocHJlYnVpbHQtPnRhYmxlKTsKKwkJICAgICBmcCsr LCBjb2wrKykgeworCQkJY2ZfaXQuaW5pdChoYV9hbHRlcl9pbmZvLT5hbHRlcl9pbmZvLT5jcmVh dGVfbGlzdCk7CisJCQl3aGlsZSAoQ3JlYXRlX2ZpZWxkKiBjZiA9IGNmX2l0KyspIHsKKwkJCQlp ZiAoY2YtPmZpZWxkID09ICpmcAorCQkJCSAgICAmJiAoKGNmLT5mbGFncyBeICgqZnApLT5mbGFn cykKKwkJCQkJJiBOT1RfTlVMTF9GTEFHKSkgeworCQkJCQlEQlVHX0FTU0VSVCgoKmZwKS0+Zmxh Z3MKKwkJCQkJCSAgICAmIE5PVF9OVUxMX0ZMQUcpOworCQkJCQlpZiAoaW5ub2Jhc2Vfc2V0X251 bGxhYmxlKAorCQkJCQkJICAgIHRhYmxlX3NoYXJlLAorCQkJCQkJICAgIHByZWJ1aWx0LCB0cngs IGNvbCkpIHsKKwkJCQkJCWVyciA9IC0xOworCQkJCQl9CisJCQkJfQorCQkJfQorCQl9CisJfQor CisJaWYgKGVyciA9PSAwICYmICFuZXdfY2x1c3RlcmVkCisJICAgICYmIChoYV9hbHRlcl9pbmZv LT5oYW5kbGVyX2ZsYWdzICYgSU5OT0JBU0VfSU5QTEFDRV9SRUZPUk1BVCkpIHsKKwkJdXRfZXJy b3I7CisJfQorCiAJaWYgKGVyciA9PSAwKSB7CiB0cnhfY29tbWl0OgogCQl0cnhfY29tbWl0X2Zv cl9teXNxbCh0cngpOwoKTm8gYnVuZGxlIChyZWFzb246IHVzZWxlc3MgZm9yIHB1c2ggZW1haWxz KS4=