From: Date: December 4 2008 10:50am Subject: bzr commit into mysql-6.0-bugteam branch (horst:2750) List-Archive: http://lists.mysql.com/commits/60579 Message-Id: <200812040950.mB49ohQt011680@hh-nb.hungers> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 I0F0IGZpbGU6Ly8vd29yay9ienIvbXlzcWwtNi4wLWJ1Zy8KCiAyNzUwIEhvcnN0IEh1bmdlcgky MDA4LTEyLTA0IFttZXJnZV0KICAgICAgZHVlIHRvIG1lcmdlCmFkZGVkOgogIG15c3FsLXRlc3Qv ci9jdHlwZV9maWxlc3lzdGVtLnJlc3VsdAogIG15c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3QvZmFs Y29uX2J1Z18yMjE4NC1tYXN0ZXIub3B0CiAgbXlzcWwtdGVzdC9zdWl0ZS9zeXNfdmFycy90L2Rp c2FibGVkLmRlZgogIG15c3FsLXRlc3QvdC9jdHlwZV9maWxlc3lzdGVtLW1hc3Rlci5vcHQKICBt eXNxbC10ZXN0L3QvY3R5cGVfZmlsZXN5c3RlbS50ZXN0Cm1vZGlmaWVkOgogIGNsaWVudC9teXNx bHRlc3QuYwogIGV4dHJhL3lhc3NsL3NyYy95YXNzbF9pbXAuY3BwCiAgaW5jbHVkZS9tX2N0eXBl LmgKICBpbmNsdWRlL21fc3RyaW5nLmgKICBpbmNsdWRlL215X2dsb2JhbC5oCiAgaW5jbHVkZS9t eV9zeXMuaAogIGluY2x1ZGUvbXlzcWwuaAogIGxpYm15c3FsL2xpYm15c3FsLmRlZgogIGxpYm15 c3FsZC9leGFtcGxlcy9DTWFrZUxpc3RzLnR4dAogIGxpYm15c3FsZC9saWJteXNxbGQuYwogIGxp Ym15c3FsZC9saWJteXNxbGQuZGVmCiAgbXlzcWwtdGVzdC9yL2Z1bmNfc2FwZGIucmVzdWx0CiAg bXlzcWwtdGVzdC9yL3BlcnJvci13aW4ucmVzdWx0CiAgbXlzcWwtdGVzdC9yL3JlYWRfYnVmZmVy X3NpemVfYmFzaWMucmVzdWx0CiAgbXlzcWwtdGVzdC9yL3N1YnNlbGVjdC5yZXN1bHQKICBteXNx bC10ZXN0L3IvdGltZXpvbmUyLnJlc3VsdAogIG15c3FsLXRlc3Qvci90aW1lem9uZTMucmVzdWx0 CiAgbXlzcWwtdGVzdC9yL3VwZGF0ZS5yZXN1bHQKICBteXNxbC10ZXN0L3IvdmFyaWFibGVzLnJl c3VsdAogIG15c3FsLXRlc3Qvci92aWV3LnJlc3VsdAogIG15c3FsLXRlc3Qvc3RkX2RhdGEvTW9z Y293X2xlYXAKICBteXNxbC10ZXN0L3N1aXRlL2ZhbGNvbi9yL2ZhbGNvbl9idWdfMjIxODQucmVz dWx0CiAgbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vdC9mYWxjb25fYnVnXzIyMTg0LnRlc3QKICBt eXNxbC10ZXN0L3QvZGlzYWJsZWQuZGVmCiAgbXlzcWwtdGVzdC90L2Z1bmNfc2FwZGIudGVzdAog IG15c3FsLXRlc3QvdC9wZXJyb3Itd2luLnRlc3QKICBteXNxbC10ZXN0L3QvcGVycm9yLnRlc3QK ICBteXNxbC10ZXN0L3Qvc3Vic2VsZWN0LnRlc3QKICBteXNxbC10ZXN0L3QvdGltZXpvbmUzLnRl c3QKICBteXNxbC10ZXN0L3QvdXBkYXRlLnRlc3QKICBteXNxbC10ZXN0L3QvdmFyaWFibGVzLnRl c3QKICBteXNxbC10ZXN0L3Qvdmlldy50ZXN0CiAgbXlzeXMvbXlfZm9wZW4uYwogIG15c3lzL215 X2dldG9wdC5jCiAgc3FsL2l0ZW1fY21wZnVuYy5jYwogIHNxbC9pdGVtX2NtcGZ1bmMuaAogIHNx bC9pdGVtX2Z1bmMuY2MKICBzcWwvaXRlbV90aW1lZnVuYy5oCiAgc3FsL215X2RlY2ltYWwuY2MK ICBzcWwvbXlzcWxfcHJpdi5oCiAgc3FsL215c3FsZC5jYwogIHNxbC9zZXRfdmFyLmNjCiAgc3Fs L3NldF92YXIuaAogIHNxbC9zbGF2ZS5jYwogIHNxbC9zcWxfc2hvdy5jYwogIHNxbC9zcWxfdXBk YXRlLmNjCiAgc3FsL3NxbF92aWV3LmNjCiAgc3FsL3R6dGltZS5jYwogIHNxbC90enRpbWUuaAog IHN0b3JhZ2UvaW5ub2Jhc2UvaGFuZGxlci9oYV9pbm5vZGIuY2MKCj09PSBtb2RpZmllZCBmaWxl ICdjbGllbnQvbXlzcWx0ZXN0LmMnCi0tLSBhL2NsaWVudC9teXNxbHRlc3QuYwkyMDA4LTExLTAz IDE3OjUxOjM2ICswMDAwCisrKyBiL2NsaWVudC9teXNxbHRlc3QuYwkyMDA4LTEyLTAzIDE0OjA1 OjMxICswMDAwCkBAIC0xNDcsNyArMTQ3LDcgQEAgc3RhdGljIHN0cnVjdCBzdF90ZXN0X2ZpbGUq IGN1cl9maWxlOwogc3RhdGljIHN0cnVjdCBzdF90ZXN0X2ZpbGUqIGZpbGVfc3RhY2tfZW5kOwog CiAKLXN0YXRpYyBDSEFSU0VUX0lORk8gKmNoYXJzZXRfaW5mbz0gJm15X2NoYXJzZXRfbGF0aW4x OyAvKiBEZWZhdWx0IGNoYXJzZXQgKi8KK3N0YXRpYyBDSEFSU0VUX0lORk8gKmNoYXJzZXRfaW5m bzsgLyogRGVmYXVsdCBjaGFyc2V0ICovCiAKIHN0YXRpYyBjb25zdCBjaGFyICplbWJlZGRlZF9z ZXJ2ZXJfZ3JvdXBzW109CiB7CkBAIC03MjU1LDYgKzcyNTUsNyBAQCBpbnQgbWFpbihpbnQgYXJn YywgY2hhciAqKmFyZ3YpCiAgIE1ZX1NUQVQgcmVzX2luZm87CiAgIE1ZX0lOSVQoYXJndlswXSk7 CiAKKyAgY2hhcnNldF9pbmZvPSAmbXlfY2hhcnNldF9sYXRpbjE7CiAgIHNhdmVfZmlsZVswXT0g MDsKICAgVE1QRElSWzBdPSAwOwogCgo9PT0gbW9kaWZpZWQgZmlsZSAnZXh0cmEveWFzc2wvc3Jj L3lhc3NsX2ltcC5jcHAnCi0tLSBhL2V4dHJhL3lhc3NsL3NyYy95YXNzbF9pbXAuY3BwCTIwMDgt MTEtMTggMjE6MTc6MDQgKzAwMDAKKysrIGIvZXh0cmEveWFzc2wvc3JjL3lhc3NsX2ltcC5jcHAJ MjAwOC0xMi0wMiAxMToyNTo0MyArMDAwMApAQCAtMTU2MCw2ICsxNTYwLDcgQEAgdm9pZCBDbGll bnRIZWxsbzo6UHJvY2VzcyhpbnB1dF9idWZmZXImLAogICAgICAgICByZXR1cm47CiAgICAgfQog ICAgIHNzbC5tYXRjaFN1aXRlKGNpcGhlcl9zdWl0ZXNfLCBzdWl0ZV9sZW5fKTsKKyAgICBpZiAo c3NsLkdldEVycm9yKCkpIHJldHVybjsKICAgICBzc2wuc2V0X3BlbmRpbmcoc3NsLmdldFNlY3Vy aXR5KCkuZ2V0X3Bhcm1zKCkuc3VpdGVfWzFdKTsKIAogICAgIGlmIChjb21wcmVzc2lvbl9tZXRo b2RzXyA9PSB6bGliKQoKPT09IG1vZGlmaWVkIGZpbGUgJ2luY2x1ZGUvbV9jdHlwZS5oJwotLS0g YS9pbmNsdWRlL21fY3R5cGUuaAkyMDA4LTA3LTIzIDA5OjQzOjUwICswMDAwCisrKyBiL2luY2x1 ZGUvbV9jdHlwZS5oCTIwMDgtMTItMDMgMTQ6MDU6MzEgKzAwMDAKQEAgLTMyMSw3ICszMjEsNyBA QCB0eXBlZGVmIHN0cnVjdCBjaGFyc2V0X2luZm9fc3QKICNkZWZpbmUgSUxMRUdBTF9DSEFSU0VU X0lORk9fTlVNQkVSICh+MFUpCiAKIAotZXh0ZXJuIENIQVJTRVRfSU5GTyBteV9jaGFyc2V0X2Jp bjsKK01ZX0RMTEVYUE9SVCBDSEFSU0VUX0lORk8gbXlfY2hhcnNldF9iaW47CiBleHRlcm4gQ0hB UlNFVF9JTkZPIG15X2NoYXJzZXRfYmlnNV9jaGluZXNlX2NpOwogZXh0ZXJuIENIQVJTRVRfSU5G TyBteV9jaGFyc2V0X2JpZzVfYmluOwogZXh0ZXJuIENIQVJTRVRfSU5GTyBteV9jaGFyc2V0X2Nw OTMyX2phcGFuZXNlX2NpOwpAQCAtMzM2LDcgKzMzNiw3IEBAIGV4dGVybiBDSEFSU0VUX0lORk8g bXlfY2hhcnNldF9nYjIzMTJfY2gKIGV4dGVybiBDSEFSU0VUX0lORk8gbXlfY2hhcnNldF9nYjIz MTJfYmluOwogZXh0ZXJuIENIQVJTRVRfSU5GTyBteV9jaGFyc2V0X2dia19jaGluZXNlX2NpOwog ZXh0ZXJuIENIQVJTRVRfSU5GTyBteV9jaGFyc2V0X2dia19iaW47Ci1leHRlcm4gQ0hBUlNFVF9J TkZPIG15X2NoYXJzZXRfbGF0aW4xOworTVlfRExMRVhQT1JUIENIQVJTRVRfSU5GTyBteV9jaGFy c2V0X2xhdGluMTsKIGV4dGVybiBDSEFSU0VUX0lORk8gbXlfY2hhcnNldF9sYXRpbjFfZ2VybWFu Ml9jaTsKIGV4dGVybiBDSEFSU0VUX0lORk8gbXlfY2hhcnNldF9sYXRpbjFfYmluOwogZXh0ZXJu IENIQVJTRVRfSU5GTyBteV9jaGFyc2V0X2xhdGluMl9jemVjaF9jaTsKCj09PSBtb2RpZmllZCBm aWxlICdpbmNsdWRlL21fc3RyaW5nLmgnCi0tLSBhL2luY2x1ZGUvbV9zdHJpbmcuaAkyMDA4LTA2 LTI2IDE4OjI5OjMwICswMDAwCisrKyBiL2luY2x1ZGUvbV9zdHJpbmcuaAkyMDA4LTEyLTAzIDE0 OjA1OjMxICswMDAwCkBAIC04OSw4ICs4OSw4IEBAIGV4dGVybiBjaGFyICpzdHBjcHkoY2hhciAq LCBjb25zdCBjaGFyICoKICNlbmRpZgogCiAvKiBEZWNsYXJlZCBpbiBpbnQyc3RyKCkgKi8KLWV4 dGVybiBjaGFyIE5FQVIgX2RpZ192ZWNfdXBwZXJbXTsKLWV4dGVybiBjaGFyIE5FQVIgX2RpZ192 ZWNfbG93ZXJbXTsKK01ZX0RMTEVYUE9SVCBjaGFyIE5FQVIgX2RpZ192ZWNfdXBwZXJbXTsKK01Z X0RMTEVYUE9SVCBjaGFyIE5FQVIgX2RpZ192ZWNfbG93ZXJbXTsKIAogI2lmZGVmIEJBRF9TVFJJ TkdfQ09NUElMRVIKICNkZWZpbmUgc3RybW92KEEsQikgIChtZW1jY3B5KEEsQiwwLElOVF9NQVgp LTEpCgo9PT0gbW9kaWZpZWQgZmlsZSAnaW5jbHVkZS9teV9nbG9iYWwuaCcKLS0tIGEvaW5jbHVk ZS9teV9nbG9iYWwuaAkyMDA4LTExLTE5IDEwOjA0OjQ0ICswMDAwCisrKyBiL2luY2x1ZGUvbXlf Z2xvYmFsLmgJMjAwOC0xMi0wMyAxNDowNTozMSArMDAwMApAQCAtMTYxNSw0ICsxNjE1LDEwIEBA IGlubGluZSB2b2lkICBvcGVyYXRvciBkZWxldGVbXSh2b2lkKiwgdm8KICMgIGRlZmluZSBfX2Z1 bmNfXyAiPHVua25vd24+IgogI2VuZGlmCiAKKyNpZmRlZiBNWV9VU0VfQ0xJRU5UX0RMTAorI2Rl ZmluZSBNWV9ETExFWFBPUlQgX19kZWNsc3BlYyhkbGxpbXBvcnQpCisjZWxzZQorI2RlZmluZSBN WV9ETExFWFBPUlQgZXh0ZXJuCisjZW5kaWYgLypNWV9VU0VfQ0xJRU5UX0RMTCovCisKICNlbmRp ZiAvKiBteV9nbG9iYWxfaCAqLwoKPT09IG1vZGlmaWVkIGZpbGUgJ2luY2x1ZGUvbXlfc3lzLmgn Ci0tLSBhL2luY2x1ZGUvbXlfc3lzLmgJMjAwOC0xMC0yMCAxOToxMzoyMiArMDAwMAorKysgYi9p bmNsdWRlL215X3N5cy5oCTIwMDgtMTItMDMgMTQ6MDU6MzEgKzAwMDAKQEAgLTIxOCw3ICsyMTgs NyBAQCBleHRlcm4gaW50IGVycm5vOwkJCS8qIGRlY2xhcmUgZXJybm8gKi8KICNlbmRpZgkJCQkJ LyogI2lmbmRlZiBlcnJubyAqLwogZXh0ZXJuIGNoYXIgTkVBUiBlcnJidWZmW05SRVJSQlVGRlNd W0VSUk1TR1NJWkVdOwogZXh0ZXJuIGNoYXIgKmhvbWVfZGlyOwkJCS8qIEhvbWUgZGlyZWN0b3J5 IGZvciB1c2VyICovCi1leHRlcm4gY29uc3QgY2hhciAqbXlfcHJvZ25hbWU7CQkvKiBwcm9ncmFt LW5hbWUgKHByaW50ZWQgaW4gZXJyb3JzKSAqLworTVlfRExMRVhQT1JUIGNvbnN0IGNoYXIgKm15 X3Byb2duYW1lOwkJLyogcHJvZ3JhbS1uYW1lIChwcmludGVkIGluIGVycm9ycykgKi8KIGV4dGVy biBjb25zdCBjaGFyICpteV9wcm9nbmFtZV9zaG9ydDsJLyogbGlrZSBhYm92ZSBidXQgd2l0aG91 dCBkaXJlY3RvcnkgKi8KIGV4dGVybiBjaGFyIE5FQVIgY3Vycl9kaXJbXTsJCS8qIEN1cnJlbnQg ZGlyZWN0b3J5IGZvciB1c2VyICovCiBleHRlcm4gdm9pZCAoKmVycm9yX2hhbmRsZXJfaG9vayko dWludCBteV9lcnIsIGNvbnN0IGNoYXIgKnN0cixteWYgTXlGbGFncyk7CkBAIC02ODIsNiArNjgy LDcgQEAgZXh0ZXJuIHZvaWQgICAgIG15X29zbWFwZXJyKHVuc2lnbmVkIGxvbgogZXh0ZXJuIHZv aWQgVEVSTUlOQVRFKEZJTEUgKmZpbGUsIHVpbnQgZmxhZyk7CiAjZW5kaWYKIGV4dGVybiB2b2lk IGluaXRfZ2xvYl9lcnJzKHZvaWQpOworZXh0ZXJuIHZvaWQgbWFrZV9mdHlwZShjaGFyICogdG8s aW50IGZsYWcpOwogZXh0ZXJuIEZJTEUgKm15X2ZvcGVuKGNvbnN0IGNoYXIgKkZpbGVOYW1lLGlu dCBGbGFncyxteWYgTXlGbGFncyk7CiBleHRlcm4gRklMRSAqbXlfZmRvcGVuKEZpbGUgRmlsZWRl cyxjb25zdCBjaGFyICpuYW1lLCBpbnQgRmxhZ3MsbXlmIE15RmxhZ3MpOwogZXh0ZXJuIGludCBt eV9mY2xvc2UoRklMRSAqZmQsbXlmIE15RmxhZ3MpOwoKPT09IG1vZGlmaWVkIGZpbGUgJ2luY2x1 ZGUvbXlzcWwuaCcKLS0tIGEvaW5jbHVkZS9teXNxbC5oCTIwMDgtMDgtMDcgMTc6NTI6NDMgKzAw MDAKKysrIGIvaW5jbHVkZS9teXNxbC5oCTIwMDgtMTItMDMgMTQ6MDU6MzEgKzAwMDAKQEAgLTc0 OCw2ICs3NDgsMTIgQEAgaW50CQlTVERDQUxMIG15c3FsX2Ryb3BfZGIoTVlTUUwgKm15c3FsLAog I3ByYWdtYSBwYWNrKHBvcCkJCS8qIHJlc3RvcmUgYWxpZ25tZW50ICovCiAjZW5kaWYKIAorI2lm ZGVmIE1ZX1VTRV9DTElFTlRfRExMCitjaGFyICplbWJfbWFrZV9mdHlwZShpbnQgdHlwZSk7Cisj ZGVmaW5lIG15X2ZvcGVuKG5hbWUsIG1vZGUsIGZsYWdzKSBmb3BlbihuYW1lLCBlbWJfbWFrZV9m dHlwZShtb2RlKSkKKyNkZWZpbmUgbXlfZmNsb3NlKGZpbGUsIGZsYWdzKSBmY2xvc2UoZmlsZSkK KyNlbmRpZiAvKk1ZX1VTRV9DTElFTlRfRExMKi8KKwogI2lmZGVmCV9fY3BsdXNwbHVzCiB9CiAj ZW5kaWYKCj09PSBtb2RpZmllZCBmaWxlICdsaWJteXNxbC9saWJteXNxbC5kZWYnCi0tLSBhL2xp Ym15c3FsL2xpYm15c3FsLmRlZgkyMDA4LTA4LTExIDEwOjAzOjQ1ICswMDAwCisrKyBiL2xpYm15 c3FsL2xpYm15c3FsLmRlZgkyMDA4LTEyLTAzIDE0OjA1OjMxICswMDAwCkBAIC0xLDggKzEsOSBA QAogTElCUkFSWQkJTElCTVlTUUwKIFZFUlNJT04JCTYuMAogRVhQT1JUUwotCV9kaWdfdmVjX2xv d2VyCi0JX2RpZ192ZWNfdXBwZXIKKwlfZGlnX3ZlY19sb3dlciBEQVRBCisJX2RpZ192ZWNfdXBw ZXIgREFUQQorICAgICAgICBteV9wcm9nbmFtZSBEQVRBCiAJYm1vdmVfdXBwCiAJZGVsZXRlX2R5 bmFtaWMKIAlmcmVlX2RlZmF1bHRzCgo9PT0gbW9kaWZpZWQgZmlsZSAnbGlibXlzcWxkL2V4YW1w bGVzL0NNYWtlTGlzdHMudHh0JwotLS0gYS9saWJteXNxbGQvZXhhbXBsZXMvQ01ha2VMaXN0cy50 eHQJMjAwOC0xMS0xOSAxMjoxMTozMCArMDAwMAorKysgYi9saWJteXNxbGQvZXhhbXBsZXMvQ01h a2VMaXN0cy50eHQJMjAwOC0xMi0wMyAxNDowNTozMSArMDAwMApAQCAtMjQsMTggKzI0LDE4IEBA IElGKFdJTjMyKQogICBBRERfREVGSU5JVElPTlMoLURVU0VfVExTKQogRU5ESUYoV0lOMzIpCiAK LUFERF9ERUZJTklUSU9OUygtREVNQkVEREVEX0xJQlJBUlkpCitBRERfREVGSU5JVElPTlMoLURF TUJFRERFRF9MSUJSQVJZIC1ETVlfVVNFX0NMSUVOVF9ETEwpCiAKIEFERF9FWEVDVVRBQkxFKG15 c3FsX2VtYmVkZGVkIC4uLy4uL2NsaWVudC9jb21wbGV0aW9uX2hhc2guY2MKICAgICAgICAgICAg ICAgIC4uLy4uL2NsaWVudC9teXNxbC5jYyAuLi8uLi9jbGllbnQvcmVhZGxpbmUuY2MKICAgICAg ICAgICAgICAgIC4uLy4uL2NsaWVudC9zcWxfc3RyaW5nLmNjKQotVEFSR0VUX0xJTktfTElCUkFS SUVTKG15c3FsX2VtYmVkZGVkIHdzMl8zMikKK1RBUkdFVF9MSU5LX0xJQlJBUklFUyhteXNxbF9l bWJlZGRlZCkKIEFERF9ERVBFTkRFTkNJRVMobXlzcWxfZW1iZWRkZWQgbGlibXlzcWxkKQogCiBB RERfRVhFQ1VUQUJMRShteXNxbHRlc3RfZW1iZWRkZWQgLi4vLi4vY2xpZW50L215c3FsdGVzdC5j KQotVEFSR0VUX0xJTktfTElCUkFSSUVTKG15c3FsdGVzdF9lbWJlZGRlZCB3czJfMzIpCitUQVJH RVRfTElOS19MSUJSQVJJRVMobXlzcWx0ZXN0X2VtYmVkZGVkKQogQUREX0RFUEVOREVOQ0lFUyht eXNxbHRlc3RfZW1iZWRkZWQgbGlibXlzcWxkKQogCiBBRERfRVhFQ1VUQUJMRShteXNxbF9jbGll bnRfdGVzdF9lbWJlZGRlZCAuLi8uLi90ZXN0cy9teXNxbF9jbGllbnRfdGVzdC5jKQotVEFSR0VU X0xJTktfTElCUkFSSUVTKG15c3FsX2NsaWVudF90ZXN0X2VtYmVkZGVkIHdzMl8zMikKK1RBUkdF VF9MSU5LX0xJQlJBUklFUyhteXNxbF9jbGllbnRfdGVzdF9lbWJlZGRlZCkKIEFERF9ERVBFTkRF TkNJRVMobXlzcWxfY2xpZW50X3Rlc3RfZW1iZWRkZWQgbGlibXlzcWxkKQoKPT09IG1vZGlmaWVk IGZpbGUgJ2xpYm15c3FsZC9saWJteXNxbGQuYycKLS0tIGEvbGlibXlzcWxkL2xpYm15c3FsZC5j CTIwMDgtMTAtMTcgMTU6MTE6MjggKzAwMDAKKysrIGIvbGlibXlzcWxkL2xpYm15c3FsZC5jCTIw MDgtMTItMDMgMTQ6MDU6MzEgKzAwMDAKQEAgLTIyMywzICsyMjMsMTQgQEAgZXJyb3I6CiAgIERC VUdfUkVUVVJOKDApOwogfQogCisKKyNpZmRlZiBfX1dJTl9fCitzdGF0aWMgY2hhciBlbWJfbWFr ZWZ0eXBlX2J1ZmZlclsxMF07CisKK2NoYXIgKmVtYl9tYWtlX2Z0eXBlKGludCB0eXBlKQorewor ICBtYWtlX2Z0eXBlKGVtYl9tYWtlZnR5cGVfYnVmZmVyLCB0eXBlKTsKKyAgcmV0dXJuIGVtYl9t YWtlZnR5cGVfYnVmZmVyOworfQorI2VuZGlmIC8qX19XSU5fXyovCisKCj09PSBtb2RpZmllZCBm aWxlICdsaWJteXNxbGQvbGlibXlzcWxkLmRlZicKLS0tIGEvbGlibXlzcWxkL2xpYm15c3FsZC5k ZWYJMjAwOC0xMS0yNiAxMTo1NDozOSArMDAwMAorKysgYi9saWJteXNxbGQvbGlibXlzcWxkLmRl ZgkyMDA4LTEyLTAzIDE0OjA1OjMxICswMDAwCkBAIC00NCw3ICs0NCw3IEBAIEVYUE9SVFMKIAlw dGhyZWFkX2NyZWF0ZQogCXB0aHJlYWRfY29uZF9pbml0CiAJbGwyc3RyCi0JbXlfZmlsZW5vCisg ICAgICAgIG15X2ZpbGVubwogCW15X2djdnQKIAlteV9yZWdjb21wCiAJbXlfcmVnZXhlYwpAQCAt NjMsOCArNjMsOCBAQCBFWFBPUlRTCiAJbXlfZGlyCiAJbXlfbWljcm9fdGltZQogCWZpbmRfdHlw ZV9vcl9leGl0Ci0JX2RpZ192ZWNfdXBwZXIKLQlfZGlnX3ZlY19sb3dlcgorCV9kaWdfdmVjX3Vw cGVyIERBVEEKKwlfZGlnX3ZlY19sb3dlciBEQVRBCiAJYm1vdmVfdXBwCiAJZGVsZXRlX2R5bmFt aWMKIAlmcmVlX2RlZmF1bHRzCkBAIC0xNzcsMTcgKzE3NywxOCBAQCBFWFBPUlRTCiAJbXlzcWxf c3Fsc3RhdGUKIAljaGFyc2V0c19kaXIKIAlkaXNhYmxlZF9teV9vcHRpb24KLQlteV9jaGFyc2V0 X2xhdGluMQorCW15X2NoYXJzZXRfbGF0aW4xIERBVEEKKwlteV9jaGFyc2V0X2JpbiBEQVRBCisJ bXlfY2hhcnNldF9zYW1lCiAJaW5pdF9hbGxvY19yb290Ci0JbXlfcHJvZ25hbWUKKwlteV9wcm9n bmFtZSBEQVRBCiAJZ2V0X2NoYXJzZXRfbmFtZQogCWdldF9jaGFyc2V0X2J5X2NzbmFtZQogCXBy aW50X2RlZmF1bHRzCiAJZmluZF90eXBlCiAJc3RyeG5tb3YKIAlzdHJlbmQKLQlteV9mb3Blbgot CW15X2ZjbG9zZQorICAgICAgICBlbWJfbWFrZV9mdHlwZQogCXVucGFja19maWxlbmFtZQogCXN0 cjJpbnQKIAlpbnQxMF90b19zdHIKQEAgLTIyOCw3ICsyMjksNSBAQCBFWFBPUlRTCiAJbXlzcWxf c3RtdF9hdHRyX3NldAogCW15c3FsX3N0bXRfZmllbGRfY291bnQKIAlnZXRfZGVmYXVsdHNfb3B0 aW9ucwotCW15X2NoYXJzZXRfYmluCi0JbXlfY2hhcnNldF9zYW1lCiAJbW9kaWZ5X2RlZmF1bHRz X2ZpbGUKICAgICAgICAgbXlzcWxfc3RtdF9uZXh0X3Jlc3VsdAoKPT09IGFkZGVkIGZpbGUgJ215 c3FsLXRlc3Qvci9jdHlwZV9maWxlc3lzdGVtLnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9yL2N0 eXBlX2ZpbGVzeXN0ZW0ucmVzdWx0CTE5NzAtMDEtMDEgMDA6MDA6MDAgKzAwMDAKKysrIGIvbXlz cWwtdGVzdC9yL2N0eXBlX2ZpbGVzeXN0ZW0ucmVzdWx0CTIwMDgtMTItMDEgMTE6MzQ6NTMgKzAw MDAKQEAgLTAsMCArMSwxMSBAQAorU0VUIENIQVJBQ1RFUiBTRVQgdXRmODsKK1NIT1cgVkFSSUFC TEVTIGxpa2UgJ2NoYXJhY3Rlcl9zZXRzX2Rpcic7CitWYXJpYWJsZV9uYW1lCVZhbHVlCitjaGFy YWN0ZXJfc2V0c19kaXIJTVlTUUxfVEVTVF9ESVIvw58vCitTSE9XIFZBUklBQkxFUyBsaWtlICdj aGFyYWN0ZXJfc2V0X2ZpbGVzeXN0ZW0nOworVmFyaWFibGVfbmFtZQlWYWx1ZQorY2hhcmFjdGVy X3NldF9maWxlc3lzdGVtCWxhdGluMQorU0hPVyBWQVJJQUJMRVMgbGlrZSAnY2hhcmFjdGVyX3Nl dF9jbGllbnQnOworVmFyaWFibGVfbmFtZQlWYWx1ZQorY2hhcmFjdGVyX3NldF9jbGllbnQJdXRm OAorU0VUIENIQVJBQ1RFUiBTRVQgZGVmYXVsdDsKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10 ZXN0L3IvZnVuY19zYXBkYi5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvci9mdW5jX3NhcGRiLnJl c3VsdAkyMDA3LTEwLTIzIDE1OjE1OjEyICswMDAwCisrKyBiL215c3FsLXRlc3Qvci9mdW5jX3Nh cGRiLnJlc3VsdAkyMDA4LTExLTI3IDE2OjQ0OjE5ICswMDAwCkBAIC0yNTYsMyArMjU2LDE1IEBA IGEKIHNlbGVjdCBzdHJfdG9fZGF0ZSgiMjAwMy0wMS0wMiAxMDoxMToxMi4wMDEyIiwgIiVZLSVt LSVkICVIOiVpOiVTLiVmIik7CiBzdHJfdG9fZGF0ZSgiMjAwMy0wMS0wMiAxMDoxMToxMi4wMDEy IiwgIiVZLSVtLSVkICVIOiVpOiVTLiVmIikKIDIwMDMtMDEtMDIgMTA6MTE6MTIuMDAxMjAwCitz ZWxlY3QgdGltZWRpZmYoJzIwMDgtMDktMjkgMjA6MTA6MTAnLCcyMDA4LTA5LTMwIDIwOjEwOjEw JyksdGltZSgnMDA6MDA6MDAnKTsKK3RpbWVkaWZmKCcyMDA4LTA5LTI5IDIwOjEwOjEwJywnMjAw OC0wOS0zMCAyMDoxMDoxMCcpCXRpbWUoJzAwOjAwOjAwJykKKy0yNDowMDowMAkwMDowMDowMAor c2VsZWN0IHRpbWVkaWZmKCcyMDA4LTA5LTI5IDIwOjEwOjEwJywnMjAwOC0wOS0zMCAyMDoxMDox MCcpPnRpbWUoJzAwOjAwOjAwJyk7Cit0aW1lZGlmZignMjAwOC0wOS0yOSAyMDoxMDoxMCcsJzIw MDgtMDktMzAgMjA6MTA6MTAnKT50aW1lKCcwMDowMDowMCcpCiswCitzZWxlY3QgdGltZWRpZmYo JzIwMDgtMDktMjkgMjA6MTA6MTAnLCcyMDA4LTA5LTMwIDIwOjEwOjEwJyk8dGltZSgnMDA6MDA6 MDAnKTsKK3RpbWVkaWZmKCcyMDA4LTA5LTI5IDIwOjEwOjEwJywnMjAwOC0wOS0zMCAyMDoxMDox MCcpPHRpbWUoJzAwOjAwOjAwJykKKzEKK1NFTEVDVCBDQVNUKHRpbWUoJy03Mzo0MjoxMicpIEFT IERFQ0lNQUwpOworQ0FTVCh0aW1lKCctNzM6NDI6MTInKSBBUyBERUNJTUFMKQorLTczNDIxMgoK PT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvci9wZXJyb3Itd2luLnJlc3VsdCcKLS0tIGEv bXlzcWwtdGVzdC9yL3BlcnJvci13aW4ucmVzdWx0CTIwMDgtMTEtMjcgMTI6MzM6NDAgKzAwMDAK KysrIGIvbXlzcWwtdGVzdC9yL3BlcnJvci13aW4ucmVzdWx0CTIwMDgtMTItMDEgMTk6NTE6MDEg KzAwMDAKQEAgLTEsNSArMSw3IEBACiBNeVNRTCBlcnJvciBjb2RlIDE1MDogRm9yZWlnbiBrZXkg Y29uc3RyYWludCBpcyBpbmNvcnJlY3RseSBmb3JtZWQKLVdpbjMyIGVycm9yIGNvZGUgMTUwOiBT eXN0ZW0gdHJhY2UgaW5mb3JtYXRpb24gd2FzIG5vdCBzcGVjaWZpZWQgaW4geW91ciBDT05GSUcu U1lTIGZpbGUsIG9yIHRyYWNpbmcgaXMgZGlzYWxsb3dlZC4KK1dpbjMyIGVycm9yIGNvZGUgMTUw OiBTeXN0ZW0gdHJhY2UgaW5mb3JtYXRpb24gd2FzIG5vdCBzcGVjaWZpZWQgaW4geW91ciBDT05G SUcuU1lTIGZpbGUsIG9yIHRyYWNpbmcgaXMgZGlzYWxsb3dlZC4NCiBPUyBlcnJvciBjb2RlICAy MzogIFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtCi1XaW4zMiBlcnJvciBjb2RlIDIzOiBE YXRhIGVycm9yIChjeWNsaWMgcmVkdW5kYW5jeSBjaGVjaykuCi1XaW4zMiBlcnJvciBjb2RlIDE1 MDAwOiBUaGUgc3BlY2lmaWVkIGNoYW5uZWwgcGF0aCBpcyBpbnZhbGlkLgorV2luMzIgZXJyb3Ig Y29kZSAyMzogRGF0YSBlcnJvciAoY3ljbGljIHJlZHVuZGFuY3kgY2hlY2spLg0KK015U1FMIGVy cm9yIGNvZGUgMTA2MiAoRVJfRFVQX0VOVFJZKTogRHVwbGljYXRlIGVudHJ5ICclLS4xOTJzJyBm b3Iga2V5ICVkCitXaW4zMiBlcnJvciBjb2RlIDEwNjI6IFRoZSBzZXJ2aWNlIGhhcyBub3QgYmVl biBzdGFydGVkLg0KK0lsbGVnYWwgZXJyb3IgY29kZTogMzAwMDAKCj09PSBtb2RpZmllZCBmaWxl ICdteXNxbC10ZXN0L3IvcmVhZF9idWZmZXJfc2l6ZV9iYXNpYy5yZXN1bHQnCi0tLSBhL215c3Fs LXRlc3Qvci9yZWFkX2J1ZmZlcl9zaXplX2Jhc2ljLnJlc3VsdAkyMDA4LTA0LTEwIDEzOjE0OjI4 ICswMDAwCisrKyBiL215c3FsLXRlc3Qvci9yZWFkX2J1ZmZlcl9zaXplX2Jhc2ljLnJlc3VsdAky MDA4LTExLTEwIDE3OjMwOjEzICswMDAwCkBAIC04Niw2ICs4Niw4IEBAIFNFTEVDVCBAQGdsb2Jh bC5yZWFkX2J1ZmZlcl9zaXplPSA4MjAwIE8KIEBAZ2xvYmFsLnJlYWRfYnVmZmVyX3NpemU9IDgy MDAgT1IgQEBnbG9iYWwucmVhZF9idWZmZXJfc2l6ZT0gODIyOAogMQogU0VUIEBAZ2xvYmFsLnJl YWRfYnVmZmVyX3NpemUgPSAyMTQ3NDc5NTUzOworV2FybmluZ3M6CitXYXJuaW5nCTEyOTIJVHJ1 bmNhdGVkIGluY29ycmVjdCByZWFkX2J1ZmZlcl9zaXplIHZhbHVlOiAnMjE0NzQ3OTU1MycKIFNF TEVDVCBAQGdsb2JhbC5yZWFkX2J1ZmZlcl9zaXplOwogQEBnbG9iYWwucmVhZF9idWZmZXJfc2l6 ZQogMjE0NzQ3OTU1MgpAQCAtMTE0LDYgKzExNiw4IEBAIFNFTEVDVCBAQHNlc3Npb24ucmVhZF9i dWZmZXJfc2l6ZT0gODIwMCAKIFNFVCBAQHNlc3Npb24ucmVhZF9idWZmZXJfc2l6ZSA9IDY1NTMw LjM0LjsKIEVSUk9SIDQyMDAwOiBZb3UgaGF2ZSBhbiBlcnJvciBpbiB5b3VyIFNRTCBzeW50YXg7 IGNoZWNrIHRoZSBtYW51YWwgdGhhdCBjb3JyZXNwb25kcyB0byB5b3VyIE15U1FMIHNlcnZlciB2 ZXJzaW9uIGZvciB0aGUgcmlnaHQgc3ludGF4IHRvIHVzZSBuZWFyICcuJyBhdCBsaW5lIDEKIFNF VCBAQHNlc3Npb24ucmVhZF9idWZmZXJfc2l6ZSA9IDIxNDc0Nzk1NTM7CitXYXJuaW5nczoKK1dh cm5pbmcJMTI5MglUcnVuY2F0ZWQgaW5jb3JyZWN0IHJlYWRfYnVmZmVyX3NpemUgdmFsdWU6ICcy MTQ3NDc5NTUzJwogU0VMRUNUIEBAc2Vzc2lvbi5yZWFkX2J1ZmZlcl9zaXplOwogQEBzZXNzaW9u LnJlYWRfYnVmZmVyX3NpemUKIDIxNDc0Nzk1NTIKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10 ZXN0L3Ivc3Vic2VsZWN0LnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9yL3N1YnNlbGVjdC5yZXN1 bHQJMjAwOC0xMS0yNyAxNDoyNTowMiArMDAwMAorKysgYi9teXNxbC10ZXN0L3Ivc3Vic2VsZWN0 LnJlc3VsdAkyMDA4LTExLTI4IDExOjQwOjQwICswMDAwCkBAIC00NjU5LDM2ICs0NjU5LDYgQEAg U0VMRUNUIHQxLmEsIChTRUxFQ1QgMSBGUk9NIHQyIFdIRVJFIHQyLgogYQlpbmNvcnJlY3QKIDEJ MQogRFJPUCBUQUJMRSB0MSx0Mix0MzsKLUNSRUFURSBUQUJMRSB0MSAoaWQgaW50KTsKLUNSRUFU RSBUQUJMRSB0MiAoaWQgaW50LCBjIGludCk7Ci1JTlNFUlQgSU5UTyB0MSAoaWQpIFZBTFVFUyAo MSk7Ci1JTlNFUlQgSU5UTyB0MiAoaWQpIFZBTFVFUyAoMSk7Ci1JTlNFUlQgSU5UTyB0MSAoaWQp IFZBTFVFUyAoMSk7Ci1JTlNFUlQgSU5UTyB0MiAoaWQpIFZBTFVFUyAoMSk7Ci1DUkVBVEUgVklF VyB2MSBBUwotU0VMRUNUIHQyLmMgQVMgYyBGUk9NIHQxLCB0MgotV0hFUkUgdDEuaWQ9dDIuaWQg QU5EIDEgSU4gKFNFTEVDVCBpZCBGUk9NIHQxKSBXSVRIIENIRUNLIE9QVElPTjsKLVVQREFURSB2 MSBTRVQgYz0xOwotQ1JFQVRFIFZJRVcgdjIgKGEsYikgQVMKLVNFTEVDVCB0Mi5pZCwgdDIuYyBB UyBjIEZST00gdDEsIHQyCi1XSEVSRSB0MS5pZD10Mi5pZCBBTkQgMSBJTiAoU0VMRUNUIGlkIEZS T00gdDEpIFdJVEggQ0hFQ0sgT1BUSU9OOwotSU5TRVJUIElOVE8gdjIoYSxiKSBWQUxVRVMgKDIs Mik7Ci1FUlJPUiBIWTAwMDogQ0hFQ0sgT1BUSU9OIGZhaWxlZCAndGVzdC52MicKLUlOU0VSVCBJ TlRPIHYyKGEsYikgVkFMVUVTICgxLDIpOwotU0VMRUNUICogRlJPTSB2MTsKLWMKLTEKLTEKLTEK LTEKLTIKLTIKLUNSRUFURSBWSUVXIHYzIEFTCi1TRUxFQ1QgdDIuYyBBUyBjIEZST00gdDIKLVdI RVJFIDEgSU4gKFNFTEVDVCBpZCBGUk9NIHQxKSBXSVRIIENIRUNLIE9QVElPTjsKLURFTEVURSBG Uk9NIHYzOwotRFJPUCBWSUVXIHYxLHYyLHYzOwotRFJPUCBUQUJMRSB0MSx0MjsKIEVuZCBvZiA1 LjEgdGVzdHMuCiBDUkVBVEUgVEFCTEUgdDEoIGEgSU5UICk7CiBJTlNFUlQgSU5UTyB0MSBWQUxV RVMgKDEpLCgyKTsKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3IvdGltZXpvbmUyLnJl c3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9yL3RpbWV6b25lMi5yZXN1bHQJMjAwNy0wMy0wOSAxMDox MjozMSArMDAwMAorKysgYi9teXNxbC10ZXN0L3IvdGltZXpvbmUyLnJlc3VsdAkyMDA4LTEyLTAx IDE1OjQzOjUxICswMDAwCkBAIC0xMTAsNyArMTEwLDcgQEAgaQl0cwogMzYyNzkzNjEwCTE5ODEt MDctMDEgMDQ6MDA6MDAKIHNlbGVjdCBmcm9tX3VuaXh0aW1lKDM2Mjc5MzYwOSk7CiBmcm9tX3Vu aXh0aW1lKDM2Mjc5MzYwOSkKLTE5ODEtMDctMDEgMDM6NTk6NjAKKzE5ODEtMDctMDEgMDM6NTk6 NTkKIGRyb3AgdGFibGUgdDE7CiBjcmVhdGUgdGFibGUgdDEgKHRzIHRpbWVzdGFtcCk7CiBzZXQg dGltZV96b25lPSdVVEMnOwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvci90aW1lem9u ZTMucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3IvdGltZXpvbmUzLnJlc3VsdAkyMDA0LTExLTEy IDE1OjQ0OjE3ICswMDAwCisrKyBiL215c3FsLXRlc3Qvci90aW1lem9uZTMucmVzdWx0CTIwMDgt MTItMDEgMTQ6MTg6MzUgKzAwMDAKQEAgLTE3LDYgKzE3LDkgQEAgaW5zZXJ0IGludG8gdDEgdmFs dWVzCiBpbnNlcnQgaW50byB0MSB2YWx1ZXMKICh1bml4X3RpbWVzdGFtcCgnMTk4MS0wNy0wMSAw Mzo1OTo1OScpLCcxOTgxLTA3LTAxIDAzOjU5OjU5JyksCiAodW5peF90aW1lc3RhbXAoJzE5ODEt MDctMDEgMDQ6MDA6MDAnKSwnMTk4MS0wNy0wMSAwNDowMDowMCcpOworaW5zZXJ0IGludG8gdDEg dmFsdWVzCisodW5peF90aW1lc3RhbXAoJzIwMDktMDEtMDEgMDI6NTk6NTknKSwnMjAwOS0wMS0w MSAwMjo1OTo1OScpLAorKHVuaXhfdGltZXN0YW1wKCcyMDA5LTAxLTAxIDAzOjAwOjAwJyksJzIw MDktMDEtMDEgMDM6MDA6MDAnKTsKIHNlbGVjdCBpLCBmcm9tX3VuaXh0aW1lKGkpLCBjIGZyb20g dDE7CiBpCWZyb21fdW5peHRpbWUoaSkJYwogMTA3MjkwNDQyMgkyMDA0LTAxLTAxIDAwOjAwOjAw CTIwMDQtMDEtMDEgMDA6MDA6MDAKQEAgLTMxLDYgKzM0LDggQEAgaQlmcm9tX3VuaXh0aW1lKGkp CWMKIDEwOTkxODA4MjEJMjAwNC0xMC0zMSAwMjo1OTo1OQkyMDA0LTEwLTMxIDAyOjU5OjU5CiAz NjI3OTM2MDgJMTk4MS0wNy0wMSAwMzo1OTo1OQkxOTgxLTA3LTAxIDAzOjU5OjU5CiAzNjI3OTM2 MTAJMTk4MS0wNy0wMSAwNDowMDowMAkxOTgxLTA3LTAxIDA0OjAwOjAwCisxMjMwNzY4MDIyCTIw MDktMDEtMDEgMDI6NTk6NTkJMjAwOS0wMS0wMSAwMjo1OTo1OQorMTIzMDc2ODAyNAkyMDA5LTAx LTAxIDAzOjAwOjAwCTIwMDktMDEtMDEgMDM6MDA6MDAKIGRyb3AgdGFibGUgdDE7CiBjcmVhdGUg dGFibGUgdDEgKHRzIHRpbWVzdGFtcCk7CiBpbnNlcnQgaW50byB0MSB2YWx1ZXMgKDE5NzMwMTAx MjM1OTAwKSwgKDIwMDQwMTAxMjM1OTAwKTsKQEAgLTM5LDMgKzQ0LDYgQEAgdHMKIDE5NzMtMDEt MDEgMjM6NTk6MDAKIDIwMDQtMDEtMDEgMjM6NTk6MDAKIGRyb3AgdGFibGUgdDE7CitTRUxFQ1Qg RlJPTV9VTklYVElNRSgxMjMwNzY4MDIyKSwgRlJPTV9VTklYVElNRSgxMjMwNzY4MDIzKSwgRlJP TV9VTklYVElNRSgxMjMwNzY4MDI0KTsKK0ZST01fVU5JWFRJTUUoMTIzMDc2ODAyMikJRlJPTV9V TklYVElNRSgxMjMwNzY4MDIzKQlGUk9NX1VOSVhUSU1FKDEyMzA3NjgwMjQpCisyMDA5LTAxLTAx IDAyOjU5OjU5CTIwMDktMDEtMDEgMDI6NTk6NTkJMjAwOS0wMS0wMSAwMzowMDowMAoKPT09IG1v ZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvci91cGRhdGUucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0 L3IvdXBkYXRlLnJlc3VsdAkyMDA3LTA0LTI3IDA4OjQyOjE1ICswMDAwCisrKyBiL215c3FsLXRl c3Qvci91cGRhdGUucmVzdWx0CTIwMDgtMTEtMjggMTY6MzY6MDcgKzAwMDAKQEAgLTQ5MSw0ICs0 OTEsMTUgQEAgdXBkYXRlIHQxIGpvaW4gdDIgb24gKHQxLmE9dDIuYSkgc2V0IHQxLgogYWZmZWN0 ZWQgcm93czogMTI3CiBpbmZvOiBSb3dzIG1hdGNoZWQ6IDEyOCAgQ2hhbmdlZDogMTI3ICBXYXJu aW5nczogMAogZHJvcCB0YWJsZSB0MSx0MjsKK0RST1AgVEFCTEUgSUYgRVhJU1RTIHQxOworRFJP UCBGVU5DVElPTiBJRiBFWElTVFMgZjE7CitDUkVBVEUgRlVOQ1RJT04gZjEoKSBSRVRVUk5TIElO VCBSRVRVUk4gZjEoKTsKK0NSRUFURSBUQUJMRSB0MSAoaSBJTlQpOworSU5TRVJUIElOVE8gdDEg VkFMVUVTICgxKTsKK1VQREFURSB0MSBTRVQgaSA9IDMgV0hFUkUgZjEoKTsKK0VSUk9SIEhZMDAw OiBSZWN1cnNpdmUgc3RvcmVkIGZ1bmN0aW9ucyBhbmQgdHJpZ2dlcnMgYXJlIG5vdCBhbGxvd2Vk LgorVVBEQVRFIHQxIFNFVCBpID0gZjEoKTsKK0VSUk9SIEhZMDAwOiBSZWN1cnNpdmUgc3RvcmVk IGZ1bmN0aW9ucyBhbmQgdHJpZ2dlcnMgYXJlIG5vdCBhbGxvd2VkLgorRFJPUCBUQUJMRSB0MTsK K0RST1AgRlVOQ1RJT04gZjE7CiBFbmQgb2YgNS4wIHRlc3RzCgo9PT0gbW9kaWZpZWQgZmlsZSAn bXlzcWwtdGVzdC9yL3ZhcmlhYmxlcy5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvci92YXJpYWJs ZXMucmVzdWx0CTIwMDgtMTEtMjQgMjA6NDY6MTEgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9yL3Zh cmlhYmxlcy5yZXN1bHQJMjAwOC0xMS0yNyAxMTowMTo1OSArMDAwMApAQCAtMTMyNSwxOSArMTMy NSw2IEBAIEVSUk9SIEhZMDAwOiBWYXJpYWJsZSAnc2tpcF9zaG93X2RhdGFiYXMKIFNFVCBAQGds b2JhbC5za2lwX3Nob3dfZGF0YWJhc2U9IHRydWU7CiBFUlJPUiBIWTAwMDogVmFyaWFibGUgJ3Nr aXBfc2hvd19kYXRhYmFzZScgaXMgYSByZWFkIG9ubHkgdmFyaWFibGUKICMKLVNIT1cgVkFSSUFC TEVTIGxpa2UgJ3NvY2tldCc7Ci1WYXJpYWJsZV9uYW1lCVZhbHVlCi1zb2NrZXQJIwotU0VMRUNU IEBAc2Vzc2lvbi5zb2NrZXQ7Ci1FUlJPUiBIWTAwMDogVmFyaWFibGUgJ3NvY2tldCcgaXMgYSBH TE9CQUwgdmFyaWFibGUKLVNFTEVDVCBAQGdsb2JhbC5zb2NrZXQ7Ci1AQGdsb2JhbC5zb2NrZXQK LSMKLVNFVCBAQHNlc3Npb24uc29ja2V0PSAneCc7Ci1FUlJPUiBIWTAwMDogVmFyaWFibGUgJ3Nv Y2tldCcgaXMgYSByZWFkIG9ubHkgdmFyaWFibGUKLVNFVCBAQGdsb2JhbC5zb2NrZXQ9ICd4JzsK LUVSUk9SIEhZMDAwOiBWYXJpYWJsZSAnc29ja2V0JyBpcyBhIHJlYWQgb25seSB2YXJpYWJsZQot IwogU0hPVyBWQVJJQUJMRVMgbGlrZSAndGhyZWFkX3N0YWNrJzsKIFZhcmlhYmxlX25hbWUJVmFs dWUKIHRocmVhZF9zdGFjawkjCgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9yL3ZpZXcu cmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3Ivdmlldy5yZXN1bHQJMjAwOC0xMC0yOSAxMzo1NTow NCArMDAwMAorKysgYi9teXNxbC10ZXN0L3Ivdmlldy5yZXN1bHQJMjAwOC0xMS0yOCAxNzo1MTo0 NyArMDAwMApAQCAtNjI1LDcgKzYyNSw3IEBAIGRyb3AgdGFibGUgdDE7CiBjcmVhdGUgdGFibGUg dDEgKGEgaW50LCBiIGludCk7CiBjcmVhdGUgdmlldyB2MSBhcyBzZWxlY3QgYSwgc3VtKGIpIGZy b20gdDEgZ3JvdXAgYnkgYTsKIHNlbGVjdCBiIGZyb20gdjEgdXNlIGluZGV4IChzb21lX2luZGV4 KSB3aGVyZSBiPTE7Ci1FUlJPUiBIWTAwMDogSW5jb3JyZWN0IHVzYWdlIG9mIGluZGV4IGhpbnRz IGFuZCBWSUVXCitFUlJPUiA0MjAwMDogS2V5ICdzb21lX2luZGV4JyBkb2Vzbid0IGV4aXN0IGlu IHRhYmxlICd2MScKIGRyb3AgdmlldyB2MTsKIGRyb3AgdGFibGUgdDE7CiBjcmVhdGUgdGFibGUg dDEgKGNvbDEgY2hhcig1KSxjb2wyIGNoYXIoNSkpOwpAQCAtMzU2MywxMSArMzU2MywxMSBAQCBD UkVBVEUgVEFCTEUgdDEgKGEgSU5UKTsKIElOU0VSVCBJTlRPIHQxIFZBTFVFUyAoMSksKDIpOwog Q1JFQVRFIFZJRVcgdjEgQVMgU0VMRUNUICogRlJPTSB0MTsKIFNFTEVDVCAqIEZST00gdjEgVVNF IEtFWShub25fZXhpc3RhbnQpOwotRVJST1IgSFkwMDA6IEluY29ycmVjdCB1c2FnZSBvZiBpbmRl eCBoaW50cyBhbmQgVklFVworRVJST1IgNDIwMDA6IEtleSAnbm9uX2V4aXN0YW50JyBkb2Vzbid0 IGV4aXN0IGluIHRhYmxlICd2MScKIFNFTEVDVCAqIEZST00gdjEgRk9SQ0UgS0VZKG5vbl9leGlz dGFudCk7Ci1FUlJPUiBIWTAwMDogSW5jb3JyZWN0IHVzYWdlIG9mIGluZGV4IGhpbnRzIGFuZCBW SUVXCitFUlJPUiA0MjAwMDogS2V5ICdub25fZXhpc3RhbnQnIGRvZXNuJ3QgZXhpc3QgaW4gdGFi bGUgJ3YxJwogU0VMRUNUICogRlJPTSB2MSBJR05PUkUgS0VZKG5vbl9leGlzdGFudCk7Ci1FUlJP UiBIWTAwMDogSW5jb3JyZWN0IHVzYWdlIG9mIGluZGV4IGhpbnRzIGFuZCBWSUVXCitFUlJPUiA0 MjAwMDogS2V5ICdub25fZXhpc3RhbnQnIGRvZXNuJ3QgZXhpc3QgaW4gdGFibGUgJ3YxJwogRFJP UCBWSUVXIHYxOwogRFJPUCBUQUJMRSB0MTsKIENSRUFURSBUQUJMRSB0MSAoYSBJTlQgTk9UIE5V TEwgQVVUT19JTkNSRU1FTlQsIGIgSU5UIE5PVCBOVUxMIERFRkFVTFQgMCwKQEAgLTM2NzUsNiAr MzY3NSwzMSBAQCBEUk9QIFZJRVcgdjE7CiAKIENSRUFURSBWSUVXIHYxIEFTIFNFTEVDVCAxOwog RFJPUCBWSUVXIHYxOworQ1JFQVRFIFRBQkxFIHQxIChjMSBJTlQgUFJJTUFSWSBLRVksIGMyIElO VCwgSU5ERVggKGMyKSk7CitJTlNFUlQgSU5UTyB0MSBWQUxVRVMgKDEsMSksICgyLDIpLCAoMywz KTsKK1NFTEVDVCAqIEZST00gdDEgVVNFIElOREVYIChQUklNQVJZKSBXSEVSRSBjMT0yOworYzEJ YzIKKzIJMgorU0VMRUNUICogRlJPTSB0MSBVU0UgSU5ERVggKGMyKSBXSEVSRSBjMj0yOworYzEJ YzIKKzIJMgorQ1JFQVRFIFZJRVcgdjEgQVMgU0VMRUNUIGMxLCBjMiBGUk9NIHQxOworU0hPVyBJ TkRFWCBGUk9NIHYxOworVGFibGUJTm9uX3VuaXF1ZQlLZXlfbmFtZQlTZXFfaW5faW5kZXgJQ29s dW1uX25hbWUJQ29sbGF0aW9uCUNhcmRpbmFsaXR5CVN1Yl9wYXJ0CVBhY2tlZAlOdWxsCUluZGV4 X3R5cGUJQ29tbWVudAlJbmRleF9Db21tZW50CitTRUxFQ1QgKiBGUk9NIHYxIFVTRSBJTkRFWCAo UFJJTUFSWSkgV0hFUkUgYzE9MjsKK0VSUk9SIDQyMDAwOiBLZXkgJ1BSSU1BUlknIGRvZXNuJ3Qg ZXhpc3QgaW4gdGFibGUgJ3YxJworU0VMRUNUICogRlJPTSB2MSBGT1JDRSBJTkRFWCAoUFJJTUFS WSkgV0hFUkUgYzE9MjsKK0VSUk9SIDQyMDAwOiBLZXkgJ1BSSU1BUlknIGRvZXNuJ3QgZXhpc3Qg aW4gdGFibGUgJ3YxJworU0VMRUNUICogRlJPTSB2MSBJR05PUkUgSU5ERVggKFBSSU1BUlkpIFdI RVJFIGMxPTI7CitFUlJPUiA0MjAwMDogS2V5ICdQUklNQVJZJyBkb2Vzbid0IGV4aXN0IGluIHRh YmxlICd2MScKK1NFTEVDVCAqIEZST00gdjEgVVNFIElOREVYIChjMikgV0hFUkUgYzI9MjsKK0VS Uk9SIDQyMDAwOiBLZXkgJ2MyJyBkb2Vzbid0IGV4aXN0IGluIHRhYmxlICd2MScKK1NFTEVDVCAq IEZST00gdjEgRk9SQ0UgSU5ERVggKGMyKSBXSEVSRSBjMj0yOworRVJST1IgNDIwMDA6IEtleSAn YzInIGRvZXNuJ3QgZXhpc3QgaW4gdGFibGUgJ3YxJworU0VMRUNUICogRlJPTSB2MSBJR05PUkUg SU5ERVggKGMyKSBXSEVSRSBjMj0yOworRVJST1IgNDIwMDA6IEtleSAnYzInIGRvZXNuJ3QgZXhp c3QgaW4gdGFibGUgJ3YxJworRFJPUCBWSUVXIHYxOworRFJPUCBUQUJMRSB0MTsKICMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICMgLS0gRW5kIG9mIDUuMCB0ZXN0cy4KICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTM4MDksMyArMzgzNCwz MyBAQCBjcmVhdGUgdmlldyB2Xzk4MDEgYXMKIHNlbGVjdCBzdW0oczEpIGZyb20gdF85ODAxIGdy b3VwIGJ5IHMxIHdpdGggcm9sbHVwIHdpdGggY2hlY2sgb3B0aW9uOwogRVJST1IgSFkwMDA6IENI RUNLIE9QVElPTiBvbiBub24tdXBkYXRhYmxlIHZpZXcgJ3Rlc3Qudl85ODAxJwogZHJvcCB0YWJs ZSB0Xzk4MDE7CitDUkVBVEUgVEFCTEUgdDEgKGlkIGludCk7CitDUkVBVEUgVEFCTEUgdDIgKGlk IGludCwgYyBpbnQpOworSU5TRVJUIElOVE8gdDEgKGlkKSBWQUxVRVMgKDEpOworSU5TRVJUIElO VE8gdDIgKGlkKSBWQUxVRVMgKDEpOworSU5TRVJUIElOVE8gdDEgKGlkKSBWQUxVRVMgKDEpOwor SU5TRVJUIElOVE8gdDIgKGlkKSBWQUxVRVMgKDEpOworQ1JFQVRFIFZJRVcgdjEgQVMKK1NFTEVD VCB0Mi5jIEFTIGMgRlJPTSB0MSwgdDIKK1dIRVJFIHQxLmlkPXQyLmlkIEFORCAxIElOIChTRUxF Q1QgaWQgRlJPTSB0MSkgV0lUSCBDSEVDSyBPUFRJT047CitVUERBVEUgdjEgU0VUIGM9MTsKK0NS RUFURSBWSUVXIHYyIChhLGIpIEFTCitTRUxFQ1QgdDIuaWQsIHQyLmMgQVMgYyBGUk9NIHQxLCB0 MgorV0hFUkUgdDEuaWQ9dDIuaWQgQU5EIDEgSU4gKFNFTEVDVCBpZCBGUk9NIHQxKSBXSVRIIENI RUNLIE9QVElPTjsKK0lOU0VSVCBJTlRPIHYyKGEsYikgVkFMVUVTICgyLDIpOworRVJST1IgSFkw MDA6IENIRUNLIE9QVElPTiBmYWlsZWQgJ3Rlc3QudjInCitJTlNFUlQgSU5UTyB2MihhLGIpIFZB TFVFUyAoMSwyKTsKK1NFTEVDVCAqIEZST00gdjE7CitjCisxCisxCisxCisxCisyCisyCitDUkVB VEUgVklFVyB2MyBBUworU0VMRUNUIHQyLmMgQVMgYyBGUk9NIHQyCitXSEVSRSAxIElOIChTRUxF Q1QgaWQgRlJPTSB0MSkgV0lUSCBDSEVDSyBPUFRJT047CitERUxFVEUgRlJPTSB2MzsKK0RST1Ag VklFVyB2MSx2Mix2MzsKK0RST1AgVEFCTEUgdDEsdDI7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlz cWwtdGVzdC9zdGRfZGF0YS9Nb3Njb3dfbGVhcCcKRGF0ZWllbiBhL215c3FsLXRlc3Qvc3RkX2Rh dGEvTW9zY293X2xlYXAJMjAwNC0xMS0wMyAxNzo1OTowMyArMDAwMCB1bmQgYi9teXNxbC10ZXN0 L3N0ZF9kYXRhL01vc2Nvd19sZWFwCTIwMDgtMTItMDEgMTQ6MTg6MzUgKzAwMDAgc2luZCB2ZXJz Y2hpZWRlbi4KCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2ZhbGNvbi9yL2Zh bGNvbl9idWdfMjIxODQucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2ZhbGNvbi9yL2Zh bGNvbl9idWdfMjIxODQucmVzdWx0CTIwMDctMDktMjAgMTU6NDQ6MjUgKzAwMDAKKysrIGIvbXlz cWwtdGVzdC9zdWl0ZS9mYWxjb24vci9mYWxjb25fYnVnXzIyMTg0LnJlc3VsdAkyMDA4LTEyLTAx IDE0OjI5OjQ1ICswMDAwCkBAIC0xLDcgKzEsNiBAQAogU0VUIFNUT1JBR0VfRU5HSU5FID0gRmFs Y29uOwogKioqIEJ1ZyAjMjIxODQgKioqCiBEUk9QIFRBQkxFIElGIEVYSVNUUyB0NjsKLVNFVCBA QG1heF9hbGxvd2VkX3BhY2tldCA9IDIwMDAwMDAwOwogQ1JFQVRFIFRBQkxFIHQ2IChzMSBsb25n YmxvYik7CiBJTlNFUlQgSU5UTyB0NiBWQUxVRVMgKHJlcGVhdCgnYScsMjEwMDAwMCkpOwogSU5T RVJUIElOVE8gdDYgVkFMVUVTIChyZXBlYXQoJ2EnLDIyMDAwMDApKTsKCj09PSBhZGRlZCBmaWxl ICdteXNxbC10ZXN0L3N1aXRlL2ZhbGNvbi90L2ZhbGNvbl9idWdfMjIxODQtbWFzdGVyLm9wdCcK LS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vdC9mYWxjb25fYnVnXzIyMTg0LW1hc3Rlci5v cHQJMTk3MC0wMS0wMSAwMDowMDowMCArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRlL2ZhbGNv bi90L2ZhbGNvbl9idWdfMjIxODQtbWFzdGVyLm9wdAkyMDA4LTEyLTAxIDE0OjI5OjQ1ICswMDAw CkBAIC0wLDAgKzEgQEAKKy0tbWF4X2FsbG93ZWRfcGFja2V0PTIwMDAwMDAwCgo9PT0gbW9kaWZp ZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vdC9mYWxjb25fYnVnXzIyMTg0LnRlc3Qn Ci0tLSBhL215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3QvZmFsY29uX2J1Z18yMjE4NC50ZXN0CTIw MDctMDktMjkgMDQ6MzA6NDIgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vdC9m YWxjb25fYnVnXzIyMTg0LnRlc3QJMjAwOC0xMi0wMSAxNDoyOTo0NSArMDAwMApAQCAtOCw3ICs4 LDYgQEAgU0VUIFNUT1JBR0VfRU5HSU5FID0gRmFsY29uOwogRFJPUCBUQUJMRSBJRiBFWElTVFMg dDY7CiAtLWVuYWJsZV93YXJuaW5ncwogCi1TRVQgQEBtYXhfYWxsb3dlZF9wYWNrZXQgPSAyMDAw MDAwMDsKIENSRUFURSBUQUJMRSB0NiAoczEgbG9uZ2Jsb2IpOwogSU5TRVJUIElOVE8gdDYgVkFM VUVTIChyZXBlYXQoJ2EnLDIxMDAwMDApKTsKIElOU0VSVCBJTlRPIHQ2IFZBTFVFUyAocmVwZWF0 KCdhJywyMjAwMDAwKSk7Cgo9PT0gYWRkZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9zeXNfdmFy cy90L2Rpc2FibGVkLmRlZicKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9zeXNfdmFycy90L2Rpc2Fi bGVkLmRlZgkxOTcwLTAxLTAxIDAwOjAwOjAwICswMDAwCisrKyBiL215c3FsLXRlc3Qvc3VpdGUv c3lzX3ZhcnMvdC9kaXNhYmxlZC5kZWYJMjAwOC0xMS0yNiAxNToxNjo1OCArMDAwMApAQCAtMCww ICsxLDIxIEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgIExpc3QgdGhlIHRlc3QgY2Fz ZXMgdGhhdCBhcmUgdG8gYmUgZGlzYWJsZWQgdGVtcG9yYXJpbHkuCisjCisjICBTZXBhcmF0ZSB0 aGUgdGVzdCBjYXNlIG5hbWUgYW5kIHRoZSBjb21tZW50IHdpdGggJzonLgorIworIyAgICA8dGVz dGNhc2VuYW1lPiA6IEJVRyM8eHh4eD4gPGRhdGUgZGlzYWJsZWQ+IDxkaXNhYmxlcj4gPGNvbW1l bnQ+CisjCisjICBEbyBub3QgdXNlIGFueSBUQUIgY2hhcmFjdGVycyBmb3Igd2hpdGVzcGFjZS4K KyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwora2V5X2J1ZmZlcl9zaXplX2Jhc2ljXzY0ICAgIDog QnVnICMzNjUyMjogU29tZSB0ZXN0cyBvZiBzeXN0ZW0gdmFyaWFibGVzIGhhdmUgZGlmZnMgb24g NjRiaXQgcGxhdG9ybXMKK3JwbF9yZWNvdmVyeV9yYW5rX2Jhc2ljXzY0ICA6IEJ1ZyAjMzY1MjI6 IFNvbWUgdGVzdHMgb2Ygc3lzdGVtIHZhcmlhYmxlcyBoYXZlIGRpZmZzIG9uIDY0Yml0IHBsYXRv cm1zCitzb3J0X2J1ZmZlcl9zaXplX2Jhc2ljXzY0ICAgOiBCdWcgIzM2NTIyOiBTb21lIHRlc3Rz IG9mIHN5c3RlbSB2YXJpYWJsZXMgaGF2ZSBkaWZmcyBvbiA2NGJpdCBwbGF0b3JtcworcXVlcnlf Y2FjaGVfc2l6ZV9iYXNpY18zMiAgIDogQnVnIzM2NzQ3OiBBbGxvY2F0aW5nIGEgbGFyZ2UgcXVl cnkgY2FjaGUgaXMgbm90IGRldGVybWluaXN0aWMKK3F1ZXJ5X2NhY2hlX3NpemVfYmFzaWNfNjQg ICA6IEJ1ZyMzNjc0NzogQWxsb2NhdGluZyBhIGxhcmdlIHF1ZXJ5IGNhY2hlIGlzIG5vdCBkZXRl cm1pbmlzdGljCitxdWVyeV9hbGxvY19ibG9ja19zaXplX2Jhc2ljXzY0OiAgQnVnICMzNzcwOCBx dWVyeV9hbGxvY19ibG9ja19zaXplX2Jhc2ljXzY0IGZhaWxzIGluIHB1c2hidWlsZAorc29ydF9i dWZmZXJfc2l6ZV9iYXNpY18zMiAgIDogQnVnIzM2ODc1IG1haW4uc29ydF9idWZmZXJfc2l6ZV9i YXNpY18zMiBmYWlscyBvbiBzb21lIHN5c3RlbXMKK2tleV9idWZmZXJfc2l6ZV9iYXNpY18zMiAg ICA6IEJ1ZyMzNjg3NiBtYWluLmtleV9idWZmZXJfc2l6ZV9iYXNpY18zMiBmYWlscyBvbiBzb21l IHN5c3RlbXMKK21heF9oZWFwX3RhYmxlX3NpemVfYmFzaWNfMzIgOiBCdWcjMzY4NzcgbWFpbi5t YXhfaGVhcF90YWJsZV9zaXplX2Jhc2ljXzMyIGZhaWxzIG9uIHNvbWUgc3lzdGVtcwordG1wX3Rh YmxlX3NpemVfYmFzaWNfMzIgICAgIDogQnVnIzM2ODc4IG1haW4udG1wX3RhYmxlX3NpemVfYmFz aWNfMzIgZmFpbHMgb24gc29tZSBzeXN0ZW1zCgo9PT0gYWRkZWQgZmlsZSAnbXlzcWwtdGVzdC90 L2N0eXBlX2ZpbGVzeXN0ZW0tbWFzdGVyLm9wdCcKLS0tIGEvbXlzcWwtdGVzdC90L2N0eXBlX2Zp bGVzeXN0ZW0tbWFzdGVyLm9wdAkxOTcwLTAxLTAxIDAwOjAwOjAwICswMDAwCisrKyBiL215c3Fs LXRlc3QvdC9jdHlwZV9maWxlc3lzdGVtLW1hc3Rlci5vcHQJMjAwOC0xMi0wMSAxMTozNDo1MyAr MDAwMApAQCAtMCwwICsxLDIgQEAKKy0tY2hhcmFjdGVyLXNldHMtZGlyPSRNWVNRTF9URVNUX0RJ Ui/vv70rLS1jaGFyYWN0ZXItc2V0LWZpbGVzeXN0ZW09bGF0aW4xCgo9PT0gYWRkZWQgZmlsZSAn bXlzcWwtdGVzdC90L2N0eXBlX2ZpbGVzeXN0ZW0udGVzdCcKLS0tIGEvbXlzcWwtdGVzdC90L2N0 eXBlX2ZpbGVzeXN0ZW0udGVzdAkxOTcwLTAxLTAxIDAwOjAwOjAwICswMDAwCisrKyBiL215c3Fs LXRlc3QvdC9jdHlwZV9maWxlc3lzdGVtLnRlc3QJMjAwOC0xMi0wMSAxMTozNDo1MyArMDAwMApA QCAtMCwwICsxLDYgQEAKK1NFVCBDSEFSQUNURVIgU0VUIHV0Zjg7CistLXJlcGxhY2VfcmVzdWx0 ICRNWVNRTF9URVNUX0RJUiBNWVNRTF9URVNUX0RJUgorU0hPVyBWQVJJQUJMRVMgbGlrZSAnY2hh cmFjdGVyX3NldHNfZGlyJzsKK1NIT1cgVkFSSUFCTEVTIGxpa2UgJ2NoYXJhY3Rlcl9zZXRfZmls ZXN5c3RlbSc7CitTSE9XIFZBUklBQkxFUyBsaWtlICdjaGFyYWN0ZXJfc2V0X2NsaWVudCc7CitT RVQgQ0hBUkFDVEVSIFNFVCBkZWZhdWx0OwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qv dC9kaXNhYmxlZC5kZWYnCi0tLSBhL215c3FsLXRlc3QvdC9kaXNhYmxlZC5kZWYJMjAwOC0xMS0y NyAxNjo0NToyNSArMDAwMAorKysgYi9teXNxbC10ZXN0L3QvZGlzYWJsZWQuZGVmCTIwMDgtMTIt MDQgMDk6NDk6NTkgKzAwMDAKQEAgLTEyLDExICsxMiwxMSBAQAogaW5ub2RiICAgICAgICAgIDog V0wjMTIxMzogV2FpdGluZyBmb3IgSW5ub0RCIHRlYW0gdG8gYWRkIHN1cHBvcnQgZm9yIDQtYnl0 ZSBjaGFyYWN0ZXIgc2V0cy4KIGZlZGVyYXRlZF90cmFuc2FjdGlvbnMgICA6IEJ1ZyMyOTUyMyBU cmFuc2FjdGlvbnMgZG8gbm90IHdvcmsKIGxvd2VyY2FzZV90YWJsZTMgICAgICAgICA6IEJ1ZyMz MjY2NyBsb3dlcmNhc2VfdGFibGUzLnRlc3QgcmVwb3J0cyB0byBlcnJvciBsb2cKLXJwbF9sb2df cG9zICAgICAgICAgIDogQnVnIzg2OTMgVGVzdCAncnBsX2xvZ19wb3MnIGZhaWxzIHNvbWV0aW1l cwogY3R5cGVfY3JlYXRlICAgICAgICAgOiBCdWcjMzI5NjUgbWFpbi5jdHlwZV9jcmVhdGUgZmFp bHMKIGJhY2t1cF9ub19lbmdpbmUgICAgIDogQnVnIzM2MDIxIDIwMDgtMDQtMTMgcnNvbWxhIHNl cnZlciBjcmFzaGVzIHdoZW4gb3Blbm5pbmcgdGFibGUgd2l0aCB1bmtub3duIHN0b3JhZ2UgZW5n aW5lCiBjc3ZfYWx0ZXJfdGFibGUgICAgICA6IEJ1ZyMzMzY5NiAyMDA4LTAxLTIxIHBjcmV3cyBu byAucmVzdWx0IGZpbGUgLSBidWcgYWxsb3dzIE5VTEwgY29sdW1ucyBpbiBDU1YgdGFibGVzCiBx dWVyeV9jYWNoZV93bG9ja19pbnZhbGlkYXRlX2Z1bmM6IEJ1ZyMzNTM5MCBjYXVzZXMgbm90IGRl dGVybWluaXN0aWMgcmVzdWx0cy4KK2Nzdl9hbHRlcl90YWJsZSAgICAgIDogQnVnIzMzNjk2IDIw MDgtMDEtMjEgcGNyZXdzIG5vIC5yZXN1bHQgZmlsZSAtIGJ1ZyBhbGxvd3MgTlVMTCBjb2x1bW5z IGluIENTViB0YWJsZXMKIGNhc3QgICAgICAgICAgICAgICAgIDogQnVnIzM1NTk0IDIwMDgtMDMt MjcgbWFpbi5jYXN0IGZhaWxzIG9uIFdpbmRvd3MyMDAzLTY0CiBtYXJpYS1wcmVsb2FkICAgICAg ICA6IEJ1ZyMzNTEwNyBjcmFzaGVzCiBrZXlfYnVmZmVyX3NpemVfYmFzaWNfNjQgICAgOiBCdWcg IzM2NTIyOiBTb21lIHRlc3RzIG9mIHN5c3RlbSB2YXJpYWJsZXMgaGF2ZSBkaWZmcyBvbiA2NGJp dCBwbGF0b3JtcwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3QvdC9mdW5jX3NhcGRiLnRl c3QnCi0tLSBhL215c3FsLXRlc3QvdC9mdW5jX3NhcGRiLnRlc3QJMjAwNy0xMC0xMiAwOTo0Nzoy OCArMDAwMAorKysgYi9teXNxbC10ZXN0L3QvZnVuY19zYXBkYi50ZXN0CTIwMDgtMTEtMjcgMTE6 MzM6MDQgKzAwMDAKQEAgLTEzNSwzICsxMzUsMjAgQEAgc2VsZWN0IHN0cl90b19kYXRlKCIyMDAz LTAxLTAyIDEwOjExOjEyLgogLS1lbmFibGVfcHNfcHJvdG9jb2wKIAogIyBFbmQgb2YgNC4xIHRl c3RzCisKKworCisjCisjIEJ1ZyMzNzU1MzogTXlTcWwgRXJyb3IgQ29tcGFyZSBUaW1lRGlmZiAm IFRpbWUKKyMKKworIyBjYWxjdWxhdGlvbnMgaW52b2x2aW5nIG5lZ2F0aXZlIHRpbWUgdmFsdWVz IGlnbm9yZWQgc2lnbgorc2VsZWN0IHRpbWVkaWZmKCcyMDA4LTA5LTI5IDIwOjEwOjEwJywnMjAw OC0wOS0zMCAyMDoxMDoxMCcpLHRpbWUoJzAwOjAwOjAwJyk7CitzZWxlY3QgdGltZWRpZmYoJzIw MDgtMDktMjkgMjA6MTA6MTAnLCcyMDA4LTA5LTMwIDIwOjEwOjEwJyk+dGltZSgnMDA6MDA6MDAn KTsKK3NlbGVjdCB0aW1lZGlmZignMjAwOC0wOS0yOSAyMDoxMDoxMCcsJzIwMDgtMDktMzAgMjA6 MTA6MTAnKTx0aW1lKCcwMDowMDowMCcpOworCisjIHNob3cgdGhhdCBjb252ZXJzaW9uIHRvIERF Q0lNQUwgbm8gbG9uZ2VyIGRyb3BzIHNpZ24KK1NFTEVDVCBDQVNUKHRpbWUoJy03Mzo0MjoxMicp IEFTIERFQ0lNQUwpOworCisKKyMgRW5kIG9mIDUuMCB0ZXN0cwoKPT09IG1vZGlmaWVkIGZpbGUg J215c3FsLXRlc3QvdC9wZXJyb3Itd2luLnRlc3QnCi0tLSBhL215c3FsLXRlc3QvdC9wZXJyb3It d2luLnRlc3QJMjAwOC0xMS0yNyAxMjozMzo0MCArMDAwMAorKysgYi9teXNxbC10ZXN0L3QvcGVy cm9yLXdpbi50ZXN0CTIwMDgtMTEtMjggMTM6MTI6NDMgKzAwMDAKQEAgLTYsNiArNiw5IEBAIGV2 YWwgc2VsZWN0IExFTkdUSCgiJE1ZX1BFUlJPUiIpID4gMCBhcyAKIGVuYWJsZV9xdWVyeV9sb2c7 CiAKIAotLS1leGVjICRNWV9QRVJST1IgMTUwCi0tLWV4ZWMgJE1ZX1BFUlJPUiAyMwotLS1leGVj ICRNWV9QRVJST1IgMTUwMDAKKy0tZXhlYyAkTVlfUEVSUk9SIDE1MCAyPiYxCistLWV4ZWMgJE1Z X1BFUlJPUiAyMyAyPiYxCistLWV4ZWMgJE1ZX1BFUlJPUiAxMDYyIDI+JjEKKy0tZXJyb3IgMQor LS1leGVjICRNWV9QRVJST1IgMzAwMDAgMj4mMQorCgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwt dGVzdC90L3BlcnJvci50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3QvcGVycm9yLnRlc3QJMjAwOC0w OC0wNSAyMzoyNjoxOCArMDAwMAorKysgYi9teXNxbC10ZXN0L3QvcGVycm9yLnRlc3QJMjAwOC0x MS0yOCAxMTo0MDo0MCArMDAwMApAQCAtMSwzICsxLDQgQEAKKy0tc291cmNlIGluY2x1ZGUvbm90 X3dpbmRvd3MuaW5jCiAjCiAjIENoZWNrIGlmIHRoZSB2YXJpYWJsZSBNWV9QRVJST1IgaXMgc2V0 CiAjCgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC90L3N1YnNlbGVjdC50ZXN0JwotLS0g YS9teXNxbC10ZXN0L3Qvc3Vic2VsZWN0LnRlc3QJMjAwOC0xMS0yNyAxNDoyNTowMiArMDAwMAor KysgYi9teXNxbC10ZXN0L3Qvc3Vic2VsZWN0LnRlc3QJMjAwOC0xMS0yOCAxMTo0MDo0MCArMDAw MApAQCAtMzQ5NSw0MSArMzQ5NSw2IEBAIFNFTEVDVCB0MS5hLCAoU0VMRUNUIDEgRlJPTSB0MiBX SEVSRSB0Mi4KIAogRFJPUCBUQUJMRSB0MSx0Mix0MzsKIAotIwotIyBCdWcjMzc0NjAgQXNzZXJ0 aW9uIGZhaWxlZDoKLSMgIXRhYmxlLT5maWxlIHx8IHRhYmxlLT5maWxlLT5pbml0ZWQgPT0gaGFu ZGxlcjo6Tk9ORQotIwotQ1JFQVRFIFRBQkxFIHQxIChpZCBpbnQpOwotQ1JFQVRFIFRBQkxFIHQy IChpZCBpbnQsIGMgaW50KTsKLQotSU5TRVJUIElOVE8gdDEgKGlkKSBWQUxVRVMgKDEpOwotSU5T RVJUIElOVE8gdDIgKGlkKSBWQUxVRVMgKDEpOwotSU5TRVJUIElOVE8gdDEgKGlkKSBWQUxVRVMg KDEpOwotSU5TRVJUIElOVE8gdDIgKGlkKSBWQUxVRVMgKDEpOwotCi1DUkVBVEUgVklFVyB2MSBB UwotICBTRUxFQ1QgdDIuYyBBUyBjIEZST00gdDEsIHQyCi0gICAgV0hFUkUgdDEuaWQ9dDIuaWQg QU5EIDEgSU4gKFNFTEVDVCBpZCBGUk9NIHQxKSBXSVRIIENIRUNLIE9QVElPTjsKLVVQREFURSB2 MSBTRVQgYz0xOwotCi1DUkVBVEUgVklFVyB2MiAoYSxiKSBBUwotICBTRUxFQ1QgdDIuaWQsIHQy LmMgQVMgYyBGUk9NIHQxLCB0MgotICAgIFdIRVJFIHQxLmlkPXQyLmlkIEFORCAxIElOIChTRUxF Q1QgaWQgRlJPTSB0MSkgV0lUSCBDSEVDSyBPUFRJT047Ci0KLS0tZXJyb3IgMTM2OQotSU5TRVJU IElOVE8gdjIoYSxiKSBWQUxVRVMgKDIsMik7Ci1JTlNFUlQgSU5UTyB2MihhLGIpIFZBTFVFUyAo MSwyKTsKLVNFTEVDVCAqIEZST00gdjE7Ci0KLUNSRUFURSBWSUVXIHYzIEFTCi0gIFNFTEVDVCB0 Mi5jIEFTIGMgRlJPTSB0MgotICAgIFdIRVJFIDEgSU4gKFNFTEVDVCBpZCBGUk9NIHQxKSBXSVRI IENIRUNLIE9QVElPTjsKLQotREVMRVRFIEZST00gdjM7Ci0KLURST1AgVklFVyB2MSx2Mix2MzsK LURST1AgVEFCTEUgdDEsdDI7Ci0KIC0tZWNobyBFbmQgb2YgNS4xIHRlc3RzLgogCiAKCj09PSBt b2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3QvdGltZXpvbmUzLnRlc3QnCi0tLSBhL215c3FsLXRl c3QvdC90aW1lem9uZTMudGVzdAkyMDA1LTA3LTI4IDAwOjIyOjQ3ICswMDAwCisrKyBiL215c3Fs LXRlc3QvdC90aW1lem9uZTMudGVzdAkyMDA4LTEyLTAxIDE0OjE4OjM1ICswMDAwCkBAIC00NSw2 ICs0NSwxMCBAQCBpbnNlcnQgaW50byB0MSB2YWx1ZXMKICAgKHVuaXhfdGltZXN0YW1wKCcxOTgx LTA3LTAxIDAzOjU5OjU5JyksJzE5ODEtMDctMDEgMDM6NTk6NTknKSwKICAgKHVuaXhfdGltZXN0 YW1wKCcxOTgxLTA3LTAxIDA0OjAwOjAwJyksJzE5ODEtMDctMDEgMDQ6MDA6MDAnKTsKIAoraW5z ZXJ0IGludG8gdDEgdmFsdWVzCisgICh1bml4X3RpbWVzdGFtcCgnMjAwOS0wMS0wMSAwMjo1OTo1 OScpLCcyMDA5LTAxLTAxIDAyOjU5OjU5JyksCisgICh1bml4X3RpbWVzdGFtcCgnMjAwOS0wMS0w MSAwMzowMDowMCcpLCcyMDA5LTAxLTAxIDAzOjAwOjAwJyk7CisKIHNlbGVjdCBpLCBmcm9tX3Vu aXh0aW1lKGkpLCBjIGZyb20gdDE7CiBkcm9wIHRhYmxlIHQxOwogCkBAIC01OCw0ICs2MiwxMiBA QCBpbnNlcnQgaW50byB0MSB2YWx1ZXMgKDE5NzMwMTAxMjM1OTAwKSwgCiBzZWxlY3QgKiBmcm9t IHQxOwogZHJvcCB0YWJsZSB0MTsKIAorIworIyBUZXN0IEJ1ZyAjMzk5MjA6IE15U1FMIGNhbm5v dCBkZWFsIHdpdGggTGVhcCBTZWNvbmQgZXhwcmVzc2lvbiBpbiBzdHJpbmcKKyMgbGl0ZXJhbAor IworCisjIDIwMDktMDEtMDEgMDI6NTk6NTksIDIwMDktMDEtMDEgMDI6NTk6NjAgYW5kIDIwMDkt MDEtMDEgMDM6MDA6MDAKK1NFTEVDVCBGUk9NX1VOSVhUSU1FKDEyMzA3NjgwMjIpLCBGUk9NX1VO SVhUSU1FKDEyMzA3NjgwMjMpLCBGUk9NX1VOSVhUSU1FKDEyMzA3NjgwMjQpOworCiAjIEVuZCBv ZiA0LjEgdGVzdHMKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3QvdXBkYXRlLnRlc3Qn Ci0tLSBhL215c3FsLXRlc3QvdC91cGRhdGUudGVzdAkyMDA3LTA0LTIzIDE0OjIyOjMzICswMDAw CisrKyBiL215c3FsLXRlc3QvdC91cGRhdGUudGVzdAkyMDA4LTExLTI4IDE2OjM2OjA3ICswMDAw CkBAIC00MzAsNCArNDMwLDI1IEBAIGRyb3AgdGFibGUgdDEsdDI7CiBjb25uZWN0aW9uIGRlZmF1 bHQ7CiBkaXNjb25uZWN0IGNvbjE7CiAKKyMKKyMgQnVnICM0MDc0NTogRXJyb3IgZHVyaW5nIFdI RVJFIGNsYXVzZSBjYWxjdWxhdGlvbiBpbiBVUERBVEUKKyMgICAgICAgICAgICAgbGVhZHMgdG8g YW4gYXNzZXJ0aW9uIGZhaWx1cmUKKyMKKy0tZGlzYWJsZV93YXJuaW5ncworRFJPUCBUQUJMRSBJ RiBFWElTVFMgdDE7CitEUk9QIEZVTkNUSU9OIElGIEVYSVNUUyBmMTsKKy0tZW5hYmxlX3dhcm5p bmdzCisKK0NSRUFURSBGVU5DVElPTiBmMSgpIFJFVFVSTlMgSU5UIFJFVFVSTiBmMSgpOworQ1JF QVRFIFRBQkxFIHQxIChpIElOVCk7CitJTlNFUlQgSU5UTyB0MSBWQUxVRVMgKDEpOworCistLWVy cm9yIEVSX1NQX05PX1JFQ1VSU0lPTgorVVBEQVRFIHQxIFNFVCBpID0gMyBXSEVSRSBmMSgpOwor LS1lcnJvciBFUl9TUF9OT19SRUNVUlNJT04KK1VQREFURSB0MSBTRVQgaSA9IGYxKCk7CisKK0RS T1AgVEFCTEUgdDE7CitEUk9QIEZVTkNUSU9OIGYxOworCiAtLWVjaG8gRW5kIG9mIDUuMCB0ZXN0 cwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3QvdC92YXJpYWJsZXMudGVzdCcKLS0tIGEv bXlzcWwtdGVzdC90L3ZhcmlhYmxlcy50ZXN0CTIwMDgtMTEtMjQgMjA6NDY6MTEgKzAwMDAKKysr IGIvbXlzcWwtdGVzdC90L3ZhcmlhYmxlcy50ZXN0CTIwMDgtMTEtMjcgMTE6MDE6NTkgKzAwMDAK QEAgLTEwNzEsMTggKzEwNzEsNiBAQCBTRVQgQEBnbG9iYWwuc2tpcF9zaG93X2RhdGFiYXNlPSB0 cnVlOwogIwogLS1lY2hvICMKIC0tcmVwbGFjZV9jb2x1bW4gMiAjCi1TSE9XIFZBUklBQkxFUyBs aWtlICdzb2NrZXQnOwotLS1lcnJvciBFUl9JTkNPUlJFQ1RfR0xPQkFMX0xPQ0FMX1ZBUgotU0VM RUNUIEBAc2Vzc2lvbi5zb2NrZXQ7Ci0tLXJlcGxhY2VfY29sdW1uIDEgIwotU0VMRUNUIEBAZ2xv YmFsLnNvY2tldDsKLS0tZXJyb3IgRVJfSU5DT1JSRUNUX0dMT0JBTF9MT0NBTF9WQVIKLVNFVCBA QHNlc3Npb24uc29ja2V0PSAneCc7Ci0tLWVycm9yIEVSX0lOQ09SUkVDVF9HTE9CQUxfTE9DQUxf VkFSCi1TRVQgQEBnbG9iYWwuc29ja2V0PSAneCc7Ci0jCi0tLWVjaG8gIwotLS1yZXBsYWNlX2Nv bHVtbiAyICMKIFNIT1cgVkFSSUFCTEVTIGxpa2UgJ3RocmVhZF9zdGFjayc7CiAtLWVycm9yIEVS X0lOQ09SUkVDVF9HTE9CQUxfTE9DQUxfVkFSCiBTRUxFQ1QgQEBzZXNzaW9uLnRocmVhZF9zdGFj azsKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3Qvdmlldy50ZXN0JwotLS0gYS9teXNx bC10ZXN0L3Qvdmlldy50ZXN0CTIwMDgtMTAtMjkgMTM6NTU6MDQgKzAwMDAKKysrIGIvbXlzcWwt dGVzdC90L3ZpZXcudGVzdAkyMDA4LTExLTI4IDE3OjUxOjQ3ICswMDAwCkBAIC01MTAsNyArNTEw LDcgQEAgZHJvcCB0YWJsZSB0MTsKICMKIGNyZWF0ZSB0YWJsZSB0MSAoYSBpbnQsIGIgaW50KTsK IGNyZWF0ZSB2aWV3IHYxIGFzIHNlbGVjdCBhLCBzdW0oYikgZnJvbSB0MSBncm91cCBieSBhOwot LS1lcnJvciBFUl9XUk9OR19VU0FHRQorLS1lcnJvciBFUl9LRVlfRE9FU19OT1RfRVhJVFMKIHNl bGVjdCBiIGZyb20gdjEgdXNlIGluZGV4IChzb21lX2luZGV4KSB3aGVyZSBiPTE7CiBkcm9wIHZp ZXcgdjE7CiBkcm9wIHRhYmxlIHQxOwpAQCAtMzQyMiwxMSArMzQyMiwxMSBAQCBkcm9wIHRhYmxl IHQxOwogQ1JFQVRFIFRBQkxFIHQxIChhIElOVCk7CiBJTlNFUlQgSU5UTyB0MSBWQUxVRVMgKDEp LCgyKTsKIENSRUFURSBWSUVXIHYxIEFTIFNFTEVDVCAqIEZST00gdDE7Ci0tLWVycm9yIEVSX1dS T05HX1VTQUdFCistLWVycm9yIEVSX0tFWV9ET0VTX05PVF9FWElUUwogU0VMRUNUICogRlJPTSB2 MSBVU0UgS0VZKG5vbl9leGlzdGFudCk7Ci0tLWVycm9yIEVSX1dST05HX1VTQUdFCistLWVycm9y IEVSX0tFWV9ET0VTX05PVF9FWElUUwogU0VMRUNUICogRlJPTSB2MSBGT1JDRSBLRVkobm9uX2V4 aXN0YW50KTsKLS0tZXJyb3IgRVJfV1JPTkdfVVNBR0UKKy0tZXJyb3IgRVJfS0VZX0RPRVNfTk9U X0VYSVRTCiBTRUxFQ1QgKiBGUk9NIHYxIElHTk9SRSBLRVkobm9uX2V4aXN0YW50KTsKIAogRFJP UCBWSUVXIHYxOwpAQCAtMzU2NSw2ICszNTY1LDMyIEBAIERST1AgVklFVyB2MTsKIENSRUFURSBW SUVXIHYxIEFTIFNFTEVDVCAxOwogRFJPUCBWSUVXIHYxOwogCisjCisjIEJ1ZyAjMzM0NjE6IFNF TEVDVCAuLi4gRlJPTSA8dmlldz4gVVNFIElOREVYICguLi4pIHRocm93cyBhbiBlcnJvcgorIwor CitDUkVBVEUgVEFCTEUgdDEgKGMxIElOVCBQUklNQVJZIEtFWSwgYzIgSU5ULCBJTkRFWCAoYzIp KTsKK0lOU0VSVCBJTlRPIHQxIFZBTFVFUyAoMSwxKSwgKDIsMiksICgzLDMpOworU0VMRUNUICog RlJPTSB0MSBVU0UgSU5ERVggKFBSSU1BUlkpIFdIRVJFIGMxPTI7CitTRUxFQ1QgKiBGUk9NIHQx IFVTRSBJTkRFWCAoYzIpIFdIRVJFIGMyPTI7CisKK0NSRUFURSBWSUVXIHYxIEFTIFNFTEVDVCBj MSwgYzIgRlJPTSB0MTsKK1NIT1cgSU5ERVggRlJPTSB2MTsKKy0tZXJyb3IgRVJfS0VZX0RPRVNf Tk9UX0VYSVRTCitTRUxFQ1QgKiBGUk9NIHYxIFVTRSBJTkRFWCAoUFJJTUFSWSkgV0hFUkUgYzE9 MjsKKy0tZXJyb3IgRVJfS0VZX0RPRVNfTk9UX0VYSVRTCitTRUxFQ1QgKiBGUk9NIHYxIEZPUkNF IElOREVYIChQUklNQVJZKSBXSEVSRSBjMT0yOworLS1lcnJvciBFUl9LRVlfRE9FU19OT1RfRVhJ VFMKK1NFTEVDVCAqIEZST00gdjEgSUdOT1JFIElOREVYIChQUklNQVJZKSBXSEVSRSBjMT0yOwor LS1lcnJvciBFUl9LRVlfRE9FU19OT1RfRVhJVFMKK1NFTEVDVCAqIEZST00gdjEgVVNFIElOREVY IChjMikgV0hFUkUgYzI9MjsKKy0tZXJyb3IgRVJfS0VZX0RPRVNfTk9UX0VYSVRTCitTRUxFQ1Qg KiBGUk9NIHYxIEZPUkNFIElOREVYIChjMikgV0hFUkUgYzI9MjsKKy0tZXJyb3IgRVJfS0VZX0RP RVNfTk9UX0VYSVRTCitTRUxFQ1QgKiBGUk9NIHYxIElHTk9SRSBJTkRFWCAoYzIpIFdIRVJFIGMy PTI7CisKK0RST1AgVklFVyB2MTsKK0RST1AgVEFCTEUgdDE7CiAKIC0tZWNobyAjIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAtLWVjaG8gIyAtLSBFbmQgb2YgNS4wIHRlc3RzLgpAQCAtMzc1MSwzICszNzc3LDM3IEBAIGNy ZWF0ZSB2aWV3IHZfOTgwMSBhcwogCiBkcm9wIHRhYmxlIHRfOTgwMTsKIAorIworIyBCdWcjMzc0 NjAgQXNzZXJ0aW9uIGZhaWxlZDoKKyMgIXRhYmxlLT5maWxlIHx8IHRhYmxlLT5maWxlLT5pbml0 ZWQgPT0gaGFuZGxlcjo6Tk9ORQorIworQ1JFQVRFIFRBQkxFIHQxIChpZCBpbnQpOworQ1JFQVRF IFRBQkxFIHQyIChpZCBpbnQsIGMgaW50KTsKKworSU5TRVJUIElOVE8gdDEgKGlkKSBWQUxVRVMg KDEpOworSU5TRVJUIElOVE8gdDIgKGlkKSBWQUxVRVMgKDEpOworSU5TRVJUIElOVE8gdDEgKGlk KSBWQUxVRVMgKDEpOworSU5TRVJUIElOVE8gdDIgKGlkKSBWQUxVRVMgKDEpOworCitDUkVBVEUg VklFVyB2MSBBUworICBTRUxFQ1QgdDIuYyBBUyBjIEZST00gdDEsIHQyCisgICAgV0hFUkUgdDEu aWQ9dDIuaWQgQU5EIDEgSU4gKFNFTEVDVCBpZCBGUk9NIHQxKSBXSVRIIENIRUNLIE9QVElPTjsK K1VQREFURSB2MSBTRVQgYz0xOworCitDUkVBVEUgVklFVyB2MiAoYSxiKSBBUworICBTRUxFQ1Qg dDIuaWQsIHQyLmMgQVMgYyBGUk9NIHQxLCB0MgorICAgIFdIRVJFIHQxLmlkPXQyLmlkIEFORCAx IElOIChTRUxFQ1QgaWQgRlJPTSB0MSkgV0lUSCBDSEVDSyBPUFRJT047CisgIAorLS1lcnJvciAx MzY5CitJTlNFUlQgSU5UTyB2MihhLGIpIFZBTFVFUyAoMiwyKTsKK0lOU0VSVCBJTlRPIHYyKGEs YikgVkFMVUVTICgxLDIpOworU0VMRUNUICogRlJPTSB2MTsKKworQ1JFQVRFIFZJRVcgdjMgQVMK KyAgU0VMRUNUIHQyLmMgQVMgYyBGUk9NIHQyCisgICAgV0hFUkUgMSBJTiAoU0VMRUNUIGlkIEZS T00gdDEpIFdJVEggQ0hFQ0sgT1BUSU9OOworCitERUxFVEUgRlJPTSB2MzsKKworRFJPUCBWSUVX IHYxLHYyLHYzOworRFJPUCBUQUJMRSB0MSx0MjsKCj09PSBtb2RpZmllZCBmaWxlICdteXN5cy9t eV9mb3Blbi5jJwotLS0gYS9teXN5cy9teV9mb3Blbi5jCTIwMDgtMDctMjMgMDg6NTI6MDggKzAw MDAKKysrIGIvbXlzeXMvbXlfZm9wZW4uYwkyMDA4LTEyLTAzIDE0OjA1OjMxICswMDAwCkBAIC0x OCw3ICsxOCw2IEBACiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlICJteXN5c19lcnIuaCIK IAotc3RhdGljIHZvaWQgbWFrZV9mdHlwZShjaGFyICogdG8saW50IGZsYWcpOwogCiAvKgogICBP cGVuIGEgZmlsZSBhcyBzdHJlYW0KQEAgLTE5Niw3ICsxOTUsNyBAQCBGSUxFICpteV9mZG9wZW4o RmlsZSBGaWxlZGVzLCBjb25zdCBjaGFyCiAgICAgYSsgPT0gT19SRFdSfE9fQVBQRU5EfE9fQ1JF QVQKICovCiAKLXN0YXRpYyB2b2lkIG1ha2VfZnR5cGUocmVnaXN0ZXIgY2hhciAqIHRvLCByZWdp c3RlciBpbnQgZmxhZykKK3ZvaWQgbWFrZV9mdHlwZShyZWdpc3RlciBjaGFyICogdG8sIHJlZ2lz dGVyIGludCBmbGFnKQogewogICAvKiBjaGVjayBzb21lIHBvc3NpYmxlIGludmFsaWQgY29tYmlu YXRpb25zICovICAKICAgREJVR19BU1NFUlQoKGZsYWcgJiAoT19UUlVOQyB8IE9fQVBQRU5EKSkg IT0gKE9fVFJVTkMgfCBPX0FQUEVORCkpOwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3lzL215X2dl dG9wdC5jJwotLS0gYS9teXN5cy9teV9nZXRvcHQuYwkyMDA4LTExLTE5IDEwOjEzOjE3ICswMDAw CisrKyBiL215c3lzL215X2dldG9wdC5jCTIwMDgtMTEtMjggMDA6MjY6MzUgKzAwMDAKQEAgLTk3 NSwyNCArOTc1LDI2IEBAIHN0YXRpYyB2b2lkIGluaXRfb25lX3ZhbHVlKGNvbnN0IHN0cnVjdCAK ICAgICAqKChteV9ib29sKikgdmFyaWFibGUpPSAobXlfYm9vbCkgdmFsdWU7CiAgICAgYnJlYWs7 CiAgIGNhc2UgR0VUX0lOVDoKLSAgICAqKChpbnQqKSB2YXJpYWJsZSk9IChpbnQpIHZhbHVlOwor ICAgICooKGludCopIHZhcmlhYmxlKT0gKGludCkgZ2V0b3B0X2xsX2xpbWl0X3ZhbHVlKChpbnQp IHZhbHVlLCBvcHRpb24sIE5VTEwpOwogICAgIGJyZWFrOwotICBjYXNlIEdFVF9VSU5UOiAvKiBG YWxsIHRocm91Z2ggKi8KICAgY2FzZSBHRVRfRU5VTToKICAgICAqKCh1aW50KikgdmFyaWFibGUp PSAodWludCkgdmFsdWU7CiAgICAgYnJlYWs7CisgIGNhc2UgR0VUX1VJTlQ6CisgICAgKigodWlu dCopIHZhcmlhYmxlKT0gKHVpbnQpIGdldG9wdF91bGxfbGltaXRfdmFsdWUoKHVpbnQpIHZhbHVl LCBvcHRpb24sIE5VTEwpOworICAgIGJyZWFrOwogICBjYXNlIEdFVF9MT05HOgotICAgICooKGxv bmcqKSB2YXJpYWJsZSk9IChsb25nKSB2YWx1ZTsKKyAgICAqKChsb25nKikgdmFyaWFibGUpPSAo bG9uZykgZ2V0b3B0X2xsX2xpbWl0X3ZhbHVlKChsb25nKSB2YWx1ZSwgb3B0aW9uLCBOVUxMKTsK ICAgICBicmVhazsKICAgY2FzZSBHRVRfVUxPTkc6Ci0gICAgKigodWxvbmcqKSB2YXJpYWJsZSk9 ICh1bG9uZykgdmFsdWU7CisgICAgKigodWxvbmcqKSB2YXJpYWJsZSk9ICh1bG9uZykgZ2V0b3B0 X3VsbF9saW1pdF92YWx1ZSgodWxvbmcpIHZhbHVlLCBvcHRpb24sIE5VTEwpOwogICAgIGJyZWFr OwogICBjYXNlIEdFVF9MTDoKLSAgICAqKChsb25nbG9uZyopIHZhcmlhYmxlKT0gKGxvbmdsb25n KSB2YWx1ZTsKKyAgICAqKChsb25nbG9uZyopIHZhcmlhYmxlKT0gKGxvbmdsb25nKSBnZXRvcHRf bGxfbGltaXRfdmFsdWUoKGxvbmdsb25nKSB2YWx1ZSwgb3B0aW9uLCBOVUxMKTsKICAgICBicmVh azsKICAgY2FzZSBHRVRfVUxMOiAvKiBGYWxsIHRocm91Z2ggKi8KICAgY2FzZSBHRVRfU0VUOgot ICAgICooKHVsb25nbG9uZyopIHZhcmlhYmxlKT0gICh1bG9uZ2xvbmcpIHZhbHVlOworICAgICoo KHVsb25nbG9uZyopIHZhcmlhYmxlKT0gKHVsb25nbG9uZykgZ2V0b3B0X3VsbF9saW1pdF92YWx1 ZSgodWxvbmdsb25nKSB2YWx1ZSwgb3B0aW9uLCBOVUxMKTsKICAgICBicmVhazsKICAgY2FzZSBH RVRfRE9VQkxFOgogICAgICooKGRvdWJsZSopIHZhcmlhYmxlKT0gIChkb3VibGUpIHZhbHVlOwoK PT09IG1vZGlmaWVkIGZpbGUgJ3NxbC9pdGVtX2NtcGZ1bmMuY2MnCi0tLSBhL3NxbC9pdGVtX2Nt cGZ1bmMuY2MJMjAwOC0xMS0yMSAxMjo0NTo1MyArMDAwMAorKysgYi9zcWwvaXRlbV9jbXBmdW5j LmNjCTIwMDgtMTEtMjcgMTY6NDQ6MTkgKzAwMDAKQEAgLTgxMCwxMSArODEwLDExIEBAIEFyZ19j b21wYXJhdG9yOjpjYW5fY29tcGFyZV9hc19kYXRlcyhJdGUKICAgICBvYnRhaW5lZCB2YWx1ZQog Ki8KIAotdWxvbmdsb25nCitsb25nbG9uZwogZ2V0X3RpbWVfdmFsdWUoVEhEICp0aGQsIEl0ZW0g KioqaXRlbV9hcmcsIEl0ZW0gKipjYWNoZV9hcmcsCiAgICAgICAgICAgICAgICBJdGVtICp3YXJu X2l0ZW0sIGJvb2wgKmlzX251bGwpCiB7Ci0gIHVsb25nbG9uZyB2YWx1ZTsKKyAgbG9uZ2xvbmcg dmFsdWU7CiAgIEl0ZW0gKml0ZW09ICoqaXRlbV9hcmc7CiAgIE1ZU1FMX1RJTUUgbHRpbWU7CiAK QEAgLTgyNiw3ICs4MjYsNyBAQCBnZXRfdGltZV92YWx1ZShUSEQgKnRoZCwgSXRlbSAqKippdGVt X2FyCiAgIGVsc2UKICAgewogICAgICppc19udWxsPSBpdGVtLT5nZXRfdGltZSgmbHRpbWUpOwot ICAgIHZhbHVlPSAhKmlzX251bGwgPyBUSU1FX3RvX3Vsb25nbG9uZ19kYXRldGltZSgmbHRpbWUp IDogMDsKKyAgICB2YWx1ZT0gISppc19udWxsID8gKGxvbmdsb25nKSBUSU1FX3RvX3Vsb25nbG9u Z19kYXRldGltZSgmbHRpbWUpIDogMDsKICAgfQogICAvKgogICAgIERvIG5vdCBjYWNoZSBHRVRf VVNFUl9WQVIoKSBmdW5jdGlvbiBhcyBpdHMgY29uc3RfaXRlbSgpIG1heSByZXR1cm4gVFJVRQpA QCAtOTUwLDExICs5NTAsMTEgQEAgdm9pZCBBcmdfY29tcGFyYXRvcjo6c2V0X2RhdGV0aW1lX2Nt cF9mdQogICAgIG9idGFpbmVkIHZhbHVlCiAqLwogCi11bG9uZ2xvbmcKK2xvbmdsb25nCiBnZXRf ZGF0ZXRpbWVfdmFsdWUoVEhEICp0aGQsIEl0ZW0gKioqaXRlbV9hcmcsIEl0ZW0gKipjYWNoZV9h cmcsCiAgICAgICAgICAgICAgICAgICAgSXRlbSAqd2Fybl9pdGVtLCBib29sICppc19udWxsKQog ewotICB1bG9uZ2xvbmcgdmFsdWU9IDA7CisgIGxvbmdsb25nIHZhbHVlPSAwOwogICBTdHJpbmcg YnVmLCAqc3RyPSAwOwogICBJdGVtICppdGVtPSAqKml0ZW1fYXJnOwogCkBAIC05OTIsNyArOTky LDcgQEAgZ2V0X2RhdGV0aW1lX3ZhbHVlKFRIRCAqdGhkLCBJdGVtICoqKml0ZQogICAgIGVudW1f ZmllbGRfdHlwZXMgZl90eXBlPSB3YXJuX2l0ZW0tPmZpZWxkX3R5cGUoKTsKICAgICB0aW1lc3Rh bXBfdHlwZSB0X3R5cGU9IGZfdHlwZSA9PQogICAgICAgTVlTUUxfVFlQRV9EQVRFID8gTVlTUUxf VElNRVNUQU1QX0RBVEUgOiBNWVNRTF9USU1FU1RBTVBfREFURVRJTUU7Ci0gICAgdmFsdWU9IGdl dF9kYXRlX2Zyb21fc3RyKHRoZCwgc3RyLCB0X3R5cGUsIHdhcm5faXRlbS0+bmFtZSwgJmVycm9y KTsKKyAgICB2YWx1ZT0gKGxvbmdsb25nKSBnZXRfZGF0ZV9mcm9tX3N0cih0aGQsIHN0ciwgdF90 eXBlLCB3YXJuX2l0ZW0tPm5hbWUsICZlcnJvcik7CiAgICAgLyoKICAgICAgIElmIHN0ciBkaWQg bm90IGNvbnRhaW4gYSB2YWxpZCBkYXRlIGFjY29yZGluZyB0byB0aGUgY3VycmVudAogICAgICAg U1FMX01PREUsIGdldF9kYXRlX2Zyb21fc3RyKCkgaGFzIGFscmVhZHkgdGhyb3duIGEgd2Fybmlu ZywKQEAgLTEwNDYsNyArMTA0Niw3IEBAIGdldF9kYXRldGltZV92YWx1ZShUSEQgKnRoZCwgSXRl bSAqKippdGUKIGludCBBcmdfY29tcGFyYXRvcjo6Y29tcGFyZV9kYXRldGltZSgpCiB7CiAgIGJv b2wgYV9pc19udWxsLCBiX2lzX251bGw7Ci0gIHVsb25nbG9uZyBhX3ZhbHVlLCBiX3ZhbHVlOwor ICBsb25nbG9uZyBhX3ZhbHVlLCBiX3ZhbHVlOwogCiAgIC8qIEdldCBEQVRFL0RBVEVUSU1FL1RJ TUUgdmFsdWUgb2YgdGhlICdhJyBpdGVtLiAqLwogICBhX3ZhbHVlPSAoKmdldF92YWx1ZV9mdW5j KSh0aGQsICZhLCAmYV9jYWNoZSwgKmIsICZhX2lzX251bGwpOwoKPT09IG1vZGlmaWVkIGZpbGUg J3NxbC9pdGVtX2NtcGZ1bmMuaCcKLS0tIGEvc3FsL2l0ZW1fY21wZnVuYy5oCTIwMDgtMTAtMjAg MTk6MTM6MjIgKzAwMDAKKysrIGIvc3FsL2l0ZW1fY21wZnVuYy5oCTIwMDgtMTEtMjcgMTY6NDQ6 MTkgKzAwMDAKQEAgLTQyLDggKzQyLDggQEAgY2xhc3MgQXJnX2NvbXBhcmF0b3I6IHB1YmxpYyBT cWxfYWxsb2MKICAgYm9vbCBpc19udWxsc19lcTsgICAgICAgICAgICAgICAgLy8gVFJVRSA8PT4g Y29tcGFyZSBmb3IgdGhlIEVRVUFMX0ZVTkMKICAgZW51bSBlbnVtX2RhdGVfY21wX3R5cGUgeyBD TVBfREFURV9ERkxUPSAwLCBDTVBfREFURV9XSVRIX0RBVEUsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQ01QX0RBVEVfV0lUSF9TVFIsIENNUF9TVFJfV0lUSF9EQVRFIH07Ci0gIHVsb25n bG9uZyAoKmdldF92YWx1ZV9mdW5jKShUSEQgKnRoZCwgSXRlbSAqKippdGVtX2FyZywgSXRlbSAq KmNhY2hlX2FyZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEl0ZW0gKndhcm5faXRl bSwgYm9vbCAqaXNfbnVsbCk7CisgIGxvbmdsb25nICgqZ2V0X3ZhbHVlX2Z1bmMpKFRIRCAqdGhk LCBJdGVtICoqKml0ZW1fYXJnLCBJdGVtICoqY2FjaGVfYXJnLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJdGVtICp3YXJuX2l0ZW0sIGJvb2wgKmlzX251bGwpOwogcHVibGljOgogICBE VENvbGxhdGlvbiBjbXBfY29sbGF0aW9uOwogCkBAIC0xMDE1LDcgKzEwMTUsNyBAQCBwdWJsaWM6 CiAqLwogY2xhc3MgY21wX2l0ZW1fZGF0ZXRpbWUgOnB1YmxpYyBjbXBfaXRlbQogewotICB1bG9u Z2xvbmcgdmFsdWU7CisgIGxvbmdsb25nIHZhbHVlOwogcHVibGljOgogICBUSEQgKnRoZDsKICAg LyogSXRlbSB1c2VkIGZvciBpc3N1aW5nIHdhcm5pbmdzLiAqLwoKPT09IG1vZGlmaWVkIGZpbGUg J3NxbC9pdGVtX2Z1bmMuY2MnCi0tLSBhL3NxbC9pdGVtX2Z1bmMuY2MJMjAwOC0xMS0yNCAyMDo0 NjoxMSArMDAwMAorKysgYi9zcWwvaXRlbV9mdW5jLmNjCTIwMDgtMTEtMjggMTE6NDA6NDAgKzAw MDAKQEAgLTIyNzgsNyArMjI3OCw3IEBAIHZvaWQgSXRlbV9mdW5jX21pbl9tYXg6OmZpeF9sZW5n dGhfYW5kX2QKIAogdWludCBJdGVtX2Z1bmNfbWluX21heDo6Y21wX2RhdGV0aW1lcyh1bG9uZ2xv bmcgKnZhbHVlKQogewotICB1bG9uZ2xvbmcgbWluX21heDsKKyAgbG9uZ2xvbmcgbWluX21heDsK ICAgdWludCBtaW5fbWF4X2lkeD0gMDsKICAgTElOVF9JTklUKG1pbl9tYXgpOwogCkBAIC0yMjg2 LDcgKzIyODYsNyBAQCB1aW50IEl0ZW1fZnVuY19taW5fbWF4OjpjbXBfZGF0ZXRpbWVzKHVsCiAg IHsKICAgICBJdGVtICoqYXJnPSBhcmdzICsgaTsKICAgICBib29sIGlzX251bGw7Ci0gICAgdWxv bmdsb25nIHJlcz0gZ2V0X2RhdGV0aW1lX3ZhbHVlKHRoZCwgJmFyZywgMCwgZGF0ZXRpbWVfaXRl bSwgJmlzX251bGwpOworICAgIGxvbmdsb25nIHJlcz0gZ2V0X2RhdGV0aW1lX3ZhbHVlKHRoZCwg JmFyZywgMCwgZGF0ZXRpbWVfaXRlbSwgJmlzX251bGwpOwogICAgIGlmICgobnVsbF92YWx1ZT0g YXJnc1tpXS0+bnVsbF92YWx1ZSkpCiAgICAgICByZXR1cm4gMDsKICAgICBpZiAoaSA9PSAwIHx8 IChyZXMgPCBtaW5fbWF4ID8gY21wX3NpZ24gOiAtY21wX3NpZ24pID4gMCkKCj09PSBtb2RpZmll ZCBmaWxlICdzcWwvaXRlbV90aW1lZnVuYy5oJwotLS0gYS9zcWwvaXRlbV90aW1lZnVuYy5oCTIw MDgtMDItMjIgMTE6MTE6MjUgKzAwMDAKKysrIGIvc3FsL2l0ZW1fdGltZWZ1bmMuaAkyMDA4LTEx LTI3IDE2OjQ0OjE5ICswMDAwCkBAIC00MjksNiArNDI5LDcgQEAgcHVibGljOgogICB7CiAgICAg cmV0dXJuIHNhdmVfdGltZV9pbl9maWVsZChmaWVsZCk7CiAgIH0KKyAgYm9vbCByZXN1bHRfYXNf bG9uZ2xvbmcoKSB7IHJldHVybiBUUlVFOyB9CiB9OwogCiAKCj09PSBtb2RpZmllZCBmaWxlICdz cWwvbXlfZGVjaW1hbC5jYycKLS0tIGEvc3FsL215X2RlY2ltYWwuY2MJMjAwOC0wNy0xNCAxMjo0 OToxOSArMDAwMAorKysgYi9zcWwvbXlfZGVjaW1hbC5jYwkyMDA4LTExLTI3IDE2OjQ0OjE5ICsw MDAwCkBAIC0yMTQsNyArMjE0LDcgQEAgbXlfZGVjaW1hbCAqZGF0ZTJteV9kZWNpbWFsKE1ZU1FM X1RJTUUgKgogICBkYXRlID0gKGx0aW1lLT55ZWFyKjEwMEwgKyBsdGltZS0+bW9udGgpKjEwMEwg KyBsdGltZS0+ZGF5OwogICBpZiAobHRpbWUtPnRpbWVfdHlwZSA+IE1ZU1FMX1RJTUVTVEFNUF9E QVRFKQogICAgIGRhdGU9ICgoZGF0ZSoxMDBMICsgbHRpbWUtPmhvdXIpKjEwMEwrIGx0aW1lLT5t aW51dGUpKjEwMEwgKyBsdGltZS0+c2Vjb25kOwotICBpZiAoaW50Mm15X2RlY2ltYWwoRV9ERUNf RkFUQUxfRVJST1IsIGRhdGUsIEZBTFNFLCBkZWMpKQorICBpZiAoaW50Mm15X2RlY2ltYWwoRV9E RUNfRkFUQUxfRVJST1IsIGx0aW1lLT5uZWcgPyAtZGF0ZSA6IGRhdGUsIEZBTFNFLCBkZWMpKQog ICAgIHJldHVybiBkZWM7CiAgIGlmIChsdGltZS0+c2Vjb25kX3BhcnQpCiAgIHsKCj09PSBtb2Rp ZmllZCBmaWxlICdzcWwvbXlzcWxfcHJpdi5oJwotLS0gYS9zcWwvbXlzcWxfcHJpdi5oCTIwMDgt MTEtMjcgMTQ6MjU6MDIgKzAwMDAKKysrIGIvc3FsL215c3FsX3ByaXYuaAkyMDA4LTExLTI3IDE3 OjMxOjU0ICswMDAwCkBAIC01OTQsNiArNTk0LDcgQEAgZW51bSBvcGVuX3RhYmxlX21vZGUKICNk ZWZpbmUgVU5DQUNIRUFCTEVfUFJFUEFSRSAgICAxNgogLyogRm9yIHVuY29ycmVsYXRlZCBTRUxF Q1QgaW4gYW4gVU5JT04gd2l0aCBzb21lIGNvcnJlbGF0ZWQgU0VMRUNUcyAqLwogI2RlZmluZSBV TkNBQ0hFQUJMRV9VTklURUQgICAgIDMyCisjZGVmaW5lIFVOQ0FDSEVBQkxFX0NIRUNLT1BUSU9O ICAgNjQKIAogLyogVXNlZCB0byBjaGVjayBHUk9VUCBCWSBsaXN0IGluIHRoZSBNT0RFX09OTFlf RlVMTF9HUk9VUF9CWSBtb2RlICovCiAjZGVmaW5lIFVOREVGX1BPUyAoLTEpCkBAIC0yMjgwLDgg KzIyODEsOCBAQCB2b2lkIG1ha2VfZGF0ZShjb25zdCBEQVRFX1RJTUVfRk9STUFUICpmCiB2b2lk IG1ha2VfdGltZShjb25zdCBEQVRFX1RJTUVfRk9STUFUICpmb3JtYXQsIGNvbnN0IE1ZU1FMX1RJ TUUgKmxfdGltZSwKICAgICAgICAgICAgICAgIFN0cmluZyAqc3RyKTsKIGludCBteV90aW1lX2Nv bXBhcmUoTVlTUUxfVElNRSAqYSwgTVlTUUxfVElNRSAqYik7Ci11bG9uZ2xvbmcgZ2V0X2RhdGV0 aW1lX3ZhbHVlKFRIRCAqdGhkLCBJdGVtICoqKml0ZW1fYXJnLCBJdGVtICoqY2FjaGVfYXJnLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJdGVtICp3YXJuX2l0ZW0sIGJvb2wgKmlzX251 bGwpOworbG9uZ2xvbmcgZ2V0X2RhdGV0aW1lX3ZhbHVlKFRIRCAqdGhkLCBJdGVtICoqKml0ZW1f YXJnLCBJdGVtICoqY2FjaGVfYXJnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEl0ZW0g Kndhcm5faXRlbSwgYm9vbCAqaXNfbnVsbCk7CiAKIGludCB0ZXN0X2lmX251bWJlcihjaGFyICpz dHIsaW50ICpyZXMsYm9vbCBhbGxvd193aWxkY2FyZHMpOwogdm9pZCBjaGFuZ2VfYnl0ZSh1Y2hh ciAqLHVpbnQsY2hhcixjaGFyKTsKCj09PSBtb2RpZmllZCBmaWxlICdzcWwvbXlzcWxkLmNjJwot LS0gYS9zcWwvbXlzcWxkLmNjCTIwMDgtMTEtMjQgMjA6NTM6NDcgKzAwMDAKKysrIGIvc3FsL215 c3FsZC5jYwkyMDA4LTExLTI4IDE2OjMwOjI3ICswMDAwCkBAIC0zNTg0LDEyICszNTg0LDE0IEBA IHN0YXRpYyBpbnQgaW5pdF9jb21tb25fdmFyaWFibGVzKGNvbnN0IGMKICAgICBzeXNfaW5pdF9j b25uZWN0LnZhbHVlX2xlbmd0aD0gc3RybGVuKG9wdF9pbml0X2Nvbm5lY3QpOwogICBlbHNlCiAg ICAgc3lzX2luaXRfY29ubmVjdC52YWx1ZT1teV9zdHJkdXAoIiIsTVlGKDApKTsKKyAgc3lzX2lu aXRfY29ubmVjdC5pc19vc19jaGFyc2V0PSBUUlVFOwogCiAgIHN5c19pbml0X3NsYXZlLnZhbHVl X2xlbmd0aD0gMDsKICAgaWYgKChzeXNfaW5pdF9zbGF2ZS52YWx1ZT0gb3B0X2luaXRfc2xhdmUp KQogICAgIHN5c19pbml0X3NsYXZlLnZhbHVlX2xlbmd0aD0gc3RybGVuKG9wdF9pbml0X3NsYXZl KTsKICAgZWxzZQogICAgIHN5c19pbml0X3NsYXZlLnZhbHVlPW15X3N0cmR1cCgiIixNWUYoMCkp OworICBzeXNfaW5pdF9zbGF2ZS5pc19vc19jaGFyc2V0PSBUUlVFOwogCiAgIC8qIGNoZWNrIGxv ZyBvcHRpb25zIGFuZCBpc3N1ZSB3YXJuaW5ncyBpZiBuZWVkZWQgKi8KICAgaWYgKG9wdF9sb2cg JiYgb3B0X2xvZ25hbWUgJiYgIShsb2dfb3V0cHV0X29wdGlvbnMgJiBMT0dfRklMRSkgJiYKCj09 PSBtb2RpZmllZCBmaWxlICdzcWwvc2V0X3Zhci5jYycKLS0tIGEvc3FsL3NldF92YXIuY2MJMjAw OC0xMS0yNCAyMDo0NjoxMSArMDAwMAorKysgYi9zcWwvc2V0X3Zhci5jYwkyMDA4LTExLTI4IDE2 OjMwOjI3ICswMDAwCkBAIC0xODksMTQgKzE4OSwxNCBAQCBzdGF0aWMgc3lzX3Zhcl9ib29sX3B0 cglzeXNfYXV0b21hdGljX3NwCiBzdGF0aWMgc3lzX3Zhcl9jb25zdCAgICAgICAgICAgIHN5c19i YWNrX2xvZygmdmFycywgImJhY2tfbG9nIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE9QVF9HTE9CQUwsIFNIT1dfTE9ORywKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1Y2hhciopICZiYWNrX2xvZyk7Ci1zdGF0aWMg c3lzX3Zhcl9jb25zdF9zdHIgICAgICAgc3lzX2Jhc2VkaXIoJnZhcnMsICJiYXNlZGlyIiwgbXlz cWxfaG9tZSk7CitzdGF0aWMgc3lzX3Zhcl9jb25zdF9vc19zdHIgICAgICAgc3lzX2Jhc2VkaXIo JnZhcnMsICJiYXNlZGlyIiwgbXlzcWxfaG9tZSk7CiBzdGF0aWMgc3lzX3Zhcl9sb25nX3B0cglz eXNfYmlubG9nX2NhY2hlX3NpemUoJnZhcnMsICJiaW5sb2dfY2FjaGVfc2l6ZSIsCiAJCQkJCSAg ICAgICZiaW5sb2dfY2FjaGVfc2l6ZSk7CiBzdGF0aWMgc3lzX3Zhcl90aGRfYmlubG9nX2Zvcm1h dCBzeXNfYmlubG9nX2Zvcm1hdCgmdmFycywgImJpbmxvZ19mb3JtYXQiLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmU1Y6OmJpbmxvZ19mb3JtYXQpOwogc3Rh dGljIHN5c192YXJfdGhkX3Vsb25nCXN5c19idWxrX2luc2VydF9idWZmX3NpemUoJnZhcnMsICJi dWxrX2luc2VydF9idWZmZXJfc2l6ZSIsCiAJCQkJCQkgICZTVjo6YnVsa19pbnNlcnRfYnVmZl9z aXplKTsKLXN0YXRpYyBzeXNfdmFyX2NvbnN0ICAgICAgICAgICAgc3lzX2NoYXJhY3Rlcl9zZXRz X2RpcigmdmFycywKK3N0YXRpYyBzeXNfdmFyX2NvbnN0X29zICAgICAgICAgc3lzX2NoYXJhY3Rl cl9zZXRzX2RpcigmdmFycywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiY2hhcmFjdGVyX3NldHNfZGlyIiwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPUFRfR0xPQkFMLCBTSE9XX0NI QVIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHVjaGFyKikKQEAgLTI0Niw3ICsyNDYsNyBAQCBzdGF0aWMgc3lzX3Zhcl9sb25nX3B0cglz eXNfY29uY3VycmVudF9pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJm15aXNhbV9jb25jdXJyZW50X2luc2VydCk7CiBzdGF0aWMgc3lzX3Zhcl9sb25nX3B0 cglzeXNfY29ubmVjdF90aW1lb3V0KCZ2YXJzLCAiY29ubmVjdF90aW1lb3V0IiwKIAkJCQkJICAg ICZjb25uZWN0X3RpbWVvdXQpOwotc3RhdGljIHN5c192YXJfY29uc3Rfc3RyICAgICAgIHN5c19k YXRhZGlyKCZ2YXJzLCAiZGF0YWRpciIsIG15c3FsX3JlYWxfZGF0YV9ob21lKTsKK3N0YXRpYyBz eXNfdmFyX2NvbnN0X29zX3N0ciAgICAgICBzeXNfZGF0YWRpcigmdmFycywgImRhdGFkaXIiLCBt eXNxbF9yZWFsX2RhdGFfaG9tZSk7CiBzdGF0aWMgc3lzX3Zhcl9iYWNrdXBfd2FpdF90aW1lb3V0 IHN5c19iYWNrdXBfd2FpdF90aW1lb3V0KCZ2YXJzLCAiYmFja3VwX3dhaXRfdGltZW91dCIpOwog c3RhdGljIHN5c192YXJfdGhkX3Vsb25nIHN5c19kZWFkbG9ja19zZWFyY2hfZGVwdGhfc2hvcnQo JnZhcnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZWFkbG9ja19zZWFyY2hf ZGVwdGhfc2hvcnQiLApAQCAtNDk5LDcgKzQ5OSw3IEBAIHN0YXRpYyBzeXNfdmFyX3RoZF9lbnVt ICAgICAgICBzeXNfb3B0aW0KIHN0YXRpYyBzeXNfdmFyX2NvbnN0ICAgICAgICAgICAgc3lzX3Bp ZF9maWxlKCZ2YXJzLCAicGlkX2ZpbGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgT1BUX0dMT0JBTCwgU0hPV19DSEFSLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVjaGFyKikgcGlkZmlsZV9uYW1lKTsKLXN0YXRp YyBzeXNfdmFyX2NvbnN0ICAgICAgICAgICAgc3lzX3BsdWdpbl9kaXIoJnZhcnMsICJwbHVnaW5f ZGlyIiwKK3N0YXRpYyBzeXNfdmFyX2NvbnN0X29zICAgICAgICAgc3lzX3BsdWdpbl9kaXIoJnZh cnMsICJwbHVnaW5fZGlyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgT1BUX0dMT0JBTCwgU0hPV19DSEFSLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAodWNoYXIqKSBvcHRfcGx1Z2luX2Rpcik7CiBzdGF0aWMg c3lzX3Zhcl9jb25zdCAgICAgICAgICAgIHN5c19wb3J0KCZ2YXJzLCAicG9ydCIsCkBAIC01Njcs NyArNTY3LDcgQEAgc3RhdGljIHN5c192YXJfY29uc3QgICAgc3lzX3RocmVhZF9jb25jdQogc3Rh dGljIHN5c192YXJfY29uc3QgICAgc3lzX3RocmVhZF9zdGFjaygmdmFycywgInRocmVhZF9zdGFj ayIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9QVF9HTE9CQUws IFNIT1dfTE9ORywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVj aGFyKikgJm15X3RocmVhZF9zdGFja19zaXplKTsKLXN0YXRpYyBzeXNfdmFyX3JlYWRvbmx5ICAg ICAgICBzeXNfdG1wZGlyKCZ2YXJzLCAidG1wZGlyIiwgT1BUX0dMT0JBTCwgU0hPV19DSEFSLCBn ZXRfdG1wZGlyKTsKK3N0YXRpYyBzeXNfdmFyX3JlYWRvbmx5X29zICAgICAgc3lzX3RtcGRpcigm dmFycywgInRtcGRpciIsIE9QVF9HTE9CQUwsIFNIT1dfQ0hBUiwgZ2V0X3RtcGRpcik7CiBzdGF0 aWMgc3lzX3Zhcl90aGRfdWxvbmcJc3lzX3RyYW5zX2FsbG9jX2Jsb2NrX3NpemUoJnZhcnMsICJ0 cmFuc2FjdGlvbl9hbGxvY19ibG9ja19zaXplIiwKIAkJCQkJCSAgICZTVjo6dHJhbnNfYWxsb2Nf YmxvY2tfc2l6ZSwKIAkJCQkJCSAgIDAsIGZpeF90cmFuc19tZW1fcm9vdCk7CkBAIC02MjgsMTcg KzYyOCwxNyBAQCBzdGF0aWMgc3lzX3Zhcl90aGRfb3B0aW1pemVyX3N3aXRjaCAgIHN5CiAjaWYg ZGVmaW5lZChIQVZFX09QRU5TU0wpICYmICFkZWZpbmVkKEVNQkVEREVEX0xJQlJBUlkpCiBleHRl cm4gY2hhciAqb3B0X3NzbF9jYSwgKm9wdF9zc2xfY2FwYXRoLCAqb3B0X3NzbF9jZXJ0LCAqb3B0 X3NzbF9jaXBoZXIsCiAgICAgICAgICAgICAqb3B0X3NzbF9rZXk7Ci1zdGF0aWMgc3lzX3Zhcl9j b25zdF9zdHJfcHRyCXN5c19zc2xfY2EoJnZhcnMsICJzc2xfY2EiLCAmb3B0X3NzbF9jYSk7Ci1z dGF0aWMgc3lzX3Zhcl9jb25zdF9zdHJfcHRyCXN5c19zc2xfY2FwYXRoKCZ2YXJzLCAic3NsX2Nh cGF0aCIsICZvcHRfc3NsX2NhcGF0aCk7Ci1zdGF0aWMgc3lzX3Zhcl9jb25zdF9zdHJfcHRyCXN5 c19zc2xfY2VydCgmdmFycywgInNzbF9jZXJ0IiwgJm9wdF9zc2xfY2VydCk7Ci1zdGF0aWMgc3lz X3Zhcl9jb25zdF9zdHJfcHRyCXN5c19zc2xfY2lwaGVyKCZ2YXJzLCAic3NsX2NpcGhlciIsICZv cHRfc3NsX2NpcGhlcik7Ci1zdGF0aWMgc3lzX3Zhcl9jb25zdF9zdHJfcHRyCXN5c19zc2xfa2V5 KCZ2YXJzLCAic3NsX2tleSIsICZvcHRfc3NsX2tleSk7CitzdGF0aWMgc3lzX3Zhcl9jb25zdF9v c19zdHJfcHRyCXN5c19zc2xfY2EoJnZhcnMsICJzc2xfY2EiLCAmb3B0X3NzbF9jYSk7CitzdGF0 aWMgc3lzX3Zhcl9jb25zdF9vc19zdHJfcHRyCXN5c19zc2xfY2FwYXRoKCZ2YXJzLCAic3NsX2Nh cGF0aCIsICZvcHRfc3NsX2NhcGF0aCk7CitzdGF0aWMgc3lzX3Zhcl9jb25zdF9vc19zdHJfcHRy CXN5c19zc2xfY2VydCgmdmFycywgInNzbF9jZXJ0IiwgJm9wdF9zc2xfY2VydCk7CitzdGF0aWMg c3lzX3Zhcl9jb25zdF9vc19zdHJfcHRyCXN5c19zc2xfY2lwaGVyKCZ2YXJzLCAic3NsX2NpcGhl ciIsICZvcHRfc3NsX2NpcGhlcik7CitzdGF0aWMgc3lzX3Zhcl9jb25zdF9vc19zdHJfcHRyCXN5 c19zc2xfa2V5KCZ2YXJzLCAic3NsX2tleSIsICZvcHRfc3NsX2tleSk7CiAjZWxzZQotc3RhdGlj IHN5c192YXJfY29uc3Rfc3RyCXN5c19zc2xfY2EoJnZhcnMsICJzc2xfY2EiLCBOVUxMKTsKLXN0 YXRpYyBzeXNfdmFyX2NvbnN0X3N0cglzeXNfc3NsX2NhcGF0aCgmdmFycywgInNzbF9jYXBhdGgi LCBOVUxMKTsKLXN0YXRpYyBzeXNfdmFyX2NvbnN0X3N0cglzeXNfc3NsX2NlcnQoJnZhcnMsICJz c2xfY2VydCIsIE5VTEwpOwotc3RhdGljIHN5c192YXJfY29uc3Rfc3RyCXN5c19zc2xfY2lwaGVy KCZ2YXJzLCAic3NsX2NpcGhlciIsIE5VTEwpOwotc3RhdGljIHN5c192YXJfY29uc3Rfc3RyCXN5 c19zc2xfa2V5KCZ2YXJzLCAic3NsX2tleSIsIE5VTEwpOworc3RhdGljIHN5c192YXJfY29uc3Rf b3Nfc3RyCXN5c19zc2xfY2EoJnZhcnMsICJzc2xfY2EiLCBOVUxMKTsKK3N0YXRpYyBzeXNfdmFy X2NvbnN0X29zX3N0cglzeXNfc3NsX2NhcGF0aCgmdmFycywgInNzbF9jYXBhdGgiLCBOVUxMKTsK K3N0YXRpYyBzeXNfdmFyX2NvbnN0X29zX3N0cglzeXNfc3NsX2NlcnQoJnZhcnMsICJzc2xfY2Vy dCIsIE5VTEwpOworc3RhdGljIHN5c192YXJfY29uc3Rfb3Nfc3RyCXN5c19zc2xfY2lwaGVyKCZ2 YXJzLCAic3NsX2NpcGhlciIsIE5VTEwpOworc3RhdGljIHN5c192YXJfY29uc3Rfb3Nfc3RyCXN5 c19zc2xfa2V5KCZ2YXJzLCAic3NsX2tleSIsIE5VTEwpOwogI2VuZGlmCiBzdGF0aWMgc3lzX3Zh cl90aGRfZW51bQogc3lzX3VwZGF0YWJsZV92aWV3c193aXRoX2xpbWl0KCZ2YXJzLCAidXBkYXRh YmxlX3ZpZXdzX3dpdGhfbGltaXQiLApAQCAtMTAxNCw2ICsxMDE0LDcgQEAgYm9vbCB1cGRhdGVf c3lzX3Zhcl9zdHIoc3lzX3Zhcl9zdHIgKnZhcgogICBvbGRfdmFsdWU9IHZhcl9zdHItPnZhbHVl OwogICB2YXJfc3RyLT52YWx1ZT0gcmVzOwogICB2YXJfc3RyLT52YWx1ZV9sZW5ndGg9IG5ld19s ZW5ndGg7CisgIHZhcl9zdHItPmlzX29zX2NoYXJzZXQ9IEZBTFNFOwogICByd191bmxvY2sodmFy X211dGV4KTsKICAgbXlfZnJlZShvbGRfdmFsdWUsIE1ZRihNWV9BTExPV19aRVJPX1BUUikpOwog ICByZXR1cm4gMDsKQEAgLTE5MDMsNiArMTkwNCwxMyBAQCBlcnI6CiB9CiAKIAorQ0hBUlNFVF9J TkZPICpzeXNfdmFyOjpjaGFyc2V0KFRIRCAqdGhkKQoreworICByZXR1cm4gaXNfb3NfY2hhcnNl dCA/IHRoZC0+dmFyaWFibGVzLmNoYXJhY3Rlcl9zZXRfZmlsZXN5c3RlbSA6IAorICAgIHN5c3Rl bV9jaGFyc2V0X2luZm87Cit9CisKKwogYm9vbCBzeXNfdmFyX3RoZF9lbnVtOjp1cGRhdGUoVEhE ICp0aGQsIHNldF92YXIgKnZhcikKIHsKICAgaWYgKHZhci0+dHlwZSA9PSBPUFRfR0xPQkFMKQoK PT09IG1vZGlmaWVkIGZpbGUgJ3NxbC9zZXRfdmFyLmgnCi0tLSBhL3NxbC9zZXRfdmFyLmgJMjAw OC0xMS0yNCAyMDo0NjoxMSArMDAwMAorKysgYi9zcWwvc2V0X3Zhci5oCTIwMDgtMTItMDIgMTE6 MjU6NDMgKzAwMDAKQEAgLTcxLDkgKzcxLDE4IEBAIHB1YmxpYzoKIAogICBzeXNfYWZ0ZXJfdXBk YXRlX2Z1bmMgYWZ0ZXJfdXBkYXRlOwogICBib29sIG5vX3N1cHBvcnRfb25lX3Nob3Q7CisgIC8q CisgICAgdHJ1ZSBpZiB0aGUgdmFsdWUgaXMgaW4gY2hhcmFjdGVyX3NldF9maWxlc3lzdGVtLCAK KyAgICBmYWxzZSBvdGhlcndpc2UuCisgICAgTm90ZSB0aGF0IHdlIGNhbid0IHVzZSBhIHBvaW50 ZXIgdG8gdGhlIGNoYXJzZXQgYXMgdGhlIHN5c3RlbSB2YXIgaXMgCisgICAgaW5zdGFudGlhdGVk IGluIGdsb2JhbCBzY29wZSBhbmQgdGhlIGNoYXJzZXQgcG9pbnRlcnMgYXJlIGluaXRpYWxpemVk CisgICAgbGF0ZXIuCisgICovICAKKyAgYm9vbCBpc19vc19jaGFyc2V0OwogICBzeXNfdmFyKGNv bnN0IGNoYXIgKm5hbWVfYXJnLCBzeXNfYWZ0ZXJfdXBkYXRlX2Z1bmMgZnVuYz0gTlVMTCwKICAg ICAgICAgICBCaW5sb2dfc3RhdHVzX2VudW0gYmlubG9nX3N0YXR1c19hcmc9IE5PVF9JTl9CSU5M T0cpCiAgICAgOm5hbWUobmFtZV9hcmcpLCBhZnRlcl91cGRhdGUoZnVuYyksIG5vX3N1cHBvcnRf b25lX3Nob3QoMSksCisgICAgaXNfb3NfY2hhcnNldCAoRkFMU0UpLAogICAgIGJpbmxvZ19zdGF0 dXMoYmlubG9nX3N0YXR1c19hcmcpLAogICAgIG1fYWxsb3dfZW1wdHlfdmFsdWUoVFJVRSkKICAg e30KQEAgLTEwNyw2ICsxMTYsNyBAQCBwdWJsaWM6CiAgIHsgcmV0dXJuIG9wdGlvbl9saW1pdHMg PT0gMDsgfQogICB2aXJ0dWFsIGJvb2wgaXNfc3RydWN0KCkgeyByZXR1cm4gMDsgfQogICB2aXJ0 dWFsIGJvb2wgaXNfcmVhZG9ubHkoKSBjb25zdCB7IHJldHVybiAwOyB9CisgIENIQVJTRVRfSU5G TyAqY2hhcnNldChUSEQgKnRoZCk7CiAgIHZpcnR1YWwgc3lzX3Zhcl9wbHVnaW52YXIgKmNhc3Rf cGx1Z2ludmFyKCkgeyByZXR1cm4gMDsgfQogCiBwcm90ZWN0ZWQ6CkBAIC0yOTEsNiArMzAxLDE4 IEBAIHB1YmxpYzoKIH07CiAKIAorY2xhc3Mgc3lzX3Zhcl9jb25zdF9vc19zdHI6IHB1YmxpYyBz eXNfdmFyX2NvbnN0X3N0cgoreworcHVibGljOgorICBzeXNfdmFyX2NvbnN0X29zX3N0cihzeXNf dmFyX2NoYWluICpjaGFpbiwgY29uc3QgY2hhciAqbmFtZV9hcmcsIAorICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBjaGFyICp2YWx1ZV9hcmcpCisgICAgOnN5c192YXJfY29uc3Rfc3RyKGNo YWluLCBuYW1lX2FyZywgdmFsdWVfYXJnKQorICB7IAorICAgIGlzX29zX2NoYXJzZXQ9IFRSVUU7 IAorICB9Cit9OworCisKIGNsYXNzIHN5c192YXJfY29uc3Rfc3RyX3B0ciA6cHVibGljIHN5c192 YXIKIHsKIHB1YmxpYzoKQEAgLTMyMCw2ICszNDIsMTggQEAgcHVibGljOgogfTsKIAogCitjbGFz cyBzeXNfdmFyX2NvbnN0X29zX3N0cl9wdHIgOnB1YmxpYyBzeXNfdmFyX2NvbnN0X3N0cl9wdHIK K3sKK3B1YmxpYzoKKyAgc3lzX3Zhcl9jb25zdF9vc19zdHJfcHRyKHN5c192YXJfY2hhaW4gKmNo YWluLCBjb25zdCBjaGFyICpuYW1lX2FyZywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICBj aGFyICoqdmFsdWVfYXJnKQorICAgIDpzeXNfdmFyX2NvbnN0X3N0cl9wdHIoY2hhaW4sIG5hbWVf YXJnLCB2YWx1ZV9hcmcpCisgIHsKKyAgICBpc19vc19jaGFyc2V0PSBUUlVFOyAKKyAgfQorfTsK KworCiBjbGFzcyBzeXNfdmFyX2VudW0gOnB1YmxpYyBzeXNfdmFyCiB7CiAgIHVpbnQgKnZhbHVl OwpAQCAtMTAxOSw2ICsxMDUzLDE5IEBAIHB1YmxpYzoKIH07CiAKIAorY2xhc3Mgc3lzX3Zhcl9y ZWFkb25seV9vczogcHVibGljIHN5c192YXJfcmVhZG9ubHkKK3sKK3B1YmxpYzoKKyAgc3lzX3Zh cl9yZWFkb25seV9vcyhzeXNfdmFyX2NoYWluICpjaGFpbiwgY29uc3QgY2hhciAqbmFtZV9hcmcs IGVudW1fdmFyX3R5cGUgdHlwZSwKKwkJICAgU0hPV19UWVBFIHNob3dfdHlwZV9hcmcsCisJCSAg IHN5c192YWx1ZV9wdHJfZnVuYyB2YWx1ZV9wdHJfZnVuY19hcmcpCisgICAgOnN5c192YXJfcmVh ZG9ubHkoY2hhaW4sIG5hbWVfYXJnLCB0eXBlLCBzaG93X3R5cGVfYXJnLCB2YWx1ZV9wdHJfZnVu Y19hcmcpCisgIHsKKyAgICBpc19vc19jaGFyc2V0PSBUUlVFOworICB9Cit9OworCisKIC8qKgog ICBHbG9iYWwtb25seSwgcmVhZC1vbmx5IHZhcmlhYmxlLiBFLmcuIGNvbW1hbmQgbGluZSBvcHRp b24uCiAqLwpAQCAtMTA0Nyw2ICsxMDk0LDIyIEBAIHB1YmxpYzoKIH07CiAKIAorY2xhc3Mgc3lz X3Zhcl9jb25zdF9vczogcHVibGljIHN5c192YXJfY29uc3QKK3sKK3B1YmxpYzoKKyAgZW51bV92 YXJfdHlwZSB2YXJfdHlwZTsKKyAgU0hPV19UWVBFIHNob3dfdHlwZV92YWx1ZTsKKyAgdWNoYXIg KnB0cjsKKyAgc3lzX3Zhcl9jb25zdF9vcyhzeXNfdmFyX2NoYWluICpjaGFpbiwgY29uc3QgY2hh ciAqbmFtZV9hcmcsIAorICAgICAgICAgICAgICAgICAgIGVudW1fdmFyX3R5cGUgdHlwZSwKKyAg ICAgICAgICAgICAgICBTSE9XX1RZUEUgc2hvd190eXBlX2FyZywgdWNoYXIgKnB0cl9hcmcpCisg ICAgOnN5c192YXJfY29uc3QoY2hhaW4sIG5hbWVfYXJnLCB0eXBlLCBzaG93X3R5cGVfYXJnLCBw dHJfYXJnKQorICB7CisgICAgaXNfb3NfY2hhcnNldD0gVFJVRTsKKyAgfQorfTsKKworCiBjbGFz cyBzeXNfdmFyX2hhdmVfb3B0aW9uOiBwdWJsaWMgc3lzX3ZhcgogewogcHJvdGVjdGVkOgoKPT09 IG1vZGlmaWVkIGZpbGUgJ3NxbC9zbGF2ZS5jYycKLS0tIGEvc3FsL3NsYXZlLmNjCTIwMDgtMTEt MjQgMjA6NDY6MTEgKzAwMDAKKysrIGIvc3FsL3NsYXZlLmNjCTIwMDgtMTEtMjggMTY6MDU6NDQg KzAwMDAKQEAgLTI5MCw3ICsyOTAsNyBAQCBzdGF0aWMgdm9pZCBwcmludF9zbGF2ZV9za2lwX2Vy cm9ycyh2b2lkCiAgICAgMTAgY2hhcmFjdGVycyBtdXN0IGJlIHN1ZmZpY2llbnQgZm9yIGEgbnVt YmVyIHBsdXMgeycsJyB8ICcuLi4nfQogICAgIHBsdXMgYSBOVUwgdGVybWluYXRvci4gVGhhdCBp cyBhIG1heCA2IGRpZ2l0IG51bWJlci4KICAgKi8KLSAgY29uc3QgaW50IE1JTl9ST09NPSAxMDsK KyAgY29uc3Qgc2l6ZV90IE1JTl9ST09NPSAxMDsKICAgREJVR19FTlRFUigicHJpbnRfc2xhdmVf c2tpcF9lcnJvcnMiKTsKICAgREJVR19BU1NFUlQoc2l6ZW9mKHNsYXZlX3NraXBfZXJyb3JfbmFt ZXMpID4gTUlOX1JPT00pOwogICBEQlVHX0FTU0VSVChNQVhfU0xBVkVfRVJST1IgPD0gOTk5OTk5 KTsgLy8gNiBkaWdpdHMKCj09PSBtb2RpZmllZCBmaWxlICdzcWwvc3FsX3Nob3cuY2MnCi0tLSBh L3NxbC9zcWxfc2hvdy5jYwkyMDA4LTExLTEzIDEyOjUzOjE2ICswMDAwCisrKyBiL3NxbC9zcWxf c2hvdy5jYwkyMDA4LTExLTI4IDE2OjMwOjI3ICswMDAwCkBAIC0yMDg4LDYgKzIwODgsNyBAQCBz dGF0aWMgYm9vbCBzaG93X3N0YXR1c19hcnJheShUSEQgKnRoZCwgCiAgIENPTkQgKnBhcnRpYWxf Y29uZD0gMDsKICAgZW51bV9jaGVja19maWVsZHMgc2F2ZV9jb3VudF9jdXRlZF9maWVsZHM9IHRo ZC0+Y291bnRfY3V0ZWRfZmllbGRzOwogICBib29sIHJlcz0gRkFMU0U7CisgIENIQVJTRVRfSU5G TyAqY2hhcnNldD0gc3lzdGVtX2NoYXJzZXRfaW5mbzsKICAgREJVR19FTlRFUigic2hvd19zdGF0 dXNfYXJyYXkiKTsKIAogICB0aGQtPmNvdW50X2N1dGVkX2ZpZWxkcz0gQ0hFQ0tfRklFTERfV0FS TjsgIApAQCAtMjEzNiw5ICsyMTM3LDEwIEBAIHN0YXRpYyBib29sIHNob3dfc3RhdHVzX2FycmF5 KFRIRCAqdGhkLCAKIAogICAgICAgICBpZiAoc2hvd190eXBlID09IFNIT1dfU1lTKQogICAgICAg ICB7Ci0gICAgICAgICAgc2hvd190eXBlPSAoKHN5c192YXIqKSB2YWx1ZSktPnNob3dfdHlwZSgp OwotICAgICAgICAgIHZhbHVlPSAgICAgKGNoYXIqKSAoKHN5c192YXIqKSB2YWx1ZSktPnZhbHVl X3B0cih0aGQsIHZhbHVlX3R5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICZudWxsX2xleF9zdHIpOworICAgICAgICAgIHN5c192 YXIgKnZhcj0gKChzeXNfdmFyICopIHZhbHVlKTsKKyAgICAgICAgICBzaG93X3R5cGU9IHZhci0+ c2hvd190eXBlKCk7CisgICAgICAgICAgdmFsdWU9IChjaGFyKikgdmFyLT52YWx1ZV9wdHIodGhk LCB2YWx1ZV90eXBlLCAmbnVsbF9sZXhfc3RyKTsKKyAgICAgICAgICBjaGFyc2V0PSB2YXItPmNo YXJzZXQodGhkKTsKICAgICAgICAgfQogCiAgICAgICAgIHBvcz0gZW5kPSBidWZmOwpAQCAtMjIx NSw3ICsyMjE3LDcgQEAgc3RhdGljIGJvb2wgc2hvd19zdGF0dXNfYXJyYXkoVEhEICp0aGQsIAog ICAgICAgICAgIERCVUdfQVNTRVJUKDApOwogICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0g ICAgICAgIHRhYmxlLT5maWVsZFsxXS0+c3RvcmUocG9zLCAodWludDMyKSAoZW5kIC0gcG9zKSwg c3lzdGVtX2NoYXJzZXRfaW5mbyk7CisgICAgICAgIHRhYmxlLT5maWVsZFsxXS0+c3RvcmUocG9z LCAodWludDMyKSAoZW5kIC0gcG9zKSwgY2hhcnNldCk7CiAgICAgICAgIHRoZC0+Y291bnRfY3V0 ZWRfZmllbGRzPSBDSEVDS19GSUVMRF9JR05PUkU7CiAgICAgICAgIHRhYmxlLT5maWVsZFsxXS0+ c2V0X25vdG51bGwoKTsKIAoKPT09IG1vZGlmaWVkIGZpbGUgJ3NxbC9zcWxfdXBkYXRlLmNjJwot LS0gYS9zcWwvc3FsX3VwZGF0ZS5jYwkyMDA4LTExLTI3IDE0OjI1OjAyICswMDAwCisrKyBiL3Nx bC9zcWxfdXBkYXRlLmNjCTIwMDgtMTEtMjggMTc6NTE6NDcgKzAwMDAKQEAgLTcyOCw2ICs3Mjgs MTEgQEAgaW50IG15c3FsX3VwZGF0ZShUSEQgKnRoZCwKICAgICBlbHNlCiAgICAgICB0YWJsZS0+ ZmlsZS0+dW5sb2NrX3JvdygpOwogICAgIHRoZC0+cm93X2NvdW50Kys7CisgICAgaWYgKHRoZC0+ aXNfZXJyb3IoKSkKKyAgICB7CisgICAgICBlcnJvcj0gMTsKKyAgICAgIGJyZWFrOworICAgIH0K ICAgfQogICBkdXBfa2V5X2ZvdW5kPSAwOwogICAvKgoKPT09IG1vZGlmaWVkIGZpbGUgJ3NxbC9z cWxfdmlldy5jYycKLS0tIGEvc3FsL3NxbF92aWV3LmNjCTIwMDgtMTEtMTQgMTc6NDE6NTEgKzAw MDAKKysrIGIvc3FsL3NxbF92aWV3LmNjCTIwMDgtMTItMDEgMDg6MTg6MDYgKzAwMDAKQEAgLTEw NTYsOCArMTA1Niw5IEBAIGJvb2wgbXlzcWxfbWFrZV92aWV3KFRIRCAqdGhkLCBGaWxlX3BhcnMK IAogICBpZiAodGFibGUtPmluZGV4X2hpbnRzICYmIHRhYmxlLT5pbmRleF9oaW50cy0+ZWxlbWVu dHMpCiAgIHsKLSAgICAgIG15X2Vycm9yKEVSX1dST05HX1VTQUdFLCBNWUYoMCksICJpbmRleCBo aW50cyIsICJWSUVXIik7Ci0gICAgICBEQlVHX1JFVFVSTihUUlVFKTsKKyAgICBteV9lcnJvcihF Ul9LRVlfRE9FU19OT1RfRVhJVFMsIE1ZRigwKSwKKyAgICAgICAgICAgICB0YWJsZS0+aW5kZXhf aGludHMtPmhlYWQoKS0+a2V5X25hbWUuc3RyLCB0YWJsZS0+dGFibGVfbmFtZSk7CisgICAgREJV R19SRVRVUk4oVFJVRSk7CiAgIH0KIAogICAvKiBjaGVjayBsb29wIHZpYSB2aWV3IGRlZmluaXRp b24gKi8KCj09PSBtb2RpZmllZCBmaWxlICdzcWwvdHp0aW1lLmNjJwotLS0gYS9zcWwvdHp0aW1l LmNjCTIwMDgtMDUtMDggMjA6NDM6MjggKzAwMDAKKysrIGIvc3FsL3R6dGltZS5jYwkyMDA4LTEy LTAxIDE2OjAwOjAzICswMDAwCkBAIC0xMDcyLDYgKzEwNzIsNyBAQCBUaW1lX3pvbmVfc3lzdGVt OjpnbXRfc2VjX3RvX1RJTUUoTVlTUUxfCiAgIGxvY2FsdGltZV9yKCZ0bXBfdCwgJnRtcF90bSk7 CiAgIGxvY2FsdGltZV90b19USU1FKHRtcCwgJnRtcF90bSk7CiAgIHRtcC0+dGltZV90eXBlPSBN WVNRTF9USU1FU1RBTVBfREFURVRJTUU7CisgIGFkanVzdF9sZWFwX3NlY29uZCh0bXApOwogfQog CiAKQEAgLTExNTYsNiArMTE1Nyw3IEBAIFRpbWVfem9uZV91dGM6OmdtdF9zZWNfdG9fVElNRShN WVNRTF9USU0KICAgZ210aW1lX3IoJnRtcF90LCAmdG1wX3RtKTsKICAgbG9jYWx0aW1lX3RvX1RJ TUUodG1wLCAmdG1wX3RtKTsKICAgdG1wLT50aW1lX3R5cGU9IE1ZU1FMX1RJTUVTVEFNUF9EQVRF VElNRTsKKyAgYWRqdXN0X2xlYXBfc2Vjb25kKHRtcCk7CiB9CiAKIApAQCAtMTI1OSw2ICsxMjYx LDcgQEAgdm9pZAogVGltZV96b25lX2RiOjpnbXRfc2VjX3RvX1RJTUUoTVlTUUxfVElNRSAqdG1w LCBteV90aW1lX3QgdCkgY29uc3QKIHsKICAgOjpnbXRfc2VjX3RvX1RJTUUodG1wLCB0LCB0el9p bmZvKTsKKyAgYWRqdXN0X2xlYXBfc2Vjb25kKHRtcCk7CiB9CiAKIApAQCAtMjI3OSw2ICsyMjgy LDI0IEBAIG15X3R6X2ZpbmQoVEhEICp0aGQsIGNvbnN0IFN0cmluZyAqbmFtZSkKIH0KIAogCisv KioKKyAgQ29udmVydCBsZWFwIHNlY29uZHMgaW50byBub24tbGVhcAorCisgIFRoaXMgZnVuY3Rp b24gd2lsbCBjb252ZXJ0IHRoZSBsZWFwIHNlY29uZHMgYWRkZWQgYnkgdGhlIE9TIHRvIAorICBu b24tbGVhcCBzZWNvbmRzLCBlLmcuIDIzOjU5OjU5LCAyMzo1OTo2MCAtPiAyMzo1OTo1OSwgMDA6 MDA6MDEgLi4uCisgIFRoaXMgY2hlY2sgaXMgbm90IGNoZWNraW5nIGZvciB5ZWFycyBvbiBwdXJw b3NlIDogYWx0aG91Z2ggaXQncyBub3QgYQorICBjb21wbGV0ZSBjaGVjayB0aGlzIHdheSBpdCBk b2Vzbid0IHJlcXVpcmUgbG9va2luZyAoYW5kIGhhdmluZyBpbnN0YWxsZWQpCisgIHRoZSBsZWFw IHNlY29uZHMgdGFibGUuCisKKyAgQHBhcmFtW2luLG91dF0gYnJva2VuIGRvd24gdGltZSBzdHJ1 Y3R1cmUgYXMgZmlsbGVkIGluIGJ5IHRoZSBPUworKi8KKwordm9pZCBUaW1lX3pvbmU6OmFkanVz dF9sZWFwX3NlY29uZChNWVNRTF9USU1FICp0KQoreworICBpZiAodC0+c2Vjb25kID09IDYwIHx8 IHQtPnNlY29uZCA9PSA2MSkKKyAgICB0LT5zZWNvbmQ9IDU5OworfQorCiAjZW5kaWYgLyogIWRl ZmluZWQoVEVTVFRJTUUpICYmICFkZWZpbmVkKFRaSU5GTzJTUUwpICovCiAKIAoKPT09IG1vZGlm aWVkIGZpbGUgJ3NxbC90enRpbWUuaCcKLS0tIGEvc3FsL3R6dGltZS5oCTIwMDctMTAtMTYgMjA6 MTE6NTAgKzAwMDAKKysrIGIvc3FsL3R6dGltZS5oCTIwMDgtMTItMDEgMTU6MjI6MTYgKzAwMDAK QEAgLTU1LDYgKzU1LDkgQEAgcHVibGljOgogICAgIGFsbG9jYXRlZCBvbiBNRU1fUk9PVCBhbmQg c2hvdWxkIG5vdCByZXF1aXJlIGRlc3RydWN0aW9uLgogICAqLwogICB2aXJ0dWFsIH5UaW1lX3pv bmUoKSB7fTsKKworcHJvdGVjdGVkOgorICBzdGF0aWMgaW5saW5lIHZvaWQgYWRqdXN0X2xlYXBf c2Vjb25kKE1ZU1FMX1RJTUUgKnQpOwogfTsKIAogZXh0ZXJuIFRpbWVfem9uZSAqIG15X3R6X1VU QzsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2hhbmRsZXIvaGFfaW5ub2Ri LmNjJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2hhbmRsZXIvaGFfaW5ub2RiLmNjCTIwMDgtMTEt MDYgMTg6Mzk6MjcgKzAwMDAKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9oYW5kbGVyL2hhX2lubm9k Yi5jYwkyMDA4LTExLTI4IDAwOjI2OjM1ICswMDAwCkBAIC04MTg4LDcgKzgxODgsNyBAQCBzdGF0 aWMgTVlTUUxfU1lTVkFSX0JPT0woYWRhcHRpdmVfaGFzaF9pCiBzdGF0aWMgTVlTUUxfU1lTVkFS X0xPTkcoYWRkaXRpb25hbF9tZW1fcG9vbF9zaXplLCBpbm5vYmFzZV9hZGRpdGlvbmFsX21lbV9w b29sX3NpemUsCiAgIFBMVUdJTl9WQVJfUlFDTURBUkcgfCBQTFVHSU5fVkFSX1JFQURPTkxZLAog ICAiU2l6ZSBvZiBhIG1lbW9yeSBwb29sIElubm9EQiB1c2VzIHRvIHN0b3JlIGRhdGEgZGljdGlv bmFyeSBpbmZvcm1hdGlvbiBhbmQgb3RoZXIgaW50ZXJuYWwgZGF0YSBzdHJ1Y3R1cmVzLiIsCi0g IE5VTEwsIE5VTEwsIDEqMTAyNCoxMDI0TCwgNTEyKjEwMjRMLCB+MEwsIDEwMjQpOworICBOVUxM LCBOVUxMLCAxKjEwMjQqMTAyNEwsIDUxMioxMDI0TCwgTE9OR19NQVgsIDEwMjQpOwogCiBzdGF0 aWMgTVlTUUxfU1lTVkFSX1VMT05HKGF1dG9leHRlbmRfaW5jcmVtZW50LCBzcnZfYXV0b19leHRl bmRfaW5jcmVtZW50LAogICBQTFVHSU5fVkFSX1JRQ01EQVJHLApAQCAtODIyOCw3ICs4MjI4LDcg QEAgc3RhdGljIE1ZU1FMX1NZU1ZBUl9MT05HKGxvY2tfd2FpdF90aW1lbwogc3RhdGljIE1ZU1FM X1NZU1ZBUl9MT05HKGxvZ19idWZmZXJfc2l6ZSwgaW5ub2Jhc2VfbG9nX2J1ZmZlcl9zaXplLAog ICBQTFVHSU5fVkFSX1JRQ01EQVJHIHwgUExVR0lOX1ZBUl9SRUFET05MWSwKICAgIlRoZSBzaXpl IG9mIHRoZSBidWZmZXIgd2hpY2ggSW5ub0RCIHVzZXMgdG8gd3JpdGUgbG9nIHRvIHRoZSBsb2cg ZmlsZXMgb24gZGlzay4iLAotICBOVUxMLCBOVUxMLCAxMDI0KjEwMjRMLCAyNTYqMTAyNEwsIH4w TCwgMTAyNCk7CisgIE5VTEwsIE5VTEwsIDEwMjQqMTAyNEwsIDI1NioxMDI0TCwgTE9OR19NQVgs IDEwMjQpOwogCiBzdGF0aWMgTVlTUUxfU1lTVkFSX0xPTkdMT05HKGxvZ19maWxlX3NpemUsIGlu bm9iYXNlX2xvZ19maWxlX3NpemUsCiAgIFBMVUdJTl9WQVJfUlFDTURBUkcgfCBQTFVHSU5fVkFS X1JFQURPTkxZLApAQCAtODI0OCw3ICs4MjQ4LDcgQEAgc3RhdGljIE1ZU1FMX1NZU1ZBUl9MT05H KG1pcnJvcmVkX2xvZ19ncgogc3RhdGljIE1ZU1FMX1NZU1ZBUl9MT05HKG9wZW5fZmlsZXMsIGlu bm9iYXNlX29wZW5fZmlsZXMsCiAgIFBMVUdJTl9WQVJfUlFDTURBUkcgfCBQTFVHSU5fVkFSX1JF QURPTkxZLAogICAiSG93IG1hbnkgZmlsZXMgYXQgdGhlIG1heGltdW0gSW5ub0RCIGtlZXBzIG9w ZW4gYXQgdGhlIHNhbWUgdGltZS4iLAotICBOVUxMLCBOVUxMLCAzMDBMLCAxMEwsIH4wTCwgMCk7 CisgIE5VTEwsIE5VTEwsIDMwMEwsIDEwTCwgTE9OR19NQVgsIDApOwogCiBzdGF0aWMgTVlTUUxf U1lTVkFSX1VMT05HKHN5bmNfc3Bpbl9sb29wcywgc3J2X25fc3Bpbl93YWl0X3JvdW5kcywKICAg UExVR0lOX1ZBUl9SUUNNREFSRywKCg==