From: Date: August 12 2008 8:51pm Subject: bzr commit into mysql-5.0 branch (davi:2647) Bug#29738 Bug#31605 Bug#33362 Bug#37201 Bug#37781 Bug#37830 Bug#38296 Bug#38486 List-Archive: http://lists.mysql.com/commits/51449 X-Bug: 29738,31605,33362,37201,37781,37830,38296,38486 Message-Id: <20080812185112.5BF62EC402@skynet.ctb.virtua.com.br> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IyBBdCBhIGxvY2FsIG15c3FsLTUuMCByZXBvc2l0b3J5IG9mIGRhdmkKCiAyNjQ3IERhdmkgQXJu YXV0CTIwMDgtMDgtMTIgW21lcmdlXQogICAgICBNZXJnZSBteXNxbC01LjAtYnVndGVhbSBpbnRv IG15c3FsLTUuMAptb2RpZmllZDoKICBjbGllbnQvbXlzcWxfdXBncmFkZS5jCiAgbXlzcWwtdGVz dC9yL2Z1bmNfaWYucmVzdWx0CiAgbXlzcWwtdGVzdC9yL2lubm9kYl9teXNxbC5yZXN1bHQKICBt eXNxbC10ZXN0L3IvcXVlcnlfY2FjaGVfbWVyZ2UucmVzdWx0CiAgbXlzcWwtdGVzdC9yL3N1YnNl bGVjdC5yZXN1bHQKICBteXNxbC10ZXN0L3QvZnVuY19pZi50ZXN0CiAgbXlzcWwtdGVzdC90L2lu bm9kYl9teXNxbC50ZXN0CiAgbXlzcWwtdGVzdC90L3F1ZXJ5X2NhY2hlX21lcmdlLnRlc3QKICBt eXNxbC10ZXN0L3Qvc3Vic2VsZWN0LnRlc3QKICBteXN5cy9tZl9rZXljYWNoZS5jCiAgbXlzeXMv bXlfYWxsb2MuYwogIHNjcmlwdHMvbXlzcWxfc3lzdGVtX3RhYmxlcy5zcWwKICBzcWwvZmllbGQu aAogIHNxbC9pdGVtLmNjCiAgc3FsL2l0ZW0uaAogIHNxbC9pdGVtX2NtcGZ1bmMuY2MKICBzcWwv aXRlbV9mdW5jLmNjCiAgc3FsL29wdF9yYW5nZS5jYwogIHNxbC9vcHRfcmFuZ2UuaAogIHNxbC9z aGFyZS9lcnJtc2cudHh0CiAgc3FsL3NwX2hlYWQuY2MKICBzcWwvc3FsX2FjbC5jYwogIHNxbC9z cWxfY2FjaGUuY2MKICBzcWwvc3FsX2N1cnNvci5jYwogIHNxbC9zcWxfbGV4LmgKICBzcWwvc3Fs X2xpc3QuaAogIHNxbC9zcWxfcGFyc2UuY2MKICBzcWwvc3FsX3NlbGVjdC5jYwogIHNxbC9zcWxf c3RyaW5nLmgKICBzcWwvc3FsX3lhY2MueXkKICBzcWwvdGhyX21hbGxvYy5jYwogIHN1cHBvcnQt ZmlsZXMvYnVpbGQtdGFncwogIHRlc3RzL215c3FsX2NsaWVudF90ZXN0LmMKCj09PSBtb2RpZmll ZCBmaWxlICdjbGllbnQvbXlzcWxfdXBncmFkZS5jJwotLS0gYS9jbGllbnQvbXlzcWxfdXBncmFk ZS5jCTIwMDgtMDUtMDIgMTI6NDE6MTkgKzAwMDAKKysrIGIvY2xpZW50L215c3FsX3VwZ3JhZGUu YwkyMDA4LTA4LTExIDE3OjU2OjU0ICswMDAwCkBAIC0yNTksNiArMjU5LDEwIEBAIGdldF9vbmVf b3B0aW9uKGludCBvcHRpZCwgY29uc3Qgc3RydWN0IG0KIH0KIAogCisvKioKKyAgUnVuIGEgY29t bWFuZCB1c2luZyB0aGUgc2hlbGwsIHN0b3JpbmcgaXRzIG91dHB1dCBpbiB0aGUgc3VwcGxpZWQg ZHluYW1pYworICBzdHJpbmcuCisqLwogc3RhdGljIGludCBydW5fY29tbWFuZChjaGFyKiBjbWQs CiAgICAgICAgICAgICAgICAgICAgICAgIERZTkFNSUNfU1RSSU5HICpkc19yZXMpCiB7CkBAIC0z MzEsMzYgKzMzNSwxNiBAQCBzdGF0aWMgaW50IHJ1bl90b29sKGNoYXIgKnRvb2xfcGF0aCwgRFlO CiB9CiAKIAotLyoKLSAgVHJ5IHRvIGdldCB0aGUgZnVsbCBwYXRoIHRvIHRoaXMgZXhjZXV0YWJs ZQotCi0gIFJldHVybiAwIGlmIHBhdGggZm91bmQKLQorLyoqCisgIExvb2sgZm9yIHRoZSBmaWxl bmFtZSBvZiBnaXZlbiB0b29sLCB3aXRoIHRoZSBwcmVzdW1wdGlvbiB0aGF0IGl0IGlzIGluIHRo ZQorICBzYW1lIGRpcmVjdG9yeSBhcyBteXNxbF91cGdyYWRlIGFuZCB0aGF0IHRoZSBzYW1lIGV4 ZWN1dGFibGUtc2VhcmNoaW5nIAorICBtZWNoYW5pc20gd2lsbCBiZSB1c2VkIHdoZW4gd2UgcnVu IG91ciBzdWItc2hlbGxzIHdpdGggcG9wZW4oKSBsYXRlci4KICovCi0KLXN0YXRpYyBteV9ib29s IGdldF9mdWxsX3BhdGhfdG9fZXhlY3V0YWJsZShjaGFyKiBwYXRoKQorc3RhdGljIHZvaWQgZmlu ZF90b29sKGNoYXIgKnRvb2xfZXhlY3V0YWJsZV9uYW1lLCBjb25zdCBjaGFyICp0b29sX25hbWUs IAorICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnNlbGZfbmFtZSkKIHsKLSAgbXlf Ym9vbCByZXQ7Ci0gIERCVUdfRU5URVIoImdldF9mdWxsX3BhdGhfdG9fZXhlY3V0YWJsZSIpOwot I2lmZGVmIF9fV0lOX18KLSAgcmV0PSAoR2V0TW9kdWxlRmlsZU5hbWUoTlVMTCwgcGF0aCwgRk5f UkVGTEVOKSA9PSAwKTsKLSNlbHNlCi0gIC8qIG15X3JlYWRsaW5rIHJldHVybnMgMCBpZiBhIHN5 bWxpbmsgd2FzIHJlYWQgKi8KLSAgcmV0PSAobXlfcmVhZGxpbmsocGF0aCwgIi9wcm9jL3NlbGYv ZXhlIiwgTVlGKDApKSAhPSAwKTsKLSAgLyogTWlnaHQgYWxzbyB3YW50IHRvIHRyeSB3aXRoIC9w cm9jLyQkL2V4ZSBpZiB0aGUgYWJvdmUgZmFpbHMgKi8KLSNlbmRpZgotICBEQlVHX1BSSU5UKCJl eGl0IiwgKCJwYXRoOiAlcyIsIHBhdGgpKTsKLSAgREJVR19SRVRVUk4ocmV0KTsKLX0KKyAgY2hh ciAqbGFzdF9mbl9saWJjaGFyOwogCi0KLS8qCi0gIExvb2sgZm9yIHRoZSB0b29sIGluIHRoZSBz YW1lIGRpcmVjdG9yeSBhcyBteXNxbF91cGdyYWRlLgotKi8KLQotc3RhdGljIHZvaWQgZmluZF90 b29sKGNoYXIgKnRvb2xfcGF0aCwgY29uc3QgY2hhciAqdG9vbF9uYW1lKQotewotICBjaGFyIHBh dGhbRk5fUkVGTEVOXTsKICAgRFlOQU1JQ19TVFJJTkcgZHNfdG1wOwogICBEQlVHX0VOVEVSKCJm aW5kX3Rvb2wiKTsKICAgREJVR19QUklOVCgiZW50ZXIiLCAoInByb2duYW1lOiAlcyIsIG15X3By b2duYW1lKSk7CkBAIC0zNjgsNzcgKzM1Miw1OSBAQCBzdGF0aWMgdm9pZCBmaW5kX3Rvb2woY2hh ciAqdG9vbF9wYXRoLCBjCiAgIGlmIChpbml0X2R5bmFtaWNfc3RyaW5nKCZkc190bXAsICIiLCAz MiwgMzIpKQogICAgIGRpZSgiT3V0IG9mIG1lbW9yeSIpOwogCi0gIC8qIEluaXRpYWxpemUgcGF0 aCB3aXRoIHRoZSBmdWxsIHBhdGggdG8gdGhpcyBwcm9ncmFtICovCi0gIGlmIChnZXRfZnVsbF9w YXRoX3RvX2V4ZWN1dGFibGUocGF0aCkpCisgIGxhc3RfZm5fbGliY2hhcj0gc3RycmNocihzZWxm X25hbWUsIEZOX0xJQkNIQVIpOworCisgIGlmIChsYXN0X2ZuX2xpYmNoYXIgPT0gTlVMTCkKICAg ewogICAgIC8qCi0gICAgICBFYXN5IHdheSB0byBnZXQgZnVsbCBleGVjdXRhYmxlIHBhdGggZmFp bGVkLCB0cnkKLSAgICAgIG90aGVyIG1ldGhvZHMKKyAgICAgIG15c3FsX3VwZ3JhZGUgd2FzIGZv dW5kIGJ5IHRoZSBzaGVsbCBzZWFyY2hpbmcgdGhlIHBhdGguICBBIHNpYmxpbmcKKyAgICAgIG5l eHQgdG8gdXMgc2hvdWxkIGJlIGZvdW5kIHRoZSBzYW1lIHdheS4KICAgICAqLwotICAgIGlmICht eV9wcm9nbmFtZVswXSA9PSBGTl9MSUJDSEFSKQotICAgIHsKLSAgICAgIC8qIDEuIG15X3Byb2du YW1lIGNvbnRhaW5zIGZ1bGwgcGF0aCAqLwotICAgICAgc3RybWFrZShwYXRoLCBteV9wcm9nbmFt ZSwgRk5fUkVGTEVOKTsKLSAgICB9Ci0gICAgZWxzZSBpZiAobXlfcHJvZ25hbWVbMF0gPT0gJy4n KQotICAgIHsKLSAgICAgIC8qIDIuIG15X3Byb2duYW1lIGNvbnRhaW5zIHJlbGF0aXZlIHBhdGgs IHByZXBlbmQgd2QgKi8KLSAgICAgIGNoYXIgYnVmW0ZOX1JFRkxFTl07Ci0gICAgICBteV9nZXR3 ZChidWYsIEZOX1JFRkxFTiwgTVlGKDApKTsKLSAgICAgIG15X3NucHJpbnRmKHBhdGgsIEZOX1JF RkxFTiwgIiVzJXMiLCBidWYsIG15X3Byb2duYW1lKTsKLSAgICB9Ci0gICAgZWxzZQotICAgIHsK LSAgICAgIC8qIDMuIEp1c3QgZ28gZm9yIGl0IGFuZCBob3BlIHRvb2wgaXMgaW4gcGF0aCAqLwot ICAgICAgcGF0aFswXT0gMDsKLSAgICB9CisgICAgc3RybmNweSh0b29sX2V4ZWN1dGFibGVfbmFt ZSwgdG9vbF9uYW1lLCBGTl9SRUZMRU4pOwogICB9Ci0KLSAgREJVR19QUklOVCgiaW5mbyIsICgi cGF0aDogJyVzJyIsIHBhdGgpKTsKLQotICAvKiBDaG9wIG9mZiBiaW5hcnkgbmFtZSAoaS5lIG15 c3FsLXVwZ3JhZGUpIGZyb20gcGF0aCAqLwotICBkaXJuYW1lX3BhcnQocGF0aCwgcGF0aCk7Ci0K LSAgLyoKLSAgICBXaGVuIHJ1bm5pbmcgaW4gYSBub3QgeWV0IGluc3RhbGxlZCBidWlsZCBhbmQg dXNpbmcgbGlidG9vbCwKLSAgICB0aGUgcHJvZ3JhbShteXNxbF91cGdyYWRlKSB3aWxsIGJlIGlu IC5saWJzLyBhbmQgZXhlY3V0ZWQKLSAgICB0aHJvdWdoIGEgbGlidG9vbCB3cmFwcGVyIGluIG9y ZGVyIHRvIHVzZSB0aGUgZHluYW1pYyBsaWJyYXJpZXMKLSAgICBmcm9tIHRoaXMgYnVpbGQuIFRo ZSBzYW1lIG11c3QgYmUgZG9uZSBmb3IgdGhlIHRvb2xzKG15c3FsIGFuZAotICAgIG15c3FsY2hl Y2spLiBUaHVzIGlmIHBhdGggZW5kcyBpbiAubGlicy8sIHN0ZXAgdXAgb25lIGRpcmVjdG9yeQot ICAgIGFuZCBleGVjdXRlIHRoZSB0b29scyBmcm9tIHRoZXJlCi0gICovCi0gIHBhdGhbbWF4KChz dHJsZW4ocGF0aCktMSksIDApXT0gMDsgICAvKiBDaG9wIG9mZiBsYXN0IC8gKi8KLSAgaWYgKHN0 cm5jbXAocGF0aCArIGRpcm5hbWVfbGVuZ3RoKHBhdGgpLCAiLmxpYnMiLCA1KSA9PSAwKQorICBl bHNlCiAgIHsKLSAgICBEQlVHX1BSSU5UKCJpbmZvIiwgKCJDaG9wcGluZyBvZmYgLmxpYnMgZnJv bSAnJXMnIiwgcGF0aCkpOwotCi0gICAgLyogQ2hvcCBvZmYgLmxpYnMgKi8KLSAgICBkaXJuYW1l X3BhcnQocGF0aCwgcGF0aCk7Ci0gIH0KKyAgICBpbnQgbGVuOwogCisgICAgLyoKKyAgICAgIG15 c3FsX3VwZ3JhZGUgd2FzIHJ1biBhYnNvbHV0ZWx5IG9yIHJlbGF0aXZlbHkuICBXZSBjYW4gZmlu ZCBhIHNpYmxpbmcKKyAgICAgIGJ5IHJlcGxhY2luZyBvdXIgbmFtZSBhZnRlciB0aGUgTElCQ0hB UiB3aXRoIHRoZSBuZXcgdG9vbCBuYW1lLgorICAgICovCiAKLSAgREJVR19QUklOVCgiaW5mbyIs ICgicGF0aDogJyVzJyIsIHBhdGgpKTsKKyAgICAvKgorICAgICAgV2hlbiBydW5uaW5nIGluIGEg bm90IHlldCBpbnN0YWxsZWQgYnVpbGQgYW5kIHVzaW5nIGxpYnRvb2wsCisgICAgICB0aGUgcHJv Z3JhbShteXNxbF91cGdyYWRlKSB3aWxsIGJlIGluIC5saWJzLyBhbmQgZXhlY3V0ZWQKKyAgICAg IHRocm91Z2ggYSBsaWJ0b29sIHdyYXBwZXIgaW4gb3JkZXIgdG8gdXNlIHRoZSBkeW5hbWljIGxp YnJhcmllcworICAgICAgZnJvbSB0aGlzIGJ1aWxkLiBUaGUgc2FtZSBtdXN0IGJlIGRvbmUgZm9y IHRoZSB0b29scyhteXNxbCBhbmQKKyAgICAgIG15c3FsY2hlY2spLiBUaHVzIGlmIHBhdGggZW5k cyBpbiAubGlicy8sIHN0ZXAgdXAgb25lIGRpcmVjdG9yeQorICAgICAgYW5kIGV4ZWN1dGUgdGhl IHRvb2xzIGZyb20gdGhlcmUKKyAgICAqLworICAgIGlmICgoKGxhc3RfZm5fbGliY2hhciAtIDYp ID49IHNlbGZfbmFtZSkgJiYKKyAgICAgICAgKHN0cm5jbXAobGFzdF9mbl9saWJjaGFyIC0gNSwg Ii5saWJzIiwgNSkgPT0gMCkgJiYKKyAgICAgICAgKCoobGFzdF9mbl9saWJjaGFyIC0gNikgPT0g Rk5fTElCQ0hBUikpCisgICAgeworICAgICAgREJVR19QUklOVCgiaW5mbyIsICgiQ2hvcHBpbmcg b2ZmIFwiLmxpYnNcIiBmcm9tIGVuZCBvZiBwYXRoIikpOworICAgICAgbGFzdF9mbl9saWJjaGFy IC09IDY7CisgICAgfQogCi0gIC8qIEZvcm1hdCBuYW1lIG9mIHRoZSB0b29sIHRvIHNlYXJjaCBm b3IgKi8KLSAgZm5fZm9ybWF0KHRvb2xfcGF0aCwgdG9vbF9uYW1lLAotICAgICAgICAgICAgcGF0 aCwgIiIsIE1ZRihNWV9SRVBMQUNFX0RJUikpOworICAgIGxlbj0gbGFzdF9mbl9saWJjaGFyIC0g c2VsZl9uYW1lOwogCi0gIHZlcmJvc2UoIkxvb2tpbmcgZm9yICclcycgaW46ICVzIiwgdG9vbF9u YW1lLCB0b29sX3BhdGgpOworICAgIG15X3NucHJpbnRmKHRvb2xfZXhlY3V0YWJsZV9uYW1lLCBG Tl9SRUZMRU4sICIlLipzJWMlcyIsCisgICAgICAgICAgICAgICAgbGVuLCBzZWxmX25hbWUsIEZO X0xJQkNIQVIsIHRvb2xfbmFtZSk7CisgIH0KIAotICAvKiBNYWtlIHN1cmUgdGhlIHRvb2wgZXhp c3RzICovCi0gIGlmIChteV9hY2Nlc3ModG9vbF9wYXRoLCBGX09LKSAhPSAwKQotICAgIGRpZSgi Q2FuJ3QgZmluZCAnJXMnIiwgdG9vbF9wYXRoKTsKKyAgdmVyYm9zZSgiTG9va2luZyBmb3IgJyVz JyBhczogJXMiLCB0b29sX25hbWUsIHRvb2xfZXhlY3V0YWJsZV9uYW1lKTsKIAogICAvKgogICAg IE1ha2Ugc3VyZSBpdCBjYW4gYmUgZXhlY3V0ZWQKICAgKi8KLSAgaWYgKHJ1bl90b29sKHRvb2xf cGF0aCwKKyAgaWYgKHJ1bl90b29sKHRvb2xfZXhlY3V0YWJsZV9uYW1lLAogICAgICAgICAgICAg ICAgJmRzX3RtcCwgLyogR2V0IG91dHB1dCBmcm9tIGNvbW1hbmQsIGRpc2NhcmQqLwogICAgICAg ICAgICAgICAgIi0taGVscCIsCiAgICAgICAgICAgICAgICAiMj4mMSIsCiAgICAgICAgICAgICAg ICBJRl9XSU4oIj4gTlVMIiwgIj4gL2Rldi9udWxsIiksCiAgICAgICAgICAgICAgICBOVUxMKSkK LSAgICBkaWUoIkNhbid0IGV4ZWN1dGUgJyVzJyIsIHRvb2xfcGF0aCk7CisgICAgZGllKCJDYW4n dCBleGVjdXRlICclcyciLCB0b29sX2V4ZWN1dGFibGVfbmFtZSk7CiAKICAgZHluc3RyX2ZyZWUo JmRzX3RtcCk7CiAKQEAgLTc0OCwxMSArNzE0LDIwIEBAIHN0YXRpYyBjb25zdCBjaGFyICpsb2Fk X2RlZmF1bHRfZ3JvdXBzW10KIAogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewor ICBjaGFyIHNlbGZfbmFtZVtGTl9SRUZMRU5dOworCiAgIE1ZX0lOSVQoYXJndlswXSk7CiAjaWZk ZWYgX19ORVRXQVJFX18KICAgc2V0c2NyZWVubW9kZShTQ1JfQVVUT0NMT1NFX09OX0VYSVQpOwog I2VuZGlmCiAKKyNpZiBfX1dJTl9fCisgIGlmIChHZXRNb2R1bGVGaWxlTmFtZShOVUxMLCBzZWxm X25hbWUsIEZOX1JFRkxFTikgPT0gMCkKKyNlbmRpZgorICB7CisgICAgc3RybmNweShzZWxmX25h bWUsIGFyZ3ZbMF0sIEZOX1JFRkxFTik7CisgIH0KKwogICBpZiAoaW5pdF9keW5hbWljX3N0cmlu ZygmZHNfYXJncywgIiIsIDUxMiwgMjU2KSkKICAgICBkaWUoIk91dCBvZiBtZW1vcnkiKTsKIApA QCAtNzc0LDEwICs3NDksMTAgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICBk eW5zdHJfYXBwZW5kKCZkc19hcmdzLCAiICIpOwogCiAgIC8qIEZpbmQgbXlzcWwgKi8KLSAgZmlu ZF90b29sKG15c3FsX3BhdGgsIElGX1dJTigibXlzcWwuZXhlIiwgIm15c3FsIikpOworICBmaW5k X3Rvb2wobXlzcWxfcGF0aCwgSUZfV0lOKCJteXNxbC5leGUiLCAibXlzcWwiKSwgc2VsZl9uYW1l KTsKIAogICAvKiBGaW5kIG15c3FsY2hlY2sgKi8KLSAgZmluZF90b29sKG15c3FsY2hlY2tfcGF0 aCwgSUZfV0lOKCJteXNxbGNoZWNrLmV4ZSIsICJteXNxbGNoZWNrIikpOworICBmaW5kX3Rvb2wo bXlzcWxjaGVja19wYXRoLCBJRl9XSU4oIm15c3FsY2hlY2suZXhlIiwgIm15c3FsY2hlY2siKSwg c2VsZl9uYW1lKTsKIAogICAvKgogICAgIFJlYWQgdGhlIG15c3FsX3VwZ3JhZGVfaW5mbyBmaWxl IHRvIGNoZWNrIGlmIG15c3FsX3VwZ3JhZGUKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0 L3IvZnVuY19pZi5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvci9mdW5jX2lmLnJlc3VsdAkyMDA3 LTAyLTEyIDIwOjU5OjI5ICswMDAwCisrKyBiL215c3FsLXRlc3Qvci9mdW5jX2lmLnJlc3VsdAky MDA4LTA3LTMwIDExOjA3OjM3ICswMDAwCkBAIC0xMzEsMyArMTMxLDQ5IEBAIGRyb3AgdGFibGUg dDE7CiBzZWxlY3QgaWYoMCwgMTg0NDY3NDQwNzM3MDk1NTE2MTAsIDE4NDQ2NzQ0MDczNzA5NTUx NjEwKTsKIGlmKDAsIDE4NDQ2NzQ0MDczNzA5NTUxNjEwLCAxODQ0Njc0NDA3MzcwOTU1MTYxMCkK IDE4NDQ2NzQ0MDczNzA5NTUxNjEwCitDUkVBVEUgVEFCTEUgdDEoYSBERUNJTUFMKDEwLDMpKTsK K1NFTEVDVCB0MS5hLAorSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCitJRigoUk9VTkQodDEuYSwy KT0xKSwgMiwKK0lGKChST1VORCh0MS5hLDIpPTEpLCAyLAorSUYoKFJPVU5EKHQxLmEsMik9MSks IDIsCitJRigoUk9VTkQodDEuYSwyKT0xKSwgMiwKK0lGKChST1VORCh0MS5hLDIpPTEpLCAyLAor SUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCitJRigoUk9VTkQodDEuYSwyKT0xKSwgMiwKK0lGKChS T1VORCh0MS5hLDIpPTEpLCAyLAorSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCitJRigoUk9VTkQo dDEuYSwyKT0xKSwgMiwKK0lGKChST1VORCh0MS5hLDIpPTEpLCAyLAorSUYoKFJPVU5EKHQxLmEs Mik9MSksIDIsCitJRigoUk9VTkQodDEuYSwyKT0xKSwgMiwKK0lGKChST1VORCh0MS5hLDIpPTEp LCAyLAorSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCitJRigoUk9VTkQodDEuYSwyKT0xKSwgMiwK K0lGKChST1VORCh0MS5hLDIpPTEpLCAyLAorSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCitJRigo Uk9VTkQodDEuYSwyKT0xKSwgMiwKK0lGKChST1VORCh0MS5hLDIpPTEpLCAyLAorSUYoKFJPVU5E KHQxLmEsMik9MSksIDIsCitJRigoUk9VTkQodDEuYSwyKT0xKSwgMiwKK0lGKChST1VORCh0MS5h LDIpPTEpLCAyLAorSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCitJRigoUk9VTkQodDEuYSwyKT0x KSwgMiwKK0lGKChST1VORCh0MS5hLDIpPTEpLCAyLAorSUYoKFJPVU5EKHQxLmEsMik9MSksIDIs CitJRigoUk9VTkQodDEuYSwyKT0xKSwgMiwKK0lGKChST1VORCh0MS5hLDIpPTEpLCAyLDApKSkp KSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkgKyAxCitGUk9NIHQxOworYQlJRigoUk9VTkQodDEu YSwyKT0xKSwgMiwKK0lGKChST1VORCh0MS5hLDIpPTEpLCAyLAorSUYoKFJPVU5EKHQxLmEsMik9 MSksIDIsCitJRigoUk9VTkQodDEuYSwyKT0xKSwgMiwKK0lGKChST1VORCh0MS5hLDIpPTEpLCAy LAorSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCitJRigoUk9VTkQodDEuYSwyKT0xKSwgMiwKK0lG KChST1VORCh0MS5hLDIpPTEpLCAyLAorSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCitJRigoUk9V TkQodDEuYSwyKT0xKSwgMiwKK0lGKChSCitEUk9QIFRBQkxFIHQxOworRW5kIG9mIDUuMCB0ZXN0 cwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvci9pbm5vZGJfbXlzcWwucmVzdWx0Jwot LS0gYS9teXNxbC10ZXN0L3IvaW5ub2RiX215c3FsLnJlc3VsdAkyMDA4LTAyLTA3IDA3OjEyOjQ5 ICswMDAwCisrKyBiL215c3FsLXRlc3Qvci9pbm5vZGJfbXlzcWwucmVzdWx0CTIwMDgtMDctMjMg MTE6MjU6MDAgKzAwMDAKQEAgLTEyNDYsNCArMTI0NiwxOSBAQCBzZXQgZ2xvYmFsIGlubm9kYl9h dXRvZXh0ZW5kX2luY3JlbWVudD1ACiBzZXQgQG15X2lubm9kYl9jb21taXRfY29uY3VycmVuY3k9 QEBnbG9iYWwuaW5ub2RiX2NvbW1pdF9jb25jdXJyZW5jeTsKIHNldCBnbG9iYWwgaW5ub2RiX2Nv bW1pdF9jb25jdXJyZW5jeT0wOwogc2V0IGdsb2JhbCBpbm5vZGJfY29tbWl0X2NvbmN1cnJlbmN5 PUBteV9pbm5vZGJfY29tbWl0X2NvbmN1cnJlbmN5OworQ1JFQVRFIFRBQkxFIHQxIChhIGludCwg YiBpbnQsIGMgaW50LCBQUklNQVJZIEtFWSAoYSksIEtFWSB0MV9iIChiKSkKK0VOR0lORT1Jbm5v REI7CitJTlNFUlQgSU5UTyB0MSAoYSxiLGMpIFZBTFVFUyAoMSwxLDEpLCAoMiwxLDEpLCAoMywx LDEpLCAoNCwxLDEpOworSU5TRVJUIElOVE8gdDEgKGEsYixjKSBTRUxFQ1QgYSs0LGIsYyBGUk9N IHQxOworRVhQTEFJTiBTRUxFQ1QgYSwgYiwgYyBGUk9NIHQxIFdIRVJFIGIgPSAxIE9SREVSIEJZ IGEgREVTQyBMSU1JVCA1OworaWQJc2VsZWN0X3R5cGUJdGFibGUJdHlwZQlwb3NzaWJsZV9rZXlz CWtleQlrZXlfbGVuCXJlZglyb3dzCUV4dHJhCisxCVNJTVBMRQl0MQlyYW5nZQl0MV9iCXQxX2IJ NQlOVUxMCTQJVXNpbmcgd2hlcmUKK1NFTEVDVCBhLCBiLCBjIEZST00gdDEgV0hFUkUgYiA9IDEg T1JERVIgQlkgYSBERVNDIExJTUlUIDU7CithCWIJYworOAkxCTEKKzcJMQkxCis2CTEJMQorNQkx CTEKKzQJMQkxCitEUk9QIFRBQkxFIHQxOwogRW5kIG9mIDUuMCB0ZXN0cwoKPT09IG1vZGlmaWVk IGZpbGUgJ215c3FsLXRlc3Qvci9xdWVyeV9jYWNoZV9tZXJnZS5yZXN1bHQnCi0tLSBhL215c3Fs LXRlc3Qvci9xdWVyeV9jYWNoZV9tZXJnZS5yZXN1bHQJMjAwMy0wOC0yMiAwMTowNzo0MCArMDAw MAorKysgYi9teXNxbC10ZXN0L3IvcXVlcnlfY2FjaGVfbWVyZ2UucmVzdWx0CTIwMDgtMDctMjQg MTQ6MTQ6MzQgKzAwMDAKQEAgLTE4LDMgKzE4LDE2NzUgQEAgVmFyaWFibGVfbmFtZQlWYWx1ZQog UWNhY2hlX3F1ZXJpZXNfaW5fY2FjaGUJMAogZHJvcCB0YWJsZSB0MSx0Mix0Myx0NCx0NSx0Nix0 Nyx0OCx0OSx0MTAsdDExLHQxMix0MTMsdDE0LHQxNSx0MTYsdDE3LHQxOCx0MTksdDIwLHQyMSx0 MjIsdDIzLHQyNCx0MjUsdDI2LHQyNyx0MjgsdDI5LHQzMCx0MzEsdDMyLHQzMyx0MzQsdDM1LHQz Nix0MzcsdDM4LHQzOSx0NDAsdDQxLHQ0Mix0NDMsdDQ0LHQ0NSx0NDYsdDQ3LHQ0OCx0NDksdDUw LHQ1MSx0NTIsdDUzLHQ1NCx0NTUsdDU2LHQ1Nyx0NTgsdDU5LHQ2MCx0NjEsdDYyLHQ2Myx0NjQs dDY1LHQ2Nix0NjcsdDY4LHQ2OSx0NzAsdDcxLHQ3Mix0NzMsdDc0LHQ3NSx0NzYsdDc3LHQ3OCx0 NzksdDgwLHQ4MSx0ODIsdDgzLHQ4NCx0ODUsdDg2LHQ4Nyx0ODgsdDg5LHQ5MCx0OTEsdDkyLHQ5 Myx0OTQsdDk1LHQ5Nix0OTcsdDk4LHQ5OSx0MTAwLHQxMDEsdDEwMix0MTAzLHQxMDQsdDEwNSx0 MTA2LHQxMDcsdDEwOCx0MTA5LHQxMTAsdDExMSx0MTEyLHQxMTMsdDExNCx0MTE1LHQxMTYsdDEx Nyx0MTE4LHQxMTksdDEyMCx0MTIxLHQxMjIsdDEyMyx0MTI0LHQxMjUsdDEyNix0MTI3LHQxMjgs dDEyOSx0MTMwLHQxMzEsdDEzMix0MTMzLHQxMzQsdDEzNSx0MTM2LHQxMzcsdDEzOCx0MTM5LHQx NDAsdDE0MSx0MTQyLHQxNDMsdDE0NCx0MTQ1LHQxNDYsdDE0Nyx0MTQ4LHQxNDksdDE1MCx0MTUx LHQxNTIsdDE1Myx0MTU0LHQxNTUsdDE1Nix0MTU3LHQxNTgsdDE1OSx0MTYwLHQxNjEsdDE2Mix0 MTYzLHQxNjQsdDE2NSx0MTY2LHQxNjcsdDE2OCx0MTY5LHQxNzAsdDE3MSx0MTcyLHQxNzMsdDE3 NCx0MTc1LHQxNzYsdDE3Nyx0MTc4LHQxNzksdDE4MCx0MTgxLHQxODIsdDE4Myx0MTg0LHQxODUs dDE4Nix0MTg3LHQxODgsdDE4OSx0MTkwLHQxOTEsdDE5Mix0MTkzLHQxOTQsdDE5NSx0MTk2LHQx OTcsdDE5OCx0MTk5LHQyMDAsdDIwMSx0MjAyLHQyMDMsdDIwNCx0MjA1LHQyMDYsdDIwNyx0MjA4 LHQyMDksdDIxMCx0MjExLHQyMTIsdDIxMyx0MjE0LHQyMTUsdDIxNix0MjE3LHQyMTgsdDIxOSx0 MjIwLHQyMjEsdDIyMix0MjIzLHQyMjQsdDIyNSx0MjI2LHQyMjcsdDIyOCx0MjI5LHQyMzAsdDIz MSx0MjMyLHQyMzMsdDIzNCx0MjM1LHQyMzYsdDIzNyx0MjM4LHQyMzksdDI0MCx0MjQxLHQyNDIs dDI0Myx0MjQ0LHQyNDUsdDI0Nix0MjQ3LHQyNDgsdDI0OSx0MjUwLHQyNTEsdDI1Mix0MjUzLHQy NTQsdDI1NSx0MjU2LHQyNTcsdDAwOwogU0VUIEBAZ2xvYmFsLnF1ZXJ5X2NhY2hlX3NpemU9MDsK K0NSRUFURSBUQUJMRSB0MjU1IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MjU1IFZBTFVFUyAoMjU1 KTsKK0NSRUFURSBUQUJMRSB0MjU0IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MjU0IFZBTFVFUyAo MjU0KTsKK0NSRUFURSBUQUJMRSB0MjUzIChhIElOVCk7CitJTlNFUlQgSU5UTyB0MjUzIFZBTFVF UyAoMjUzKTsKK0NSRUFURSBUQUJMRSB0MjUyIChhIElOVCk7CitJTlNFUlQgSU5UTyB0MjUyIFZB TFVFUyAoMjUyKTsKK0NSRUFURSBUQUJMRSB0MjUxIChhIElOVCk7CitJTlNFUlQgSU5UTyB0MjUx IFZBTFVFUyAoMjUxKTsKK0NSRUFURSBUQUJMRSB0MjUwIChhIElOVCk7CitJTlNFUlQgSU5UTyB0 MjUwIFZBTFVFUyAoMjUwKTsKK0NSRUFURSBUQUJMRSB0MjQ5IChhIElOVCk7CitJTlNFUlQgSU5U TyB0MjQ5IFZBTFVFUyAoMjQ5KTsKK0NSRUFURSBUQUJMRSB0MjQ4IChhIElOVCk7CitJTlNFUlQg SU5UTyB0MjQ4IFZBTFVFUyAoMjQ4KTsKK0NSRUFURSBUQUJMRSB0MjQ3IChhIElOVCk7CitJTlNF UlQgSU5UTyB0MjQ3IFZBTFVFUyAoMjQ3KTsKK0NSRUFURSBUQUJMRSB0MjQ2IChhIElOVCk7CitJ TlNFUlQgSU5UTyB0MjQ2IFZBTFVFUyAoMjQ2KTsKK0NSRUFURSBUQUJMRSB0MjQ1IChhIElOVCk7 CitJTlNFUlQgSU5UTyB0MjQ1IFZBTFVFUyAoMjQ1KTsKK0NSRUFURSBUQUJMRSB0MjQ0IChhIElO VCk7CitJTlNFUlQgSU5UTyB0MjQ0IFZBTFVFUyAoMjQ0KTsKK0NSRUFURSBUQUJMRSB0MjQzIChh IElOVCk7CitJTlNFUlQgSU5UTyB0MjQzIFZBTFVFUyAoMjQzKTsKK0NSRUFURSBUQUJMRSB0MjQy IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MjQyIFZBTFVFUyAoMjQyKTsKK0NSRUFURSBUQUJMRSB0 MjQxIChhIElOVCk7CitJTlNFUlQgSU5UTyB0MjQxIFZBTFVFUyAoMjQxKTsKK0NSRUFURSBUQUJM RSB0MjQwIChhIElOVCk7CitJTlNFUlQgSU5UTyB0MjQwIFZBTFVFUyAoMjQwKTsKK0NSRUFURSBU QUJMRSB0MjM5IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MjM5IFZBTFVFUyAoMjM5KTsKK0NSRUFU RSBUQUJMRSB0MjM4IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MjM4IFZBTFVFUyAoMjM4KTsKK0NS RUFURSBUQUJMRSB0MjM3IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MjM3IFZBTFVFUyAoMjM3KTsK K0NSRUFURSBUQUJMRSB0MjM2IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MjM2IFZBTFVFUyAoMjM2 KTsKK0NSRUFURSBUQUJMRSB0MjM1IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MjM1IFZBTFVFUyAo MjM1KTsKK0NSRUFURSBUQUJMRSB0MjM0IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MjM0IFZBTFVF UyAoMjM0KTsKK0NSRUFURSBUQUJMRSB0MjMzIChhIElOVCk7CitJTlNFUlQgSU5UTyB0MjMzIFZB TFVFUyAoMjMzKTsKK0NSRUFURSBUQUJMRSB0MjMyIChhIElOVCk7CitJTlNFUlQgSU5UTyB0MjMy IFZBTFVFUyAoMjMyKTsKK0NSRUFURSBUQUJMRSB0MjMxIChhIElOVCk7CitJTlNFUlQgSU5UTyB0 MjMxIFZBTFVFUyAoMjMxKTsKK0NSRUFURSBUQUJMRSB0MjMwIChhIElOVCk7CitJTlNFUlQgSU5U TyB0MjMwIFZBTFVFUyAoMjMwKTsKK0NSRUFURSBUQUJMRSB0MjI5IChhIElOVCk7CitJTlNFUlQg SU5UTyB0MjI5IFZBTFVFUyAoMjI5KTsKK0NSRUFURSBUQUJMRSB0MjI4IChhIElOVCk7CitJTlNF UlQgSU5UTyB0MjI4IFZBTFVFUyAoMjI4KTsKK0NSRUFURSBUQUJMRSB0MjI3IChhIElOVCk7CitJ TlNFUlQgSU5UTyB0MjI3IFZBTFVFUyAoMjI3KTsKK0NSRUFURSBUQUJMRSB0MjI2IChhIElOVCk7 CitJTlNFUlQgSU5UTyB0MjI2IFZBTFVFUyAoMjI2KTsKK0NSRUFURSBUQUJMRSB0MjI1IChhIElO VCk7CitJTlNFUlQgSU5UTyB0MjI1IFZBTFVFUyAoMjI1KTsKK0NSRUFURSBUQUJMRSB0MjI0IChh IElOVCk7CitJTlNFUlQgSU5UTyB0MjI0IFZBTFVFUyAoMjI0KTsKK0NSRUFURSBUQUJMRSB0MjIz IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MjIzIFZBTFVFUyAoMjIzKTsKK0NSRUFURSBUQUJMRSB0 MjIyIChhIElOVCk7CitJTlNFUlQgSU5UTyB0MjIyIFZBTFVFUyAoMjIyKTsKK0NSRUFURSBUQUJM RSB0MjIxIChhIElOVCk7CitJTlNFUlQgSU5UTyB0MjIxIFZBTFVFUyAoMjIxKTsKK0NSRUFURSBU QUJMRSB0MjIwIChhIElOVCk7CitJTlNFUlQgSU5UTyB0MjIwIFZBTFVFUyAoMjIwKTsKK0NSRUFU RSBUQUJMRSB0MjE5IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MjE5IFZBTFVFUyAoMjE5KTsKK0NS RUFURSBUQUJMRSB0MjE4IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MjE4IFZBTFVFUyAoMjE4KTsK K0NSRUFURSBUQUJMRSB0MjE3IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MjE3IFZBTFVFUyAoMjE3 KTsKK0NSRUFURSBUQUJMRSB0MjE2IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MjE2IFZBTFVFUyAo MjE2KTsKK0NSRUFURSBUQUJMRSB0MjE1IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MjE1IFZBTFVF UyAoMjE1KTsKK0NSRUFURSBUQUJMRSB0MjE0IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MjE0IFZB TFVFUyAoMjE0KTsKK0NSRUFURSBUQUJMRSB0MjEzIChhIElOVCk7CitJTlNFUlQgSU5UTyB0MjEz IFZBTFVFUyAoMjEzKTsKK0NSRUFURSBUQUJMRSB0MjEyIChhIElOVCk7CitJTlNFUlQgSU5UTyB0 MjEyIFZBTFVFUyAoMjEyKTsKK0NSRUFURSBUQUJMRSB0MjExIChhIElOVCk7CitJTlNFUlQgSU5U TyB0MjExIFZBTFVFUyAoMjExKTsKK0NSRUFURSBUQUJMRSB0MjEwIChhIElOVCk7CitJTlNFUlQg SU5UTyB0MjEwIFZBTFVFUyAoMjEwKTsKK0NSRUFURSBUQUJMRSB0MjA5IChhIElOVCk7CitJTlNF UlQgSU5UTyB0MjA5IFZBTFVFUyAoMjA5KTsKK0NSRUFURSBUQUJMRSB0MjA4IChhIElOVCk7CitJ TlNFUlQgSU5UTyB0MjA4IFZBTFVFUyAoMjA4KTsKK0NSRUFURSBUQUJMRSB0MjA3IChhIElOVCk7 CitJTlNFUlQgSU5UTyB0MjA3IFZBTFVFUyAoMjA3KTsKK0NSRUFURSBUQUJMRSB0MjA2IChhIElO VCk7CitJTlNFUlQgSU5UTyB0MjA2IFZBTFVFUyAoMjA2KTsKK0NSRUFURSBUQUJMRSB0MjA1IChh IElOVCk7CitJTlNFUlQgSU5UTyB0MjA1IFZBTFVFUyAoMjA1KTsKK0NSRUFURSBUQUJMRSB0MjA0 IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MjA0IFZBTFVFUyAoMjA0KTsKK0NSRUFURSBUQUJMRSB0 MjAzIChhIElOVCk7CitJTlNFUlQgSU5UTyB0MjAzIFZBTFVFUyAoMjAzKTsKK0NSRUFURSBUQUJM RSB0MjAyIChhIElOVCk7CitJTlNFUlQgSU5UTyB0MjAyIFZBTFVFUyAoMjAyKTsKK0NSRUFURSBU QUJMRSB0MjAxIChhIElOVCk7CitJTlNFUlQgSU5UTyB0MjAxIFZBTFVFUyAoMjAxKTsKK0NSRUFU RSBUQUJMRSB0MjAwIChhIElOVCk7CitJTlNFUlQgSU5UTyB0MjAwIFZBTFVFUyAoMjAwKTsKK0NS RUFURSBUQUJMRSB0MTk5IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTk5IFZBTFVFUyAoMTk5KTsK K0NSRUFURSBUQUJMRSB0MTk4IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTk4IFZBTFVFUyAoMTk4 KTsKK0NSRUFURSBUQUJMRSB0MTk3IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTk3IFZBTFVFUyAo MTk3KTsKK0NSRUFURSBUQUJMRSB0MTk2IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTk2IFZBTFVF UyAoMTk2KTsKK0NSRUFURSBUQUJMRSB0MTk1IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTk1IFZB TFVFUyAoMTk1KTsKK0NSRUFURSBUQUJMRSB0MTk0IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTk0 IFZBTFVFUyAoMTk0KTsKK0NSRUFURSBUQUJMRSB0MTkzIChhIElOVCk7CitJTlNFUlQgSU5UTyB0 MTkzIFZBTFVFUyAoMTkzKTsKK0NSRUFURSBUQUJMRSB0MTkyIChhIElOVCk7CitJTlNFUlQgSU5U TyB0MTkyIFZBTFVFUyAoMTkyKTsKK0NSRUFURSBUQUJMRSB0MTkxIChhIElOVCk7CitJTlNFUlQg SU5UTyB0MTkxIFZBTFVFUyAoMTkxKTsKK0NSRUFURSBUQUJMRSB0MTkwIChhIElOVCk7CitJTlNF UlQgSU5UTyB0MTkwIFZBTFVFUyAoMTkwKTsKK0NSRUFURSBUQUJMRSB0MTg5IChhIElOVCk7CitJ TlNFUlQgSU5UTyB0MTg5IFZBTFVFUyAoMTg5KTsKK0NSRUFURSBUQUJMRSB0MTg4IChhIElOVCk7 CitJTlNFUlQgSU5UTyB0MTg4IFZBTFVFUyAoMTg4KTsKK0NSRUFURSBUQUJMRSB0MTg3IChhIElO VCk7CitJTlNFUlQgSU5UTyB0MTg3IFZBTFVFUyAoMTg3KTsKK0NSRUFURSBUQUJMRSB0MTg2IChh IElOVCk7CitJTlNFUlQgSU5UTyB0MTg2IFZBTFVFUyAoMTg2KTsKK0NSRUFURSBUQUJMRSB0MTg1 IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTg1IFZBTFVFUyAoMTg1KTsKK0NSRUFURSBUQUJMRSB0 MTg0IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTg0IFZBTFVFUyAoMTg0KTsKK0NSRUFURSBUQUJM RSB0MTgzIChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTgzIFZBTFVFUyAoMTgzKTsKK0NSRUFURSBU QUJMRSB0MTgyIChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTgyIFZBTFVFUyAoMTgyKTsKK0NSRUFU RSBUQUJMRSB0MTgxIChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTgxIFZBTFVFUyAoMTgxKTsKK0NS RUFURSBUQUJMRSB0MTgwIChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTgwIFZBTFVFUyAoMTgwKTsK K0NSRUFURSBUQUJMRSB0MTc5IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTc5IFZBTFVFUyAoMTc5 KTsKK0NSRUFURSBUQUJMRSB0MTc4IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTc4IFZBTFVFUyAo MTc4KTsKK0NSRUFURSBUQUJMRSB0MTc3IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTc3IFZBTFVF UyAoMTc3KTsKK0NSRUFURSBUQUJMRSB0MTc2IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTc2IFZB TFVFUyAoMTc2KTsKK0NSRUFURSBUQUJMRSB0MTc1IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTc1 IFZBTFVFUyAoMTc1KTsKK0NSRUFURSBUQUJMRSB0MTc0IChhIElOVCk7CitJTlNFUlQgSU5UTyB0 MTc0IFZBTFVFUyAoMTc0KTsKK0NSRUFURSBUQUJMRSB0MTczIChhIElOVCk7CitJTlNFUlQgSU5U TyB0MTczIFZBTFVFUyAoMTczKTsKK0NSRUFURSBUQUJMRSB0MTcyIChhIElOVCk7CitJTlNFUlQg SU5UTyB0MTcyIFZBTFVFUyAoMTcyKTsKK0NSRUFURSBUQUJMRSB0MTcxIChhIElOVCk7CitJTlNF UlQgSU5UTyB0MTcxIFZBTFVFUyAoMTcxKTsKK0NSRUFURSBUQUJMRSB0MTcwIChhIElOVCk7CitJ TlNFUlQgSU5UTyB0MTcwIFZBTFVFUyAoMTcwKTsKK0NSRUFURSBUQUJMRSB0MTY5IChhIElOVCk7 CitJTlNFUlQgSU5UTyB0MTY5IFZBTFVFUyAoMTY5KTsKK0NSRUFURSBUQUJMRSB0MTY4IChhIElO VCk7CitJTlNFUlQgSU5UTyB0MTY4IFZBTFVFUyAoMTY4KTsKK0NSRUFURSBUQUJMRSB0MTY3IChh IElOVCk7CitJTlNFUlQgSU5UTyB0MTY3IFZBTFVFUyAoMTY3KTsKK0NSRUFURSBUQUJMRSB0MTY2 IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTY2IFZBTFVFUyAoMTY2KTsKK0NSRUFURSBUQUJMRSB0 MTY1IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTY1IFZBTFVFUyAoMTY1KTsKK0NSRUFURSBUQUJM RSB0MTY0IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTY0IFZBTFVFUyAoMTY0KTsKK0NSRUFURSBU QUJMRSB0MTYzIChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTYzIFZBTFVFUyAoMTYzKTsKK0NSRUFU RSBUQUJMRSB0MTYyIChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTYyIFZBTFVFUyAoMTYyKTsKK0NS RUFURSBUQUJMRSB0MTYxIChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTYxIFZBTFVFUyAoMTYxKTsK K0NSRUFURSBUQUJMRSB0MTYwIChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTYwIFZBTFVFUyAoMTYw KTsKK0NSRUFURSBUQUJMRSB0MTU5IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTU5IFZBTFVFUyAo MTU5KTsKK0NSRUFURSBUQUJMRSB0MTU4IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTU4IFZBTFVF UyAoMTU4KTsKK0NSRUFURSBUQUJMRSB0MTU3IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTU3IFZB TFVFUyAoMTU3KTsKK0NSRUFURSBUQUJMRSB0MTU2IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTU2 IFZBTFVFUyAoMTU2KTsKK0NSRUFURSBUQUJMRSB0MTU1IChhIElOVCk7CitJTlNFUlQgSU5UTyB0 MTU1IFZBTFVFUyAoMTU1KTsKK0NSRUFURSBUQUJMRSB0MTU0IChhIElOVCk7CitJTlNFUlQgSU5U TyB0MTU0IFZBTFVFUyAoMTU0KTsKK0NSRUFURSBUQUJMRSB0MTUzIChhIElOVCk7CitJTlNFUlQg SU5UTyB0MTUzIFZBTFVFUyAoMTUzKTsKK0NSRUFURSBUQUJMRSB0MTUyIChhIElOVCk7CitJTlNF UlQgSU5UTyB0MTUyIFZBTFVFUyAoMTUyKTsKK0NSRUFURSBUQUJMRSB0MTUxIChhIElOVCk7CitJ TlNFUlQgSU5UTyB0MTUxIFZBTFVFUyAoMTUxKTsKK0NSRUFURSBUQUJMRSB0MTUwIChhIElOVCk7 CitJTlNFUlQgSU5UTyB0MTUwIFZBTFVFUyAoMTUwKTsKK0NSRUFURSBUQUJMRSB0MTQ5IChhIElO VCk7CitJTlNFUlQgSU5UTyB0MTQ5IFZBTFVFUyAoMTQ5KTsKK0NSRUFURSBUQUJMRSB0MTQ4IChh IElOVCk7CitJTlNFUlQgSU5UTyB0MTQ4IFZBTFVFUyAoMTQ4KTsKK0NSRUFURSBUQUJMRSB0MTQ3 IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTQ3IFZBTFVFUyAoMTQ3KTsKK0NSRUFURSBUQUJMRSB0 MTQ2IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTQ2IFZBTFVFUyAoMTQ2KTsKK0NSRUFURSBUQUJM RSB0MTQ1IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTQ1IFZBTFVFUyAoMTQ1KTsKK0NSRUFURSBU QUJMRSB0MTQ0IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTQ0IFZBTFVFUyAoMTQ0KTsKK0NSRUFU RSBUQUJMRSB0MTQzIChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTQzIFZBTFVFUyAoMTQzKTsKK0NS RUFURSBUQUJMRSB0MTQyIChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTQyIFZBTFVFUyAoMTQyKTsK K0NSRUFURSBUQUJMRSB0MTQxIChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTQxIFZBTFVFUyAoMTQx KTsKK0NSRUFURSBUQUJMRSB0MTQwIChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTQwIFZBTFVFUyAo MTQwKTsKK0NSRUFURSBUQUJMRSB0MTM5IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTM5IFZBTFVF UyAoMTM5KTsKK0NSRUFURSBUQUJMRSB0MTM4IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTM4IFZB TFVFUyAoMTM4KTsKK0NSRUFURSBUQUJMRSB0MTM3IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTM3 IFZBTFVFUyAoMTM3KTsKK0NSRUFURSBUQUJMRSB0MTM2IChhIElOVCk7CitJTlNFUlQgSU5UTyB0 MTM2IFZBTFVFUyAoMTM2KTsKK0NSRUFURSBUQUJMRSB0MTM1IChhIElOVCk7CitJTlNFUlQgSU5U TyB0MTM1IFZBTFVFUyAoMTM1KTsKK0NSRUFURSBUQUJMRSB0MTM0IChhIElOVCk7CitJTlNFUlQg SU5UTyB0MTM0IFZBTFVFUyAoMTM0KTsKK0NSRUFURSBUQUJMRSB0MTMzIChhIElOVCk7CitJTlNF UlQgSU5UTyB0MTMzIFZBTFVFUyAoMTMzKTsKK0NSRUFURSBUQUJMRSB0MTMyIChhIElOVCk7CitJ TlNFUlQgSU5UTyB0MTMyIFZBTFVFUyAoMTMyKTsKK0NSRUFURSBUQUJMRSB0MTMxIChhIElOVCk7 CitJTlNFUlQgSU5UTyB0MTMxIFZBTFVFUyAoMTMxKTsKK0NSRUFURSBUQUJMRSB0MTMwIChhIElO VCk7CitJTlNFUlQgSU5UTyB0MTMwIFZBTFVFUyAoMTMwKTsKK0NSRUFURSBUQUJMRSB0MTI5IChh IElOVCk7CitJTlNFUlQgSU5UTyB0MTI5IFZBTFVFUyAoMTI5KTsKK0NSRUFURSBUQUJMRSB0MTI4 IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTI4IFZBTFVFUyAoMTI4KTsKK0NSRUFURSBUQUJMRSB0 MTI3IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTI3IFZBTFVFUyAoMTI3KTsKK0NSRUFURSBUQUJM RSB0MTI2IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTI2IFZBTFVFUyAoMTI2KTsKK0NSRUFURSBU QUJMRSB0MTI1IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTI1IFZBTFVFUyAoMTI1KTsKK0NSRUFU RSBUQUJMRSB0MTI0IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTI0IFZBTFVFUyAoMTI0KTsKK0NS RUFURSBUQUJMRSB0MTIzIChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTIzIFZBTFVFUyAoMTIzKTsK K0NSRUFURSBUQUJMRSB0MTIyIChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTIyIFZBTFVFUyAoMTIy KTsKK0NSRUFURSBUQUJMRSB0MTIxIChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTIxIFZBTFVFUyAo MTIxKTsKK0NSRUFURSBUQUJMRSB0MTIwIChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTIwIFZBTFVF UyAoMTIwKTsKK0NSRUFURSBUQUJMRSB0MTE5IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTE5IFZB TFVFUyAoMTE5KTsKK0NSRUFURSBUQUJMRSB0MTE4IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTE4 IFZBTFVFUyAoMTE4KTsKK0NSRUFURSBUQUJMRSB0MTE3IChhIElOVCk7CitJTlNFUlQgSU5UTyB0 MTE3IFZBTFVFUyAoMTE3KTsKK0NSRUFURSBUQUJMRSB0MTE2IChhIElOVCk7CitJTlNFUlQgSU5U TyB0MTE2IFZBTFVFUyAoMTE2KTsKK0NSRUFURSBUQUJMRSB0MTE1IChhIElOVCk7CitJTlNFUlQg SU5UTyB0MTE1IFZBTFVFUyAoMTE1KTsKK0NSRUFURSBUQUJMRSB0MTE0IChhIElOVCk7CitJTlNF UlQgSU5UTyB0MTE0IFZBTFVFUyAoMTE0KTsKK0NSRUFURSBUQUJMRSB0MTEzIChhIElOVCk7CitJ TlNFUlQgSU5UTyB0MTEzIFZBTFVFUyAoMTEzKTsKK0NSRUFURSBUQUJMRSB0MTEyIChhIElOVCk7 CitJTlNFUlQgSU5UTyB0MTEyIFZBTFVFUyAoMTEyKTsKK0NSRUFURSBUQUJMRSB0MTExIChhIElO VCk7CitJTlNFUlQgSU5UTyB0MTExIFZBTFVFUyAoMTExKTsKK0NSRUFURSBUQUJMRSB0MTEwIChh IElOVCk7CitJTlNFUlQgSU5UTyB0MTEwIFZBTFVFUyAoMTEwKTsKK0NSRUFURSBUQUJMRSB0MTA5 IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTA5IFZBTFVFUyAoMTA5KTsKK0NSRUFURSBUQUJMRSB0 MTA4IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTA4IFZBTFVFUyAoMTA4KTsKK0NSRUFURSBUQUJM RSB0MTA3IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTA3IFZBTFVFUyAoMTA3KTsKK0NSRUFURSBU QUJMRSB0MTA2IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTA2IFZBTFVFUyAoMTA2KTsKK0NSRUFU RSBUQUJMRSB0MTA1IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTA1IFZBTFVFUyAoMTA1KTsKK0NS RUFURSBUQUJMRSB0MTA0IChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTA0IFZBTFVFUyAoMTA0KTsK K0NSRUFURSBUQUJMRSB0MTAzIChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTAzIFZBTFVFUyAoMTAz KTsKK0NSRUFURSBUQUJMRSB0MTAyIChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTAyIFZBTFVFUyAo MTAyKTsKK0NSRUFURSBUQUJMRSB0MTAxIChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTAxIFZBTFVF UyAoMTAxKTsKK0NSRUFURSBUQUJMRSB0MTAwIChhIElOVCk7CitJTlNFUlQgSU5UTyB0MTAwIFZB TFVFUyAoMTAwKTsKK0NSRUFURSBUQUJMRSB0OTkgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ5OSBW QUxVRVMgKDk5KTsKK0NSRUFURSBUQUJMRSB0OTggKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ5OCBW QUxVRVMgKDk4KTsKK0NSRUFURSBUQUJMRSB0OTcgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ5NyBW QUxVRVMgKDk3KTsKK0NSRUFURSBUQUJMRSB0OTYgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ5NiBW QUxVRVMgKDk2KTsKK0NSRUFURSBUQUJMRSB0OTUgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ5NSBW QUxVRVMgKDk1KTsKK0NSRUFURSBUQUJMRSB0OTQgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ5NCBW QUxVRVMgKDk0KTsKK0NSRUFURSBUQUJMRSB0OTMgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ5MyBW QUxVRVMgKDkzKTsKK0NSRUFURSBUQUJMRSB0OTIgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ5MiBW QUxVRVMgKDkyKTsKK0NSRUFURSBUQUJMRSB0OTEgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ5MSBW QUxVRVMgKDkxKTsKK0NSRUFURSBUQUJMRSB0OTAgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ5MCBW QUxVRVMgKDkwKTsKK0NSRUFURSBUQUJMRSB0ODkgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ4OSBW QUxVRVMgKDg5KTsKK0NSRUFURSBUQUJMRSB0ODggKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ4OCBW QUxVRVMgKDg4KTsKK0NSRUFURSBUQUJMRSB0ODcgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ4NyBW QUxVRVMgKDg3KTsKK0NSRUFURSBUQUJMRSB0ODYgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ4NiBW QUxVRVMgKDg2KTsKK0NSRUFURSBUQUJMRSB0ODUgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ4NSBW QUxVRVMgKDg1KTsKK0NSRUFURSBUQUJMRSB0ODQgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ4NCBW QUxVRVMgKDg0KTsKK0NSRUFURSBUQUJMRSB0ODMgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ4MyBW QUxVRVMgKDgzKTsKK0NSRUFURSBUQUJMRSB0ODIgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ4MiBW QUxVRVMgKDgyKTsKK0NSRUFURSBUQUJMRSB0ODEgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ4MSBW QUxVRVMgKDgxKTsKK0NSRUFURSBUQUJMRSB0ODAgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ4MCBW QUxVRVMgKDgwKTsKK0NSRUFURSBUQUJMRSB0NzkgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ3OSBW QUxVRVMgKDc5KTsKK0NSRUFURSBUQUJMRSB0NzggKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ3OCBW QUxVRVMgKDc4KTsKK0NSRUFURSBUQUJMRSB0NzcgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ3NyBW QUxVRVMgKDc3KTsKK0NSRUFURSBUQUJMRSB0NzYgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ3NiBW QUxVRVMgKDc2KTsKK0NSRUFURSBUQUJMRSB0NzUgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ3NSBW QUxVRVMgKDc1KTsKK0NSRUFURSBUQUJMRSB0NzQgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ3NCBW QUxVRVMgKDc0KTsKK0NSRUFURSBUQUJMRSB0NzMgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ3MyBW QUxVRVMgKDczKTsKK0NSRUFURSBUQUJMRSB0NzIgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ3MiBW QUxVRVMgKDcyKTsKK0NSRUFURSBUQUJMRSB0NzEgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ3MSBW QUxVRVMgKDcxKTsKK0NSRUFURSBUQUJMRSB0NzAgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ3MCBW QUxVRVMgKDcwKTsKK0NSRUFURSBUQUJMRSB0NjkgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ2OSBW QUxVRVMgKDY5KTsKK0NSRUFURSBUQUJMRSB0NjggKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ2OCBW QUxVRVMgKDY4KTsKK0NSRUFURSBUQUJMRSB0NjcgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ2NyBW QUxVRVMgKDY3KTsKK0NSRUFURSBUQUJMRSB0NjYgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ2NiBW QUxVRVMgKDY2KTsKK0NSRUFURSBUQUJMRSB0NjUgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ2NSBW QUxVRVMgKDY1KTsKK0NSRUFURSBUQUJMRSB0NjQgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ2NCBW QUxVRVMgKDY0KTsKK0NSRUFURSBUQUJMRSB0NjMgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ2MyBW QUxVRVMgKDYzKTsKK0NSRUFURSBUQUJMRSB0NjIgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ2MiBW QUxVRVMgKDYyKTsKK0NSRUFURSBUQUJMRSB0NjEgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ2MSBW QUxVRVMgKDYxKTsKK0NSRUFURSBUQUJMRSB0NjAgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ2MCBW QUxVRVMgKDYwKTsKK0NSRUFURSBUQUJMRSB0NTkgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ1OSBW QUxVRVMgKDU5KTsKK0NSRUFURSBUQUJMRSB0NTggKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ1OCBW QUxVRVMgKDU4KTsKK0NSRUFURSBUQUJMRSB0NTcgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ1NyBW QUxVRVMgKDU3KTsKK0NSRUFURSBUQUJMRSB0NTYgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ1NiBW QUxVRVMgKDU2KTsKK0NSRUFURSBUQUJMRSB0NTUgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ1NSBW QUxVRVMgKDU1KTsKK0NSRUFURSBUQUJMRSB0NTQgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ1NCBW QUxVRVMgKDU0KTsKK0NSRUFURSBUQUJMRSB0NTMgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ1MyBW QUxVRVMgKDUzKTsKK0NSRUFURSBUQUJMRSB0NTIgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ1MiBW QUxVRVMgKDUyKTsKK0NSRUFURSBUQUJMRSB0NTEgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ1MSBW QUxVRVMgKDUxKTsKK0NSRUFURSBUQUJMRSB0NTAgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ1MCBW QUxVRVMgKDUwKTsKK0NSRUFURSBUQUJMRSB0NDkgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ0OSBW QUxVRVMgKDQ5KTsKK0NSRUFURSBUQUJMRSB0NDggKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ0OCBW QUxVRVMgKDQ4KTsKK0NSRUFURSBUQUJMRSB0NDcgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ0NyBW QUxVRVMgKDQ3KTsKK0NSRUFURSBUQUJMRSB0NDYgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ0NiBW QUxVRVMgKDQ2KTsKK0NSRUFURSBUQUJMRSB0NDUgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ0NSBW QUxVRVMgKDQ1KTsKK0NSRUFURSBUQUJMRSB0NDQgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ0NCBW QUxVRVMgKDQ0KTsKK0NSRUFURSBUQUJMRSB0NDMgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ0MyBW QUxVRVMgKDQzKTsKK0NSRUFURSBUQUJMRSB0NDIgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ0MiBW QUxVRVMgKDQyKTsKK0NSRUFURSBUQUJMRSB0NDEgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ0MSBW QUxVRVMgKDQxKTsKK0NSRUFURSBUQUJMRSB0NDAgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQ0MCBW QUxVRVMgKDQwKTsKK0NSRUFURSBUQUJMRSB0MzkgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQzOSBW QUxVRVMgKDM5KTsKK0NSRUFURSBUQUJMRSB0MzggKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQzOCBW QUxVRVMgKDM4KTsKK0NSRUFURSBUQUJMRSB0MzcgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQzNyBW QUxVRVMgKDM3KTsKK0NSRUFURSBUQUJMRSB0MzYgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQzNiBW QUxVRVMgKDM2KTsKK0NSRUFURSBUQUJMRSB0MzUgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQzNSBW QUxVRVMgKDM1KTsKK0NSRUFURSBUQUJMRSB0MzQgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQzNCBW QUxVRVMgKDM0KTsKK0NSRUFURSBUQUJMRSB0MzMgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQzMyBW QUxVRVMgKDMzKTsKK0NSRUFURSBUQUJMRSB0MzIgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQzMiBW QUxVRVMgKDMyKTsKK0NSRUFURSBUQUJMRSB0MzEgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQzMSBW QUxVRVMgKDMxKTsKK0NSRUFURSBUQUJMRSB0MzAgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQzMCBW QUxVRVMgKDMwKTsKK0NSRUFURSBUQUJMRSB0MjkgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQyOSBW QUxVRVMgKDI5KTsKK0NSRUFURSBUQUJMRSB0MjggKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQyOCBW QUxVRVMgKDI4KTsKK0NSRUFURSBUQUJMRSB0MjcgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQyNyBW QUxVRVMgKDI3KTsKK0NSRUFURSBUQUJMRSB0MjYgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQyNiBW QUxVRVMgKDI2KTsKK0NSRUFURSBUQUJMRSB0MjUgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQyNSBW QUxVRVMgKDI1KTsKK0NSRUFURSBUQUJMRSB0MjQgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQyNCBW QUxVRVMgKDI0KTsKK0NSRUFURSBUQUJMRSB0MjMgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQyMyBW QUxVRVMgKDIzKTsKK0NSRUFURSBUQUJMRSB0MjIgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQyMiBW QUxVRVMgKDIyKTsKK0NSRUFURSBUQUJMRSB0MjEgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQyMSBW QUxVRVMgKDIxKTsKK0NSRUFURSBUQUJMRSB0MjAgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQyMCBW QUxVRVMgKDIwKTsKK0NSRUFURSBUQUJMRSB0MTkgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQxOSBW QUxVRVMgKDE5KTsKK0NSRUFURSBUQUJMRSB0MTggKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQxOCBW QUxVRVMgKDE4KTsKK0NSRUFURSBUQUJMRSB0MTcgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQxNyBW QUxVRVMgKDE3KTsKK0NSRUFURSBUQUJMRSB0MTYgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQxNiBW QUxVRVMgKDE2KTsKK0NSRUFURSBUQUJMRSB0MTUgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQxNSBW QUxVRVMgKDE1KTsKK0NSRUFURSBUQUJMRSB0MTQgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQxNCBW QUxVRVMgKDE0KTsKK0NSRUFURSBUQUJMRSB0MTMgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQxMyBW QUxVRVMgKDEzKTsKK0NSRUFURSBUQUJMRSB0MTIgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQxMiBW QUxVRVMgKDEyKTsKK0NSRUFURSBUQUJMRSB0MTEgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQxMSBW QUxVRVMgKDExKTsKK0NSRUFURSBUQUJMRSB0MTAgKGEgSU5UKTsKK0lOU0VSVCBJTlRPIHQxMCBW QUxVRVMgKDEwKTsKK0NSRUFURSBUQUJMRSB0OSAoYSBJTlQpOworSU5TRVJUIElOVE8gdDkgVkFM VUVTICg5KTsKK0NSRUFURSBUQUJMRSB0OCAoYSBJTlQpOworSU5TRVJUIElOVE8gdDggVkFMVUVT ICg4KTsKK0NSRUFURSBUQUJMRSB0NyAoYSBJTlQpOworSU5TRVJUIElOVE8gdDcgVkFMVUVTICg3 KTsKK0NSRUFURSBUQUJMRSB0NiAoYSBJTlQpOworSU5TRVJUIElOVE8gdDYgVkFMVUVTICg2KTsK K0NSRUFURSBUQUJMRSB0NSAoYSBJTlQpOworSU5TRVJUIElOVE8gdDUgVkFMVUVTICg1KTsKK0NS RUFURSBUQUJMRSB0NCAoYSBJTlQpOworSU5TRVJUIElOVE8gdDQgVkFMVUVTICg0KTsKK0NSRUFU RSBUQUJMRSB0MyAoYSBJTlQpOworSU5TRVJUIElOVE8gdDMgVkFMVUVTICgzKTsKK0NSRUFURSBU QUJMRSB0MiAoYSBJTlQpOworSU5TRVJUIElOVE8gdDIgVkFMVUVTICgyKTsKK0NSRUFURSBUQUJM RSB0MSAoYSBJTlQpOworSU5TRVJUIElOVE8gdDEgVkFMVUVTICgxKTsKK0NSRUFURSBUQUJMRSB0 MCAoYSBJTlQpIEVOR0lORT1NRVJHRSBVTklPTih0MSx0Mix0Myx0NCx0NSx0Nix0Nyx0OCx0OSx0 MTAsdDExLHQxMix0MTMsdDE0LHQxNSx0MTYsdDE3LHQxOCx0MTksdDIwLHQyMSx0MjIsdDIzLHQy NCx0MjUsdDI2LHQyNyx0MjgsdDI5LHQzMCx0MzEsdDMyLHQzMyx0MzQsdDM1LHQzNix0MzcsdDM4 LHQzOSx0NDAsdDQxLHQ0Mix0NDMsdDQ0LHQ0NSx0NDYsdDQ3LHQ0OCx0NDksdDUwLHQ1MSx0NTIs dDUzLHQ1NCx0NTUsdDU2LHQ1Nyx0NTgsdDU5LHQ2MCx0NjEsdDYyLHQ2Myx0NjQsdDY1LHQ2Nix0 NjcsdDY4LHQ2OSx0NzAsdDcxLHQ3Mix0NzMsdDc0LHQ3NSx0NzYsdDc3LHQ3OCx0NzksdDgwLHQ4 MSx0ODIsdDgzLHQ4NCx0ODUsdDg2LHQ4Nyx0ODgsdDg5LHQ5MCx0OTEsdDkyLHQ5Myx0OTQsdDk1 LHQ5Nix0OTcsdDk4LHQ5OSx0MTAwLHQxMDEsdDEwMix0MTAzLHQxMDQsdDEwNSx0MTA2LHQxMDcs dDEwOCx0MTA5LHQxMTAsdDExMSx0MTEyLHQxMTMsdDExNCx0MTE1LHQxMTYsdDExNyx0MTE4LHQx MTksdDEyMCx0MTIxLHQxMjIsdDEyMyx0MTI0LHQxMjUsdDEyNix0MTI3LHQxMjgsdDEyOSx0MTMw LHQxMzEsdDEzMix0MTMzLHQxMzQsdDEzNSx0MTM2LHQxMzcsdDEzOCx0MTM5LHQxNDAsdDE0MSx0 MTQyLHQxNDMsdDE0NCx0MTQ1LHQxNDYsdDE0Nyx0MTQ4LHQxNDksdDE1MCx0MTUxLHQxNTIsdDE1 Myx0MTU0LHQxNTUsdDE1Nix0MTU3LHQxNTgsdDE1OSx0MTYwLHQxNjEsdDE2Mix0MTYzLHQxNjQs dDE2NSx0MTY2LHQxNjcsdDE2OCx0MTY5LHQxNzAsdDE3MSx0MTcyLHQxNzMsdDE3NCx0MTc1LHQx NzYsdDE3Nyx0MTc4LHQxNzksdDE4MCx0MTgxLHQxODIsdDE4Myx0MTg0LHQxODUsdDE4Nix0MTg3 LHQxODgsdDE4OSx0MTkwLHQxOTEsdDE5Mix0MTkzLHQxOTQsdDE5NSx0MTk2LHQxOTcsdDE5OCx0 MTk5LHQyMDAsdDIwMSx0MjAyLHQyMDMsdDIwNCx0MjA1LHQyMDYsdDIwNyx0MjA4LHQyMDksdDIx MCx0MjExLHQyMTIsdDIxMyx0MjE0LHQyMTUsdDIxNix0MjE3LHQyMTgsdDIxOSx0MjIwLHQyMjEs dDIyMix0MjIzLHQyMjQsdDIyNSx0MjI2LHQyMjcsdDIyOCx0MjI5LHQyMzAsdDIzMSx0MjMyLHQy MzMsdDIzNCx0MjM1LHQyMzYsdDIzNyx0MjM4LHQyMzksdDI0MCx0MjQxLHQyNDIsdDI0Myx0MjQ0 LHQyNDUsdDI0Nix0MjQ3LHQyNDgsdDI0OSx0MjUwLHQyNTEsdDI1Mix0MjUzLHQyNTQsdDI1NSk7 CitTRVQgR0xPQkFMIHF1ZXJ5X2NhY2hlX3NpemUgPSAxMDQ4NTc2OworRkxVU0ggU1RBVFVTOwor U0VMRUNUIGEgRlJPTSB0MCBXSEVSRSBhID0gMTsKK2EKKzEKK1NIT1cgU1RBVFVTIExJS0UgIlFj YWNoZV9xdWVyaWVzX2luX2NhY2hlIjsKK1ZhcmlhYmxlX25hbWUJVmFsdWUKK1FjYWNoZV9xdWVy aWVzX2luX2NhY2hlCTEKK0ZMVVNIIFRBQkxFUzsKK1RSVU5DQVRFIFRBQkxFIHQyNTU7CitTRUxF Q1QgYSBGUk9NIHQxOworYQorMQorVFJVTkNBVEUgVEFCTEUgdDI1NDsKK1NFTEVDVCBhIEZST00g dDI7CithCisyCitUUlVOQ0FURSBUQUJMRSB0MjUzOworU0VMRUNUIGEgRlJPTSB0MzsKK2EKKzMK K1RSVU5DQVRFIFRBQkxFIHQyNTI7CitTRUxFQ1QgYSBGUk9NIHQ0OworYQorNAorVFJVTkNBVEUg VEFCTEUgdDI1MTsKK1NFTEVDVCBhIEZST00gdDU7CithCis1CitUUlVOQ0FURSBUQUJMRSB0MjUw OworU0VMRUNUIGEgRlJPTSB0NjsKK2EKKzYKK1RSVU5DQVRFIFRBQkxFIHQyNDk7CitTRUxFQ1Qg YSBGUk9NIHQ3OworYQorNworVFJVTkNBVEUgVEFCTEUgdDI0ODsKK1NFTEVDVCBhIEZST00gdDg7 CithCis4CitUUlVOQ0FURSBUQUJMRSB0MjQ3OworU0VMRUNUIGEgRlJPTSB0OTsKK2EKKzkKK1RS VU5DQVRFIFRBQkxFIHQyNDY7CitTRUxFQ1QgYSBGUk9NIHQxMDsKK2EKKzEwCitUUlVOQ0FURSBU QUJMRSB0MjQ1OworU0VMRUNUIGEgRlJPTSB0MTE7CithCisxMQorVFJVTkNBVEUgVEFCTEUgdDI0 NDsKK1NFTEVDVCBhIEZST00gdDEyOworYQorMTIKK1RSVU5DQVRFIFRBQkxFIHQyNDM7CitTRUxF Q1QgYSBGUk9NIHQxMzsKK2EKKzEzCitUUlVOQ0FURSBUQUJMRSB0MjQyOworU0VMRUNUIGEgRlJP TSB0MTQ7CithCisxNAorVFJVTkNBVEUgVEFCTEUgdDI0MTsKK1NFTEVDVCBhIEZST00gdDE1Owor YQorMTUKK1RSVU5DQVRFIFRBQkxFIHQyNDA7CitTRUxFQ1QgYSBGUk9NIHQxNjsKK2EKKzE2CitU UlVOQ0FURSBUQUJMRSB0MjM5OworU0VMRUNUIGEgRlJPTSB0MTc7CithCisxNworVFJVTkNBVEUg VEFCTEUgdDIzODsKK1NFTEVDVCBhIEZST00gdDE4OworYQorMTgKK1RSVU5DQVRFIFRBQkxFIHQy Mzc7CitTRUxFQ1QgYSBGUk9NIHQxOTsKK2EKKzE5CitUUlVOQ0FURSBUQUJMRSB0MjM2OworU0VM RUNUIGEgRlJPTSB0MjA7CithCisyMAorVFJVTkNBVEUgVEFCTEUgdDIzNTsKK1NFTEVDVCBhIEZS T00gdDIxOworYQorMjEKK1RSVU5DQVRFIFRBQkxFIHQyMzQ7CitTRUxFQ1QgYSBGUk9NIHQyMjsK K2EKKzIyCitUUlVOQ0FURSBUQUJMRSB0MjMzOworU0VMRUNUIGEgRlJPTSB0MjM7CithCisyMwor VFJVTkNBVEUgVEFCTEUgdDIzMjsKK1NFTEVDVCBhIEZST00gdDI0OworYQorMjQKK1RSVU5DQVRF IFRBQkxFIHQyMzE7CitTRUxFQ1QgYSBGUk9NIHQyNTsKK2EKKzI1CitUUlVOQ0FURSBUQUJMRSB0 MjMwOworU0VMRUNUIGEgRlJPTSB0MjY7CithCisyNgorVFJVTkNBVEUgVEFCTEUgdDIyOTsKK1NF TEVDVCBhIEZST00gdDI3OworYQorMjcKK1RSVU5DQVRFIFRBQkxFIHQyMjg7CitTRUxFQ1QgYSBG Uk9NIHQyODsKK2EKKzI4CitUUlVOQ0FURSBUQUJMRSB0MjI3OworU0VMRUNUIGEgRlJPTSB0Mjk7 CithCisyOQorVFJVTkNBVEUgVEFCTEUgdDIyNjsKK1NFTEVDVCBhIEZST00gdDMwOworYQorMzAK K1RSVU5DQVRFIFRBQkxFIHQyMjU7CitTRUxFQ1QgYSBGUk9NIHQzMTsKK2EKKzMxCitUUlVOQ0FU RSBUQUJMRSB0MjI0OworU0VMRUNUIGEgRlJPTSB0MzI7CithCiszMgorVFJVTkNBVEUgVEFCTEUg dDIyMzsKK1NFTEVDVCBhIEZST00gdDMzOworYQorMzMKK1RSVU5DQVRFIFRBQkxFIHQyMjI7CitT RUxFQ1QgYSBGUk9NIHQzNDsKK2EKKzM0CitUUlVOQ0FURSBUQUJMRSB0MjIxOworU0VMRUNUIGEg RlJPTSB0MzU7CithCiszNQorVFJVTkNBVEUgVEFCTEUgdDIyMDsKK1NFTEVDVCBhIEZST00gdDM2 OworYQorMzYKK1RSVU5DQVRFIFRBQkxFIHQyMTk7CitTRUxFQ1QgYSBGUk9NIHQzNzsKK2EKKzM3 CitUUlVOQ0FURSBUQUJMRSB0MjE4OworU0VMRUNUIGEgRlJPTSB0Mzg7CithCiszOAorVFJVTkNB VEUgVEFCTEUgdDIxNzsKK1NFTEVDVCBhIEZST00gdDM5OworYQorMzkKK1RSVU5DQVRFIFRBQkxF IHQyMTY7CitTRUxFQ1QgYSBGUk9NIHQ0MDsKK2EKKzQwCitUUlVOQ0FURSBUQUJMRSB0MjE1Owor U0VMRUNUIGEgRlJPTSB0NDE7CithCis0MQorVFJVTkNBVEUgVEFCTEUgdDIxNDsKK1NFTEVDVCBh IEZST00gdDQyOworYQorNDIKK1RSVU5DQVRFIFRBQkxFIHQyMTM7CitTRUxFQ1QgYSBGUk9NIHQ0 MzsKK2EKKzQzCitUUlVOQ0FURSBUQUJMRSB0MjEyOworU0VMRUNUIGEgRlJPTSB0NDQ7CithCis0 NAorVFJVTkNBVEUgVEFCTEUgdDIxMTsKK1NFTEVDVCBhIEZST00gdDQ1OworYQorNDUKK1RSVU5D QVRFIFRBQkxFIHQyMTA7CitTRUxFQ1QgYSBGUk9NIHQ0NjsKK2EKKzQ2CitUUlVOQ0FURSBUQUJM RSB0MjA5OworU0VMRUNUIGEgRlJPTSB0NDc7CithCis0NworVFJVTkNBVEUgVEFCTEUgdDIwODsK K1NFTEVDVCBhIEZST00gdDQ4OworYQorNDgKK1RSVU5DQVRFIFRBQkxFIHQyMDc7CitTRUxFQ1Qg YSBGUk9NIHQ0OTsKK2EKKzQ5CitUUlVOQ0FURSBUQUJMRSB0MjA2OworU0VMRUNUIGEgRlJPTSB0 NTA7CithCis1MAorVFJVTkNBVEUgVEFCTEUgdDIwNTsKK1NFTEVDVCBhIEZST00gdDUxOworYQor NTEKK1RSVU5DQVRFIFRBQkxFIHQyMDQ7CitTRUxFQ1QgYSBGUk9NIHQ1MjsKK2EKKzUyCitUUlVO Q0FURSBUQUJMRSB0MjAzOworU0VMRUNUIGEgRlJPTSB0NTM7CithCis1MworVFJVTkNBVEUgVEFC TEUgdDIwMjsKK1NFTEVDVCBhIEZST00gdDU0OworYQorNTQKK1RSVU5DQVRFIFRBQkxFIHQyMDE7 CitTRUxFQ1QgYSBGUk9NIHQ1NTsKK2EKKzU1CitUUlVOQ0FURSBUQUJMRSB0MjAwOworU0VMRUNU IGEgRlJPTSB0NTY7CithCis1NgorVFJVTkNBVEUgVEFCTEUgdDE5OTsKK1NFTEVDVCBhIEZST00g dDU3OworYQorNTcKK1RSVU5DQVRFIFRBQkxFIHQxOTg7CitTRUxFQ1QgYSBGUk9NIHQ1ODsKK2EK KzU4CitUUlVOQ0FURSBUQUJMRSB0MTk3OworU0VMRUNUIGEgRlJPTSB0NTk7CithCis1OQorVFJV TkNBVEUgVEFCTEUgdDE5NjsKK1NFTEVDVCBhIEZST00gdDYwOworYQorNjAKK1RSVU5DQVRFIFRB QkxFIHQxOTU7CitTRUxFQ1QgYSBGUk9NIHQ2MTsKK2EKKzYxCitUUlVOQ0FURSBUQUJMRSB0MTk0 OworU0VMRUNUIGEgRlJPTSB0NjI7CithCis2MgorVFJVTkNBVEUgVEFCTEUgdDE5MzsKK1NFTEVD VCBhIEZST00gdDYzOworYQorNjMKK1RSVU5DQVRFIFRBQkxFIHQxOTI7CitTRUxFQ1QgYSBGUk9N IHQ2NDsKK2EKKzY0CitUUlVOQ0FURSBUQUJMRSB0MTkxOworU0VMRUNUIGEgRlJPTSB0NjU7Cith Cis2NQorVFJVTkNBVEUgVEFCTEUgdDE5MDsKK1NFTEVDVCBhIEZST00gdDY2OworYQorNjYKK1RS VU5DQVRFIFRBQkxFIHQxODk7CitTRUxFQ1QgYSBGUk9NIHQ2NzsKK2EKKzY3CitUUlVOQ0FURSBU QUJMRSB0MTg4OworU0VMRUNUIGEgRlJPTSB0Njg7CithCis2OAorVFJVTkNBVEUgVEFCTEUgdDE4 NzsKK1NFTEVDVCBhIEZST00gdDY5OworYQorNjkKK1RSVU5DQVRFIFRBQkxFIHQxODY7CitTRUxF Q1QgYSBGUk9NIHQ3MDsKK2EKKzcwCitUUlVOQ0FURSBUQUJMRSB0MTg1OworU0VMRUNUIGEgRlJP TSB0NzE7CithCis3MQorVFJVTkNBVEUgVEFCTEUgdDE4NDsKK1NFTEVDVCBhIEZST00gdDcyOwor YQorNzIKK1RSVU5DQVRFIFRBQkxFIHQxODM7CitTRUxFQ1QgYSBGUk9NIHQ3MzsKK2EKKzczCitU UlVOQ0FURSBUQUJMRSB0MTgyOworU0VMRUNUIGEgRlJPTSB0NzQ7CithCis3NAorVFJVTkNBVEUg VEFCTEUgdDE4MTsKK1NFTEVDVCBhIEZST00gdDc1OworYQorNzUKK1RSVU5DQVRFIFRBQkxFIHQx ODA7CitTRUxFQ1QgYSBGUk9NIHQ3NjsKK2EKKzc2CitUUlVOQ0FURSBUQUJMRSB0MTc5OworU0VM RUNUIGEgRlJPTSB0Nzc7CithCis3NworVFJVTkNBVEUgVEFCTEUgdDE3ODsKK1NFTEVDVCBhIEZS T00gdDc4OworYQorNzgKK1RSVU5DQVRFIFRBQkxFIHQxNzc7CitTRUxFQ1QgYSBGUk9NIHQ3OTsK K2EKKzc5CitUUlVOQ0FURSBUQUJMRSB0MTc2OworU0VMRUNUIGEgRlJPTSB0ODA7CithCis4MAor VFJVTkNBVEUgVEFCTEUgdDE3NTsKK1NFTEVDVCBhIEZST00gdDgxOworYQorODEKK1RSVU5DQVRF IFRBQkxFIHQxNzQ7CitTRUxFQ1QgYSBGUk9NIHQ4MjsKK2EKKzgyCitUUlVOQ0FURSBUQUJMRSB0 MTczOworU0VMRUNUIGEgRlJPTSB0ODM7CithCis4MworVFJVTkNBVEUgVEFCTEUgdDE3MjsKK1NF TEVDVCBhIEZST00gdDg0OworYQorODQKK1RSVU5DQVRFIFRBQkxFIHQxNzE7CitTRUxFQ1QgYSBG Uk9NIHQ4NTsKK2EKKzg1CitUUlVOQ0FURSBUQUJMRSB0MTcwOworU0VMRUNUIGEgRlJPTSB0ODY7 CithCis4NgorVFJVTkNBVEUgVEFCTEUgdDE2OTsKK1NFTEVDVCBhIEZST00gdDg3OworYQorODcK K1RSVU5DQVRFIFRBQkxFIHQxNjg7CitTRUxFQ1QgYSBGUk9NIHQ4ODsKK2EKKzg4CitUUlVOQ0FU RSBUQUJMRSB0MTY3OworU0VMRUNUIGEgRlJPTSB0ODk7CithCis4OQorVFJVTkNBVEUgVEFCTEUg dDE2NjsKK1NFTEVDVCBhIEZST00gdDkwOworYQorOTAKK1RSVU5DQVRFIFRBQkxFIHQxNjU7CitT RUxFQ1QgYSBGUk9NIHQ5MTsKK2EKKzkxCitUUlVOQ0FURSBUQUJMRSB0MTY0OworU0VMRUNUIGEg RlJPTSB0OTI7CithCis5MgorVFJVTkNBVEUgVEFCTEUgdDE2MzsKK1NFTEVDVCBhIEZST00gdDkz OworYQorOTMKK1RSVU5DQVRFIFRBQkxFIHQxNjI7CitTRUxFQ1QgYSBGUk9NIHQ5NDsKK2EKKzk0 CitUUlVOQ0FURSBUQUJMRSB0MTYxOworU0VMRUNUIGEgRlJPTSB0OTU7CithCis5NQorVFJVTkNB VEUgVEFCTEUgdDE2MDsKK1NFTEVDVCBhIEZST00gdDk2OworYQorOTYKK1RSVU5DQVRFIFRBQkxF IHQxNTk7CitTRUxFQ1QgYSBGUk9NIHQ5NzsKK2EKKzk3CitUUlVOQ0FURSBUQUJMRSB0MTU4Owor U0VMRUNUIGEgRlJPTSB0OTg7CithCis5OAorVFJVTkNBVEUgVEFCTEUgdDE1NzsKK1NFTEVDVCBh IEZST00gdDk5OworYQorOTkKK1RSVU5DQVRFIFRBQkxFIHQxNTY7CitTRUxFQ1QgYSBGUk9NIHQx MDA7CithCisxMDAKK1RSVU5DQVRFIFRBQkxFIHQxNTU7CitTRUxFQ1QgYSBGUk9NIHQxMDE7Cith CisxMDEKK1RSVU5DQVRFIFRBQkxFIHQxNTQ7CitTRUxFQ1QgYSBGUk9NIHQxMDI7CithCisxMDIK K1RSVU5DQVRFIFRBQkxFIHQxNTM7CitTRUxFQ1QgYSBGUk9NIHQxMDM7CithCisxMDMKK1RSVU5D QVRFIFRBQkxFIHQxNTI7CitTRUxFQ1QgYSBGUk9NIHQxMDQ7CithCisxMDQKK1RSVU5DQVRFIFRB QkxFIHQxNTE7CitTRUxFQ1QgYSBGUk9NIHQxMDU7CithCisxMDUKK1RSVU5DQVRFIFRBQkxFIHQx NTA7CitTRUxFQ1QgYSBGUk9NIHQxMDY7CithCisxMDYKK1RSVU5DQVRFIFRBQkxFIHQxNDk7CitT RUxFQ1QgYSBGUk9NIHQxMDc7CithCisxMDcKK1RSVU5DQVRFIFRBQkxFIHQxNDg7CitTRUxFQ1Qg YSBGUk9NIHQxMDg7CithCisxMDgKK1RSVU5DQVRFIFRBQkxFIHQxNDc7CitTRUxFQ1QgYSBGUk9N IHQxMDk7CithCisxMDkKK1RSVU5DQVRFIFRBQkxFIHQxNDY7CitTRUxFQ1QgYSBGUk9NIHQxMTA7 CithCisxMTAKK1RSVU5DQVRFIFRBQkxFIHQxNDU7CitTRUxFQ1QgYSBGUk9NIHQxMTE7CithCisx MTEKK1RSVU5DQVRFIFRBQkxFIHQxNDQ7CitTRUxFQ1QgYSBGUk9NIHQxMTI7CithCisxMTIKK1RS VU5DQVRFIFRBQkxFIHQxNDM7CitTRUxFQ1QgYSBGUk9NIHQxMTM7CithCisxMTMKK1RSVU5DQVRF IFRBQkxFIHQxNDI7CitTRUxFQ1QgYSBGUk9NIHQxMTQ7CithCisxMTQKK1RSVU5DQVRFIFRBQkxF IHQxNDE7CitTRUxFQ1QgYSBGUk9NIHQxMTU7CithCisxMTUKK1RSVU5DQVRFIFRBQkxFIHQxNDA7 CitTRUxFQ1QgYSBGUk9NIHQxMTY7CithCisxMTYKK1RSVU5DQVRFIFRBQkxFIHQxMzk7CitTRUxF Q1QgYSBGUk9NIHQxMTc7CithCisxMTcKK1RSVU5DQVRFIFRBQkxFIHQxMzg7CitTRUxFQ1QgYSBG Uk9NIHQxMTg7CithCisxMTgKK1RSVU5DQVRFIFRBQkxFIHQxMzc7CitTRUxFQ1QgYSBGUk9NIHQx MTk7CithCisxMTkKK1RSVU5DQVRFIFRBQkxFIHQxMzY7CitTRUxFQ1QgYSBGUk9NIHQxMjA7Cith CisxMjAKK1RSVU5DQVRFIFRBQkxFIHQxMzU7CitTRUxFQ1QgYSBGUk9NIHQxMjE7CithCisxMjEK K1RSVU5DQVRFIFRBQkxFIHQxMzQ7CitTRUxFQ1QgYSBGUk9NIHQxMjI7CithCisxMjIKK1RSVU5D QVRFIFRBQkxFIHQxMzM7CitTRUxFQ1QgYSBGUk9NIHQxMjM7CithCisxMjMKK1RSVU5DQVRFIFRB QkxFIHQxMzI7CitTRUxFQ1QgYSBGUk9NIHQxMjQ7CithCisxMjQKK1RSVU5DQVRFIFRBQkxFIHQx MzE7CitTRUxFQ1QgYSBGUk9NIHQxMjU7CithCisxMjUKK1RSVU5DQVRFIFRBQkxFIHQxMzA7CitT RUxFQ1QgYSBGUk9NIHQxMjY7CithCisxMjYKK1RSVU5DQVRFIFRBQkxFIHQxMjk7CitTRUxFQ1Qg YSBGUk9NIHQxMjc7CithCisxMjcKK1RSVU5DQVRFIFRBQkxFIHQxMjg7CitTRUxFQ1QgYSBGUk9N IHQxMjg7CithCitUUlVOQ0FURSBUQUJMRSB0MTI3OworU0VMRUNUIGEgRlJPTSB0MTI5OworYQor VFJVTkNBVEUgVEFCTEUgdDEyNjsKK1NFTEVDVCBhIEZST00gdDEzMDsKK2EKK1RSVU5DQVRFIFRB QkxFIHQxMjU7CitTRUxFQ1QgYSBGUk9NIHQxMzE7CithCitUUlVOQ0FURSBUQUJMRSB0MTI0Owor U0VMRUNUIGEgRlJPTSB0MTMyOworYQorVFJVTkNBVEUgVEFCTEUgdDEyMzsKK1NFTEVDVCBhIEZS T00gdDEzMzsKK2EKK1RSVU5DQVRFIFRBQkxFIHQxMjI7CitTRUxFQ1QgYSBGUk9NIHQxMzQ7Cith CitUUlVOQ0FURSBUQUJMRSB0MTIxOworU0VMRUNUIGEgRlJPTSB0MTM1OworYQorVFJVTkNBVEUg VEFCTEUgdDEyMDsKK1NFTEVDVCBhIEZST00gdDEzNjsKK2EKK1RSVU5DQVRFIFRBQkxFIHQxMTk7 CitTRUxFQ1QgYSBGUk9NIHQxMzc7CithCitUUlVOQ0FURSBUQUJMRSB0MTE4OworU0VMRUNUIGEg RlJPTSB0MTM4OworYQorVFJVTkNBVEUgVEFCTEUgdDExNzsKK1NFTEVDVCBhIEZST00gdDEzOTsK K2EKK1RSVU5DQVRFIFRBQkxFIHQxMTY7CitTRUxFQ1QgYSBGUk9NIHQxNDA7CithCitUUlVOQ0FU RSBUQUJMRSB0MTE1OworU0VMRUNUIGEgRlJPTSB0MTQxOworYQorVFJVTkNBVEUgVEFCTEUgdDEx NDsKK1NFTEVDVCBhIEZST00gdDE0MjsKK2EKK1RSVU5DQVRFIFRBQkxFIHQxMTM7CitTRUxFQ1Qg YSBGUk9NIHQxNDM7CithCitUUlVOQ0FURSBUQUJMRSB0MTEyOworU0VMRUNUIGEgRlJPTSB0MTQ0 OworYQorVFJVTkNBVEUgVEFCTEUgdDExMTsKK1NFTEVDVCBhIEZST00gdDE0NTsKK2EKK1RSVU5D QVRFIFRBQkxFIHQxMTA7CitTRUxFQ1QgYSBGUk9NIHQxNDY7CithCitUUlVOQ0FURSBUQUJMRSB0 MTA5OworU0VMRUNUIGEgRlJPTSB0MTQ3OworYQorVFJVTkNBVEUgVEFCTEUgdDEwODsKK1NFTEVD VCBhIEZST00gdDE0ODsKK2EKK1RSVU5DQVRFIFRBQkxFIHQxMDc7CitTRUxFQ1QgYSBGUk9NIHQx NDk7CithCitUUlVOQ0FURSBUQUJMRSB0MTA2OworU0VMRUNUIGEgRlJPTSB0MTUwOworYQorVFJV TkNBVEUgVEFCTEUgdDEwNTsKK1NFTEVDVCBhIEZST00gdDE1MTsKK2EKK1RSVU5DQVRFIFRBQkxF IHQxMDQ7CitTRUxFQ1QgYSBGUk9NIHQxNTI7CithCitUUlVOQ0FURSBUQUJMRSB0MTAzOworU0VM RUNUIGEgRlJPTSB0MTUzOworYQorVFJVTkNBVEUgVEFCTEUgdDEwMjsKK1NFTEVDVCBhIEZST00g dDE1NDsKK2EKK1RSVU5DQVRFIFRBQkxFIHQxMDE7CitTRUxFQ1QgYSBGUk9NIHQxNTU7CithCitU UlVOQ0FURSBUQUJMRSB0MTAwOworU0VMRUNUIGEgRlJPTSB0MTU2OworYQorVFJVTkNBVEUgVEFC TEUgdDk5OworU0VMRUNUIGEgRlJPTSB0MTU3OworYQorVFJVTkNBVEUgVEFCTEUgdDk4OworU0VM RUNUIGEgRlJPTSB0MTU4OworYQorVFJVTkNBVEUgVEFCTEUgdDk3OworU0VMRUNUIGEgRlJPTSB0 MTU5OworYQorVFJVTkNBVEUgVEFCTEUgdDk2OworU0VMRUNUIGEgRlJPTSB0MTYwOworYQorVFJV TkNBVEUgVEFCTEUgdDk1OworU0VMRUNUIGEgRlJPTSB0MTYxOworYQorVFJVTkNBVEUgVEFCTEUg dDk0OworU0VMRUNUIGEgRlJPTSB0MTYyOworYQorVFJVTkNBVEUgVEFCTEUgdDkzOworU0VMRUNU IGEgRlJPTSB0MTYzOworYQorVFJVTkNBVEUgVEFCTEUgdDkyOworU0VMRUNUIGEgRlJPTSB0MTY0 OworYQorVFJVTkNBVEUgVEFCTEUgdDkxOworU0VMRUNUIGEgRlJPTSB0MTY1OworYQorVFJVTkNB VEUgVEFCTEUgdDkwOworU0VMRUNUIGEgRlJPTSB0MTY2OworYQorVFJVTkNBVEUgVEFCTEUgdDg5 OworU0VMRUNUIGEgRlJPTSB0MTY3OworYQorVFJVTkNBVEUgVEFCTEUgdDg4OworU0VMRUNUIGEg RlJPTSB0MTY4OworYQorVFJVTkNBVEUgVEFCTEUgdDg3OworU0VMRUNUIGEgRlJPTSB0MTY5Owor YQorVFJVTkNBVEUgVEFCTEUgdDg2OworU0VMRUNUIGEgRlJPTSB0MTcwOworYQorVFJVTkNBVEUg VEFCTEUgdDg1OworU0VMRUNUIGEgRlJPTSB0MTcxOworYQorVFJVTkNBVEUgVEFCTEUgdDg0Owor U0VMRUNUIGEgRlJPTSB0MTcyOworYQorVFJVTkNBVEUgVEFCTEUgdDgzOworU0VMRUNUIGEgRlJP TSB0MTczOworYQorVFJVTkNBVEUgVEFCTEUgdDgyOworU0VMRUNUIGEgRlJPTSB0MTc0OworYQor VFJVTkNBVEUgVEFCTEUgdDgxOworU0VMRUNUIGEgRlJPTSB0MTc1OworYQorVFJVTkNBVEUgVEFC TEUgdDgwOworU0VMRUNUIGEgRlJPTSB0MTc2OworYQorVFJVTkNBVEUgVEFCTEUgdDc5OworU0VM RUNUIGEgRlJPTSB0MTc3OworYQorVFJVTkNBVEUgVEFCTEUgdDc4OworU0VMRUNUIGEgRlJPTSB0 MTc4OworYQorVFJVTkNBVEUgVEFCTEUgdDc3OworU0VMRUNUIGEgRlJPTSB0MTc5OworYQorVFJV TkNBVEUgVEFCTEUgdDc2OworU0VMRUNUIGEgRlJPTSB0MTgwOworYQorVFJVTkNBVEUgVEFCTEUg dDc1OworU0VMRUNUIGEgRlJPTSB0MTgxOworYQorVFJVTkNBVEUgVEFCTEUgdDc0OworU0VMRUNU IGEgRlJPTSB0MTgyOworYQorVFJVTkNBVEUgVEFCTEUgdDczOworU0VMRUNUIGEgRlJPTSB0MTgz OworYQorVFJVTkNBVEUgVEFCTEUgdDcyOworU0VMRUNUIGEgRlJPTSB0MTg0OworYQorVFJVTkNB VEUgVEFCTEUgdDcxOworU0VMRUNUIGEgRlJPTSB0MTg1OworYQorVFJVTkNBVEUgVEFCTEUgdDcw OworU0VMRUNUIGEgRlJPTSB0MTg2OworYQorVFJVTkNBVEUgVEFCTEUgdDY5OworU0VMRUNUIGEg RlJPTSB0MTg3OworYQorVFJVTkNBVEUgVEFCTEUgdDY4OworU0VMRUNUIGEgRlJPTSB0MTg4Owor YQorVFJVTkNBVEUgVEFCTEUgdDY3OworU0VMRUNUIGEgRlJPTSB0MTg5OworYQorVFJVTkNBVEUg VEFCTEUgdDY2OworU0VMRUNUIGEgRlJPTSB0MTkwOworYQorVFJVTkNBVEUgVEFCTEUgdDY1Owor U0VMRUNUIGEgRlJPTSB0MTkxOworYQorVFJVTkNBVEUgVEFCTEUgdDY0OworU0VMRUNUIGEgRlJP TSB0MTkyOworYQorVFJVTkNBVEUgVEFCTEUgdDYzOworU0VMRUNUIGEgRlJPTSB0MTkzOworYQor VFJVTkNBVEUgVEFCTEUgdDYyOworU0VMRUNUIGEgRlJPTSB0MTk0OworYQorVFJVTkNBVEUgVEFC TEUgdDYxOworU0VMRUNUIGEgRlJPTSB0MTk1OworYQorVFJVTkNBVEUgVEFCTEUgdDYwOworU0VM RUNUIGEgRlJPTSB0MTk2OworYQorVFJVTkNBVEUgVEFCTEUgdDU5OworU0VMRUNUIGEgRlJPTSB0 MTk3OworYQorVFJVTkNBVEUgVEFCTEUgdDU4OworU0VMRUNUIGEgRlJPTSB0MTk4OworYQorVFJV TkNBVEUgVEFCTEUgdDU3OworU0VMRUNUIGEgRlJPTSB0MTk5OworYQorVFJVTkNBVEUgVEFCTEUg dDU2OworU0VMRUNUIGEgRlJPTSB0MjAwOworYQorVFJVTkNBVEUgVEFCTEUgdDU1OworU0VMRUNU IGEgRlJPTSB0MjAxOworYQorVFJVTkNBVEUgVEFCTEUgdDU0OworU0VMRUNUIGEgRlJPTSB0MjAy OworYQorVFJVTkNBVEUgVEFCTEUgdDUzOworU0VMRUNUIGEgRlJPTSB0MjAzOworYQorVFJVTkNB VEUgVEFCTEUgdDUyOworU0VMRUNUIGEgRlJPTSB0MjA0OworYQorVFJVTkNBVEUgVEFCTEUgdDUx OworU0VMRUNUIGEgRlJPTSB0MjA1OworYQorVFJVTkNBVEUgVEFCTEUgdDUwOworU0VMRUNUIGEg RlJPTSB0MjA2OworYQorVFJVTkNBVEUgVEFCTEUgdDQ5OworU0VMRUNUIGEgRlJPTSB0MjA3Owor YQorVFJVTkNBVEUgVEFCTEUgdDQ4OworU0VMRUNUIGEgRlJPTSB0MjA4OworYQorVFJVTkNBVEUg VEFCTEUgdDQ3OworU0VMRUNUIGEgRlJPTSB0MjA5OworYQorVFJVTkNBVEUgVEFCTEUgdDQ2Owor U0VMRUNUIGEgRlJPTSB0MjEwOworYQorVFJVTkNBVEUgVEFCTEUgdDQ1OworU0VMRUNUIGEgRlJP TSB0MjExOworYQorVFJVTkNBVEUgVEFCTEUgdDQ0OworU0VMRUNUIGEgRlJPTSB0MjEyOworYQor VFJVTkNBVEUgVEFCTEUgdDQzOworU0VMRUNUIGEgRlJPTSB0MjEzOworYQorVFJVTkNBVEUgVEFC TEUgdDQyOworU0VMRUNUIGEgRlJPTSB0MjE0OworYQorVFJVTkNBVEUgVEFCTEUgdDQxOworU0VM RUNUIGEgRlJPTSB0MjE1OworYQorVFJVTkNBVEUgVEFCTEUgdDQwOworU0VMRUNUIGEgRlJPTSB0 MjE2OworYQorVFJVTkNBVEUgVEFCTEUgdDM5OworU0VMRUNUIGEgRlJPTSB0MjE3OworYQorVFJV TkNBVEUgVEFCTEUgdDM4OworU0VMRUNUIGEgRlJPTSB0MjE4OworYQorVFJVTkNBVEUgVEFCTEUg dDM3OworU0VMRUNUIGEgRlJPTSB0MjE5OworYQorVFJVTkNBVEUgVEFCTEUgdDM2OworU0VMRUNU IGEgRlJPTSB0MjIwOworYQorVFJVTkNBVEUgVEFCTEUgdDM1OworU0VMRUNUIGEgRlJPTSB0MjIx OworYQorVFJVTkNBVEUgVEFCTEUgdDM0OworU0VMRUNUIGEgRlJPTSB0MjIyOworYQorVFJVTkNB VEUgVEFCTEUgdDMzOworU0VMRUNUIGEgRlJPTSB0MjIzOworYQorVFJVTkNBVEUgVEFCTEUgdDMy OworU0VMRUNUIGEgRlJPTSB0MjI0OworYQorVFJVTkNBVEUgVEFCTEUgdDMxOworU0VMRUNUIGEg RlJPTSB0MjI1OworYQorVFJVTkNBVEUgVEFCTEUgdDMwOworU0VMRUNUIGEgRlJPTSB0MjI2Owor YQorVFJVTkNBVEUgVEFCTEUgdDI5OworU0VMRUNUIGEgRlJPTSB0MjI3OworYQorVFJVTkNBVEUg VEFCTEUgdDI4OworU0VMRUNUIGEgRlJPTSB0MjI4OworYQorVFJVTkNBVEUgVEFCTEUgdDI3Owor U0VMRUNUIGEgRlJPTSB0MjI5OworYQorVFJVTkNBVEUgVEFCTEUgdDI2OworU0VMRUNUIGEgRlJP TSB0MjMwOworYQorVFJVTkNBVEUgVEFCTEUgdDI1OworU0VMRUNUIGEgRlJPTSB0MjMxOworYQor VFJVTkNBVEUgVEFCTEUgdDI0OworU0VMRUNUIGEgRlJPTSB0MjMyOworYQorVFJVTkNBVEUgVEFC TEUgdDIzOworU0VMRUNUIGEgRlJPTSB0MjMzOworYQorVFJVTkNBVEUgVEFCTEUgdDIyOworU0VM RUNUIGEgRlJPTSB0MjM0OworYQorVFJVTkNBVEUgVEFCTEUgdDIxOworU0VMRUNUIGEgRlJPTSB0 MjM1OworYQorVFJVTkNBVEUgVEFCTEUgdDIwOworU0VMRUNUIGEgRlJPTSB0MjM2OworYQorVFJV TkNBVEUgVEFCTEUgdDE5OworU0VMRUNUIGEgRlJPTSB0MjM3OworYQorVFJVTkNBVEUgVEFCTEUg dDE4OworU0VMRUNUIGEgRlJPTSB0MjM4OworYQorVFJVTkNBVEUgVEFCTEUgdDE3OworU0VMRUNU IGEgRlJPTSB0MjM5OworYQorVFJVTkNBVEUgVEFCTEUgdDE2OworU0VMRUNUIGEgRlJPTSB0MjQw OworYQorVFJVTkNBVEUgVEFCTEUgdDE1OworU0VMRUNUIGEgRlJPTSB0MjQxOworYQorVFJVTkNB VEUgVEFCTEUgdDE0OworU0VMRUNUIGEgRlJPTSB0MjQyOworYQorVFJVTkNBVEUgVEFCTEUgdDEz OworU0VMRUNUIGEgRlJPTSB0MjQzOworYQorVFJVTkNBVEUgVEFCTEUgdDEyOworU0VMRUNUIGEg RlJPTSB0MjQ0OworYQorVFJVTkNBVEUgVEFCTEUgdDExOworU0VMRUNUIGEgRlJPTSB0MjQ1Owor YQorVFJVTkNBVEUgVEFCTEUgdDEwOworU0VMRUNUIGEgRlJPTSB0MjQ2OworYQorVFJVTkNBVEUg VEFCTEUgdDk7CitTRUxFQ1QgYSBGUk9NIHQyNDc7CithCitUUlVOQ0FURSBUQUJMRSB0ODsKK1NF TEVDVCBhIEZST00gdDI0ODsKK2EKK1RSVU5DQVRFIFRBQkxFIHQ3OworU0VMRUNUIGEgRlJPTSB0 MjQ5OworYQorVFJVTkNBVEUgVEFCTEUgdDY7CitTRUxFQ1QgYSBGUk9NIHQyNTA7CithCitUUlVO Q0FURSBUQUJMRSB0NTsKK1NFTEVDVCBhIEZST00gdDI1MTsKK2EKK1RSVU5DQVRFIFRBQkxFIHQ0 OworU0VMRUNUIGEgRlJPTSB0MjUyOworYQorVFJVTkNBVEUgVEFCTEUgdDM7CitTRUxFQ1QgYSBG Uk9NIHQyNTM7CithCitUUlVOQ0FURSBUQUJMRSB0MjsKK1NFTEVDVCBhIEZST00gdDI1NDsKK2EK K1RSVU5DQVRFIFRBQkxFIHQxOworU0VMRUNUIGEgRlJPTSB0MjU1OworYQorU0VMRUNUIGEgRlJP TSB0MDsKK2EKK0RST1AgVEFCTEUgdDA7CitEUk9QIFRBQkxFIHQyNTU7CitEUk9QIFRBQkxFIHQy NTQ7CitEUk9QIFRBQkxFIHQyNTM7CitEUk9QIFRBQkxFIHQyNTI7CitEUk9QIFRBQkxFIHQyNTE7 CitEUk9QIFRBQkxFIHQyNTA7CitEUk9QIFRBQkxFIHQyNDk7CitEUk9QIFRBQkxFIHQyNDg7CitE Uk9QIFRBQkxFIHQyNDc7CitEUk9QIFRBQkxFIHQyNDY7CitEUk9QIFRBQkxFIHQyNDU7CitEUk9Q IFRBQkxFIHQyNDQ7CitEUk9QIFRBQkxFIHQyNDM7CitEUk9QIFRBQkxFIHQyNDI7CitEUk9QIFRB QkxFIHQyNDE7CitEUk9QIFRBQkxFIHQyNDA7CitEUk9QIFRBQkxFIHQyMzk7CitEUk9QIFRBQkxF IHQyMzg7CitEUk9QIFRBQkxFIHQyMzc7CitEUk9QIFRBQkxFIHQyMzY7CitEUk9QIFRBQkxFIHQy MzU7CitEUk9QIFRBQkxFIHQyMzQ7CitEUk9QIFRBQkxFIHQyMzM7CitEUk9QIFRBQkxFIHQyMzI7 CitEUk9QIFRBQkxFIHQyMzE7CitEUk9QIFRBQkxFIHQyMzA7CitEUk9QIFRBQkxFIHQyMjk7CitE Uk9QIFRBQkxFIHQyMjg7CitEUk9QIFRBQkxFIHQyMjc7CitEUk9QIFRBQkxFIHQyMjY7CitEUk9Q IFRBQkxFIHQyMjU7CitEUk9QIFRBQkxFIHQyMjQ7CitEUk9QIFRBQkxFIHQyMjM7CitEUk9QIFRB QkxFIHQyMjI7CitEUk9QIFRBQkxFIHQyMjE7CitEUk9QIFRBQkxFIHQyMjA7CitEUk9QIFRBQkxF IHQyMTk7CitEUk9QIFRBQkxFIHQyMTg7CitEUk9QIFRBQkxFIHQyMTc7CitEUk9QIFRBQkxFIHQy MTY7CitEUk9QIFRBQkxFIHQyMTU7CitEUk9QIFRBQkxFIHQyMTQ7CitEUk9QIFRBQkxFIHQyMTM7 CitEUk9QIFRBQkxFIHQyMTI7CitEUk9QIFRBQkxFIHQyMTE7CitEUk9QIFRBQkxFIHQyMTA7CitE Uk9QIFRBQkxFIHQyMDk7CitEUk9QIFRBQkxFIHQyMDg7CitEUk9QIFRBQkxFIHQyMDc7CitEUk9Q IFRBQkxFIHQyMDY7CitEUk9QIFRBQkxFIHQyMDU7CitEUk9QIFRBQkxFIHQyMDQ7CitEUk9QIFRB QkxFIHQyMDM7CitEUk9QIFRBQkxFIHQyMDI7CitEUk9QIFRBQkxFIHQyMDE7CitEUk9QIFRBQkxF IHQyMDA7CitEUk9QIFRBQkxFIHQxOTk7CitEUk9QIFRBQkxFIHQxOTg7CitEUk9QIFRBQkxFIHQx OTc7CitEUk9QIFRBQkxFIHQxOTY7CitEUk9QIFRBQkxFIHQxOTU7CitEUk9QIFRBQkxFIHQxOTQ7 CitEUk9QIFRBQkxFIHQxOTM7CitEUk9QIFRBQkxFIHQxOTI7CitEUk9QIFRBQkxFIHQxOTE7CitE Uk9QIFRBQkxFIHQxOTA7CitEUk9QIFRBQkxFIHQxODk7CitEUk9QIFRBQkxFIHQxODg7CitEUk9Q IFRBQkxFIHQxODc7CitEUk9QIFRBQkxFIHQxODY7CitEUk9QIFRBQkxFIHQxODU7CitEUk9QIFRB QkxFIHQxODQ7CitEUk9QIFRBQkxFIHQxODM7CitEUk9QIFRBQkxFIHQxODI7CitEUk9QIFRBQkxF IHQxODE7CitEUk9QIFRBQkxFIHQxODA7CitEUk9QIFRBQkxFIHQxNzk7CitEUk9QIFRBQkxFIHQx Nzg7CitEUk9QIFRBQkxFIHQxNzc7CitEUk9QIFRBQkxFIHQxNzY7CitEUk9QIFRBQkxFIHQxNzU7 CitEUk9QIFRBQkxFIHQxNzQ7CitEUk9QIFRBQkxFIHQxNzM7CitEUk9QIFRBQkxFIHQxNzI7CitE Uk9QIFRBQkxFIHQxNzE7CitEUk9QIFRBQkxFIHQxNzA7CitEUk9QIFRBQkxFIHQxNjk7CitEUk9Q IFRBQkxFIHQxNjg7CitEUk9QIFRBQkxFIHQxNjc7CitEUk9QIFRBQkxFIHQxNjY7CitEUk9QIFRB QkxFIHQxNjU7CitEUk9QIFRBQkxFIHQxNjQ7CitEUk9QIFRBQkxFIHQxNjM7CitEUk9QIFRBQkxF IHQxNjI7CitEUk9QIFRBQkxFIHQxNjE7CitEUk9QIFRBQkxFIHQxNjA7CitEUk9QIFRBQkxFIHQx NTk7CitEUk9QIFRBQkxFIHQxNTg7CitEUk9QIFRBQkxFIHQxNTc7CitEUk9QIFRBQkxFIHQxNTY7 CitEUk9QIFRBQkxFIHQxNTU7CitEUk9QIFRBQkxFIHQxNTQ7CitEUk9QIFRBQkxFIHQxNTM7CitE Uk9QIFRBQkxFIHQxNTI7CitEUk9QIFRBQkxFIHQxNTE7CitEUk9QIFRBQkxFIHQxNTA7CitEUk9Q IFRBQkxFIHQxNDk7CitEUk9QIFRBQkxFIHQxNDg7CitEUk9QIFRBQkxFIHQxNDc7CitEUk9QIFRB QkxFIHQxNDY7CitEUk9QIFRBQkxFIHQxNDU7CitEUk9QIFRBQkxFIHQxNDQ7CitEUk9QIFRBQkxF IHQxNDM7CitEUk9QIFRBQkxFIHQxNDI7CitEUk9QIFRBQkxFIHQxNDE7CitEUk9QIFRBQkxFIHQx NDA7CitEUk9QIFRBQkxFIHQxMzk7CitEUk9QIFRBQkxFIHQxMzg7CitEUk9QIFRBQkxFIHQxMzc7 CitEUk9QIFRBQkxFIHQxMzY7CitEUk9QIFRBQkxFIHQxMzU7CitEUk9QIFRBQkxFIHQxMzQ7CitE Uk9QIFRBQkxFIHQxMzM7CitEUk9QIFRBQkxFIHQxMzI7CitEUk9QIFRBQkxFIHQxMzE7CitEUk9Q IFRBQkxFIHQxMzA7CitEUk9QIFRBQkxFIHQxMjk7CitEUk9QIFRBQkxFIHQxMjg7CitEUk9QIFRB QkxFIHQxMjc7CitEUk9QIFRBQkxFIHQxMjY7CitEUk9QIFRBQkxFIHQxMjU7CitEUk9QIFRBQkxF IHQxMjQ7CitEUk9QIFRBQkxFIHQxMjM7CitEUk9QIFRBQkxFIHQxMjI7CitEUk9QIFRBQkxFIHQx MjE7CitEUk9QIFRBQkxFIHQxMjA7CitEUk9QIFRBQkxFIHQxMTk7CitEUk9QIFRBQkxFIHQxMTg7 CitEUk9QIFRBQkxFIHQxMTc7CitEUk9QIFRBQkxFIHQxMTY7CitEUk9QIFRBQkxFIHQxMTU7CitE Uk9QIFRBQkxFIHQxMTQ7CitEUk9QIFRBQkxFIHQxMTM7CitEUk9QIFRBQkxFIHQxMTI7CitEUk9Q IFRBQkxFIHQxMTE7CitEUk9QIFRBQkxFIHQxMTA7CitEUk9QIFRBQkxFIHQxMDk7CitEUk9QIFRB QkxFIHQxMDg7CitEUk9QIFRBQkxFIHQxMDc7CitEUk9QIFRBQkxFIHQxMDY7CitEUk9QIFRBQkxF IHQxMDU7CitEUk9QIFRBQkxFIHQxMDQ7CitEUk9QIFRBQkxFIHQxMDM7CitEUk9QIFRBQkxFIHQx MDI7CitEUk9QIFRBQkxFIHQxMDE7CitEUk9QIFRBQkxFIHQxMDA7CitEUk9QIFRBQkxFIHQ5OTsK K0RST1AgVEFCTEUgdDk4OworRFJPUCBUQUJMRSB0OTc7CitEUk9QIFRBQkxFIHQ5NjsKK0RST1Ag VEFCTEUgdDk1OworRFJPUCBUQUJMRSB0OTQ7CitEUk9QIFRBQkxFIHQ5MzsKK0RST1AgVEFCTEUg dDkyOworRFJPUCBUQUJMRSB0OTE7CitEUk9QIFRBQkxFIHQ5MDsKK0RST1AgVEFCTEUgdDg5Owor RFJPUCBUQUJMRSB0ODg7CitEUk9QIFRBQkxFIHQ4NzsKK0RST1AgVEFCTEUgdDg2OworRFJPUCBU QUJMRSB0ODU7CitEUk9QIFRBQkxFIHQ4NDsKK0RST1AgVEFCTEUgdDgzOworRFJPUCBUQUJMRSB0 ODI7CitEUk9QIFRBQkxFIHQ4MTsKK0RST1AgVEFCTEUgdDgwOworRFJPUCBUQUJMRSB0Nzk7CitE Uk9QIFRBQkxFIHQ3ODsKK0RST1AgVEFCTEUgdDc3OworRFJPUCBUQUJMRSB0NzY7CitEUk9QIFRB QkxFIHQ3NTsKK0RST1AgVEFCTEUgdDc0OworRFJPUCBUQUJMRSB0NzM7CitEUk9QIFRBQkxFIHQ3 MjsKK0RST1AgVEFCTEUgdDcxOworRFJPUCBUQUJMRSB0NzA7CitEUk9QIFRBQkxFIHQ2OTsKK0RS T1AgVEFCTEUgdDY4OworRFJPUCBUQUJMRSB0Njc7CitEUk9QIFRBQkxFIHQ2NjsKK0RST1AgVEFC TEUgdDY1OworRFJPUCBUQUJMRSB0NjQ7CitEUk9QIFRBQkxFIHQ2MzsKK0RST1AgVEFCTEUgdDYy OworRFJPUCBUQUJMRSB0NjE7CitEUk9QIFRBQkxFIHQ2MDsKK0RST1AgVEFCTEUgdDU5OworRFJP UCBUQUJMRSB0NTg7CitEUk9QIFRBQkxFIHQ1NzsKK0RST1AgVEFCTEUgdDU2OworRFJPUCBUQUJM RSB0NTU7CitEUk9QIFRBQkxFIHQ1NDsKK0RST1AgVEFCTEUgdDUzOworRFJPUCBUQUJMRSB0NTI7 CitEUk9QIFRBQkxFIHQ1MTsKK0RST1AgVEFCTEUgdDUwOworRFJPUCBUQUJMRSB0NDk7CitEUk9Q IFRBQkxFIHQ0ODsKK0RST1AgVEFCTEUgdDQ3OworRFJPUCBUQUJMRSB0NDY7CitEUk9QIFRBQkxF IHQ0NTsKK0RST1AgVEFCTEUgdDQ0OworRFJPUCBUQUJMRSB0NDM7CitEUk9QIFRBQkxFIHQ0MjsK K0RST1AgVEFCTEUgdDQxOworRFJPUCBUQUJMRSB0NDA7CitEUk9QIFRBQkxFIHQzOTsKK0RST1Ag VEFCTEUgdDM4OworRFJPUCBUQUJMRSB0Mzc7CitEUk9QIFRBQkxFIHQzNjsKK0RST1AgVEFCTEUg dDM1OworRFJPUCBUQUJMRSB0MzQ7CitEUk9QIFRBQkxFIHQzMzsKK0RST1AgVEFCTEUgdDMyOwor RFJPUCBUQUJMRSB0MzE7CitEUk9QIFRBQkxFIHQzMDsKK0RST1AgVEFCTEUgdDI5OworRFJPUCBU QUJMRSB0Mjg7CitEUk9QIFRBQkxFIHQyNzsKK0RST1AgVEFCTEUgdDI2OworRFJPUCBUQUJMRSB0 MjU7CitEUk9QIFRBQkxFIHQyNDsKK0RST1AgVEFCTEUgdDIzOworRFJPUCBUQUJMRSB0MjI7CitE Uk9QIFRBQkxFIHQyMTsKK0RST1AgVEFCTEUgdDIwOworRFJPUCBUQUJMRSB0MTk7CitEUk9QIFRB QkxFIHQxODsKK0RST1AgVEFCTEUgdDE3OworRFJPUCBUQUJMRSB0MTY7CitEUk9QIFRBQkxFIHQx NTsKK0RST1AgVEFCTEUgdDE0OworRFJPUCBUQUJMRSB0MTM7CitEUk9QIFRBQkxFIHQxMjsKK0RS T1AgVEFCTEUgdDExOworRFJPUCBUQUJMRSB0MTA7CitEUk9QIFRBQkxFIHQ5OworRFJPUCBUQUJM RSB0ODsKK0RST1AgVEFCTEUgdDc7CitEUk9QIFRBQkxFIHQ2OworRFJPUCBUQUJMRSB0NTsKK0RS T1AgVEFCTEUgdDQ7CitEUk9QIFRBQkxFIHQzOworRFJPUCBUQUJMRSB0MjsKK0RST1AgVEFCTEUg dDE7CitTRVQgQEBnbG9iYWwucXVlcnlfY2FjaGVfc2l6ZSA9IDA7CitFbmQgb2YgNS4xIHRlc3Rz Cgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9yL3N1YnNlbGVjdC5yZXN1bHQnCi0tLSBh L215c3FsLXRlc3Qvci9zdWJzZWxlY3QucmVzdWx0CTIwMDgtMDUtMTYgMTQ6MDU6NTUgKzAwMDAK KysrIGIvbXlzcWwtdGVzdC9yL3N1YnNlbGVjdC5yZXN1bHQJMjAwOC0wNy0yNiAyMDo0NDowNyAr MDAwMApAQCAtNDM5Niw0ICs0Mzk2LDE1IEBAIGlkCXNlbGVjdF90eXBlCXRhYmxlCXR5cGUJcG9z c2libGVfa2V5cwkKIFdhcm5pbmdzOgogTm90ZQkxMDAzCXNlbGVjdCAxIEFTIGAxYCBmcm9tIGB0 ZXN0YC5gdDFgIHdoZXJlIDxpbl9vcHRpbWl6ZXI+KDEsPGV4aXN0cz4oc2VsZWN0IDEgQVMgYDFg IGZyb20gYHRlc3RgLmB0MWAgd2hlcmUgKGB0ZXN0YC5gdDFgLmBhYCA+IDMpIGdyb3VwIGJ5IGB0 ZXN0YC5gdDFgLmBhYCBoYXZpbmcgKDxjYWNoZT4oMSkgPSA8cmVmX251bGxfaGVscGVyPigxKSkp KQogRFJPUCBUQUJMRSB0MTsKK0NSRUFURSBUQUJMRSB0MShwayBpbnQgUFJJTUFSWSBLRVksIGEg aW50LCBJTkRFWCBpZHgoYSkpOworSU5TRVJUIElOVE8gdDEgVkFMVUVTICgxLCAxMCksICgzLCAz MCksICgyLCAyMCk7CitDUkVBVEUgVEFCTEUgdDIocGsgaW50IFBSSU1BUlkgS0VZLCBhIGludCwg YiBpbnQsIElOREVYIGlkeGEoYSkpOworSU5TRVJUIElOVE8gdDIgVkFMVUVTICgyLCAyMCwgNzAw KSwgKDEsIDEwLCAyMDApLCAoNCwgMTAsIDEwMCk7CitTRUxFQ1QgKiBGUk9NIHQxCitXSEVSRSBF WElTVFMgKFNFTEVDVCBESVNUSU5DVCBhIEZST00gdDIgV0hFUkUgdDEuYSA8IHQyLmEgT1JERVIg QlkgYik7CitwawlhCisxCTEwCiszCTMwCisyCTIwCitEUk9QIFRBQkxFIHQxLHQyOwogRW5kIG9m IDUuMCB0ZXN0cy4KCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3QvZnVuY19pZi50ZXN0 JwotLS0gYS9teXNxbC10ZXN0L3QvZnVuY19pZi50ZXN0CTIwMDctMDItMTIgMjA6NTk6MjkgKzAw MDAKKysrIGIvbXlzcWwtdGVzdC90L2Z1bmNfaWYudGVzdAkyMDA4LTA3LTMwIDExOjA3OjM3ICsw MDAwCkBAIC0xMDgsMyArMTA4LDQ2IEBAIGRyb3AgdGFibGUgdDE7CiBzZWxlY3QgaWYoMCwgMTg0 NDY3NDQwNzM3MDk1NTE2MTAsIDE4NDQ2NzQ0MDczNzA5NTUxNjEwKTsKIAogCisjCisjIEJ1ZyAj Mzc2NjI6IG5lc3RlZCBpZigpIGluc2lkZSBzdW0oKSBpcyBwYXJzZWQgaW4gZXhwb25lbnRpYWwg dGltZQorIworCitDUkVBVEUgVEFCTEUgdDEoYSBERUNJTUFMKDEwLDMpKTsKKworIyBjaGVjayA6 IHNob3VsZCBiZSBmYXN0LiBtb3JlIHRoYW4gZmV3IHNlY3MgbWVhbnMgZmFpbHVyZS4KK1NFTEVD VCB0MS5hLAorIElGKChST1VORCh0MS5hLDIpPTEpLCAyLAorIElGKChST1VORCh0MS5hLDIpPTEp LCAyLAorIElGKChST1VORCh0MS5hLDIpPTEpLCAyLAorIElGKChST1VORCh0MS5hLDIpPTEpLCAy LAorIElGKChST1VORCh0MS5hLDIpPTEpLCAyLAorIElGKChST1VORCh0MS5hLDIpPTEpLCAyLAor IElGKChST1VORCh0MS5hLDIpPTEpLCAyLAorIElGKChST1VORCh0MS5hLDIpPTEpLCAyLAorIElG KChST1VORCh0MS5hLDIpPTEpLCAyLAorIElGKChST1VORCh0MS5hLDIpPTEpLCAyLAorIElGKChS T1VORCh0MS5hLDIpPTEpLCAyLAorIElGKChST1VORCh0MS5hLDIpPTEpLCAyLAorIElGKChST1VO RCh0MS5hLDIpPTEpLCAyLAorIElGKChST1VORCh0MS5hLDIpPTEpLCAyLAorIElGKChST1VORCh0 MS5hLDIpPTEpLCAyLAorIElGKChST1VORCh0MS5hLDIpPTEpLCAyLAorIElGKChST1VORCh0MS5h LDIpPTEpLCAyLAorIElGKChST1VORCh0MS5hLDIpPTEpLCAyLAorIElGKChST1VORCh0MS5hLDIp PTEpLCAyLAorIElGKChST1VORCh0MS5hLDIpPTEpLCAyLAorIElGKChST1VORCh0MS5hLDIpPTEp LCAyLAorIElGKChST1VORCh0MS5hLDIpPTEpLCAyLAorIElGKChST1VORCh0MS5hLDIpPTEpLCAy LAorIElGKChST1VORCh0MS5hLDIpPTEpLCAyLAorIElGKChST1VORCh0MS5hLDIpPTEpLCAyLAor IElGKChST1VORCh0MS5hLDIpPTEpLCAyLAorIElGKChST1VORCh0MS5hLDIpPTEpLCAyLAorIElG KChST1VORCh0MS5hLDIpPTEpLCAyLAorIElGKChST1VORCh0MS5hLDIpPTEpLCAyLAorIElGKChS T1VORCh0MS5hLDIpPTEpLCAyLDApKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkgKyAxCitG Uk9NIHQxOworCitEUk9QIFRBQkxFIHQxOworCistLWVjaG8gRW5kIG9mIDUuMCB0ZXN0cwoKPT09 IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3QvdC9pbm5vZGJfbXlzcWwudGVzdCcKLS0tIGEvbXlz cWwtdGVzdC90L2lubm9kYl9teXNxbC50ZXN0CTIwMDgtMDItMDcgMDc6MTI6NDkgKzAwMDAKKysr IGIvbXlzcWwtdGVzdC90L2lubm9kYl9teXNxbC50ZXN0CTIwMDgtMDctMjMgMTE6MjU6MDAgKzAw MDAKQEAgLTk5Niw0ICs5OTYsMjIgQEAgc2V0IEBteV9pbm5vZGJfY29tbWl0X2NvbmN1cnJlbmN5 PUBAZ2xvYgogc2V0IGdsb2JhbCBpbm5vZGJfY29tbWl0X2NvbmN1cnJlbmN5PTA7CiBzZXQgZ2xv YmFsIGlubm9kYl9jb21taXRfY29uY3VycmVuY3k9QG15X2lubm9kYl9jb21taXRfY29uY3VycmVu Y3k7CiAKKyMKKyMgQnVnICMzNzgzMDogT1JERVIgQlkgQVNDL0RFU0MgLSBubyBkaWZmZXJlbmNl CisjCisKK0NSRUFURSBUQUJMRSB0MSAoYSBpbnQsIGIgaW50LCBjIGludCwgUFJJTUFSWSBLRVkg KGEpLCBLRVkgdDFfYiAoYikpCisgRU5HSU5FPUlubm9EQjsKKworSU5TRVJUIElOVE8gdDEgKGEs YixjKSBWQUxVRVMgKDEsMSwxKSwgKDIsMSwxKSwgKDMsMSwxKSwgKDQsMSwxKTsKK0lOU0VSVCBJ TlRPIHQxIChhLGIsYykgU0VMRUNUIGErNCxiLGMgRlJPTSB0MTsKKworIyBzaG91bGQgYmUgcmFu Z2UgYWNjZXNzCitFWFBMQUlOIFNFTEVDVCBhLCBiLCBjIEZST00gdDEgV0hFUkUgYiA9IDEgT1JE RVIgQlkgYSBERVNDIExJTUlUIDU7CisKKyMgc2hvdWxkIHByb2R1Y2UgJzggNyA2IDUgNCcgZm9y IGEKK1NFTEVDVCBhLCBiLCBjIEZST00gdDEgV0hFUkUgYiA9IDEgT1JERVIgQlkgYSBERVNDIExJ TUlUIDU7CisKK0RST1AgVEFCTEUgdDE7CisKIC0tZWNobyBFbmQgb2YgNS4wIHRlc3RzCgo9PT0g bW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC90L3F1ZXJ5X2NhY2hlX21lcmdlLnRlc3QnCi0tLSBh L215c3FsLXRlc3QvdC9xdWVyeV9jYWNoZV9tZXJnZS50ZXN0CTIwMDUtMDctMjggMDA6MjI6NDcg KzAwMDAKKysrIGIvbXlzcWwtdGVzdC90L3F1ZXJ5X2NhY2hlX21lcmdlLnRlc3QJMjAwOC0wNy0y NCAxNDoxNDozNCArMDAwMApAQCAtMzgsMyArMzgsNTkgQEAgZHJvcCB0YWJsZSB0MSx0Mix0Myx0 NCx0NSx0Nix0Nyx0OCx0OSx0MQogU0VUIEBAZ2xvYmFsLnF1ZXJ5X2NhY2hlX3NpemU9MDsKIAog IyBFbmQgb2YgNC4xIHRlc3RzCisKKyMKKyMgQnVnIzMzMzYyOiBRdWVyeSBjYWNoZSBpbnZhbGlk YXRpb24gKHRydW5jYXRlKSBtYXkgaGFuZyBpZiBjYWNoZWQgcXVlcnkgdXNlcyBtYW55IHRhYmxl cworIworCitsZXQgJGM9IDI1NTsKKword2hpbGUgKCRjKQoreworICBldmFsIENSRUFURSBUQUJM RSB0JGMgKGEgSU5UKTsKKyAgZXZhbCBJTlNFUlQgSU5UTyB0JGMgVkFMVUVTICgkYyk7CisgIGRl YyAkYzsKK30KKworbGV0ICRjPSAyNTQ7CitsZXQgJHN0cj0gdDI1NTsKKword2hpbGUgKCRjKQor eworICBsZXQgJHN0cj0gdCRjLCRzdHI7CisgIGRlYyAkYzsKK30KKworZXZhbCBDUkVBVEUgVEFC TEUgdDAgKGEgSU5UKSBFTkdJTkU9TUVSR0UgVU5JT04oJHN0cik7CitTRVQgR0xPQkFMIHF1ZXJ5 X2NhY2hlX3NpemUgPSAxMDQ4NTc2OworRkxVU0ggU1RBVFVTOworU0VMRUNUIGEgRlJPTSB0MCBX SEVSRSBhID0gMTsKK1NIT1cgU1RBVFVTIExJS0UgIlFjYWNoZV9xdWVyaWVzX2luX2NhY2hlIjsK KworbGV0ICRjPSAyNTU7CitsZXQgJGk9IDE7CisKK0ZMVVNIIFRBQkxFUzsKKword2hpbGUgKCRj KQoreworICBldmFsIFRSVU5DQVRFIFRBQkxFIHQkYzsKKyAgZXZhbCBTRUxFQ1QgYSBGUk9NIHQk aTsKKyAgZGVjICRjOworICBpbmMgJGk7Cit9CisKK1NFTEVDVCBhIEZST00gdDA7CitEUk9QIFRB QkxFIHQwOworCitsZXQgJGM9IDI1NTsKKword2hpbGUgKCRjKQoreworICBldmFsIERST1AgVEFC TEUgdCRjOworICBkZWMgJGM7Cit9CisKK1NFVCBAQGdsb2JhbC5xdWVyeV9jYWNoZV9zaXplID0g MDsKKworLS1lY2hvIEVuZCBvZiA1LjEgdGVzdHMKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10 ZXN0L3Qvc3Vic2VsZWN0LnRlc3QnCi0tLSBhL215c3FsLXRlc3QvdC9zdWJzZWxlY3QudGVzdAky MDA4LTA2LTI1IDE0OjU5OjM4ICswMDAwCisrKyBiL215c3FsLXRlc3QvdC9zdWJzZWxlY3QudGVz dAkyMDA4LTA3LTI2IDIwOjQ0OjA3ICswMDAwCkBAIC0zMjk1LDUgKzMyOTUsMTcgQEAgRVhQTEFJ TiBFWFRFTkRFRCBTRUxFQ1QgMSBGUk9NIHQxIFdIRVJFIAogRVhQTEFJTiBFWFRFTkRFRCBTRUxF Q1QgMSBGUk9NIHQxIFdIRVJFIDEgSU4gKFNFTEVDVCAxIEZST00gdDEgV0hFUkUgYSA+IDMgR1JP VVAgQlkgYSk7CiBEUk9QIFRBQkxFIHQxOwogCisjCisjIEJ1ZyAjMzgxOTE6IFNlcnZlciBjcmFz aCB3aXRoIHN1YnF1ZXJ5IGNvbnRhaW5pbmcgRElTVElOQ1QgYW5kIE9SREVSIEJZCisjCisKK0NS RUFURSBUQUJMRSB0MShwayBpbnQgUFJJTUFSWSBLRVksIGEgaW50LCBJTkRFWCBpZHgoYSkpOwor SU5TRVJUIElOVE8gdDEgVkFMVUVTICgxLCAxMCksICgzLCAzMCksICgyLCAyMCk7CitDUkVBVEUg VEFCTEUgdDIocGsgaW50IFBSSU1BUlkgS0VZLCBhIGludCwgYiBpbnQsIElOREVYIGlkeGEoYSkp OworSU5TRVJUIElOVE8gdDIgVkFMVUVTICgyLCAyMCwgNzAwKSwgKDEsIDEwLCAyMDApLCAoNCwg MTAsIDEwMCk7CitTRUxFQ1QgKiBGUk9NIHQxCisgICBXSEVSRSBFWElTVFMgKFNFTEVDVCBESVNU SU5DVCBhIEZST00gdDIgV0hFUkUgdDEuYSA8IHQyLmEgT1JERVIgQlkgYik7CitEUk9QIFRBQkxF IHQxLHQyOworCiAtLWVjaG8gRW5kIG9mIDUuMCB0ZXN0cy4KIAoKPT09IG1vZGlmaWVkIGZpbGUg J215c3lzL21mX2tleWNhY2hlLmMnCi0tLSBhL215c3lzL21mX2tleWNhY2hlLmMJMjAwOC0wMy0y OSAxNTo1MDo0NiArMDAwMAorKysgYi9teXN5cy9tZl9rZXljYWNoZS5jCTIwMDgtMDgtMTEgMjE6 MDg6MTIgKzAwMDAKQEAgLTEzODIsNyArMTM4Miw3IEBAIHJlc3RhcnQ6CiAgICAgICAvKiBXZSBk b24ndCBuZWVkIHRoZSBwYWdlIGluIHRoZSBjYWNoZTogd2UgYXJlIGdvaW5nIHRvIHdyaXRlIG9u IGRpc2sgKi8KICAgICAgIGhhc2hfbGluay0+cmVxdWVzdHMtLTsKICAgICAgIHVubGlua19oYXNo KGtleWNhY2hlLCBoYXNoX2xpbmspOwotICAgICAgcmV0dXJuIDA7CisgICAgICBEQlVHX1JFVFVS TigwKTsKICAgICB9CiAgICAgaWYgKCEoYmxvY2stPnN0YXR1cyAmIEJMT0NLX0lOX0ZMVVNIKSkK ICAgICB7CkBAIC0xMzk5LDcgKzEzOTksNyBAQCByZXN0YXJ0OgogICAgICAgICBmbGFnIChzZWUg dGhlIGNvZGUgYmVsb3cgdGhhdCBoYW5kbGVzIHJlYWRpbmcgcmVxdWVzdHMpLgogICAgICAgKi8K ICAgICAgIGZyZWVfYmxvY2soa2V5Y2FjaGUsIGJsb2NrKTsKLSAgICAgIHJldHVybiAwOworICAg ICAgREJVR19SRVRVUk4oMCk7CiAgICAgfQogICAgIC8qIFdhaXQgaW50aWwgdGhlIHBhZ2UgaXMg Zmx1c2hlZCBvbiBkaXNrICovCiAgICAgaGFzaF9saW5rLT5yZXF1ZXN0cy0tOwpAQCAtMTQyOSw3 ICsxNDI5LDcgQEAgcmVzdGFydDoKICAgICAvKiBJbnZhbGlkYXRlIHBhZ2UgaW4gdGhlIGJsb2Nr IGlmIGl0IGhhcyBub3QgYmVlbiBkb25lIHlldCAqLwogICAgIGlmIChibG9jay0+c3RhdHVzKQog ICAgICAgZnJlZV9ibG9jayhrZXljYWNoZSwgYmxvY2spOwotICAgIHJldHVybiAwOworICAgIERC VUdfUkVUVVJOKDApOwogICB9CiAKICAgaWYgKHBhZ2Vfc3RhdHVzID09IFBBR0VfUkVBRCAmJgoK PT09IG1vZGlmaWVkIGZpbGUgJ215c3lzL215X2FsbG9jLmMnCi0tLSBhL215c3lzL215X2FsbG9j LmMJMjAwNy0wNC0xOCAyMDo1MDozMiArMDAwMAorKysgYi9teXN5cy9teV9hbGxvYy5jCTIwMDgt MDgtMTEgMTY6MTA6MDAgKzAwMDAKQEAgLTIwMiw3ICsyMDIsNyBAQCBncHRyIGFsbG9jX3Jvb3Qo TUVNX1JPT1QgKm1lbV9yb290LHVuc2lnCiAgICAgewogICAgICAgaWYgKG1lbV9yb290LT5lcnJv cl9oYW5kbGVyKQogCSgqbWVtX3Jvb3QtPmVycm9yX2hhbmRsZXIpKCk7Ci0gICAgICByZXR1cm4o KGdwdHIpIDApOwkJCQkvKiBwdXJlY292OiBpbnNwZWN0ZWQgKi8KKyAgICAgIERCVUdfUkVUVVJO KChncHRyKSAwKTsJCQkvKiBwdXJlY292OiBpbnNwZWN0ZWQgKi8KICAgICB9CiAgICAgbWVtX3Jv b3QtPmJsb2NrX251bSsrOwogICAgIG5leHQtPm5leHQ9ICpwcmV2OwoKPT09IG1vZGlmaWVkIGZp bGUgJ3NjcmlwdHMvbXlzcWxfc3lzdGVtX3RhYmxlcy5zcWwnCi0tLSBhL3NjcmlwdHMvbXlzcWxf c3lzdGVtX3RhYmxlcy5zcWwJMjAwNy0wNC0yNiAxNDo0ODo1MyArMDAwMAorKysgYi9zY3JpcHRz L215c3FsX3N5c3RlbV90YWJsZXMuc3FsCTIwMDgtMDctMzEgMDk6Mjg6MDQgKzAwMDAKQEAgLTIs NiArMiw3IEBACiAtLSBUaGUgc3lzdGVtIHRhYmxlcyBvZiBNeVNRTCBTZXJ2ZXIKIC0tCiAKK3Nl dCBzcWxfbW9kZT0nJzsKIHNldCBzdG9yYWdlX2VuZ2luZT1teWlzYW07CiAKIENSRUFURSBUQUJM RSBJRiBOT1QgRVhJU1RTIGRiICggICBIb3N0IGNoYXIoNjApIGJpbmFyeSBERUZBVUxUICcnIE5P VCBOVUxMLCBEYiBjaGFyKDY0KSBiaW5hcnkgREVGQVVMVCAnJyBOT1QgTlVMTCwgVXNlciBjaGFy KDE2KSBiaW5hcnkgREVGQVVMVCAnJyBOT1QgTlVMTCwgU2VsZWN0X3ByaXYgZW51bSgnTicsJ1kn KSBDT0xMQVRFIHV0ZjhfZ2VuZXJhbF9jaSBERUZBVUxUICdOJyBOT1QgTlVMTCwgSW5zZXJ0X3By aXYgZW51bSgnTicsJ1knKSBDT0xMQVRFIHV0ZjhfZ2VuZXJhbF9jaSBERUZBVUxUICdOJyBOT1Qg TlVMTCwgVXBkYXRlX3ByaXYgZW51bSgnTicsJ1knKSBDT0xMQVRFIHV0ZjhfZ2VuZXJhbF9jaSBE RUZBVUxUICdOJyBOT1QgTlVMTCwgRGVsZXRlX3ByaXYgZW51bSgnTicsJ1knKSBDT0xMQVRFIHV0 ZjhfZ2VuZXJhbF9jaSBERUZBVUxUICdOJyBOT1QgTlVMTCwgQ3JlYXRlX3ByaXYgZW51bSgnTics J1knKSBDT0xMQVRFIHV0ZjhfZ2VuZXJhbF9jaSBERUZBVUxUICdOJyBOT1QgTlVMTCwgRHJvcF9w cml2IGVudW0oJ04nLCdZJykgQ09MTEFURSB1dGY4X2dlbmVyYWxfY2kgREVGQVVMVCAnTicgTk9U IE5VTEwsIEdyYW50X3ByaXYgZW51bSgnTicsJ1knKSBDT0xMQVRFIHV0ZjhfZ2VuZXJhbF9jaSBE RUZBVUxUICdOJyBOT1QgTlVMTCwgUmVmZXJlbmNlc19wcml2IGVudW0oJ04nLCdZJykgQ09MTEFU RSB1dGY4X2dlbmVyYWxfY2kgREVGQVVMVCAnTicgTk9UIE5VTEwsIEluZGV4X3ByaXYgZW51bSgn TicsJ1knKSBDT0xMQVRFIHV0ZjhfZ2VuZXJhbF9jaSBERUZBVUxUICdOJyBOT1QgTlVMTCwgQWx0 ZXJfcHJpdiBlbnVtKCdOJywnWScpIENPTExBVEUgdXRmOF9nZW5lcmFsX2NpIERFRkFVTFQgJ04n IE5PVCBOVUxMLCBDcmVhdGVfdG1wX3RhYmxlX3ByaXYgZW51bSgnTicsJ1knKSBDT0xMQVRFIHV0 ZjhfZ2VuZXJhbF9jaSBERUZBVUxUICdOJyBOT1QgTlVMTCwgTG9ja190YWJsZXNfcHJpdiBlbnVt KCdOJywnWScpIENPTExBVEUgdXRmOF9nZW5lcmFsX2NpIERFRkFVTFQgJ04nIE5PVCBOVUxMLCBD cmVhdGVfdmlld19wcml2IGVudW0oJ04nLCdZJykgQ09MTEFURSB1dGY4X2dlbmVyYWxfY2kgREVG QVVMVCAnTicgTk9UIE5VTEwsIFNob3dfdmlld19wcml2IGVudW0oJ04nLCdZJykgQ09MTEFURSB1 dGY4X2dlbmVyYWxfY2kgREVGQVVMVCAnTicgTk9UIE5VTEwsIENyZWF0ZV9yb3V0aW5lX3ByaXYg ZW51bSgnTicsJ1knKSBDT0xMQVRFIHV0ZjhfZ2VuZXJhbF9jaSBERUZBVUxUICdOJyBOT1QgTlVM TCwgQWx0ZXJfcm91dGluZV9wcml2IGVudW0oJ04nLCdZJykgQ09MTEFURSB1dGY4X2dlbmVyYWxf Y2kgREVGQVVMVCAnTicgTk9UIE5VTEwsIEV4ZWN1dGVfcHJpdiBlbnVtKCdOJywnWScpIENPTExB VEUgdXRmOF9nZW5lcmFsX2NpIERFRkFVTFQgJ04nIE5PVCBOVUxMLCBQUklNQVJZIEtFWSBIb3N0 IChIb3N0LERiLFVzZXIpLCBLRVkgVXNlciAoVXNlcikgKSBlbmdpbmU9TXlJU0FNIENIQVJBQ1RF UiBTRVQgdXRmOCBDT0xMQVRFIHV0ZjhfYmluIGNvbW1lbnQ9J0RhdGFiYXNlIHByaXZpbGVnZXMn OwoKPT09IG1vZGlmaWVkIGZpbGUgJ3NxbC9maWVsZC5oJwotLS0gYS9zcWwvZmllbGQuaAkyMDA4 LTA1LTA2IDE2OjQzOjQ2ICswMDAwCisrKyBiL3NxbC9maWVsZC5oCTIwMDgtMDgtMTEgMTY6MTA6 MDAgKzAwMDAKQEAgLTQ4LDcgKzQ4LDggQEAgY2xhc3MgRmllbGQKICAgRmllbGQoY29uc3QgSXRl bSAmKTsJCQkJLyogUHJldmVudCB1c2Ugb2YgdGhlc2UgKi8KICAgdm9pZCBvcGVyYXRvcj0oRmll bGQgJik7CiBwdWJsaWM6Ci0gIHN0YXRpYyB2b2lkICpvcGVyYXRvciBuZXcoc2l6ZV90IHNpemUp IHtyZXR1cm4gKHZvaWQqKSBzcWxfYWxsb2MoKHVpbnQpIHNpemUpOyB9CisgIHN0YXRpYyB2b2lk ICpvcGVyYXRvciBuZXcoc2l6ZV90IHNpemUpIHRocm93ICgpCisgIHsgcmV0dXJuICh2b2lkKikg c3FsX2FsbG9jKCh1aW50KSBzaXplKTsgfQogICBzdGF0aWMgdm9pZCBvcGVyYXRvciBkZWxldGUo dm9pZCAqcHRyX2FyZywgc2l6ZV90IHNpemUpIHsgVFJBU0gocHRyX2FyZywgc2l6ZSk7IH0KIAog ICBjaGFyCQkqcHRyOwkJCS8vIFBvc2l0aW9uIHRvIGZpZWxkIGluIHJlY29yZAoKPT09IG1vZGlm aWVkIGZpbGUgJ3NxbC9pdGVtLmNjJwotLS0gYS9zcWwvaXRlbS5jYwkyMDA4LTA2LTI3IDE1OjU2 OjQxICswMDAwCisrKyBiL3NxbC9pdGVtLmNjCTIwMDgtMDctMzAgMTE6MDc6MzcgKzAwMDAKQEAg LTQyOSw4ICs0MjksMTEgQEAgdWludCBJdGVtOjpkZWNpbWFsX3ByZWNpc2lvbigpIGNvbnN0CiAg IEl0ZW1fcmVzdWx0IHJlc3R5cGU9IHJlc3VsdF90eXBlKCk7CiAKICAgaWYgKChyZXN0eXBlID09 IERFQ0lNQUxfUkVTVUxUKSB8fCAocmVzdHlwZSA9PSBJTlRfUkVTVUxUKSkKLSAgICByZXR1cm4g bWluKG15X2RlY2ltYWxfbGVuZ3RoX3RvX3ByZWNpc2lvbihtYXhfbGVuZ3RoLCBkZWNpbWFscywg dW5zaWduZWRfZmxhZyksCi0gICAgICAgICAgICAgICBERUNJTUFMX01BWF9QUkVDSVNJT04pOwor ICB7CisgICAgdWludCBwcmVjPSAKKyAgICAgIG15X2RlY2ltYWxfbGVuZ3RoX3RvX3ByZWNpc2lv bihtYXhfbGVuZ3RoLCBkZWNpbWFscywgdW5zaWduZWRfZmxhZyk7CisgICAgcmV0dXJuIG1pbihw cmVjLCBERUNJTUFMX01BWF9QUkVDSVNJT04pOworICB9CiAgIHJldHVybiBtaW4obWF4X2xlbmd0 aCwgREVDSU1BTF9NQVhfUFJFQ0lTSU9OKTsKIH0KIApAQCAtNjgzOCw4ICs2ODQxLDkgQEAgYm9v bCBJdGVtX3R5cGVfaG9sZGVyOjpqb2luX3R5cGVzKFRIRCAqdAogICBpZiAoRmllbGQ6OnJlc3Vs dF9tZXJnZV90eXBlKGZsZF90eXBlKSA9PSBERUNJTUFMX1JFU1VMVCkKICAgewogICAgIGRlY2lt YWxzPSBtaW4obWF4KGRlY2ltYWxzLCBpdGVtLT5kZWNpbWFscyksIERFQ0lNQUxfTUFYX1NDQUxF KTsKLSAgICBpbnQgcHJlY2lzaW9uPSBtaW4obWF4KHByZXZfZGVjaW1hbF9pbnRfcGFydCwgaXRl bS0+ZGVjaW1hbF9pbnRfcGFydCgpKQotICAgICAgICAgICAgICAgICAgICAgICArIGRlY2ltYWxz LCBERUNJTUFMX01BWF9QUkVDSVNJT04pOworICAgIGludCBpdGVtX2ludF9wYXJ0PSBpdGVtLT5k ZWNpbWFsX2ludF9wYXJ0KCk7CisgICAgaW50IGl0ZW1fcHJlYyA9IG1heChwcmV2X2RlY2ltYWxf aW50X3BhcnQsIGl0ZW1faW50X3BhcnQpICsgZGVjaW1hbHM7CisgICAgaW50IHByZWNpc2lvbj0g bWluKGl0ZW1fcHJlYywgREVDSU1BTF9NQVhfUFJFQ0lTSU9OKTsKICAgICB1bnNpZ25lZF9mbGFn Jj0gaXRlbS0+dW5zaWduZWRfZmxhZzsKICAgICBtYXhfbGVuZ3RoPSBteV9kZWNpbWFsX3ByZWNp c2lvbl90b19sZW5ndGgocHJlY2lzaW9uLCBkZWNpbWFscywKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWRfZmxhZyk7Cgo9PT0gbW9kaWZpZWQg ZmlsZSAnc3FsL2l0ZW0uaCcKLS0tIGEvc3FsL2l0ZW0uaAkyMDA4LTAzLTEyIDA3OjU5OjE1ICsw MDAwCisrKyBiL3NxbC9pdGVtLmgJMjAwOC0wOC0xMSAxNjoxMDowMCArMDAwMApAQCAtNDM5LDkg KzQzOSw5IEBAIGNsYXNzIEl0ZW0gewogICBJdGVtKGNvbnN0IEl0ZW0gJik7CQkJLyogUHJldmVu dCB1c2Ugb2YgdGhlc2UgKi8KICAgdm9pZCBvcGVyYXRvcj0oSXRlbSAmKTsKIHB1YmxpYzoKLSAg c3RhdGljIHZvaWQgKm9wZXJhdG9yIG5ldyhzaXplX3Qgc2l6ZSkKKyAgc3RhdGljIHZvaWQgKm9w ZXJhdG9yIG5ldyhzaXplX3Qgc2l6ZSkgdGhyb3cgKCkKICAgeyByZXR1cm4gKHZvaWQqKSBzcWxf YWxsb2MoKHVpbnQpIHNpemUpOyB9Ci0gIHN0YXRpYyB2b2lkICpvcGVyYXRvciBuZXcoc2l6ZV90 IHNpemUsIE1FTV9ST09UICptZW1fcm9vdCkKKyAgc3RhdGljIHZvaWQgKm9wZXJhdG9yIG5ldyhz aXplX3Qgc2l6ZSwgTUVNX1JPT1QgKm1lbV9yb290KSB0aHJvdyAoKQogICB7IHJldHVybiAodm9p ZCopIGFsbG9jX3Jvb3QobWVtX3Jvb3QsICh1aW50KSBzaXplKTsgfQogICBzdGF0aWMgdm9pZCBv cGVyYXRvciBkZWxldGUodm9pZCAqcHRyLHNpemVfdCBzaXplKSB7IFRSQVNIKHB0ciwgc2l6ZSk7 IH0KICAgc3RhdGljIHZvaWQgb3BlcmF0b3IgZGVsZXRlKHZvaWQgKnB0ciwgTUVNX1JPT1QgKm1l bV9yb290KSB7fQoKPT09IG1vZGlmaWVkIGZpbGUgJ3NxbC9pdGVtX2NtcGZ1bmMuY2MnCi0tLSBh L3NxbC9pdGVtX2NtcGZ1bmMuY2MJMjAwOC0wMy0yOCAxODowMjoyNyArMDAwMAorKysgYi9zcWwv aXRlbV9jbXBmdW5jLmNjCTIwMDgtMDctMzAgMTE6MDc6MzcgKzAwMDAKQEAgLTIwOTgsOCArMjA5 OCwxMSBAQCBJdGVtX2Z1bmNfaWZudWxsOjpmaXhfbGVuZ3RoX2FuZF9kZWMoKQogCiB1aW50IEl0 ZW1fZnVuY19pZm51bGw6OmRlY2ltYWxfcHJlY2lzaW9uKCkgY29uc3QKIHsKLSAgaW50IG1heF9p bnRfcGFydD1tYXgoYXJnc1swXS0+ZGVjaW1hbF9pbnRfcGFydCgpLGFyZ3NbMV0tPmRlY2ltYWxf aW50X3BhcnQoKSk7Ci0gIHJldHVybiBtaW4obWF4X2ludF9wYXJ0ICsgZGVjaW1hbHMsIERFQ0lN QUxfTUFYX1BSRUNJU0lPTik7CisgIGludCBhcmcwX2ludF9wYXJ0PSBhcmdzWzBdLT5kZWNpbWFs X2ludF9wYXJ0KCk7CisgIGludCBhcmcxX2ludF9wYXJ0PSBhcmdzWzFdLT5kZWNpbWFsX2ludF9w YXJ0KCk7CisgIGludCBtYXhfaW50X3BhcnQ9IG1heChhcmcwX2ludF9wYXJ0LCBhcmcxX2ludF9w YXJ0KTsKKyAgaW50IHByZWNpc2lvbj0gbWF4X2ludF9wYXJ0ICsgZGVjaW1hbHM7CisgIHJldHVy biBtaW4ocHJlY2lzaW9uLCBERUNJTUFMX01BWF9QUkVDSVNJT04pOwogfQogCiAKQEAgLTIyODEs OCArMjI4NCw5IEBAIEl0ZW1fZnVuY19pZjo6Zml4X2xlbmd0aF9hbmRfZGVjKCkKIAogdWludCBJ dGVtX2Z1bmNfaWY6OmRlY2ltYWxfcHJlY2lzaW9uKCkgY29uc3QKIHsKLSAgaW50IHByZWNpc2lv bj0obWF4KGFyZ3NbMV0tPmRlY2ltYWxfaW50X3BhcnQoKSxhcmdzWzJdLT5kZWNpbWFsX2ludF9w YXJ0KCkpKwotICAgICAgICAgICAgICAgICBkZWNpbWFscyk7CisgIGludCBhcmcxX3ByZWM9IGFy Z3NbMV0tPmRlY2ltYWxfaW50X3BhcnQoKTsKKyAgaW50IGFyZzJfcHJlYz0gYXJnc1syXS0+ZGVj aW1hbF9pbnRfcGFydCgpOworICBpbnQgcHJlY2lzaW9uPW1heChhcmcxX3ByZWMsYXJnMl9wcmVj KSArIGRlY2ltYWxzOwogICByZXR1cm4gbWluKHByZWNpc2lvbiwgREVDSU1BTF9NQVhfUFJFQ0lT SU9OKTsKIH0KIAoKPT09IG1vZGlmaWVkIGZpbGUgJ3NxbC9pdGVtX2Z1bmMuY2MnCi0tLSBhL3Nx bC9pdGVtX2Z1bmMuY2MJMjAwOC0wMy0yOSAxNTo1MDo0NiArMDAwMAorKysgYi9zcWwvaXRlbV9m dW5jLmNjCTIwMDgtMDctMzAgMTE6MDc6MzcgKzAwMDAKQEAgLTExNTYsOSArMTE1NiwxMCBAQCBt eV9kZWNpbWFsICpJdGVtX2Z1bmNfcGx1czo6ZGVjaW1hbF9vcChtCiB2b2lkIEl0ZW1fZnVuY19h ZGRpdGl2ZV9vcDo6cmVzdWx0X3ByZWNpc2lvbigpCiB7CiAgIGRlY2ltYWxzPSBtYXgoYXJnc1sw XS0+ZGVjaW1hbHMsIGFyZ3NbMV0tPmRlY2ltYWxzKTsKLSAgaW50IG1heF9pbnRfcGFydD0gbWF4 KGFyZ3NbMF0tPmRlY2ltYWxfcHJlY2lzaW9uKCkgLSBhcmdzWzBdLT5kZWNpbWFscywKLSAgICAg ICAgICAgICAgICAgICAgICAgIGFyZ3NbMV0tPmRlY2ltYWxfcHJlY2lzaW9uKCkgLSBhcmdzWzFd LT5kZWNpbWFscyk7Ci0gIGludCBwcmVjaXNpb249IG1pbihtYXhfaW50X3BhcnQgKyAxICsgZGVj aW1hbHMsIERFQ0lNQUxfTUFYX1BSRUNJU0lPTik7CisgIGludCBhcmcxX2ludD0gYXJnc1swXS0+ ZGVjaW1hbF9wcmVjaXNpb24oKSAtIGFyZ3NbMF0tPmRlY2ltYWxzOworICBpbnQgYXJnMl9pbnQ9 IGFyZ3NbMV0tPmRlY2ltYWxfcHJlY2lzaW9uKCkgLSBhcmdzWzFdLT5kZWNpbWFsczsKKyAgaW50 IGVzdF9wcmVjPSBtYXgoYXJnMV9pbnQsIGFyZzJfaW50KSArIDEgKyBkZWNpbWFsczsKKyAgaW50 IHByZWNpc2lvbj0gbWluKGVzdF9wcmVjLCBERUNJTUFMX01BWF9QUkVDSVNJT04pOwogCiAgIC8q IEludGVnZXIgb3BlcmF0aW9ucyBrZWVwIHVuc2lnbmVkX2ZsYWcgaWYgb25lIG9mIGFyZ3VtZW50 cyBpcyB1bnNpZ25lZCAqLwogICBpZiAocmVzdWx0X3R5cGUoKSA9PSBJTlRfUkVTVUxUKQpAQCAt MTI2Nyw4ICsxMjY4LDggQEAgdm9pZCBJdGVtX2Z1bmNfbXVsOjpyZXN1bHRfcHJlY2lzaW9uKCkK ICAgZWxzZQogICAgIHVuc2lnbmVkX2ZsYWc9IGFyZ3NbMF0tPnVuc2lnbmVkX2ZsYWcgJiBhcmdz WzFdLT51bnNpZ25lZF9mbGFnOwogICBkZWNpbWFscz0gbWluKGFyZ3NbMF0tPmRlY2ltYWxzICsg YXJnc1sxXS0+ZGVjaW1hbHMsIERFQ0lNQUxfTUFYX1NDQUxFKTsKLSAgaW50IHByZWNpc2lvbj0g bWluKGFyZ3NbMF0tPmRlY2ltYWxfcHJlY2lzaW9uKCkgKyBhcmdzWzFdLT5kZWNpbWFsX3ByZWNp c2lvbigpLAotICAgICAgICAgICAgICAgICAgICAgREVDSU1BTF9NQVhfUFJFQ0lTSU9OKTsKKyAg dWludCBlc3RfcHJlYyA9IGFyZ3NbMF0tPmRlY2ltYWxfcHJlY2lzaW9uKCkgKyBhcmdzWzFdLT5k ZWNpbWFsX3ByZWNpc2lvbigpOworICB1aW50IHByZWNpc2lvbj0gbWluKGVzdF9wcmVjLCBERUNJ TUFMX01BWF9QUkVDSVNJT04pOwogICBtYXhfbGVuZ3RoPSBteV9kZWNpbWFsX3ByZWNpc2lvbl90 b19sZW5ndGgocHJlY2lzaW9uLCBkZWNpbWFscyx1bnNpZ25lZF9mbGFnKTsKIH0KIApAQCAtMTMx NSw4ICsxMzE2LDggQEAgbXlfZGVjaW1hbCAqSXRlbV9mdW5jX2Rpdjo6ZGVjaW1hbF9vcChteQog CiB2b2lkIEl0ZW1fZnVuY19kaXY6OnJlc3VsdF9wcmVjaXNpb24oKQogewotICB1aW50IHByZWNp c2lvbj1taW4oYXJnc1swXS0+ZGVjaW1hbF9wcmVjaXNpb24oKSArIHByZWNfaW5jcmVtZW50LAot ICAgICAgICAgICAgICAgICAgICAgREVDSU1BTF9NQVhfUFJFQ0lTSU9OKTsKKyAgdWludCBhcmdf cHJlYz0gYXJnc1swXS0+ZGVjaW1hbF9wcmVjaXNpb24oKSArIHByZWNfaW5jcmVtZW50OworICB1 aW50IHByZWNpc2lvbj1taW4oYXJnX3ByZWMsIERFQ0lNQUxfTUFYX1BSRUNJU0lPTik7CiAgIC8q IEludGVnZXIgb3BlcmF0aW9ucyBrZWVwIHVuc2lnbmVkX2ZsYWcgaWYgb25lIG9mIGFyZ3VtZW50 cyBpcyB1bnNpZ25lZCAqLwogICBpZiAocmVzdWx0X3R5cGUoKSA9PSBJTlRfUkVTVUxUKQogICAg IHVuc2lnbmVkX2ZsYWc9IGFyZ3NbMF0tPnVuc2lnbmVkX2ZsYWcgfCBhcmdzWzFdLT51bnNpZ25l ZF9mbGFnOwoKPT09IG1vZGlmaWVkIGZpbGUgJ3NxbC9vcHRfcmFuZ2UuY2MnCi0tLSBhL3NxbC9v cHRfcmFuZ2UuY2MJMjAwOC0wNy0xNSAxNDoxMzoyMSArMDAwMAorKysgYi9zcWwvb3B0X3Jhbmdl LmNjCTIwMDgtMDctMjMgMTE6MjU6MDAgKzAwMDAKQEAgLTcwOTksNyArNzA5OSw4IEBAIGJvb2wg UVVJQ0tfUkFOR0VfU0VMRUNUOjpyb3dfaW5fcmFuZ2VzKCkKIAogUVVJQ0tfU0VMRUNUX0RFU0M6 OlFVSUNLX1NFTEVDVF9ERVNDKFFVSUNLX1JBTkdFX1NFTEVDVCAqcSwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1aW50IHVzZWRfa2V5X3BhcnRzX2FyZykKLSA6IFFVSUNL X1JBTkdFX1NFTEVDVCgqcSksIHJldl9pdChyZXZfcmFuZ2VzKQorIDogUVVJQ0tfUkFOR0VfU0VM RUNUKCpxKSwgcmV2X2l0KHJldl9yYW5nZXMpLCAKKyAgdXNlZF9rZXlfcGFydHMgKHVzZWRfa2V5 X3BhcnRzX2FyZykKIHsKICAgUVVJQ0tfUkFOR0UgKnI7CiAKQEAgLTcxNDEsMTAgKzcxNDIsMTEg QEAgaW50IFFVSUNLX1NFTEVDVF9ERVNDOjpnZXRfbmV4dCgpCiAgICAgaW50IHJlc3VsdDsKICAg ICBpZiAobGFzdF9yYW5nZSkKICAgICB7CQkJCQkJLy8gQWxyZWFkeSByZWFkIHRocm91Z2gga2V5 Ci0gICAgICByZXN1bHQgPSAoKGxhc3RfcmFuZ2UtPmZsYWcgJiBFUV9SQU5HRSkKLQkJPyBmaWxl LT5pbmRleF9uZXh0X3NhbWUocmVjb3JkLCAoYnl0ZSopIGxhc3RfcmFuZ2UtPm1pbl9rZXksCi0J CQkJCWxhc3RfcmFuZ2UtPm1pbl9sZW5ndGgpIDoKLQkJZmlsZS0+aW5kZXhfcHJldihyZWNvcmQp KTsKKyAgICAgIHJlc3VsdCA9ICgobGFzdF9yYW5nZS0+ZmxhZyAmIEVRX1JBTkdFICYmIAorICAg ICAgICAgICAgICAgICB1c2VkX2tleV9wYXJ0cyA8PSBoZWFkLT5rZXlfaW5mb1tpbmRleF0ua2V5 X3BhcnRzKSA/IAorICAgICAgICAgICAgICAgIGZpbGUtPmluZGV4X25leHRfc2FtZShyZWNvcmQs IChieXRlKikgbGFzdF9yYW5nZS0+bWluX2tleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGFzdF9yYW5nZS0+bWluX2xlbmd0aCkgOgorICAgICAgICAgICAgICAgIGZp bGUtPmluZGV4X3ByZXYocmVjb3JkKSk7CiAgICAgICBpZiAoIXJlc3VsdCkKICAgICAgIHsKIAlp ZiAoY21wX3ByZXYoKnJldl9pdC5yZWYoKSkgPT0gMCkKQEAgLTcxNjgsNyArNzE3MCw5IEBAIGlu dCBRVUlDS19TRUxFQ1RfREVTQzo6Z2V0X25leHQoKQogICAgICAgY29udGludWU7CiAgICAgfQog Ci0gICAgaWYgKGxhc3RfcmFuZ2UtPmZsYWcgJiBFUV9SQU5HRSkKKyAgICBpZiAobGFzdF9yYW5n ZS0+ZmxhZyAmIEVRX1JBTkdFICYmCisgICAgICAgIHVzZWRfa2V5X3BhcnRzIDw9IGhlYWQtPmtl eV9pbmZvW2luZGV4XS5rZXlfcGFydHMpCisKICAgICB7CiAgICAgICByZXN1bHQ9IGZpbGUtPmlu ZGV4X3JlYWQocmVjb3JkLCAoYnl0ZSopIGxhc3RfcmFuZ2UtPm1heF9rZXksCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGFzdF9yYW5nZS0+bWF4X2xlbmd0aCwgSEFfUkVBRF9LRVlf RVhBQ1QpOwpAQCAtNzE3Niw2ICs3MTgwLDggQEAgaW50IFFVSUNLX1NFTEVDVF9ERVNDOjpnZXRf bmV4dCgpCiAgICAgZWxzZQogICAgIHsKICAgICAgIERCVUdfQVNTRVJUKGxhc3RfcmFuZ2UtPmZs YWcgJiBORUFSX01BWCB8fAorICAgICAgICAgICAgICAgICAgKGxhc3RfcmFuZ2UtPmZsYWcgJiBF UV9SQU5HRSAmJiAKKyAgICAgICAgICAgICAgICAgICB1c2VkX2tleV9wYXJ0cyA+IGhlYWQtPmtl eV9pbmZvW2luZGV4XS5rZXlfcGFydHMpIHx8CiAgICAgICAgICAgICAgICAgICByYW5nZV9yZWFk c19hZnRlcl9rZXkobGFzdF9yYW5nZSkpOwogICAgICAgcmVzdWx0PWZpbGUtPmluZGV4X3JlYWQo cmVjb3JkLCAoYnl0ZSopIGxhc3RfcmFuZ2UtPm1heF9rZXksCiAJCQkgICAgICBsYXN0X3Jhbmdl LT5tYXhfbGVuZ3RoLApAQCAtNzI3Myw1NCArNzI3OSw2IEBAIGJvb2wgUVVJQ0tfU0VMRUNUX0RF U0M6OnJhbmdlX3JlYWRzX2FmdGUKIH0KIAogCi0vKiBUUlVFIGlmIHdlIGFyZSByZWFkaW5nIG92 ZXIgYSBrZXkgdGhhdCBtYXkgaGF2ZSBhIE5VTEwgdmFsdWUgKi8KLQotI2lmZGVmIE5PVF9VU0VE Ci1ib29sIFFVSUNLX1NFTEVDVF9ERVNDOjp0ZXN0X2lmX251bGxfcmFuZ2UoUVVJQ0tfUkFOR0Ug KnJhbmdlX2FyZywKLQkJCQkJICAgdWludCB1c2VkX2tleV9wYXJ0cykKLXsKLSAgdWludCBvZmZz ZXQsIGVuZDsKLSAgS0VZX1BBUlQgKmtleV9wYXJ0ID0ga2V5X3BhcnRzLAotICAgICAgICAgICAq a2V5X3BhcnRfZW5kPSBrZXlfcGFydCt1c2VkX2tleV9wYXJ0czsKLQotICBmb3IgKG9mZnNldD0g MCwgIGVuZCA9IG1pbihyYW5nZV9hcmctPm1pbl9sZW5ndGgsIHJhbmdlX2FyZy0+bWF4X2xlbmd0 aCkgOwotICAgICAgIG9mZnNldCA8IGVuZCAmJiBrZXlfcGFydCAhPSBrZXlfcGFydF9lbmQgOwot ICAgICAgIG9mZnNldCs9IGtleV9wYXJ0KystPnN0b3JlX2xlbmd0aCkKLSAgewotICAgIGlmICgh bWVtY21wKChjaGFyKikgcmFuZ2VfYXJnLT5taW5fa2V5K29mZnNldCwKLQkJKGNoYXIqKSByYW5n ZV9hcmctPm1heF9rZXkrb2Zmc2V0LAotCQlrZXlfcGFydC0+c3RvcmVfbGVuZ3RoKSkKLSAgICAg IGNvbnRpbnVlOwotCi0gICAgaWYgKGtleV9wYXJ0LT5udWxsX2JpdCAmJiByYW5nZV9hcmctPm1p bl9rZXlbb2Zmc2V0XSkKLSAgICAgIHJldHVybiAxOwkJCQkvLyBtaW5fa2V5IGlzIG51bGwgYW5k IG1heF9rZXkgaXNuJ3QKLSAgICAvLyBSYW5nZSBkb2Vzbid0IGNvdmVyIE5VTEwuIFRoaXMgaXMg b2sgaWYgdGhlcmUgaXMgbm8gbW9yZSBudWxsIHBhcnRzCi0gICAgYnJlYWs7Ci0gIH0KLSAgLyoK LSAgICBJZiB0aGUgbmV4dCBtaW5fcmFuZ2UgaXMgPiBOVUxMLCB0aGVuIHdlIGNhbiB1c2UgdGhp cywgZXZlbiBpZgotICAgIGl0J3MgYSBOVUxMIGtleQotICAgIEV4YW1wbGU6ICBTRUxFQ1QgKiBG Uk9NIHQxIFdIRVJFIGEgPSAyIEFORCBiID4wIE9SREVSIEJZIGEgREVTQyxiIERFU0M7Ci0KLSAg Ki8KLSAgaWYgKGtleV9wYXJ0ICE9IGtleV9wYXJ0X2VuZCAmJiBrZXlfcGFydC0+bnVsbF9iaXQp Ci0gIHsKLSAgICBpZiAob2Zmc2V0ID49IHJhbmdlX2FyZy0+bWluX2xlbmd0aCB8fCByYW5nZV9h cmctPm1pbl9rZXlbb2Zmc2V0XSkKLSAgICAgIHJldHVybiAxOwkJCQkJLy8gQ291bGQgYmUgbnVs bAotICAgIGtleV9wYXJ0Kys7Ci0gIH0KLSAgLyoKLSAgICBJZiBhbnkgb2YgdGhlIGtleSBwYXJ0 cyB1c2VkIGluIHRoZSBPUkRFUiBCWSBjb3VsZCBiZSBOVUxMLCB3ZSBjYW4ndAotICAgIHVzZSB0 aGUga2V5IHRvIHNvcnQgdGhlIGRhdGEuCi0gICovCi0gIGZvciAoOyBrZXlfcGFydCAhPSBrZXlf cGFydF9lbmQgOyBrZXlfcGFydCsrKQotICAgIGlmIChrZXlfcGFydC0+bnVsbF9iaXQpCi0gICAg ICByZXR1cm4gMTsJCQkJCS8vIENvdmVycyBudWxsIHBhcnQKLSAgcmV0dXJuIDA7Ci19Ci0jZW5k aWYKLQotCiB2b2lkIFFVSUNLX1JBTkdFX1NFTEVDVDo6YWRkX2luZm9fc3RyaW5nKFN0cmluZyAq c3RyKQogewogICBLRVkgKmtleV9pbmZvPSBoZWFkLT5rZXlfaW5mbyArIGluZGV4OwoKPT09IG1v ZGlmaWVkIGZpbGUgJ3NxbC9vcHRfcmFuZ2UuaCcKLS0tIGEvc3FsL29wdF9yYW5nZS5oCTIwMDct MDItMjEgMTI6MDc6MDggKzAwMDAKKysrIGIvc3FsL29wdF9yYW5nZS5oCTIwMDgtMDctMjMgMTE6 MjU6MDAgKzAwMDAKQEAgLTY2NywxMiArNjY3LDEwIEBAIHB1YmxpYzoKICAgaW50IGdldF90eXBl KCkgeyByZXR1cm4gUVNfVFlQRV9SQU5HRV9ERVNDOyB9CiBwcml2YXRlOgogICBib29sIHJhbmdl X3JlYWRzX2FmdGVyX2tleShRVUlDS19SQU5HRSAqcmFuZ2UpOwotI2lmZGVmIE5PVF9VU0VECi0g IGJvb2wgdGVzdF9pZl9udWxsX3JhbmdlKFFVSUNLX1JBTkdFICpyYW5nZSwgdWludCB1c2VkX2tl eV9wYXJ0cyk7Ci0jZW5kaWYKICAgaW50IHJlc2V0KHZvaWQpIHsgcmV2X2l0LnJld2luZCgpOyBy ZXR1cm4gUVVJQ0tfUkFOR0VfU0VMRUNUOjpyZXNldCgpOyB9CiAgIExpc3Q8UVVJQ0tfUkFOR0U+ IHJldl9yYW5nZXM7CiAgIExpc3RfaXRlcmF0b3I8UVVJQ0tfUkFOR0U+IHJldl9pdDsKKyAgdWlu dCB1c2VkX2tleV9wYXJ0czsKIH07CiAKIAoKPT09IG1vZGlmaWVkIGZpbGUgJ3NxbC9zaGFyZS9l cnJtc2cudHh0JwotLS0gYS9zcWwvc2hhcmUvZXJybXNnLnR4dAkyMDA4LTA3LTE2IDIyOjI5OjIy ICswMDAwCisrKyBiL3NxbC9zaGFyZS9lcnJtc2cudHh0CTIwMDgtMDctMjkgMTM6NTg6MTUgKzAw MDAKQEAgLTQ3MzcsNyArNDczNyw3IEBAIEVSX1NMQVZFX0lHTk9SRURfVEFCTEUgIAogCXN3ZSAi U2xhdiBTUUwgdHLvv71uIGlnbm9yZXJhZGUgZnLvv71uIHBnYSBlbiByZXBsaWNhdGUtKi10YWJs ZSByZWdlbCIKIEVSX0lOQ09SUkVDVF9HTE9CQUxfTE9DQUxfVkFSICAKIAllbmcgIlZhcmlhYmxl ICclLS42NHMnIGlzIGEgJXMgdmFyaWFibGUiCi0Jc2VyYmlhbiAiSW5jb3JyZWN0IGZvcmVpZ24g a2V5IGRlZmluaXRpb24gZm9yICclLS42NHMnOiAlcyIKKwlzZXJiaWFuICJQcm9tZW5saml2YSAn JS0uNjRzJyBqZSAlcyBwcm9tZW5saml2YSIKIAlnZXIgIlZhcmlhYmxlICclLS42NHMnIGlzdCBl aW5lICVzLVZhcmlhYmxlIgogCXNwYSAiVmFyaWFibGUgJyUtLjY0cycgZXMgdW5hICVzIHZhcmlh YmxlIgogCXN3ZSAiVmFyaWFiZWwgJyUtLjY0cycg77+9YXYgdHlwICVzIgoKPT09IG1vZGlmaWVk IGZpbGUgJ3NxbC9zcF9oZWFkLmNjJwotLS0gYS9zcWwvc3BfaGVhZC5jYwkyMDA4LTA3LTE0IDIx OjQxOjMwICswMDAwCisrKyBiL3NxbC9zcF9oZWFkLmNjCTIwMDgtMDgtMTEgMTY6MTA6MDAgKzAw MDAKQEAgLTQ0Niw3ICs0NDYsNyBAQCBzcF9oZWFkOjpvcGVyYXRvciBuZXcoc2l6ZV90IHNpemUp IHRocm93CiAgIGluaXRfc3FsX2FsbG9jKCZvd25fcm9vdCwgTUVNX1JPT1RfQkxPQ0tfU0laRSwg TUVNX1JPT1RfUFJFQUxMT0MpOwogICBzcD0gKHNwX2hlYWQgKikgYWxsb2Nfcm9vdCgmb3duX3Jv b3QsIHNpemUpOwogICBpZiAoc3AgPT0gTlVMTCkKLSAgICByZXR1cm4gTlVMTDsKKyAgICBEQlVH X1JFVFVSTihOVUxMKTsKICAgc3AtPm1haW5fbWVtX3Jvb3Q9IG93bl9yb290OwogICBEQlVHX1BS SU5UKCJpbmZvIiwgKCJtZW1fcm9vdCAweCVseCIsICh1bG9uZykgJnNwLT5tZW1fcm9vdCkpOwog ICBEQlVHX1JFVFVSTihzcCk7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL3NxbF9hY2wuY2MnCi0t LSBhL3NxbC9zcWxfYWNsLmNjCTIwMDgtMDctMTUgMTQ6MTM6MjEgKzAwMDAKKysrIGIvc3FsL3Nx bF9hY2wuY2MJMjAwOC0wNy0yOSAxMzozNzowOSArMDAwMApAQCAtNTQzMCw3ICs1NDMwLDYgQEAg Ym9vbCBteXNxbF9kcm9wX3VzZXIoVEhEICp0aGQsIExpc3QgPExFWAogCiAgIHdoaWxlICgodG1w X3VzZXJfbmFtZT0gdXNlcl9saXN0KyspKQogICB7Ci0gICAgdXNlcl9uYW1lPSBnZXRfY3VycmVu dF91c2VyKHRoZCwgdG1wX3VzZXJfbmFtZSk7CiAgICAgaWYgKCEodXNlcl9uYW1lPSBnZXRfY3Vy cmVudF91c2VyKHRoZCwgdG1wX3VzZXJfbmFtZSkpKQogICAgIHsKICAgICAgIHJlc3VsdD0gVFJV RTsKCj09PSBtb2RpZmllZCBmaWxlICdzcWwvc3FsX2NhY2hlLmNjJwotLS0gYS9zcWwvc3FsX2Nh Y2hlLmNjCTIwMDgtMDctMTYgMjI6Mjk6MjIgKzAwMDAKKysrIGIvc3FsL3NxbF9jYWNoZS5jYwky MDA4LTA3LTI0IDE0OjE0OjM0ICswMDAwCkBAIC0yNTE2LDcgKzI1MTYsNyBAQCBteV9ib29sIFF1 ZXJ5X2NhY2hlOjpyZWdpc3Rlcl9hbGxfdGFibGVzCiAJIHRtcCsrKQogICAgICAgdW5saW5rX3Rh YmxlKHRtcCk7CiAgIH0KLSAgcmV0dXJuIChuKTsKKyAgcmV0dXJuIHRlc3Qobik7CiB9CiAKIC8q Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL3NxbF9jdXJzb3IuY2MnCi0tLSBhL3NxbC9zcWxfY3Vy c29yLmNjCTIwMDgtMDItMjAgMTk6NDU6MjQgKzAwMDAKKysrIGIvc3FsL3NxbF9jdXJzb3IuY2MJ MjAwOC0wOC0xMSAwOTo0MDo1NCArMDAwMApAQCAtMTExLDcgKzExMSw4IEBAIGNsYXNzIFNlbGVj dF9tYXRlcmlhbGl6ZTogcHVibGljIHNlbGVjdF8KICAgc2VsZWN0X3Jlc3VsdCAqcmVzdWx0OyAv KiB0aGUgcmVzdWx0IG9iamVjdCBvZiB0aGUgY2FsbGVyIChQUyBvciBTUCkgKi8KIHB1YmxpYzoK ICAgTWF0ZXJpYWxpemVkX2N1cnNvciAqbWF0ZXJpYWxpemVkX2N1cnNvcjsKLSAgU2VsZWN0X21h dGVyaWFsaXplKHNlbGVjdF9yZXN1bHQgKnJlc3VsdF9hcmcpIDpyZXN1bHQocmVzdWx0X2FyZykg e30KKyAgU2VsZWN0X21hdGVyaWFsaXplKHNlbGVjdF9yZXN1bHQgKnJlc3VsdF9hcmcpIDpyZXN1 bHQocmVzdWx0X2FyZyksCisgICAgbWF0ZXJpYWxpemVkX2N1cnNvcigwKSB7fQogICB2aXJ0dWFs IGJvb2wgc2VuZF9maWVsZHMoTGlzdDxJdGVtPiAmbGlzdCwgdWludCBmbGFncyk7CiB9OwogCkBA IC0xNTUsNiArMTU2LDcgQEAgaW50IG15c3FsX29wZW5fY3Vyc29yKFRIRCAqdGhkLCB1aW50IGZs YQogICBpZiAoISAoc2Vuc2l0aXZlX2N1cnNvcj0gbmV3ICh0aGQtPm1lbV9yb290KSBTZW5zaXRp dmVfY3Vyc29yKHRoZCwgcmVzdWx0KSkpCiAgIHsKICAgICBkZWxldGUgcmVzdWx0X21hdGVyaWFs aXplOworICAgIHJlc3VsdF9tYXRlcmlhbGl6ZT0gTlVMTDsKICAgICByZXR1cm4gMTsKICAgfQog CkBAIC0yMTIsNiArMjE0LDcgQEAgaW50IG15c3FsX29wZW5fY3Vyc29yKFRIRCAqdGhkLCB1aW50 IGZsYQogICAgIGlmICgocmM9IG1hdGVyaWFsaXplZF9jdXJzb3ItPm9wZW4oMCkpKQogICAgIHsK ICAgICAgIGRlbGV0ZSBtYXRlcmlhbGl6ZWRfY3Vyc29yOworICAgICAgbWF0ZXJpYWxpemVkX2N1 cnNvcj0gTlVMTDsKICAgICAgIGdvdG8gZXJyX29wZW47CiAgICAgfQogCgo9PT0gbW9kaWZpZWQg ZmlsZSAnc3FsL3NxbF9sZXguaCcKLS0tIGEvc3FsL3NxbF9sZXguaAkyMDA4LTA3LTE0IDIxOjQx OjMwICswMDAwCisrKyBiL3NxbC9zcWxfbGV4LmgJMjAwOC0wOC0xMSAxNjoxMDowMCArMDAwMApA QCAtMzMxLDExICszMzEsMTEgQEAgcHVibGljOgogICBib29sIG5vX3RhYmxlX25hbWVzX2FsbG93 ZWQ7IC8qIHVzZWQgZm9yIGdsb2JhbCBvcmRlciBieSAqLwogICBib29sIG5vX2Vycm9yOyAvKiBz dXBwcmVzcyBlcnJvciBtZXNzYWdlIChjb252ZXJ0IGl0IHRvIHdhcm5pbmdzKSAqLwogCi0gIHN0 YXRpYyB2b2lkICpvcGVyYXRvciBuZXcoc2l6ZV90IHNpemUpCisgIHN0YXRpYyB2b2lkICpvcGVy YXRvciBuZXcoc2l6ZV90IHNpemUpIHRocm93ICgpCiAgIHsKICAgICByZXR1cm4gKHZvaWQqKSBz cWxfYWxsb2MoKHVpbnQpIHNpemUpOwogICB9Ci0gIHN0YXRpYyB2b2lkICpvcGVyYXRvciBuZXco c2l6ZV90IHNpemUsIE1FTV9ST09UICptZW1fcm9vdCkKKyAgc3RhdGljIHZvaWQgKm9wZXJhdG9y IG5ldyhzaXplX3Qgc2l6ZSwgTUVNX1JPT1QgKm1lbV9yb290KSB0aHJvdyAoKQogICB7IHJldHVy biAodm9pZCopIGFsbG9jX3Jvb3QobWVtX3Jvb3QsICh1aW50KSBzaXplKTsgfQogICBzdGF0aWMg dm9pZCBvcGVyYXRvciBkZWxldGUodm9pZCAqcHRyLHNpemVfdCBzaXplKSB7IFRSQVNIKHB0ciwg c2l6ZSk7IH0KICAgc3RhdGljIHZvaWQgb3BlcmF0b3IgZGVsZXRlKHZvaWQgKnB0ciwgTUVNX1JP T1QgKm1lbV9yb290KSB7fQoKPT09IG1vZGlmaWVkIGZpbGUgJ3NxbC9zcWxfbGlzdC5oJwotLS0g YS9zcWwvc3FsX2xpc3QuaAkyMDA3LTAzLTI5IDA2OjM1OjI4ICswMDAwCisrKyBiL3NxbC9zcWxf bGlzdC5oCTIwMDgtMDgtMTEgMTY6MTA6MDAgKzAwMDAKQEAgLTI3LDcgKzI3LDcgQEAgcHVibGlj OgogICB7CiAgICAgcmV0dXJuICh2b2lkKikgc3FsX2FsbG9jKCh1aW50KSBzaXplKTsKICAgfQot ICBzdGF0aWMgdm9pZCAqb3BlcmF0b3IgbmV3W10oc2l6ZV90IHNpemUpCisgIHN0YXRpYyB2b2lk ICpvcGVyYXRvciBuZXdbXShzaXplX3Qgc2l6ZSkgdGhyb3cgKCkKICAgewogICAgIHJldHVybiAo dm9pZCopIHNxbF9hbGxvYygodWludCkgc2l6ZSk7CiAgIH0KQEAgLTQ2Niw3ICs0NjYsNyBAQCBw dWJsaWM6CiBzdHJ1Y3QgaWxpbmsKIHsKICAgc3RydWN0IGlsaW5rICoqcHJldiwqbmV4dDsKLSAg c3RhdGljIHZvaWQgKm9wZXJhdG9yIG5ldyhzaXplX3Qgc2l6ZSkKKyAgc3RhdGljIHZvaWQgKm9w ZXJhdG9yIG5ldyhzaXplX3Qgc2l6ZSkgdGhyb3cgKCkKICAgewogICAgIHJldHVybiAodm9pZCop bXlfbWFsbG9jKCh1aW50KXNpemUsIE1ZRihNWV9XTUUgfCBNWV9GQUUpKTsKICAgfQoKPT09IG1v ZGlmaWVkIGZpbGUgJ3NxbC9zcWxfcGFyc2UuY2MnCi0tLSBhL3NxbC9zcWxfcGFyc2UuY2MJMjAw OC0wNy0xNCAyMTo0MTozMCArMDAwMAorKysgYi9zcWwvc3FsX3BhcnNlLmNjCTIwMDgtMDctMjkg MTM6MTU6MDQgKzAwMDAKQEAgLTcwNjksMTEgKzcwNjksMjMgQEAgYm9vbCByZWxvYWRfYWNsX2Fu ZF9jYWNoZShUSEQgKnRoZCwgdWxvbgogICAgICAgdGhkLT50aHJlYWRfc3RhY2s9IChjaGFyKikg JnRtcF90aGQ7CiAgICAgICB0aGQtPnN0b3JlX2dsb2JhbHMoKTsKICAgICB9CisgICAgCiAgICAg aWYgKHRoZCkKICAgICB7Ci0gICAgICAodm9pZClhY2xfcmVsb2FkKHRoZCk7Ci0gICAgICAodm9p ZClncmFudF9yZWxvYWQodGhkKTsKKyAgICAgIGJvb2wgcmVsb2FkX2FjbF9mYWlsZWQ9IGFjbF9y ZWxvYWQodGhkKTsKKyAgICAgIGJvb2wgcmVsb2FkX2dyYW50c19mYWlsZWQ9IGdyYW50X3JlbG9h ZCh0aGQpOworCisgICAgICBpZiAocmVsb2FkX2FjbF9mYWlsZWQgfHwgcmVsb2FkX2dyYW50c19m YWlsZWQpCisgICAgICB7CisgICAgICAgIHJlc3VsdD0gMTsKKyAgICAgICAgLyoKKyAgICAgICAg ICBXaGVuIGFuIGVycm9yIGlzIHJldHVybmVkLCBteV9tZXNzYWdlIG1heSBoYXZlIG5vdCBiZWVu IGNhbGxlZCBhbmQKKyAgICAgICAgICB0aGUgY2xpZW50IHdpbGwgaGFuZyB3YWl0aW5nIGZvciBh IHJlc3BvbnNlLgorICAgICAgICAqLworICAgICAgICBteV9lcnJvcihFUl9VTktOT1dOX0VSUk9S LCBNWUYoMCksICJGTFVTSCBQUklWSUxFR0VTIGZhaWxlZCIpOworICAgICAgfQogICAgIH0KKwog ICAgIGlmICh0bXBfdGhkKQogICAgIHsKICAgICAgIGRlbGV0ZSB0bXBfdGhkOwpAQCAtNzE1OSw4 ICs3MTcxLDEwIEBAIGJvb2wgcmVsb2FkX2FjbF9hbmRfY2FjaGUoVEhEICp0aGQsIHVsb24KICAg ICAgIHRtcF93cml0ZV90b19iaW5sb2c9IDA7CiAgICAgICBpZiAobG9ja19nbG9iYWxfcmVhZF9s b2NrKHRoZCkpCiAJcmV0dXJuIDE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEtp bGxlZAotICAgICAgcmVzdWx0PWNsb3NlX2NhY2hlZF90YWJsZXModGhkLChvcHRpb25zICYgUkVG UkVTSF9GQVNUKSA/IDAgOiAxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFi bGVzKTsKKyAgICAgIGlmIChjbG9zZV9jYWNoZWRfdGFibGVzKHRoZCwob3B0aW9ucyAmIFJFRlJF U0hfRkFTVCkgPyAwIDogMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxl cykpCisgICAgICAgICAgcmVzdWx0PSAxOworICAgICAgCiAgICAgICBpZiAobWFrZV9nbG9iYWxf cmVhZF9sb2NrX2Jsb2NrX2NvbW1pdCh0aGQpKSAvLyBLaWxsZWQKICAgICAgIHsKICAgICAgICAg LyogRG9uJ3QgbGVhdmUgdGhpbmdzIGluIGEgaGFsZi1sb2NrZWQgc3RhdGUgKi8KQEAgLTcxNjks NyArNzE4MywxMCBAQCBib29sIHJlbG9hZF9hY2xfYW5kX2NhY2hlKFRIRCAqdGhkLCB1bG9uCiAg ICAgICB9CiAgICAgfQogICAgIGVsc2UKLSAgICAgIHJlc3VsdD1jbG9zZV9jYWNoZWRfdGFibGVz KHRoZCwob3B0aW9ucyAmIFJFRlJFU0hfRkFTVCkgPyAwIDogMSwgdGFibGVzKTsKKyAgICB7Cisg ICAgICBpZiAoY2xvc2VfY2FjaGVkX3RhYmxlcyh0aGQsKG9wdGlvbnMgJiBSRUZSRVNIX0ZBU1Qp ID8gMCA6IDEsIHRhYmxlcykpCisgICAgICAgIHJlc3VsdD0gMTsKKyAgICB9CiAgICAgbXlfZGJv cHRfY2xlYW51cCgpOwogICB9CiAgIGlmIChvcHRpb25zICYgUkVGUkVTSF9IT1NUUykKQEAgLTcx OTMsOCArNzIxMCw4IEBAIGJvb2wgcmVsb2FkX2FjbF9hbmRfY2FjaGUoVEhEICp0aGQsIHVsb24K ICNpZmRlZiBPUEVOU1NMCiAgICBpZiAob3B0aW9ucyAmIFJFRlJFU0hfREVTX0tFWV9GSUxFKQog ICAgewotICAgICBpZiAoZGVzX2tleV9maWxlKQotICAgICAgIHJlc3VsdD1sb2FkX2Rlc19rZXlf ZmlsZShkZXNfa2V5X2ZpbGUpOworICAgICBpZiAoZGVzX2tleV9maWxlICYmIGxvYWRfZGVzX2tl eV9maWxlKGRlc19rZXlfZmlsZSkpCisgICAgICAgICByZXN1bHQ9IDE7CiAgICB9CiAjZW5kaWYK ICNpZmRlZiBIQVZFX1JFUExJQ0FUSU9OCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL3NxbF9zZWxl Y3QuY2MnCi0tLSBhL3NxbC9zcWxfc2VsZWN0LmNjCTIwMDgtMDctMTUgMTQ6MTM6MjEgKzAwMDAK KysrIGIvc3FsL3NxbF9zZWxlY3QuY2MJMjAwOC0wNy0yOCAwODoyNDo1NiArMDAwMApAQCAtNjQ2 OSw2ICs2NDY5LDEyIEBAIHZvaWQgSk9JTjo6Y2xlYW51cChib29sIGZ1bGwpCiAgICAgaWYgKHRt cF9qb2luKQogICAgICAgdG1wX3RhYmxlX3BhcmFtLmNvcHlfZmllbGQ9IDA7CiAgICAgZ3JvdXBf ZmllbGRzLmRlbGV0ZV9lbGVtZW50cygpOworICAgIC8qIAorICAgICAgRW5zdXJlIHRoYXQgdGhl IGFib3ZlIGRlbGV0ZV9lbGVtZW50cygpIHdvdWxkIG5vdCBiZSBjYWxsZWQKKyAgICAgIHR3aWNl IGZvciB0aGUgc2FtZSBsaXN0LgorICAgICovCisgICAgaWYgKHRtcF9qb2luICYmIHRtcF9qb2lu ICE9IHRoaXMpCisgICAgICB0bXBfam9pbi0+Z3JvdXBfZmllbGRzPSBncm91cF9maWVsZHM7CiAg ICAgLyoKICAgICAgIFdlIGNhbid0IGNhbGwgZGVsZXRlX2VsZW1lbnRzKCkgb24gY29weV9mdW5j cyBhcyB0aGlzIHdpbGwgY2F1c2UKICAgICAgIHByb2JsZW1zIGluIGZyZWVfZWxlbWVudHMoKSBh cyBzb21lIG9mIHRoZSBlbGVtZW50cyBhcmUgdGhlbiBkZWxldGVkLgpAQCAtMTIwODgsMjYgKzEy MDk0LDI1IEBAIHBhcnRfb2ZfcmVma2V5KFRBQkxFICp0YWJsZSxGaWVsZCAqZmllbGQKIH0KIAog Ci0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioKLSAgVGVzdCBpZiBvbmUgY2FuIHVzZSB0aGUga2V5IHRv IHJlc29sdmUgT1JERVIgQlkKLQotICBTWU5PUFNJUwotICAgIHRlc3RfaWZfb3JkZXJfYnlfa2V5 KCkKLSAgICBvcmRlcgkJU29ydCBvcmRlcgotICAgIHRhYmxlCQlUYWJsZSB0byBzb3J0Ci0gICAg aWR4CQkJSW5kZXggdG8gY2hlY2sKLSAgICB1c2VkX2tleV9wYXJ0cwlSZXR1cm4gdmFsdWUgZm9y IHVzZWQga2V5IHBhcnRzLgotCi0KLSAgTk9URVMKLSAgICB1c2VkX2tleV9wYXJ0cyBpcyBzZXQg dG8gY29ycmVjdCBrZXkgcGFydHMgdXNlZCBpZiByZXR1cm4gdmFsdWUgIT0gMAotICAgIChPbiBv dGhlciBjYXNlcywgdXNlZF9rZXlfcGFydCBtYXkgYmUgY2hhbmdlZCkKKy8qKgorICBUZXN0IGlm IGEga2V5IGNhbiBiZSB1c2VkIHRvIHJlc29sdmUgT1JERVIgQlkKIAotICBSRVRVUk4KLSAgICAx ICAga2V5IGlzIG9rLgotICAgIDAgICBLZXkgY2FuJ3QgYmUgdXNlZAotICAgIC0xICBSZXZlcnNl IGtleSBjYW4gYmUgdXNlZAotKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisgIHVzZWRfa2V5X3BhcnRz IGlzIHNldCB0byBjb3JyZWN0IGtleSBwYXJ0cyB1c2VkIGlmIHJldHVybiB2YWx1ZSAhPSAwCisg IChPbiBvdGhlciBjYXNlcywgdXNlZF9rZXlfcGFydCBtYXkgYmUgY2hhbmdlZCkuCisgIE5vdGUg dGhhdCB0aGUgdmFsdWUgbWF5IGFjdHVhbGx5IGJlIGdyZWF0ZXIgdGhhbiB0aGUgbnVtYmVyIG9m IGluZGV4IAorICBrZXkgcGFydHMuIFRoaXMgY2FuIGhhcHBlbiBmb3Igc3RvcmFnZSBlbmdpbmVz IHRoYXQgaGF2ZSB0aGUgcHJpbWFyeSAKKyAga2V5IHBhcnRzIGFzIGEgc3VmZml4IGZvciBldmVy eSBzZWNvbmRhcnkga2V5LgorCisgIEBwYXJhbSAgICAgIG9yZGVyCQlTb3J0IG9yZGVyCisgIEBw YXJhbSAgICAgIHRhYmxlCQlUYWJsZSB0byBzb3J0CisgIEBwYXJhbSAgICAgIGlkeAkJSW5kZXgg dG8gY2hlY2sKKyAgQHBhcmFtW291dF0gdXNlZF9rZXlfcGFydHMJUmV0dXJuIHZhbHVlIGZvciB1 c2VkIGtleSBwYXJ0cy4KKworICBAcmV0dXJuIGluZGljYXRpb24gaWYgdGhlIGtleSBjYW4gYmUg dXNlZCBmb3Igc29ydGluZworICAgIEByZXR2YWwgMSAgIGtleSBjYW4gYmUgdXNlZCBmb3IgcmVh ZGluZyBkYXRhIGluIG9yZGVyLgorICAgIEByZXR2YWwgMCAgIEtleSBjYW4ndCBiZSB1c2VkCisg ICAgQHJldHZhbCAtMSAgUmV2ZXJzZSByZWFkIG9uIHRoZSBrZXkgY2FuIGJlIHVzZWQKKyovCiAK IHN0YXRpYyBpbnQgdGVzdF9pZl9vcmRlcl9ieV9rZXkoT1JERVIgKm9yZGVyLCBUQUJMRSAqdGFi bGUsIHVpbnQgaWR4LAogCQkJCXVpbnQgKnVzZWRfa2V5X3BhcnRzKQpAQCAtMTIxNzIsMTEgKzEy MTc3LDI3IEBAIHN0YXRpYyBpbnQgdGVzdF9pZl9vcmRlcl9ieV9rZXkoT1JERVIgKm8KICAgICBy ZXZlcnNlPWZsYWc7CQkJCS8vIFJlbWVtYmVyIGlmIHJldmVyc2UKICAgICBrZXlfcGFydCsrOwog ICB9Ci0gICp1c2VkX2tleV9wYXJ0cz0gb25fcHJpbWFyeV9rZXkgPyB0YWJsZS0+a2V5X2luZm9b aWR4XS5rZXlfcGFydHMgOgotICAgICh1aW50KSAoa2V5X3BhcnQgLSB0YWJsZS0+a2V5X2luZm9b aWR4XS5rZXlfcGFydCk7Ci0gIGlmIChyZXZlcnNlID09IC0xICYmICEodGFibGUtPmZpbGUtPmlu ZGV4X2ZsYWdzKGlkeCwgKnVzZWRfa2V5X3BhcnRzLTEsIDEpICYKLSAgICAgICAgICAgICAgICAg ICAgICAgICBIQV9SRUFEX1BSRVYpKQotICAgIHJldmVyc2U9IDA7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gSW5kZXggY2FuJ3QgYmUgdXNlZAorICBpZiAob25fcHJpbWFyeV9r ZXkpCisgIHsKKyAgICB1aW50IHVzZWRfa2V5X3BhcnRzX3NlY29uZGFyeT0gdGFibGUtPmtleV9p bmZvW2lkeF0ua2V5X3BhcnRzOworICAgIHVpbnQgdXNlZF9rZXlfcGFydHNfcGs9CisgICAgICAo dWludCkgKGtleV9wYXJ0IC0gdGFibGUtPmtleV9pbmZvW3RhYmxlLT5zLT5wcmltYXJ5X2tleV0u a2V5X3BhcnQpOworICAgICp1c2VkX2tleV9wYXJ0cz0gdXNlZF9rZXlfcGFydHNfcGsgKyB1c2Vk X2tleV9wYXJ0c19zZWNvbmRhcnk7CisKKyAgICBpZiAocmV2ZXJzZSA9PSAtMSAmJgorICAgICAg ICAoISh0YWJsZS0+ZmlsZS0+aW5kZXhfZmxhZ3MoaWR4LCB1c2VkX2tleV9wYXJ0c19zZWNvbmRh cnkgLSAxLCAxKSAmCisgICAgICAgICAgIEhBX1JFQURfUFJFVikgfHwKKyAgICAgICAgICEodGFi bGUtPmZpbGUtPmluZGV4X2ZsYWdzKHRhYmxlLT5zLT5wcmltYXJ5X2tleSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVzZWRfa2V5X3BhcnRzX3BrIC0gMSwgMSkgJiBIQV9S RUFEX1BSRVYpKSkKKyAgICAgIHJldmVyc2U9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIEluZGV4IGNhbid0IGJlIHVzZWQKKyAgfQorICBlbHNlCisgIHsKKyAgICAqdXNlZF9r ZXlfcGFydHM9ICh1aW50KSAoa2V5X3BhcnQgLSB0YWJsZS0+a2V5X2luZm9baWR4XS5rZXlfcGFy dCk7CisgICAgaWYgKHJldmVyc2UgPT0gLTEgJiYgCisgICAgICAgICEodGFibGUtPmZpbGUtPmlu ZGV4X2ZsYWdzKGlkeCwgKnVzZWRfa2V5X3BhcnRzLTEsIDEpICYgSEFfUkVBRF9QUkVWKSkKKyAg ICAgIHJldmVyc2U9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEluZGV4IGNh bid0IGJlIHVzZWQKKyAgfQogICBEQlVHX1JFVFVSTihyZXZlcnNlKTsKIH0KIAoKPT09IG1vZGlm aWVkIGZpbGUgJ3NxbC9zcWxfc3RyaW5nLmgnCi0tLSBhL3NxbC9zcWxfc3RyaW5nLmgJMjAwNy0w MS0yMiAxMjoxMDo0NiArMDAwMAorKysgYi9zcWwvc3FsX3N0cmluZy5oCTIwMDgtMDgtMTEgMTY6 MTA6MDAgKzAwMDAKQEAgLTc4LDcgKzc4LDcgQEAgcHVibGljOgogICAgIEFsbG9jZWRfbGVuZ3Ro PXN0ci5BbGxvY2VkX2xlbmd0aDsgYWxsb2NlZD0wOyAKICAgICBzdHJfY2hhcnNldD1zdHIuc3Ry X2NoYXJzZXQ7CiAgIH0KLSAgc3RhdGljIHZvaWQgKm9wZXJhdG9yIG5ldyhzaXplX3Qgc2l6ZSwg TUVNX1JPT1QgKm1lbV9yb290KQorICBzdGF0aWMgdm9pZCAqb3BlcmF0b3IgbmV3KHNpemVfdCBz aXplLCBNRU1fUk9PVCAqbWVtX3Jvb3QpIHRocm93ICgpCiAgIHsgcmV0dXJuICh2b2lkKikgYWxs b2Nfcm9vdChtZW1fcm9vdCwgKHVpbnQpIHNpemUpOyB9CiAgIHN0YXRpYyB2b2lkIG9wZXJhdG9y IGRlbGV0ZSh2b2lkICpwdHJfYXJnLHNpemVfdCBzaXplKQogICB7IFRSQVNIKHB0cl9hcmcsIHNp emUpOyB9Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL3NxbF95YWNjLnl5JwotLS0gYS9zcWwvc3Fs X3lhY2MueXkJMjAwOC0wNy0xNCAyMTo0MTozMCArMDAwMAorKysgYi9zcWwvc3FsX3lhY2MueXkJ MjAwOC0wOC0xMSAxNjoxMDowMCArMDAwMApAQCAtMTU0MCw2ICsxNTQwLDggQEAgY3JlYXRlOgog CSAgewogCSAgICBMRVggKmxleD1MZXg7CiAgICAgICAgICAgICBLZXkgKmtleT0gbmV3IEtleSgk MiwgJDQuc3RyLCAkNSwgMCwgbGV4LT5jb2xfbGlzdCk7CisgICAgICAgICAgICBpZiAoa2V5ID09 IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAKICAgICAgICAgICAgIGxleC0+ YWx0ZXJfaW5mby5rZXlfbGlzdC5wdXNoX2JhY2soa2V5KTsKIAkgICAgbGV4LT5jb2xfbGlzdC5l bXB0eSgpOwpAQCAtMTU5OSw2ICsxNjAxLDggQEAgc3BfbmFtZToKIAkgICAgICBNWVNRTF9ZWUFC T1JUOwogCSAgICB9CiAJICAgICQkPSBuZXcgc3BfbmFtZSgkMSwgJDMsIHRydWUpOworICAgICAg ICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAJICAg ICQkLT5pbml0X3FuYW1lKFlZVEhEKTsKIAkgIH0KIAl8IGlkZW50CkBAIC0xNjE0LDggKzE2MTgs OSBAQCBzcF9uYW1lOgogICAgICAgICAgICAgaWYgKGxleC0+Y29weV9kYl90bygmZGIuc3RyLCAm ZGIubGVuZ3RoKSkKICAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKIAkgICAgJCQ9IG5ldyBz cF9uYW1lKGRiLCAkMSwgZmFsc2UpOwotICAgICAgICAgICAgaWYgKCQkKQotCSAgICAgICQkLT5p bml0X3FuYW1lKFlZVEhEKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAg ICAgICBNWVNRTF9ZWUFCT1JUOworCSAgICAkJC0+aW5pdF9xbmFtZShZWVRIRCk7CiAJICB9CiAJ OyAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKQEAgLTE4NjYsNiArMTg3MSw4IEBAIHNw X2RlY2w6CiAgICAgICAgICAgICBpZiAoIWRmbHRfdmFsdWVfaXRlbSkKICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgZGZsdF92YWx1ZV9pdGVtPSBuZXcgSXRlbV9udWxsKCk7CisgICAgICAg ICAgICAgIGlmIChkZmx0X3ZhbHVlX2l0ZW0gPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBNWVNR TF9ZWUFCT1JUOwogICAgICAgICAgICAgICAvKiBRUSBTZXQgdG8gdGhlIHZhcl90eXBlIHdpdGgg bnVsbF92YWx1ZT8gKi8KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIApAQCAtMTg5MSwxMCAr MTg5OCwxNyBAQCBzcF9kZWNsOgogICAgICAgICAgICAgCiAgICAgICAgICAgICAgIC8qIFRoZSBs YXN0IGluc3RydWN0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciBmcmVlaW5nIExFWC4gKi8KIAotICAg ICAgICAgICAgICBsZXgtPnNwaGVhZC0+YWRkX2luc3RyKAotICAgICAgICAgICAgICAgIG5ldyBz cF9pbnN0cl9zZXQobGV4LT5zcGhlYWQtPmluc3RydWN0aW9ucygpLCBwY3R4LCB2YXJfaWR4LAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGZsdF92YWx1ZV9pdGVtLCB2YXJfdHlw ZSwgbGV4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGkgPT0gbnVtX3ZhcnMg LSAxKSkpOworICAgICAgICAgICAgICBzcF9pbnN0cl9zZXQgKmlzPSBuZXcgc3BfaW5zdHJfc2V0 KGxleC0+c3BoZWFkLT5pbnN0cnVjdGlvbnMoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHZhcl9pZHgsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGZsdF92YWx1ZV9pdGVtLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcl90eXBlLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxleCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaSA9PSBudW1fdmFycyAtIDEpKTsK KyAgICAgICAgICAgICAgaWYgKGlzID09IE5VTEwpCisgICAgICAgICAgICAgICAgTVlTUUxfWVlB Qk9SVDsKKworICAgICAgICAgICAgICBsZXgtPnNwaGVhZC0+YWRkX2luc3RyKGlzKTsKICAgICAg ICAgICAgIH0KIAogICAgICAgICAgICAgcGN0eC0+ZGVjbGFyZV92YXJfYm91bmRhcnkoMCk7CkBA IC0xOTI4LDYgKzE5NDIsOCBAQCBzcF9kZWNsOgogCSAgICBzcF9pbnN0cl9ocHVzaF9qdW1wICpp PQogICAgICAgICAgICAgICBuZXcgc3BfaW5zdHJfaHB1c2hfanVtcChzcC0+aW5zdHJ1Y3Rpb25z KCksIGN0eCwgJDIsCiAJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5jdXJyZW50 X3Zhcl9jb3VudCgpKTsKKyAgICAgICAgICAgIGlmIChpID09IE5VTEwpCisgICAgICAgICAgICAg IE1ZU1FMX1lZQUJPUlQ7CiAKIAkgICAgc3AtPmFkZF9pbnN0cihpKTsKIAkgICAgc3AtPnB1c2hf YmFja3BhdGNoKGksIGN0eC0+cHVzaF9sYWJlbCgoY2hhciAqKSIiLCAwKSk7CkBAIC0xOTgwLDcg KzE5OTYsNyBAQCBzcF9kZWNsOgogCSAgICB9CiAgICAgICAgICAgICBpPSBuZXcgc3BfaW5zdHJf Y3B1c2goc3AtPmluc3RydWN0aW9ucygpLCBjdHgsICQ1LAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGN0eC0+Y3VycmVudF9jdXJzb3JfY291bnQoKSk7Ci0JICAgIGlmICggaT09 TlVMTCApCisJICAgIGlmIChpID09IE5VTEwpCiAgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7 CiAgICAgICAgICAgICBzcC0+YWRkX2luc3RyKGkpOwogCSAgICBjdHgtPnB1c2hfY3Vyc29yKCYk Mik7CkBAIC0yMDYxLDYgKzIwNzcsOCBAQCBzcF9jb25kOgogCSAgdWxvbmdfbnVtCiAJICB7CQkJ LyogbXlzcWwgZXJybm8gKi8KIAkgICAgJCQ9IChzcF9jb25kX3R5cGVfdCAqKVlZVEhELT5hbGxv YyhzaXplb2Yoc3BfY29uZF90eXBlX3QpKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQor ICAgICAgICAgICAgICBZWUFCT1JUOwogCSAgICAkJC0+dHlwZT0gc3BfY29uZF90eXBlX3Q6Om51 bWJlcjsKIAkgICAgJCQtPm15c3FsZXJyPSAkMTsKIAkgIH0KQEAgLTIwNzIsNiArMjA5MCw4IEBA IHNwX2NvbmQ6CiAJICAgICAgTVlTUUxfWVlBQk9SVDsKIAkgICAgfQogCSAgICAkJD0gKHNwX2Nv bmRfdHlwZV90ICopWVlUSEQtPmFsbG9jKHNpemVvZihzcF9jb25kX3R5cGVfdCkpOworICAgICAg ICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIFlZQUJPUlQ7CiAJICAgICQkLT50 eXBlPSBzcF9jb25kX3R5cGVfdDo6c3RhdGU7CiAJICAgIG1lbWNweSgkJC0+c3Fsc3RhdGUsICQz LnN0ciwgNSk7CiAJICAgICQkLT5zcWxzdGF0ZVs1XT0gJ1wwJzsKQEAgLTIxMDAsMTYgKzIxMjAs MjIgQEAgc3BfaGNvbmQ6CiAJfCBTUUxXQVJOSU5HX1NZTQkvKiBTUUxTVEFURXMgMDE/Pz8gKi8K IAkgIHsKIAkgICAgJCQ9IChzcF9jb25kX3R5cGVfdCAqKVlZVEhELT5hbGxvYyhzaXplb2Yoc3Bf Y29uZF90eXBlX3QpKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAg ICBZWUFCT1JUOwogCSAgICAkJC0+dHlwZT0gc3BfY29uZF90eXBlX3Q6Ondhcm5pbmc7CiAJICB9 CiAJfCBub3QgRk9VTkRfU1lNCQkvKiBTUUxTVEFURXMgMDI/Pz8gKi8KIAkgIHsKIAkgICAgJCQ9 IChzcF9jb25kX3R5cGVfdCAqKVlZVEhELT5hbGxvYyhzaXplb2Yoc3BfY29uZF90eXBlX3QpKTsK KyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBZWUFCT1JUOwogCSAg ICAkJC0+dHlwZT0gc3BfY29uZF90eXBlX3Q6Om5vdGZvdW5kOwogCSAgfQogCXwgU1FMRVhDRVBU SU9OX1NZTQkvKiBBbGwgb3RoZXIgU1FMU1RBVEVzICovCiAJICB7CiAJICAgICQkPSAoc3BfY29u ZF90eXBlX3QgKilZWVRIRC0+YWxsb2Moc2l6ZW9mKHNwX2NvbmRfdHlwZV90KSk7CisgICAgICAg ICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgWVlBQk9SVDsKIAkgICAgJCQtPnR5 cGU9IHNwX2NvbmRfdHlwZV90OjpleGNlcHRpb247CiAJICB9CiAJOwpAQCAtMzA4NSw2ICszMTEx LDggQEAga2V5X2RlZjoKIAkgIHsKIAkgICAgTEVYICpsZXg9TGV4OwogICAgICAgICAgICAgS2V5 ICprZXk9IG5ldyBLZXkoJDEsICQyLCAkNyA/ICQ3IDogJDMsIDAsIGxleC0+Y29sX2xpc3QpOwor ICAgICAgICAgICAgaWYgKGtleSA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JU OwogICAgICAgICAgICAgbGV4LT5hbHRlcl9pbmZvLmtleV9saXN0LnB1c2hfYmFjayhrZXkpOwog CiAJICAgIGxleC0+Y29sX2xpc3QuZW1wdHkoKTsJCS8qIEFsbG9jZWQgYnkgc3FsX2FsbG9jICov CkBAIC0zMDk0LDYgKzMxMjIsOCBAQCBrZXlfZGVmOgogCSAgICBMRVggKmxleD1MZXg7CiAJICAg IGNvbnN0IGNoYXIgKmtleV9uYW1lPSAkMyA/ICQzOiQxOwogICAgICAgICAgICAgS2V5ICprZXk9 IG5ldyBLZXkoJDIsIGtleV9uYW1lLCAkNCwgMCwgbGV4LT5jb2xfbGlzdCk7CisgICAgICAgICAg ICBpZiAoa2V5ID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAg ICAgICBsZXgtPmFsdGVyX2luZm8ua2V5X2xpc3QucHVzaF9iYWNrKGtleSk7CiAJICAgIGxleC0+ Y29sX2xpc3QuZW1wdHkoKTsJCS8qIEFsbG9jZWQgYnkgc3FsX2FsbG9jICovCiAJICB9CkBAIC0z MTA3LDEwICszMTM3LDE0IEBAIGtleV9kZWY6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxleC0+ZmtfZGVsZXRlX29wdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGV4LT5ma191cGRhdGVfb3B0LAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsZXgtPmZrX21hdGNoX29wdGlvbik7CisgICAgICAgICAgICBpZiAoa2V5 ID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICBsZXgt PmFsdGVyX2luZm8ua2V5X2xpc3QucHVzaF9iYWNrKGtleSk7CiAgICAgICAgICAgICBrZXk9IG5l dyBLZXkoS2V5OjpNVUxUSVBMRSwga2V5X25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAg SEFfS0VZX0FMR19VTkRFRiwgMSwKICAgICAgICAgICAgICAgICAgICAgICAgICBsZXgtPmNvbF9s aXN0KTsKKyAgICAgICAgICAgIGlmIChrZXkgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxf WVlBQk9SVDsKICAgICAgICAgICAgIGxleC0+YWx0ZXJfaW5mby5rZXlfbGlzdC5wdXNoX2JhY2so a2V5KTsKIAkgICAgbGV4LT5jb2xfbGlzdC5lbXB0eSgpOwkJLyogQWxsb2NlZCBieSBzcWxfYWxs b2MgKi8KIAkgIH0KQEAgLTM0MDAsNyArMzQzNCwxMiBAQCBhdHRyaWJ1dGU6CiAJOwogCiBub3df b3Jfc2lnbmVkX2xpdGVyYWw6Ci0gICAgICAgIE5PV19TWU0gb3B0aW9uYWxfYnJhY2VzIHsgJCQ9 IG5ldyBJdGVtX2Z1bmNfbm93X2xvY2FsKCk7IH0KKyAgICAgICAgTk9XX1NZTSBvcHRpb25hbF9i cmFjZXMKKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IEl0ZW1fZnVuY19ub3dfbG9j YWwoKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9Z WUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBzaWduZWRfbGl0ZXJhbCB7ICQkPSQxOyB9 CiAgICAgICAgIDsKIApAQCAtMzUyNiw4ICszNTY1LDIxIEBAIG9wdF9yZWZfbGlzdDoKIAl8ICco JyByZWZfbGlzdCAnKScgb3B0X29uX2RlbGV0ZSB7fTsKIAogcmVmX2xpc3Q6Ci0JcmVmX2xpc3Qg JywnIGlkZW50CXsgTGV4LT5yZWZfbGlzdC5wdXNoX2JhY2sobmV3IGtleV9wYXJ0X3NwZWMoJDMu c3RyKSk7IH0KLQl8IGlkZW50CQkJeyBMZXgtPnJlZl9saXN0LnB1c2hfYmFjayhuZXcga2V5X3Bh cnRfc3BlYygkMS5zdHIpKTsgfTsKKyAgICAgICAgICByZWZfbGlzdCAnLCcgaWRlbnQKKyAgICAg ICAgICB7CisgICAgICAgICAgICBrZXlfcGFydF9zcGVjICprZXk9IG5ldyBrZXlfcGFydF9zcGVj KCQzLnN0cik7CisgICAgICAgICAgICBpZiAoa2V5ID09IE5VTEwpCisgICAgICAgICAgICAgIE1Z U1FMX1lZQUJPUlQ7CisgICAgICAgICAgICBMZXgtPnJlZl9saXN0LnB1c2hfYmFjayhrZXkpOwor ICAgICAgICAgIH0KKyAgICAgICAgfCBpZGVudAorICAgICAgICAgIHsKKyAgICAgICAgICAgIGtl eV9wYXJ0X3NwZWMgKmtleT0gbmV3IGtleV9wYXJ0X3NwZWMoJDEuc3RyKTsKKyAgICAgICAgICAg IGlmIChrZXkgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAg ICAgIExleC0+cmVmX2xpc3QucHVzaF9iYWNrKGtleSk7CisgICAgICAgICAgfQorICAgICAgICA7 CiAKIAogb3B0X29uX2RlbGV0ZToKQEAgLTM2MTgsMTYgKzM2NzAsMjQgQEAga2V5X2xpc3Q6CiAJ fCBrZXlfcGFydCBvcmRlcl9kaXIJCXsgTGV4LT5jb2xfbGlzdC5wdXNoX2JhY2soJDEpOyB9Owog CiBrZXlfcGFydDoKLQlpZGVudAkJCXsgJCQ9bmV3IGtleV9wYXJ0X3NwZWMoJDEuc3RyKTsgfQot CXwgaWRlbnQgJygnIE5VTSAnKScJCi0gICAgICAgIHsKLSAgICAgICAgICBpbnQga2V5X3BhcnRf bGVuPSBhdG9pKCQzLnN0cik7Ci0gICAgICAgICAgaWYgKCFrZXlfcGFydF9sZW4pCisgICAgICAg ICAgaWRlbnQKICAgICAgICAgICB7Ci0gICAgICAgICAgICBteV9lcnJvcihFUl9LRVlfUEFSVF8w LCBNWUYoMCksICQxLnN0cik7CisgICAgICAgICAgICAkJD0gbmV3IGtleV9wYXJ0X3NwZWMoJDEu c3RyKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9Z WUFCT1JUOwogICAgICAgICAgIH0KLSAgICAgICAgICAkJD1uZXcga2V5X3BhcnRfc3BlYygkMS5z dHIsKHVpbnQpIGtleV9wYXJ0X2xlbik7Ci0gICAgICAgIH07CisJfCBpZGVudCAnKCcgTlVNICcp JworICAgICAgICAgIHsKKyAgICAgICAgICAgIGludCBrZXlfcGFydF9sZW49IGF0b2koJDMuc3Ry KTsKKyAgICAgICAgICAgIGlmICgha2V5X3BhcnRfbGVuKQorICAgICAgICAgICAgeworICAgICAg ICAgICAgICBteV9lcnJvcihFUl9LRVlfUEFSVF8wLCBNWUYoMCksICQxLnN0cik7CisgICAgICAg ICAgICB9CisgICAgICAgICAgICAkJD1uZXcga2V5X3BhcnRfc3BlYygkMS5zdHIsKHVpbnQpIGtl eV9wYXJ0X2xlbik7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAg TVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CisgICAgICAgIDsKIAogb3B0X2lkZW50OgogCS8q IGVtcHR5ICovCXsgJCQ9KGNoYXIqKSAwOyB9CS8qIERlZmF1bHRsZW5ndGggKi8KQEAgLTM3OTcs OCArMzg1NywxMCBAQCBhbHRlcl9saXN0X2l0ZW06CiAJfCBEUk9QIG9wdF9jb2x1bW4gZmllbGRf aWRlbnQgb3B0X3Jlc3RyaWN0CiAJICB7CiAJICAgIExFWCAqbGV4PUxleDsKLQkgICAgbGV4LT5h bHRlcl9pbmZvLmRyb3BfbGlzdC5wdXNoX2JhY2sobmV3IEFsdGVyX2Ryb3AoQWx0ZXJfZHJvcDo6 Q09MVU1OLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJDMuc3RyKSk7CisgICAgICAgICAgICBBbHRlcl9kcm9wICphZD0gbmV3 IEFsdGVyX2Ryb3AoQWx0ZXJfZHJvcDo6Q09MVU1OLCAkMy5zdHIpOworICAgICAgICAgICAgaWYg KGFkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisJICAgIGxleC0+YWx0 ZXJfaW5mby5kcm9wX2xpc3QucHVzaF9iYWNrKGFkKTsKIAkgICAgbGV4LT5hbHRlcl9pbmZvLmZs YWdzfD0gQUxURVJfRFJPUF9DT0xVTU47CiAJICB9CiAJfCBEUk9QIEZPUkVJR04gS0VZX1NZTSBv cHRfaWRlbnQKQEAgLTM4MDgsMTUgKzM4NzAsMTkgQEAgYWx0ZXJfbGlzdF9pdGVtOgogCXwgRFJP UCBQUklNQVJZX1NZTSBLRVlfU1lNCiAJICB7CiAJICAgIExFWCAqbGV4PUxleDsKLQkgICAgbGV4 LT5hbHRlcl9pbmZvLmRyb3BfbGlzdC5wdXNoX2JhY2sobmV3IEFsdGVyX2Ryb3AoQWx0ZXJfZHJv cDo6S0VZLAotCQkJCSAgICAgICAgICAgICAgIHByaW1hcnlfa2V5X25hbWUpKTsKKyAgICAgICAg ICAgIEFsdGVyX2Ryb3AgKmFkPSBuZXcgQWx0ZXJfZHJvcChBbHRlcl9kcm9wOjpLRVksIHByaW1h cnlfa2V5X25hbWUpOworICAgICAgICAgICAgaWYgKGFkID09IE5VTEwpCisgICAgICAgICAgICAg IE1ZU1FMX1lZQUJPUlQ7CisJICAgIGxleC0+YWx0ZXJfaW5mby5kcm9wX2xpc3QucHVzaF9iYWNr KGFkKTsKIAkgICAgbGV4LT5hbHRlcl9pbmZvLmZsYWdzfD0gQUxURVJfRFJPUF9JTkRFWDsKIAkg IH0KIAl8IERST1Aga2V5X29yX2luZGV4IGZpZWxkX2lkZW50CiAJICB7CiAJICAgIExFWCAqbGV4 PUxleDsKLQkgICAgbGV4LT5hbHRlcl9pbmZvLmRyb3BfbGlzdC5wdXNoX2JhY2sobmV3IEFsdGVy X2Ryb3AoQWx0ZXJfZHJvcDo6S0VZLAotCQkJCQkgICAgICAgICAgICAgICAgICAgICAgICQzLnN0 cikpOworICAgICAgICAgICAgQWx0ZXJfZHJvcCAqYWQ9IG5ldyBBbHRlcl9kcm9wKEFsdGVyX2Ry b3A6OktFWSwgJDMuc3RyKTsKKyAgICAgICAgICAgIGlmIChhZCA9PSBOVUxMKQorICAgICAgICAg ICAgICBNWVNRTF9ZWUFCT1JUOworCSAgICBsZXgtPmFsdGVyX2luZm8uZHJvcF9saXN0LnB1c2hf YmFjayhhZCk7CiAJICAgIGxleC0+YWx0ZXJfaW5mby5mbGFnc3w9IEFMVEVSX0RST1BfSU5ERVg7 CiAJICB9CiAJfCBESVNBQkxFX1NZTSBLRVlTCkBAIC0zODM0LDE0ICszOTAwLDE5IEBAIGFsdGVy X2xpc3RfaXRlbToKIAl8IEFMVEVSIG9wdF9jb2x1bW4gZmllbGRfaWRlbnQgU0VUIERFRkFVTFQg c2lnbmVkX2xpdGVyYWwKIAkgIHsKIAkgICAgTEVYICpsZXg9TGV4OwotCSAgICBsZXgtPmFsdGVy X2luZm8uYWx0ZXJfbGlzdC5wdXNoX2JhY2sobmV3IEFsdGVyX2NvbHVtbigkMy5zdHIsJDYpKTsK KyAgICAgICAgICAgIEFsdGVyX2NvbHVtbiAqYWM9IG5ldyBBbHRlcl9jb2x1bW4oJDMuc3RyLCAk Nik7CisgICAgICAgICAgICBpZiAoYWMgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlB Qk9SVDsKKwkgICAgbGV4LT5hbHRlcl9pbmZvLmFsdGVyX2xpc3QucHVzaF9iYWNrKGFjKTsKIAkg ICAgbGV4LT5hbHRlcl9pbmZvLmZsYWdzfD0gQUxURVJfQ0hBTkdFX0NPTFVNTl9ERUZBVUxUOwog CSAgfQogCXwgQUxURVIgb3B0X2NvbHVtbiBmaWVsZF9pZGVudCBEUk9QIERFRkFVTFQKIAkgIHsK IAkgICAgTEVYICpsZXg9TGV4OwotCSAgICBsZXgtPmFsdGVyX2luZm8uYWx0ZXJfbGlzdC5wdXNo X2JhY2sobmV3IEFsdGVyX2NvbHVtbigkMy5zdHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSXRlbSopIDApKTsKKyAg ICAgICAgICAgIEFsdGVyX2NvbHVtbiAqYWM9IG5ldyBBbHRlcl9jb2x1bW4oJDMuc3RyLCAoSXRl bSopIDApOworICAgICAgICAgICAgaWYgKGFjID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FM X1lZQUJPUlQ7CisJICAgIGxleC0+YWx0ZXJfaW5mby5hbHRlcl9saXN0LnB1c2hfYmFjayhhYyk7 CiAJICAgIGxleC0+YWx0ZXJfaW5mby5mbGFnc3w9IEFMVEVSX0NIQU5HRV9DT0xVTU5fREVGQVVM VDsKIAkgIH0KIAl8IFJFTkFNRSBvcHRfdG8gdGFibGVfaWRlbnQKQEAgLTQ0NjcsMTAgKzQ1Mzgs MTEgQEAgc2VsZWN0X2l0ZW1fbGlzdDoKIAl8ICcqJwogCSAgewogCSAgICBUSEQgKnRoZD0gWVlU SEQ7Ci0JICAgIGlmIChhZGRfaXRlbV90b19saXN0KHRoZCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG5ldyBJdGVtX2ZpZWxkKCZ0aGQtPmxleC0+Y3VycmVudF9zZWxlY3QtPgot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5V TEwsICIqIikpKQorICAgICAgICAgICAgSXRlbSAqaXRlbT0gbmV3IEl0ZW1fZmllbGQoJnRoZC0+ bGV4LT5jdXJyZW50X3NlbGVjdC0+Y29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE5VTEwsIE5VTEwsICIqIik7CisgICAgICAgICAgICBpZiAoaXRlbSA9PSBO VUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworCSAgICBpZiAoYWRkX2l0ZW1fdG9f bGlzdCh0aGQsIGl0ZW0pKQogCSAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAJICAgICh0aGQtPmxleC0+ Y3VycmVudF9zZWxlY3QtPndpdGhfd2lsZCkrKzsKIAkgIH07CkBAIC00NTc3LDEyICs0NjQ5LDE2 IEBAIGV4cHI6CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgIC8qIFggT1IgWSAqLwogICAg ICAgICAgICAgICAkJCA9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2NvbmRfb3IoJDEsICQz KTsKKyAgICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgICAgTVlTUUxf WVlBQk9SVDsKICAgICAgICAgICAgIH0KICAgICAgICAgICB9CiAgICAgICAgIHwgZXhwciBYT1Ig ZXhwciAlcHJlYyBYT1IKICAgICAgICAgICB7CiAgICAgICAgICAgICAvKiBYT1IgaXMgYSBwcm9w cmlldGFyeSBleHRlbnNpb24gKi8KICAgICAgICAgICAgICQkID0gbmV3IChZWVRIRC0+bWVtX3Jv b3QpIEl0ZW1fY29uZF94b3IoJDEsICQzKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQor ICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgIH0KICAgICAgICAgfCBleHBy IGFuZCBleHByICVwcmVjIEFORF9TWU0KICAgICAgICAgICB7CkBAIC00NjIzLDYyICs0Njk5LDEy NCBAQCBleHByOgogICAgICAgICAgICAgewogICAgICAgICAgICAgICAvKiBYIEFORCBZICovCiAg ICAgICAgICAgICAgICQkID0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fY29uZF9hbmQoJDEs ICQzKTsKKyAgICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgICAgTVlT UUxfWVlBQk9SVDsKICAgICAgICAgICAgIH0KICAgICAgICAgICB9CiAJfCBOT1RfU1lNIGV4cHIg JXByZWMgTk9UX1NZTQotICAgICAgICAgIHsgJCQ9IG5lZ2F0ZV9leHByZXNzaW9uKFlZVEhELCAk Mik7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmVnYXRlX2V4cHJlc3Npb24oWVlU SEQsICQyKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNR TF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBib29sX3ByaSBJUyBUUlVFX1NZTSAl cHJlYyBJUwotICAgICAgICAgIHsgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNf aXN0cnVlKCQxKTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5t ZW1fcm9vdCkgSXRlbV9mdW5jX2lzdHJ1ZSgkMSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVM TCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwg Ym9vbF9wcmkgSVMgbm90IFRSVUVfU1lNICVwcmVjIElTCi0gICAgICAgICAgeyAkJD0gbmV3IChZ WVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19pc25vdHRydWUoJDEpOyB9CisgICAgICAgICAgewor ICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfaXNub3R0cnVl KCQxKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9Z WUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBib29sX3ByaSBJUyBGQUxTRV9TWU0gJXBy ZWMgSVMKLSAgICAgICAgICB7ICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2lz ZmFsc2UoJDEpOyB9CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1l bV9yb290KSBJdGVtX2Z1bmNfaXNmYWxzZSgkMSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVM TCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwg Ym9vbF9wcmkgSVMgbm90IEZBTFNFX1NZTSAlcHJlYyBJUwotICAgICAgICAgIHsgJCQ9IG5ldyAo WVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfaXNub3RmYWxzZSgkMSk7IH0KKyAgICAgICAgICB7 CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19pc25vdGZh bHNlKCQxKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNR TF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBib29sX3ByaSBJUyBVTktOT1dOX1NZ TSAlcHJlYyBJUwotICAgICAgICAgIHsgJCQ9IG5ldyBJdGVtX2Z1bmNfaXNudWxsKCQxKTsgfQor ICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgSXRlbV9mdW5jX2lzbnVsbCgkMSk7Cisg ICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsK KyAgICAgICAgICB9CiAgICAgICAgIHwgYm9vbF9wcmkgSVMgbm90IFVOS05PV05fU1lNICVwcmVj IElTCi0gICAgICAgICAgeyAkJD0gbmV3IEl0ZW1fZnVuY19pc25vdG51bGwoJDEpOyB9CisgICAg ICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX2Z1bmNfaXNub3RudWxsKCQxKTsKKyAg ICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwor ICAgICAgICAgIH0KICAgICAgICAgfCBib29sX3ByaQogICAgICAgICA7CiAKIGJvb2xfcHJpOgog CWJvb2xfcHJpIElTIE5VTExfU1lNICVwcmVjIElTCi0gICAgICAgICAgeyAkJD0gbmV3IEl0ZW1f ZnVuY19pc251bGwoJDEpOyB9CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyBJdGVt X2Z1bmNfaXNudWxsKCQxKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAg ICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KIAl8IGJvb2xfcHJpIElTIG5vdCBOVUxM X1NZTSAlcHJlYyBJUwotICAgICAgICAgIHsgJCQ9IG5ldyBJdGVtX2Z1bmNfaXNub3RudWxsKCQx KTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgSXRlbV9mdW5jX2lzbm90bnVs bCgkMSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxf WVlBQk9SVDsKKyAgICAgICAgICB9CiAJfCBib29sX3ByaSBFUVVBTF9TWU0gcHJlZGljYXRlICVw cmVjIEVRVUFMX1NZTQotICAgICAgICAgIHsgJCQ9IG5ldyBJdGVtX2Z1bmNfZXF1YWwoJDEsJDMp OyB9CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX2Z1bmNfZXF1YWwoJDEs JDMpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZ QUJPUlQ7CisgICAgICAgICAgfQogCXwgYm9vbF9wcmkgY29tcF9vcCBwcmVkaWNhdGUgJXByZWMg RVEKLQkgIHsgJCQ9ICgqJDIpKDApLT5jcmVhdGUoJDEsJDMpOyB9CisJICB7CisgICAgICAgICAg ICAkJD0gKCokMikoMCktPmNyZWF0ZSgkMSwkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVM TCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAJfCBib29sX3By aSBjb21wX29wIGFsbF9vcl9hbnkgJygnIHN1YnNlbGVjdCAnKScgJXByZWMgRVEKLQkgIHsgJCQ9 IGFsbF9hbnlfc3VicXVlcnlfY3JlYXRvcigkMSwgJDIsICQzLCAkNSk7IH0KKwkgIHsKKyAgICAg ICAgICAgICQkPSBhbGxfYW55X3N1YnF1ZXJ5X2NyZWF0b3IoJDEsICQyLCAkMywgJDUpOworICAg ICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7Cisg ICAgICAgICAgfQogCXwgcHJlZGljYXRlIDsKIAogcHJlZGljYXRlOgogICAgICAgICAgIGJpdF9l eHByIElOX1NZTSAnKCcgc3Vic2VsZWN0ICcpJwogICAgICAgICAgIHsKICAgICAgICAgICAgICQk PSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9pbl9zdWJzZWxlY3QoJDEsICQ0KTsKKyAgICAg ICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAg ICAgICAgIH0KICAgICAgICAgfCBiaXRfZXhwciBub3QgSU5fU1lNICcoJyBzdWJzZWxlY3QgJykn CiAgICAgICAgICAgewogICAgICAgICAgICAgVEhEICp0aGQ9IFlZVEhEOwogICAgICAgICAgICAg SXRlbSAqaXRlbT0gbmV3ICh0aGQtPm1lbV9yb290KSBJdGVtX2luX3N1YnNlbGVjdCgkMSwgJDUp OworICAgICAgICAgICAgaWYgKGl0ZW0gPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlB Qk9SVDsKICAgICAgICAgICAgICQkPSBuZWdhdGVfZXhwcmVzc2lvbih0aGQsIGl0ZW0pOworICAg ICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAg ICAgICAgICAgfQogICAgICAgICB8IGJpdF9leHByIElOX1NZTSAnKCcgZXhwciAnKScKICAgICAg ICAgICB7CiAgICAgICAgICAgICAkJD0gaGFuZGxlX3NxbDIwMDNfbm90ZTE4NF9leGNlcHRpb24o WVlUSEQsICQxLCB0cnVlLCAkNCk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAg ICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAgICB9CiAgICAgICAgIHwgYml0X2V4cHIg SU5fU1lNICcoJyBleHByICcsJyBleHByX2xpc3QgJyknCiAgICAgICAgICAgeyAKICAgICAgICAg ICAgICQ2LT5wdXNoX2Zyb250KCQ0KTsKICAgICAgICAgICAgICQ2LT5wdXNoX2Zyb250KCQxKTsK ICAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2luKCokNik7 CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9S VDsKICAgICAgICAgICB9CiAgICAgICAgIHwgYml0X2V4cHIgbm90IElOX1NZTSAnKCcgZXhwciAn KScKICAgICAgICAgICB7CiAgICAgICAgICAgICAkJD0gaGFuZGxlX3NxbDIwMDNfbm90ZTE4NF9l eGNlcHRpb24oWVlUSEQsICQxLCBmYWxzZSwgJDUpOworICAgICAgICAgICAgaWYgKCQkID09IE5V TEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgfQogICAgICAgICB8 IGJpdF9leHByIG5vdCBJTl9TWU0gJygnIGV4cHIgJywnIGV4cHJfbGlzdCAnKScKICAgICAgICAg ICB7CkBAIC00NjkxLDU0ICs0ODI5LDE0NiBAQCBwcmVkaWNhdGU6CiAgICAgICAgICAgICAkJD0g aXRlbTsKICAgICAgICAgICB9CiAJfCBiaXRfZXhwciBCRVRXRUVOX1NZTSBiaXRfZXhwciBBTkRf U1lNIHByZWRpY2F0ZQotCSAgeyAkJD0gbmV3IEl0ZW1fZnVuY19iZXR3ZWVuKCQxLCQzLCQ1KTsg fQorCSAgeworICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX2Z1bmNfYmV0d2VlbigkMSwkMywkNSk7 CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9S VDsKKyAgICAgICAgICB9CiAJfCBiaXRfZXhwciBub3QgQkVUV0VFTl9TWU0gYml0X2V4cHIgQU5E X1NZTSBwcmVkaWNhdGUKICAgICAgICAgICB7CiAgICAgICAgICAgICBJdGVtX2Z1bmNfYmV0d2Vl biAqaXRlbT0gbmV3IEl0ZW1fZnVuY19iZXR3ZWVuKCQxLCQ0LCQ2KTsKKyAgICAgICAgICAgIGlm IChpdGVtID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAg ICBpdGVtLT5uZWdhdGUoKTsKICAgICAgICAgICAgICQkPSBpdGVtOwogICAgICAgICAgIH0KIAl8 IGJpdF9leHByIFNPVU5EU19TWU0gTElLRSBiaXRfZXhwcgotCSAgeyAkJD0gbmV3IEl0ZW1fZnVu Y19lcShuZXcgSXRlbV9mdW5jX3NvdW5kZXgoJDEpLAotCQkJCSBuZXcgSXRlbV9mdW5jX3NvdW5k ZXgoJDQpKTsgfQorCSAgeworICAgICAgICAgICAgSXRlbSAqaXRlbTE9IG5ldyBJdGVtX2Z1bmNf c291bmRleCgkMSk7CisgICAgICAgICAgICBJdGVtICppdGVtND0gbmV3IEl0ZW1fZnVuY19zb3Vu ZGV4KCQ0KTsKKyAgICAgICAgICAgIGlmICgoaXRlbTEgPT0gTlVMTCkgfHwgKGl0ZW00ID09IE5V TEwpKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgICAgJCQ9IG5ldyBJ dGVtX2Z1bmNfZXEoaXRlbTEsIGl0ZW00KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQor ICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KIAl8IGJpdF9leHByIExJ S0Ugc2ltcGxlX2V4cHIgb3B0X2VzY2FwZQotICAgICAgICAgIHsgJCQ9IG5ldyBJdGVtX2Z1bmNf bGlrZSgkMSwkMywkNCxMZXgtPmVzY2FwZV91c2VkKTsgfQorICAgICAgICAgIHsKKyAgICAgICAg ICAgICQkPSBuZXcgSXRlbV9mdW5jX2xpa2UoJDEsJDMsJDQsTGV4LT5lc2NhcGVfdXNlZCk7Cisg ICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsK KyAgICAgICAgICB9CiAJfCBiaXRfZXhwciBub3QgTElLRSBzaW1wbGVfZXhwciBvcHRfZXNjYXBl Ci0gICAgICAgICAgeyAkJD0gbmV3IEl0ZW1fZnVuY19ub3QobmV3IEl0ZW1fZnVuY19saWtlKCQx LCQ0LCQ1LCBMZXgtPmVzY2FwZV91c2VkKSk7IH0KLQl8IGJpdF9leHByIFJFR0VYUCBiaXRfZXhw cgl7ICQkPSBuZXcgSXRlbV9mdW5jX3JlZ2V4KCQxLCQzKTsgfQorICAgICAgICAgIHsKKyAgICAg ICAgICAgIEl0ZW0gKml0ZW09IG5ldyBJdGVtX2Z1bmNfbGlrZSgkMSwkNCwkNSwgTGV4LT5lc2Nh cGVfdXNlZCk7CisgICAgICAgICAgICBpZiAoaXRlbSA9PSBOVUxMKQorICAgICAgICAgICAgICBN WVNRTF9ZWUFCT1JUOworICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX2Z1bmNfbm90KGl0ZW0pOwor ICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7 CisgICAgICAgICAgfQorCXwgYml0X2V4cHIgUkVHRVhQIGJpdF9leHByCisgICAgICAgICAgewor ICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX2Z1bmNfcmVnZXgoJDEsJDMpOworICAgICAgICAgICAg aWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAg fQogCXwgYml0X2V4cHIgbm90IFJFR0VYUCBiaXRfZXhwcgotICAgICAgICAgIHsgJCQ9IG5lZ2F0 ZV9leHByZXNzaW9uKFlZVEhELCBuZXcgSXRlbV9mdW5jX3JlZ2V4KCQxLCQ0KSk7IH0KKyAgICAg ICAgICB7CisgICAgICAgICAgICBJdGVtICppdGVtPSBuZXcgSXRlbV9mdW5jX3JlZ2V4KCQxLCQ0 KTsKKyAgICAgICAgICAgIGlmIChpdGVtID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZ QUJPUlQ7CisgICAgICAgICAgICAkJD0gbmVnYXRlX2V4cHJlc3Npb24oWVlUSEQsIGl0ZW0pOwor ICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7 CisgICAgICAgICAgfQogCXwgYml0X2V4cHIgOwogCiBiaXRfZXhwcjoKICAgICAgICAgICBiaXRf ZXhwciAnfCcgYml0X2V4cHIgJXByZWMgJ3wnCi0gICAgICAgICAgeyAkJD0gbmV3IEl0ZW1fZnVu Y19iaXRfb3IoJDEsJDMpOyB9CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyBJdGVt X2Z1bmNfYml0X29yKCQxLCQzKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAg ICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBiaXRfZXhwciAn JicgYml0X2V4cHIgJXByZWMgJyYnCi0gICAgICAgICAgeyAkJD0gbmV3IEl0ZW1fZnVuY19iaXRf YW5kKCQxLCQzKTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgSXRlbV9mdW5j X2JpdF9hbmQoJDEsJDMpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAg ICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAgICB8IGJpdF9leHByIFNISUZU X0xFRlQgYml0X2V4cHIgJXByZWMgU0hJRlRfTEVGVAotICAgICAgICAgIHsgJCQ9IG5ldyBJdGVt X2Z1bmNfc2hpZnRfbGVmdCgkMSwkMyk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0g bmV3IEl0ZW1fZnVuY19zaGlmdF9sZWZ0KCQxLCQzKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBO VUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAg fCBiaXRfZXhwciBTSElGVF9SSUdIVCBiaXRfZXhwciAlcHJlYyBTSElGVF9SSUdIVAotICAgICAg ICAgIHsgJCQ9IG5ldyBJdGVtX2Z1bmNfc2hpZnRfcmlnaHQoJDEsJDMpOyB9CisgICAgICAgICAg eworICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX2Z1bmNfc2hpZnRfcmlnaHQoJDEsJDMpOworICAg ICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7Cisg ICAgICAgICAgfQogICAgICAgICB8IGJpdF9leHByICcrJyBiaXRfZXhwciAlcHJlYyAnKycKLSAg ICAgICAgICB7ICQkPSBuZXcgSXRlbV9mdW5jX3BsdXMoJDEsJDMpOyB9CisgICAgICAgICAgewor ICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX2Z1bmNfcGx1cygkMSwkMyk7CisgICAgICAgICAgICBp ZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9 CiAgICAgICAgIHwgYml0X2V4cHIgJy0nIGJpdF9leHByICVwcmVjICctJwotICAgICAgICAgIHsg JCQ9IG5ldyBJdGVtX2Z1bmNfbWludXMoJDEsJDMpOyB9CisgICAgICAgICAgeworICAgICAgICAg ICAgJCQ9IG5ldyBJdGVtX2Z1bmNfbWludXMoJDEsJDMpOworICAgICAgICAgICAgaWYgKCQkID09 IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAg ICB8IGJpdF9leHByICcrJyBpbnRlcnZhbF9leHByIGludGVydmFsICVwcmVjICcrJwotICAgICAg ICAgIHsgJCQ9IG5ldyBJdGVtX2RhdGVfYWRkX2ludGVydmFsKCQxLCQzLCQ0LDApOyB9CisgICAg ICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX2RhdGVfYWRkX2ludGVydmFsKCQxLCQz LCQ0LDApOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FM X1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAgICB8IGJpdF9leHByICctJyBpbnRlcnZhbF9l eHByIGludGVydmFsICVwcmVjICctJwotICAgICAgICAgIHsgJCQ9IG5ldyBJdGVtX2RhdGVfYWRk X2ludGVydmFsKCQxLCQzLCQ0LDEpOyB9CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5l dyBJdGVtX2RhdGVfYWRkX2ludGVydmFsKCQxLCQzLCQ0LDEpOworICAgICAgICAgICAgaWYgKCQk ID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAg ICAgICB8IGJpdF9leHByICcqJyBiaXRfZXhwciAlcHJlYyAnKicKLSAgICAgICAgICB7ICQkPSBu ZXcgSXRlbV9mdW5jX211bCgkMSwkMyk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0g bmV3IEl0ZW1fZnVuY19tdWwoJDEsJDMpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisg ICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAgICB8IGJpdF9l eHByICcvJyBiaXRfZXhwciAlcHJlYyAnLycKLSAgICAgICAgICB7ICQkPSBuZXcgSXRlbV9mdW5j X2RpdigkMSwkMyk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IEl0ZW1fZnVu Y19kaXYoJDEsJDMpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAg IE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAgICB8IGJpdF9leHByICclJyBiaXRf ZXhwciAlcHJlYyAnJScKLSAgICAgICAgICB7ICQkPSBuZXcgSXRlbV9mdW5jX21vZCgkMSwkMyk7 IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IEl0ZW1fZnVuY19tb2QoJDEsJDMp OworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJP UlQ7CisgICAgICAgICAgfQogICAgICAgICB8IGJpdF9leHByIERJVl9TWU0gYml0X2V4cHIgJXBy ZWMgRElWX1NZTQotICAgICAgICAgIHsgJCQ9IG5ldyBJdGVtX2Z1bmNfaW50X2RpdigkMSwkMyk7 IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IEl0ZW1fZnVuY19pbnRfZGl2KCQx LCQzKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9Z WUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBiaXRfZXhwciBNT0RfU1lNIGJpdF9leHBy ICVwcmVjIE1PRF9TWU0KLSAgICAgICAgICB7ICQkPSBuZXcgSXRlbV9mdW5jX21vZCgkMSwkMyk7 IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IEl0ZW1fZnVuY19tb2QoJDEsJDMp OworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJP UlQ7CisgICAgICAgICAgfQogICAgICAgICB8IGJpdF9leHByICdeJyBiaXRfZXhwcgotICAgICAg ICAgIHsgJCQ9IG5ldyBJdGVtX2Z1bmNfYml0X3hvcigkMSwkMyk7IH0KKyAgICAgICAgICB7Cisg ICAgICAgICAgICAkJD0gbmV3IEl0ZW1fZnVuY19iaXRfeG9yKCQxLCQzKTsKKyAgICAgICAgICAg IGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAg IH0KICAgICAgICAgfCBzaW1wbGVfZXhwcgogICAgICAgICA7CiAKQEAgLTQ3NjgsNjcgKzQ5OTgs MTE4IEBAIHNpbXBsZV9leHByOgogCXNpbXBsZV9pZGVudAogIAl8IHNpbXBsZV9leHByIENPTExB VEVfU1lNIGlkZW50X29yX3RleHQgJXByZWMgTkVHCiAJICB7Ci0JICAgICQkPSBuZXcgSXRlbV9m dW5jX3NldF9jb2xsYXRpb24oJDEsCi0JCQkJCSAgICBuZXcgSXRlbV9zdHJpbmcoJDMuc3RyLAot CQkJCQkJCSAgICAkMy5sZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBZWVRIRC0+Y2hhcnNldCgpKSk7CisgICAgICAgICAg ICBJdGVtICppdGVtPSBuZXcgSXRlbV9zdHJpbmcoJDMuc3RyLCAkMy5sZW5ndGgsIFlZVEhELT5j aGFyc2V0KCkpOworICAgICAgICAgICAgaWYgKGl0ZW0gPT0gTlVMTCkKKyAgICAgICAgICAgICAg TVlTUUxfWVlBQk9SVDsKKwkgICAgJCQ9IG5ldyBJdGVtX2Z1bmNfc2V0X2NvbGxhdGlvbigkMSwg aXRlbSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxf WVlBQk9SVDsKIAkgIH0KIAl8IGxpdGVyYWwKIAl8IHBhcmFtX21hcmtlcgogCXwgdmFyaWFibGUK IAl8IHN1bV9leHByCiAJfCBzaW1wbGVfZXhwciBPUl9PUl9TWU0gc2ltcGxlX2V4cHIKLQkgIHsg JCQ9IG5ldyBJdGVtX2Z1bmNfY29uY2F0KCQxLCAkMyk7IH0KLQl8ICcrJyBzaW1wbGVfZXhwciAl cHJlYyBORUcJeyAkJD0gJDI7IH0KLQl8ICctJyBzaW1wbGVfZXhwciAlcHJlYyBORUcJeyAkJD0g bmV3IEl0ZW1fZnVuY19uZWcoJDIpOyB9Ci0JfCAnficgc2ltcGxlX2V4cHIgJXByZWMgTkVHCXsg JCQ9IG5ldyBJdGVtX2Z1bmNfYml0X25lZygkMik7IH0KLQl8IG5vdDIgc2ltcGxlX2V4cHIgJXBy ZWMgTkVHCXsgJCQ9IG5lZ2F0ZV9leHByZXNzaW9uKFlZVEhELCAkMik7IH0KKwkgIHsKKyAgICAg ICAgICAgICQkPSBuZXcgSXRlbV9mdW5jX2NvbmNhdCgkMSwgJDMpOworICAgICAgICAgICAgaWYg KCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQor CXwgJysnIHNpbXBsZV9leHByICVwcmVjIE5FRworICAgICAgICAgIHsgJCQ9ICQyOyB9CisJfCAn LScgc2ltcGxlX2V4cHIgJXByZWMgTkVHCisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5l dyBJdGVtX2Z1bmNfbmVnKCQyKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAg ICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KKwl8ICd+JyBzaW1wbGVfZXhwciAl cHJlYyBORUcKKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IEl0ZW1fZnVuY19iaXRf bmVnKCQyKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNR TF9ZWUFCT1JUOworICAgICAgICAgIH0KKwl8IG5vdDIgc2ltcGxlX2V4cHIgJXByZWMgTkVHCisg ICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5lZ2F0ZV9leHByZXNzaW9uKFlZVEhELCAkMik7 CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9S VDsKKyAgICAgICAgICB9CiAJfCAnKCcgc3Vic2VsZWN0ICcpJyAgIAogICAgICAgICAgIHsgCiAg ICAgICAgICAgICAkJD0gbmV3IEl0ZW1fc2luZ2xlcm93X3N1YnNlbGVjdCgkMik7IAorICAgICAg ICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAg ICAgICAgfQogCXwgJygnIGV4cHIgJyknCQl7ICQkPSAkMjsgfQogCXwgJygnIGV4cHIgJywnIGV4 cHJfbGlzdCAnKScKIAkgIHsKIAkgICAgJDQtPnB1c2hfZnJvbnQoJDIpOwogCSAgICAkJD0gbmV3 IEl0ZW1fcm93KCokNCk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAg ICAgTVlTUUxfWVlBQk9SVDsKIAkgIH0KIAl8IFJPV19TWU0gJygnIGV4cHIgJywnIGV4cHJfbGlz dCAnKScKIAkgIHsKIAkgICAgJDUtPnB1c2hfZnJvbnQoJDMpOwogCSAgICAkJD0gbmV3IEl0ZW1f cm93KCokNSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlT UUxfWVlBQk9SVDsKIAkgIH0KIAl8IEVYSVNUUyAnKCcgc3Vic2VsZWN0ICcpJyAKICAgICAgICAg ICB7CiAgICAgICAgICAgICAkJD0gbmV3IEl0ZW1fZXhpc3RzX3N1YnNlbGVjdCgkMyk7IAorICAg ICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAg ICAgICAgICAgfQotCXwgJ3snIGlkZW50IGV4cHIgJ30nCXsgJCQ9ICQzOyB9CisJfCAneycgaWRl bnQgZXhwciAnfScKKyAgICAgICAgICB7ICQkPSAkMzsgfQogICAgICAgICB8IE1BVENIIGlkZW50 X2xpc3RfYXJnIEFHQUlOU1QgJygnIGJpdF9leHByIGZ1bGx0ZXh0X29wdGlvbnMgJyknCi0gICAg ICAgICAgeyAkMi0+cHVzaF9mcm9udCgkNSk7Ci0gICAgICAgICAgICBTZWxlY3QtPmFkZF9mdGZ1 bmNfdG9fbGlzdCgoSXRlbV9mdW5jX21hdGNoKikKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoJCQ9bmV3IEl0ZW1fZnVuY19tYXRjaCgqJDIsJDYpKSk7IH0KLQl8IEFT Q0lJX1NZTSAnKCcgZXhwciAnKScgeyAkJD0gbmV3IEl0ZW1fZnVuY19hc2NpaSgkMyk7IH0KKyAg ICAgICAgICB7CisgICAgICAgICAgICAkMi0+cHVzaF9mcm9udCgkNSk7CisgICAgICAgICAgICBJ dGVtX2Z1bmNfbWF0Y2ggKml0ZW09IG5ldyBJdGVtX2Z1bmNfbWF0Y2goKiQyLCQ2KTsKKyAgICAg ICAgICAgIGlmIChpdGVtID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7Cisg ICAgICAgICAgICBTZWxlY3QtPmFkZF9mdGZ1bmNfdG9fbGlzdChpdGVtKTsKKyAgICAgICAgICAg ICQkPSBpdGVtOworICAgICAgICAgIH0KKwl8IEFTQ0lJX1NZTSAnKCcgZXhwciAnKScKKyAgICAg ICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IEl0ZW1fZnVuY19hc2NpaSgkMyk7CisgICAgICAg ICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAg ICAgICB9CiAJfCBCSU5BUlkgc2ltcGxlX2V4cHIgJXByZWMgTkVHCiAJICB7CiAgICAgICAgICAg ICAkJD0gY3JlYXRlX2Z1bmNfY2FzdCgkMiwgSVRFTV9DQVNUX0NIQVIsIE5VTEwsIE5VTEwsICZt eV9jaGFyc2V0X2Jpbik7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAg ICAgTVlTUUxfWVlBQk9SVDsKIAkgIH0KIAl8IENBU1RfU1lNICcoJyBleHByIEFTIGNhc3RfdHlw ZSAnKScKIAkgIHsKICAgICAgICAgICAgIExFWCAqbGV4PSBMZXg7CiAJICAgICQkPSBjcmVhdGVf ZnVuY19jYXN0KCQzLCAkNSwgbGV4LT5sZW5ndGgsIGxleC0+ZGVjLCBsZXgtPmNoYXJzZXQpOwot ICAgICAgICAgICAgaWYgKCEkJCkKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQogICAgICAg ICAgICAgICBNWVNRTF9ZWUFCT1JUOwogCSAgfQogCXwgQ0FTRV9TWU0gb3B0X2V4cHIgd2hlbl9s aXN0IG9wdF9lbHNlIEVORAotCSAgeyAkJD0gbmV3IEl0ZW1fZnVuY19jYXNlKCogJDMsICQyLCAk NCApOyB9CisJICB7CisgICAgICAgICAgICAkJD0gbmV3IEl0ZW1fZnVuY19jYXNlKCogJDMsICQy LCAkNCApOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FM X1lZQUJPUlQ7CisgICAgICAgICAgfQogCXwgQ09OVkVSVF9TWU0gJygnIGV4cHIgJywnIGNhc3Rf dHlwZSAnKScKIAkgIHsKIAkgICAgJCQ9IGNyZWF0ZV9mdW5jX2Nhc3QoJDMsICQ1LCBMZXgtPmxl bmd0aCwgTGV4LT5kZWMsIExleC0+Y2hhcnNldCk7Ci0gICAgICAgICAgICBpZiAoISQkKQorICAg ICAgICAgICAgaWYgKCQkID09IE5VTEwpCiAgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAJ ICB9CiAJfCBDT05WRVJUX1NZTSAnKCcgZXhwciBVU0lORyBjaGFyc2V0X25hbWUgJyknCi0JICB7 ICQkPSBuZXcgSXRlbV9mdW5jX2NvbnZfY2hhcnNldCgkMywkNSk7IH0KKwkgIHsKKyAgICAgICAg ICAgICQkPSBuZXcgSXRlbV9mdW5jX2NvbnZfY2hhcnNldCgkMywkNSk7CisgICAgICAgICAgICBp ZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9 CiAJfCBERUZBVUxUICcoJyBzaW1wbGVfaWRlbnQgJyknCiAJICB7CiAJICAgIGlmICgkMy0+aXNf c3Bsb2NhbCgpKQpAQCAtNDgzOSw5ICs1MTIwLDE1IEBAIHNpbXBsZV9leHByOgogCSAgICAgIE1Z U1FMX1lZQUJPUlQ7CiAJICAgIH0KIAkgICAgJCQ9IG5ldyBJdGVtX2RlZmF1bHRfdmFsdWUoTGV4 LT5jdXJyZW50X2NvbnRleHQoKSwgJDMpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisg ICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAJICB9CiAJfCBWQUxVRVMgJygnIHNpbXBsZV9p ZGVudF9ub3NwdmFyICcpJwotCSAgeyAkJD0gbmV3IEl0ZW1faW5zZXJ0X3ZhbHVlKExleC0+Y3Vy cmVudF9jb250ZXh0KCksICQzKTsgfQorCSAgeworICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX2lu c2VydF92YWx1ZShMZXgtPmN1cnJlbnRfY29udGV4dCgpLCAkMyk7CisgICAgICAgICAgICBpZiAo JCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAJ fCBGVU5DX0FSRzAgJygnICcpJwogCSAgewogCSAgICBpZiAoISQxLnN5bWJvbC0+Y3JlYXRlX2Z1 bmMpCkBAIC00ODUyLDYgKzUxMzksOCBAQCBzaW1wbGVfZXhwcjoKIAkgICAgICBNWVNRTF9ZWUFC T1JUOwogCSAgICB9CiAJICAgICQkPSAoKEl0ZW0qKCopKHZvaWQpKSgkMS5zeW1ib2wtPmNyZWF0 ZV9mdW5jKSkoKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBN WVNRTF9ZWUFCT1JUOwogCSAgfQogCXwgRlVOQ19BUkcxICcoJyBleHByICcpJwogCSAgewpAQCAt NDg2Myw2ICs1MTUyLDggQEAgc2ltcGxlX2V4cHI6CiAJICAgICAgTVlTUUxfWVlBQk9SVDsKIAkg ICAgfQogCSAgICAkJD0gKChJdGVtKigqKShJdGVtKikpKCQxLnN5bWJvbC0+Y3JlYXRlX2Z1bmMp KSgkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxf WVlBQk9SVDsKIAkgIH0KIAl8IEZVTkNfQVJHMiAnKCcgZXhwciAnLCcgZXhwciAnKScKIAkgIHsK QEAgLTQ4NzQsNiArNTE2NSw4IEBAIHNpbXBsZV9leHByOgogCSAgICAgIE1ZU1FMX1lZQUJPUlQ7 CiAJICAgIH0KIAkgICAgJCQ9ICgoSXRlbSooKikoSXRlbSosSXRlbSopKSgkMS5zeW1ib2wtPmNy ZWF0ZV9mdW5jKSkoJDMsJDUpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAg ICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAJICB9CiAJfCBGVU5DX0FSRzMgJygnIGV4cHIgJywnIGV4 cHIgJywnIGV4cHIgJyknCiAJICB7CkBAIC00ODg1LDEwNiArNTE3OCwyNjQgQEAgc2ltcGxlX2V4 cHI6CiAJICAgICAgTVlTUUxfWVlBQk9SVDsKIAkgICAgfQogCSAgICAkJD0gKChJdGVtKigqKShJ dGVtKixJdGVtKixJdGVtKikpKCQxLnN5bWJvbC0+Y3JlYXRlX2Z1bmMpKSgkMywkNSwkNyk7Cisg ICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsK IAkgIH0KIAl8IEFERERBVEVfU1lNICcoJyBleHByICcsJyBleHByICcpJwotCSAgeyAkJD0gbmV3 IEl0ZW1fZGF0ZV9hZGRfaW50ZXJ2YWwoJDMsICQ1LCBJTlRFUlZBTF9EQVksIDApO30KKwkgIHsK KyAgICAgICAgICAgICQkPSBuZXcgSXRlbV9kYXRlX2FkZF9pbnRlcnZhbCgkMywgJDUsIElOVEVS VkFMX0RBWSwgMCk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAg TVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAJfCBBREREQVRFX1NZTSAnKCcgZXhwciAnLCcg SU5URVJWQUxfU1lNIGV4cHIgaW50ZXJ2YWwgJyknCi0JICB7ICQkPSBuZXcgSXRlbV9kYXRlX2Fk ZF9pbnRlcnZhbCgkMywgJDYsICQ3LCAwKTsgfQorCSAgeworICAgICAgICAgICAgJCQ9IG5ldyBJ dGVtX2RhdGVfYWRkX2ludGVydmFsKCQzLCAkNiwgJDcsIDApOworICAgICAgICAgICAgaWYgKCQk ID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogCXwg UkVQRUFUX1NZTSAnKCcgZXhwciAnLCcgZXhwciAnKScKLQkgIHsgJCQ9IG5ldyBJdGVtX2Z1bmNf cmVwZWF0KCQzLCQ1KTsgfQorCSAgeworICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX2Z1bmNfcmVw ZWF0KCQzLCQ1KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBN WVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KIAl8IEFUQU4JJygnIGV4cHIgJyknCi0JICB7ICQk PSBuZXcgSXRlbV9mdW5jX2F0YW4oJDMpOyB9CisJICB7CisgICAgICAgICAgICAkJD0gbmV3IEl0 ZW1fZnVuY19hdGFuKCQzKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAg ICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KIAl8IEFUQU4JJygnIGV4cHIgJywnIGV4 cHIgJyknCi0JICB7ICQkPSBuZXcgSXRlbV9mdW5jX2F0YW4oJDMsJDUpOyB9CisJICB7CisgICAg ICAgICAgICAkJD0gbmV3IEl0ZW1fZnVuY19hdGFuKCQzLCQ1KTsKKyAgICAgICAgICAgIGlmICgk JCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KIAl8 IENIQVJfU1lNICcoJyBleHByX2xpc3QgJyknCi0JICB7ICQkPSBuZXcgSXRlbV9mdW5jX2NoYXIo KiQzKTsgfQorCSAgeworICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX2Z1bmNfY2hhcigqJDMpOwor ICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7 CisgICAgICAgICAgfQogCXwgQ0hBUl9TWU0gJygnIGV4cHJfbGlzdCBVU0lORyBjaGFyc2V0X25h bWUgJyknCi0JICB7ICQkPSBuZXcgSXRlbV9mdW5jX2NoYXIoKiQzLCAkNSk7IH0KKwkgIHsKKyAg ICAgICAgICAgICQkPSBuZXcgSXRlbV9mdW5jX2NoYXIoKiQzLCAkNSk7CisgICAgICAgICAgICBp ZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9 CiAJfCBDSEFSU0VUICcoJyBleHByICcpJwotCSAgeyAkJD0gbmV3IEl0ZW1fZnVuY19jaGFyc2V0 KCQzKTsgfQorCSAgeworICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX2Z1bmNfY2hhcnNldCgkMyk7 CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9S VDsKKyAgICAgICAgICB9CiAJfCBDT0FMRVNDRSAnKCcgZXhwcl9saXN0ICcpJwotCSAgeyAkJD0g bmV3IEl0ZW1fZnVuY19jb2FsZXNjZSgqICQzKTsgfQorCSAgeworICAgICAgICAgICAgJCQ9IG5l dyBJdGVtX2Z1bmNfY29hbGVzY2UoKiAkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkK KyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAJfCBDT0xMQVRJT05f U1lNICcoJyBleHByICcpJwotCSAgeyAkJD0gbmV3IEl0ZW1fZnVuY19jb2xsYXRpb24oJDMpOyB9 CisJICB7CisgICAgICAgICAgICAkJD0gbmV3IEl0ZW1fZnVuY19jb2xsYXRpb24oJDMpOworICAg ICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7Cisg ICAgICAgICAgfQogCXwgQ09OQ0FUICcoJyBleHByX2xpc3QgJyknCi0JICB7ICQkPSBuZXcgSXRl bV9mdW5jX2NvbmNhdCgqICQzKTsgfQorCSAgeworICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX2Z1 bmNfY29uY2F0KCogJDMpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAg ICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogCXwgQ09OQ0FUX1dTICcoJyBleHByICcs JyBleHByX2xpc3QgJyknCi0JICB7ICQ1LT5wdXNoX2Zyb250KCQzKTsgJCQ9IG5ldyBJdGVtX2Z1 bmNfY29uY2F0X3dzKCokNSk7IH0KKwkgIHsKKyAgICAgICAgICAgICQ1LT5wdXNoX2Zyb250KCQz KTsKKyAgICAgICAgICAgICQkPSBuZXcgSXRlbV9mdW5jX2NvbmNhdF93cygqJDUpOworICAgICAg ICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAg ICAgICAgfQogCXwgQ09OVkVSVF9UWl9TWU0gJygnIGV4cHIgJywnIGV4cHIgJywnIGV4cHIgJykn CiAJICB7CiAgICAgICAgICAgICBpZiAoTGV4LT5hZGRfdGltZV96b25lX3RhYmxlc190b19xdWVy eV90YWJsZXMoWVlUSEQpKQogICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogCSAgICAkJD0g bmV3IEl0ZW1fZnVuY19jb252ZXJ0X3R6KCQzLCAkNSwgJDcpOworICAgICAgICAgICAgaWYgKCQk ID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAJICB9CiAJfCBDVVJEQVRF IG9wdGlvbmFsX2JyYWNlcwotCSAgeyAkJD0gbmV3IEl0ZW1fZnVuY19jdXJkYXRlX2xvY2FsKCk7 IExleC0+c2FmZV90b19jYWNoZV9xdWVyeT0wOyB9CisJICB7CisgICAgICAgICAgICAkJD0gbmV3 IEl0ZW1fZnVuY19jdXJkYXRlX2xvY2FsKCk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkK KyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICAgIExleC0+c2FmZV90b19j YWNoZV9xdWVyeT0wOworICAgICAgICAgIH0KIAl8IENVUlRJTUUgb3B0aW9uYWxfYnJhY2VzCi0J ICB7ICQkPSBuZXcgSXRlbV9mdW5jX2N1cnRpbWVfbG9jYWwoKTsgTGV4LT5zYWZlX3RvX2NhY2hl X3F1ZXJ5PTA7IH0KKwkgIHsKKyAgICAgICAgICAgICQkPSBuZXcgSXRlbV9mdW5jX2N1cnRpbWVf bG9jYWwoKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNR TF9ZWUFCT1JUOworICAgICAgICAgICAgTGV4LT5zYWZlX3RvX2NhY2hlX3F1ZXJ5PTA7CisgICAg ICAgICAgfQogCXwgQ1VSVElNRSAnKCcgZXhwciAnKScKIAkgIHsKIAkgICAgJCQ9IG5ldyBJdGVt X2Z1bmNfY3VydGltZV9sb2NhbCgkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAg ICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKIAkgICAgTGV4LT5zYWZlX3RvX2NhY2hlX3F1ZXJ5 PTA7CiAJICB9CiAJfCBDVVJSRU5UX1VTRVIgb3B0aW9uYWxfYnJhY2VzCiAgICAgICAgICAgewog ICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX2Z1bmNfY3VycmVudF91c2VyKExleC0+Y3VycmVudF9j b250ZXh0KCkpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1Z U1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICBMZXgtPnNhZmVfdG9fY2FjaGVfcXVlcnk9IDA7CiAg ICAgICAgICAgfQogCXwgREFURV9BRERfSU5URVJWQUwgJygnIGV4cHIgJywnIGludGVydmFsX2V4 cHIgaW50ZXJ2YWwgJyknCi0JICB7ICQkPSBuZXcgSXRlbV9kYXRlX2FkZF9pbnRlcnZhbCgkMywk NSwkNiwwKTsgfQorCSAgeworICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX2RhdGVfYWRkX2ludGVy dmFsKCQzLCQ1LCQ2LDApOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAg ICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogCXwgREFURV9TVUJfSU5URVJWQUwgJygn IGV4cHIgJywnIGludGVydmFsX2V4cHIgaW50ZXJ2YWwgJyknCi0JICB7ICQkPSBuZXcgSXRlbV9k YXRlX2FkZF9pbnRlcnZhbCgkMywkNSwkNiwxKTsgfQorCSAgeworICAgICAgICAgICAgJCQ9IG5l dyBJdGVtX2RhdGVfYWRkX2ludGVydmFsKCQzLCQ1LCQ2LDEpOworICAgICAgICAgICAgaWYgKCQk ID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogCXwg REFUQUJBU0UgJygnICcpJwogCSAgewogCSAgICAkJD0gbmV3IEl0ZW1fZnVuY19kYXRhYmFzZSgp OworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJP UlQ7CiAgICAgICAgICAgICBMZXgtPnNhZmVfdG9fY2FjaGVfcXVlcnk9MDsKIAkgIH0KIAl8IERB VEVfU1lNICcoJyBleHByICcpJwotCSAgeyAkJD0gbmV3IEl0ZW1fZGF0ZV90eXBlY2FzdCgkMyk7 IH0KKwkgIHsKKyAgICAgICAgICAgICQkPSBuZXcgSXRlbV9kYXRlX3R5cGVjYXN0KCQzKTsKKyAg ICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwor ICAgICAgICAgIH0KIAl8IERBWV9TWU0gJygnIGV4cHIgJyknCi0JICB7ICQkPSBuZXcgSXRlbV9m dW5jX2RheW9mbW9udGgoJDMpOyB9CisJICB7CisgICAgICAgICAgICAkJD0gbmV3IEl0ZW1fZnVu Y19kYXlvZm1vbnRoKCQzKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAg ICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KIAl8IEVMVF9GVU5DICcoJyBleHByICcs JyBleHByX2xpc3QgJyknCi0JICB7ICQ1LT5wdXNoX2Zyb250KCQzKTsgJCQ9IG5ldyBJdGVtX2Z1 bmNfZWx0KCokNSk7IH0KKwkgIHsKKyAgICAgICAgICAgICQ1LT5wdXNoX2Zyb250KCQzKTsKKyAg ICAgICAgICAgICQkPSBuZXcgSXRlbV9mdW5jX2VsdCgqJDUpOworICAgICAgICAgICAgaWYgKCQk ID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogCXwg TUFLRV9TRVRfU1lNICcoJyBleHByICcsJyBleHByX2xpc3QgJyknCi0JICB7ICQkPSBuZXcgSXRl bV9mdW5jX21ha2Vfc2V0KCQzLCAqJDUpOyB9CisJICB7CisgICAgICAgICAgICAkJD0gbmV3IEl0 ZW1fZnVuY19tYWtlX3NldCgkMywgKiQ1KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQor ICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KIAl8IEVOQ1JZUFQgJygn IGV4cHIgJyknCiAJICB7CiAJICAgICQkPSBuZXcgSXRlbV9mdW5jX2VuY3J5cHQoJDMpOworICAg ICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAJ ICAgIExleC0+dW5jYWNoZWFibGUoVU5DQUNIRUFCTEVfUkFORCk7CiAJICB9Ci0JfCBFTkNSWVBU ICcoJyBleHByICcsJyBleHByICcpJyAgIHsgJCQ9IG5ldyBJdGVtX2Z1bmNfZW5jcnlwdCgkMywk NSk7IH0KKwl8IEVOQ1JZUFQgJygnIGV4cHIgJywnIGV4cHIgJyknCisgICAgICAgICAgeworICAg ICAgICAgICAgJCQ9IG5ldyBJdGVtX2Z1bmNfZW5jcnlwdCgkMywkNSk7CisgICAgICAgICAgICBp ZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9 CiAJfCBERUNPREVfU1lNICcoJyBleHByICcsJyBURVhUX1NUUklOR19saXRlcmFsICcpJwotCSAg eyAkJD0gbmV3IEl0ZW1fZnVuY19kZWNvZGUoJDMsJDUuc3RyKTsgfQorCSAgeworICAgICAgICAg ICAgJCQ9IG5ldyBJdGVtX2Z1bmNfZGVjb2RlKCQzLCQ1LnN0cik7CisgICAgICAgICAgICBpZiAo JCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAJ fCBFTkNPREVfU1lNICcoJyBleHByICcsJyBURVhUX1NUUklOR19saXRlcmFsICcpJwotCSB7ICQk PSBuZXcgSXRlbV9mdW5jX2VuY29kZSgkMywkNS5zdHIpOyB9CisJICB7CisgICAgICAgICAgICAk JD0gbmV3IEl0ZW1fZnVuY19lbmNvZGUoJDMsJDUuc3RyKTsKKyAgICAgICAgICAgIGlmICgkJCA9 PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KIAl8IERF U19ERUNSWVBUX1NZTSAnKCcgZXhwciAnKScKLSAgICAgICAgeyAkJD0gbmV3IEl0ZW1fZnVuY19k ZXNfZGVjcnlwdCgkMyk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IEl0ZW1f ZnVuY19kZXNfZGVjcnlwdCgkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAg ICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAJfCBERVNfREVDUllQVF9TWU0g JygnIGV4cHIgJywnIGV4cHIgJyknCi0gICAgICAgIHsgJCQ9IG5ldyBJdGVtX2Z1bmNfZGVzX2Rl Y3J5cHQoJDMsJDUpOyB9CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX2Z1 bmNfZGVzX2RlY3J5cHQoJDMsJDUpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAg ICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogCXwgREVTX0VOQ1JZUFRfU1lN ICcoJyBleHByICcpJwotICAgICAgICB7ICQkPSBuZXcgSXRlbV9mdW5jX2Rlc19lbmNyeXB0KCQz KTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgSXRlbV9mdW5jX2Rlc19lbmNy eXB0KCQzKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNR TF9ZWUFCT1JUOworICAgICAgICAgIH0KIAl8IERFU19FTkNSWVBUX1NZTSAnKCcgZXhwciAnLCcg ZXhwciAnKScKLSAgICAgICAgeyAkJD0gbmV3IEl0ZW1fZnVuY19kZXNfZW5jcnlwdCgkMywkNSk7 IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IEl0ZW1fZnVuY19kZXNfZW5jcnlw dCgkMywkNSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlT UUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAJfCBFWFBPUlRfU0VUICcoJyBleHByICcsJyBleHBy ICcsJyBleHByICcpJwotCQl7ICQkPSBuZXcgSXRlbV9mdW5jX2V4cG9ydF9zZXQoJDMsICQ1LCAk Nyk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IEl0ZW1fZnVuY19leHBvcnRf c2V0KCQzLCAkNSwgJDcpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAg ICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogCXwgRVhQT1JUX1NFVCAnKCcgZXhwciAn LCcgZXhwciAnLCcgZXhwciAnLCcgZXhwciAnKScKLQkJeyAkJD0gbmV3IEl0ZW1fZnVuY19leHBv cnRfc2V0KCQzLCAkNSwgJDcsICQ5KTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBu ZXcgSXRlbV9mdW5jX2V4cG9ydF9zZXQoJDMsICQ1LCAkNywgJDkpOworICAgICAgICAgICAgaWYg KCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQog CXwgRVhQT1JUX1NFVCAnKCcgZXhwciAnLCcgZXhwciAnLCcgZXhwciAnLCcgZXhwciAnLCcgZXhw ciAnKScKLQkJeyAkJD0gbmV3IEl0ZW1fZnVuY19leHBvcnRfc2V0KCQzLCAkNSwgJDcsICQ5LCAk MTEpOyB9CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX2Z1bmNfZXhwb3J0 X3NldCgkMywgJDUsICQ3LCAkOSwgJDExKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQor ICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KIAl8IEZPUk1BVF9TWU0g JygnIGV4cHIgJywnIE5VTSAnKScKLQkgIHsgJCQ9IG5ldyBJdGVtX2Z1bmNfZm9ybWF0KCQzLGF0 b2koJDUuc3RyKSk7IH0KKwkgIHsKKyAgICAgICAgICAgICQkPSBuZXcgSXRlbV9mdW5jX2Zvcm1h dCgkMyxhdG9pKCQ1LnN0cikpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAg ICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogCXwgRlJPTV9VTklYVElNRSAnKCcg ZXhwciAnKScKLQkgIHsgJCQ9IG5ldyBJdGVtX2Z1bmNfZnJvbV91bml4dGltZSgkMyk7IH0KKwkg IHsKKyAgICAgICAgICAgICQkPSBuZXcgSXRlbV9mdW5jX2Zyb21fdW5peHRpbWUoJDMpOworICAg ICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7Cisg ICAgICAgICAgfQogCXwgRlJPTV9VTklYVElNRSAnKCcgZXhwciAnLCcgZXhwciAnKScKIAkgIHsK LQkgICAgJCQ9IG5ldyBJdGVtX2Z1bmNfZGF0ZV9mb3JtYXQgKG5ldyBJdGVtX2Z1bmNfZnJvbV91 bml4dGltZSgkMyksJDUsMCk7CisgICAgICAgICAgICBJdGVtICppdGVtPSBuZXcgSXRlbV9mdW5j X2Zyb21fdW5peHRpbWUoJDMpOworICAgICAgICAgICAgaWYgKGl0ZW0gPT0gTlVMTCkKKyAgICAg ICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKwkgICAgJCQ9IG5ldyBJdGVtX2Z1bmNfZGF0ZV9mb3Jt YXQgKGl0ZW0sICQ1LCAwKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAg ICAgICBNWVNRTF9ZWUFCT1JUOwogCSAgfQogCXwgRklFTERfRlVOQyAnKCcgZXhwciAnLCcgZXhw cl9saXN0ICcpJwotCSAgeyAkNS0+cHVzaF9mcm9udCgkMyk7ICQkPSBuZXcgSXRlbV9mdW5jX2Zp ZWxkKCokNSk7IH0KKwkgIHsKKyAgICAgICAgICAgICQ1LT5wdXNoX2Zyb250KCQzKTsKKyAgICAg ICAgICAgICQkPSBuZXcgSXRlbV9mdW5jX2ZpZWxkKCokNSk7CisgICAgICAgICAgICBpZiAoJCQg PT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAJfCBn ZW9tZXRyeV9mdW5jdGlvbgogCSAgewogI2lmZGVmIEhBVkVfU1BBVElBTAogCSAgICAkJD0gJDE7 CisgICAgICAgICAgICAvKiAkMSBtYXkgYmUgTlVMTCwgR0VPTV9ORVcgbm90IHRlc3RlZCBmb3Ig b3V0IG9mIG1lbW9yeSAqLworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAg ICAgIE1ZU1FMX1lZQUJPUlQ7CiAjZWxzZQogCSAgICBteV9lcnJvcihFUl9GRUFUVVJFX0RJU0FC TEVELCBNWUYoMCksCiAgICAgICAgICAgICAgICAgICAgICBzeW1fZ3JvdXBfZ2VvbS5uYW1lLCBz eW1fZ3JvdXBfZ2VvbS5uZWVkZWRfZGVmaW5lKTsKQEAgLTQ5OTIsMTYgKzU0NDMsMzYgQEAgc2lt cGxlX2V4cHI6CiAjZW5kaWYKIAkgIH0KIAl8IEdFVF9GT1JNQVQgJygnIGRhdGVfdGltZV90eXBl ICAnLCcgZXhwciAnKScKLQkgIHsgJCQ9IG5ldyBJdGVtX2Z1bmNfZ2V0X2Zvcm1hdCgkMywgJDUp OyB9CisJICB7CisgICAgICAgICAgICAkJD0gbmV3IEl0ZW1fZnVuY19nZXRfZm9ybWF0KCQzLCAk NSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlB Qk9SVDsKKyAgICAgICAgICB9CiAJfCBIT1VSX1NZTSAnKCcgZXhwciAnKScKLQkgIHsgJCQ9IG5l dyBJdGVtX2Z1bmNfaG91cigkMyk7IH0KKwkgIHsKKyAgICAgICAgICAgICQkPSBuZXcgSXRlbV9m dW5jX2hvdXIoJDMpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAg IE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogCXwgSUYgJygnIGV4cHIgJywnIGV4cHIgJywn IGV4cHIgJyknCi0JICB7ICQkPSBuZXcgSXRlbV9mdW5jX2lmKCQzLCQ1LCQ3KTsgfQorCSAgewor ICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX2Z1bmNfaWYoJDMsJDUsJDcpOworICAgICAgICAgICAg aWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAg fQogCXwgSU5TRVJUICcoJyBleHByICcsJyBleHByICcsJyBleHByICcsJyBleHByICcpJwotCSAg eyAkJD0gbmV3IEl0ZW1fZnVuY19pbnNlcnQoJDMsJDUsJDcsJDkpOyB9CisJICB7CisgICAgICAg ICAgICAkJD0gbmV3IEl0ZW1fZnVuY19pbnNlcnQoJDMsJDUsJDcsJDkpOworICAgICAgICAgICAg aWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAg fQogCXwgaW50ZXJ2YWxfZXhwciBpbnRlcnZhbCAnKycgZXhwcgogCSAgLyogd2UgY2Fubm90IHB1 dCBpbnRlcnZhbCBiZWZvcmUgLSAqLwotCSAgeyAkJD0gbmV3IEl0ZW1fZGF0ZV9hZGRfaW50ZXJ2 YWwoJDQsJDEsJDIsMCk7IH0KKwkgIHsKKyAgICAgICAgICAgICQkPSBuZXcgSXRlbV9kYXRlX2Fk ZF9pbnRlcnZhbCgkNCwkMSwkMiwwKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAg ICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KIAl8IGludGVydmFsX2V4cHIK IAkgIHsKICAgICAgICAgICAgIGlmICgkMS0+dHlwZSgpICE9IEl0ZW06OlJPV19JVEVNKQpAQCAt NTAxMCwxMDIgKzU0ODEsMjQ4IEBAIHNpbXBsZV9leHByOgogICAgICAgICAgICAgICBNWVNRTF9Z WUFCT1JUOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX2Z1bmNfaW50 ZXJ2YWwoKEl0ZW1fcm93ICopJDEpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAg ICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgfQogCXwgTEFTVF9JTlNFUlRfSUQg JygnICcpJwogCSAgewogCSAgICAkJD0gbmV3IEl0ZW1fZnVuY19sYXN0X2luc2VydF9pZCgpOwor ICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7 CiAJICAgIExleC0+c2FmZV90b19jYWNoZV9xdWVyeT0gMDsKIAkgIH0KIAl8IExBU1RfSU5TRVJU X0lEICcoJyBleHByICcpJwogCSAgewogCSAgICAkJD0gbmV3IEl0ZW1fZnVuY19sYXN0X2luc2Vy dF9pZCgkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlT UUxfWVlBQk9SVDsKIAkgICAgTGV4LT5zYWZlX3RvX2NhY2hlX3F1ZXJ5PSAwOwogCSAgfQogCXwg TEVGVCAnKCcgZXhwciAnLCcgZXhwciAnKScKLQkgIHsgJCQ9IG5ldyBJdGVtX2Z1bmNfbGVmdCgk MywkNSk7IH0KKwkgIHsKKyAgICAgICAgICAgICQkPSBuZXcgSXRlbV9mdW5jX2xlZnQoJDMsJDUp OworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJP UlQ7CisgICAgICAgICAgfQogCXwgTE9DQVRFICcoJyBleHByICcsJyBleHByICcpJwotCSAgeyAk JD0gbmV3IEl0ZW1fZnVuY19sb2NhdGUoJDUsJDMpOyB9CisJICB7CisgICAgICAgICAgICAkJD0g bmV3IEl0ZW1fZnVuY19sb2NhdGUoJDUsJDMpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwp CisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogCXwgTE9DQVRFICco JyBleHByICcsJyBleHByICcsJyBleHByICcpJwotCSAgeyAkJD0gbmV3IEl0ZW1fZnVuY19sb2Nh dGUoJDUsJDMsJDcpOyB9CisJICB7CisgICAgICAgICAgICAkJD0gbmV3IEl0ZW1fZnVuY19sb2Nh dGUoJDUsJDMsJDcpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAg IE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogCXwgR1JFQVRFU1RfU1lNICcoJyBleHByICcs JyBleHByX2xpc3QgJyknCi0JICB7ICQ1LT5wdXNoX2Zyb250KCQzKTsgJCQ9IG5ldyBJdGVtX2Z1 bmNfbWF4KCokNSk7IH0KKwkgIHsKKyAgICAgICAgICAgICQ1LT5wdXNoX2Zyb250KCQzKTsKKyAg ICAgICAgICAgICQkPSBuZXcgSXRlbV9mdW5jX21heCgqJDUpOworICAgICAgICAgICAgaWYgKCQk ID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogCXwg TEVBU1RfU1lNICcoJyBleHByICcsJyBleHByX2xpc3QgJyknCi0JICB7ICQ1LT5wdXNoX2Zyb250 KCQzKTsgJCQ9IG5ldyBJdGVtX2Z1bmNfbWluKCokNSk7IH0KKwkgIHsKKyAgICAgICAgICAgICQ1 LT5wdXNoX2Zyb250KCQzKTsKKyAgICAgICAgICAgICQkPSBuZXcgSXRlbV9mdW5jX21pbigqJDUp OworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJP UlQ7CisgICAgICAgICAgfQogCXwgTE9HX1NZTSAnKCcgZXhwciAnKScKLQkgIHsgJCQ9IG5ldyBJ dGVtX2Z1bmNfbG9nKCQzKTsgfQorCSAgeworICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX2Z1bmNf bG9nKCQzKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNR TF9ZWUFCT1JUOworICAgICAgICAgIH0KIAl8IExPR19TWU0gJygnIGV4cHIgJywnIGV4cHIgJykn Ci0JICB7ICQkPSBuZXcgSXRlbV9mdW5jX2xvZygkMywgJDUpOyB9CisJICB7CisgICAgICAgICAg ICAkJD0gbmV3IEl0ZW1fZnVuY19sb2coJDMsICQ1KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBO VUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KIAl8IE1BU1RF Ul9QT1NfV0FJVCAnKCcgZXhwciAnLCcgZXhwciAnKScKIAkgIHsKIAkgICAgJCQ9IG5ldyBJdGVt X21hc3Rlcl9wb3Nfd2FpdCgkMywgJDUpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisg ICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAJICAgIExleC0+c2FmZV90b19jYWNoZV9xdWVy eT0wOwotCQkgIH0KKyAgICAgICAgICB9CiAJfCBNQVNURVJfUE9TX1dBSVQgJygnIGV4cHIgJywn IGV4cHIgJywnIGV4cHIgJyknCiAJICB7CiAJICAgICQkPSBuZXcgSXRlbV9tYXN0ZXJfcG9zX3dh aXQoJDMsICQ1LCAkNyk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAg ICAgTVlTUUxfWVlBQk9SVDsKIAkgICAgTGV4LT5zYWZlX3RvX2NhY2hlX3F1ZXJ5PTA7CiAJICB9 CiAJfCBNSUNST1NFQ09ORF9TWU0gJygnIGV4cHIgJyknCi0JICB7ICQkPSBuZXcgSXRlbV9mdW5j X21pY3Jvc2Vjb25kKCQzKTsgfQorCSAgeworICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX2Z1bmNf bWljcm9zZWNvbmQoJDMpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAg ICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogCXwgTUlOVVRFX1NZTSAnKCcgZXhwciAn KScKLQkgIHsgJCQ9IG5ldyBJdGVtX2Z1bmNfbWludXRlKCQzKTsgfQorCSAgeworICAgICAgICAg ICAgJCQ9IG5ldyBJdGVtX2Z1bmNfbWludXRlKCQzKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBO VUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KIAl8IE1PRF9T WU0gJygnIGV4cHIgJywnIGV4cHIgJyknCi0JICB7ICQkID0gbmV3IEl0ZW1fZnVuY19tb2QoICQz LCAkNSk7IH0KKwkgIHsKKyAgICAgICAgICAgICQkPSBuZXcgSXRlbV9mdW5jX21vZCggJDMsICQ1 KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFC T1JUOworICAgICAgICAgIH0KIAl8IE1PTlRIX1NZTSAnKCcgZXhwciAnKScKLQkgIHsgJCQ9IG5l dyBJdGVtX2Z1bmNfbW9udGgoJDMpOyB9CisJICB7CisgICAgICAgICAgICAkJD0gbmV3IEl0ZW1f ZnVuY19tb250aCgkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAg ICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAJfCBOT1dfU1lNIG9wdGlvbmFsX2JyYWNl cwotCSAgeyAkJD0gbmV3IEl0ZW1fZnVuY19ub3dfbG9jYWwoKTsgTGV4LT5zYWZlX3RvX2NhY2hl X3F1ZXJ5PTA7fQorCSAgeworICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX2Z1bmNfbm93X2xvY2Fs KCk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlB Qk9SVDsKKyAgICAgICAgICAgIExleC0+c2FmZV90b19jYWNoZV9xdWVyeT0wOworICAgICAgICAg IH0KIAl8IE5PV19TWU0gJygnIGV4cHIgJyknCi0JICB7ICQkPSBuZXcgSXRlbV9mdW5jX25vd19s b2NhbCgkMyk7IExleC0+c2FmZV90b19jYWNoZV9xdWVyeT0wO30KKwkgIHsKKyAgICAgICAgICAg ICQkPSBuZXcgSXRlbV9mdW5jX25vd19sb2NhbCgkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0g TlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICAgIExleC0+c2Fm ZV90b19jYWNoZV9xdWVyeT0wOworICAgICAgICAgIH0KIAl8IFBBU1NXT1JEICcoJyBleHByICcp JwogCSAgewogCSAgICAkJD0gWVlUSEQtPnZhcmlhYmxlcy5vbGRfcGFzc3dvcmRzID8KICAgICAg ICAgICAgICAgKEl0ZW0gKikgbmV3IEl0ZW1fZnVuY19vbGRfcGFzc3dvcmQoJDMpIDoKIAkgICAg ICAoSXRlbSAqKSBuZXcgSXRlbV9mdW5jX3Bhc3N3b3JkKCQzKTsKKyAgICAgICAgICAgIGlmICgk JCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogCSAgfQogCXwgT0xEX1BB U1NXT1JEICcoJyBleHByICcpJwotCSAgeyAkJD0gIG5ldyBJdGVtX2Z1bmNfb2xkX3Bhc3N3b3Jk KCQzKTsgfQorCSAgeworICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX2Z1bmNfb2xkX3Bhc3N3b3Jk KCQzKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9Z WUFCT1JUOworICAgICAgICAgIH0KIAl8IFBPU0lUSU9OX1NZTSAnKCcgYml0X2V4cHIgSU5fU1lN IGV4cHIgJyknCi0JICB7ICQkID0gbmV3IEl0ZW1fZnVuY19sb2NhdGUoJDUsJDMpOyB9CisJICB7 CisgICAgICAgICAgICAkJD0gbmV3IEl0ZW1fZnVuY19sb2NhdGUoJDUsJDMpOworICAgICAgICAg ICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAg ICAgfQogCXwgUVVBUlRFUl9TWU0gJygnIGV4cHIgJyknCi0JICB7ICQkID0gbmV3IEl0ZW1fZnVu Y19xdWFydGVyKCQzKTsgfQorCSAgeworICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX2Z1bmNfcXVh cnRlcigkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlT UUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAJfCBSQU5EICcoJyBleHByICcpJwotCSAgeyAkJD0g bmV3IEl0ZW1fZnVuY19yYW5kKCQzKTsgTGV4LT51bmNhY2hlYWJsZShVTkNBQ0hFQUJMRV9SQU5E KTt9CisJICB7CisgICAgICAgICAgICAkJD0gbmV3IEl0ZW1fZnVuY19yYW5kKCQzKTsKKyAgICAg ICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAg ICAgICAgICAgTGV4LT51bmNhY2hlYWJsZShVTkNBQ0hFQUJMRV9SQU5EKTsKKyAgICAgICAgICB9 CiAJfCBSQU5EICcoJyAnKScKLQkgIHsgJCQ9IG5ldyBJdGVtX2Z1bmNfcmFuZCgpOyBMZXgtPnVu Y2FjaGVhYmxlKFVOQ0FDSEVBQkxFX1JBTkQpO30KKwkgIHsKKyAgICAgICAgICAgICQkPSBuZXcg SXRlbV9mdW5jX3JhbmQoKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAg ICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgICAgTGV4LT51bmNhY2hlYWJsZShVTkNBQ0hF QUJMRV9SQU5EKTsKKyAgICAgICAgICB9CiAJfCBSRVBMQUNFICcoJyBleHByICcsJyBleHByICcs JyBleHByICcpJwotCSAgeyAkJD0gbmV3IEl0ZW1fZnVuY19yZXBsYWNlKCQzLCQ1LCQ3KTsgfQor CSAgeworICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX2Z1bmNfcmVwbGFjZSgkMywkNSwkNyk7Cisg ICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsK KyAgICAgICAgICB9CiAJfCBSSUdIVCAnKCcgZXhwciAnLCcgZXhwciAnKScKLQkgIHsgJCQ9IG5l dyBJdGVtX2Z1bmNfcmlnaHQoJDMsJDUpOyB9CisJICB7CisgICAgICAgICAgICAkJD0gbmV3IEl0 ZW1fZnVuY19yaWdodCgkMywkNSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAg ICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAJfCBST1VORCAnKCcgZXhwciAn KScKLQkgIHsgJCQ9IG5ldyBJdGVtX2Z1bmNfcm91bmQoJDMsIG5ldyBJdGVtX2ludCgoY2hhciop IjAiLDAsMSksMCk7IH0KLQl8IFJPVU5EICcoJyBleHByICcsJyBleHByICcpJyB7ICQkPSBuZXcg SXRlbV9mdW5jX3JvdW5kKCQzLCQ1LDApOyB9CisJICB7CisgICAgICAgICAgICBJdGVtICppdGVt PSBuZXcgSXRlbV9pbnQoKGNoYXIqKSIwIiwwLDEpOworICAgICAgICAgICAgaWYgKGl0ZW0gPT0g TlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICAgICQkPSBuZXcg SXRlbV9mdW5jX3JvdW5kKCQzLCBpdGVtLCAwKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxM KQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KKwl8IFJPVU5EICco JyBleHByICcsJyBleHByICcpJworICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgSXRl bV9mdW5jX3JvdW5kKCQzLCQ1LDApOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAg ICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogCXwgUk9XX0NPVU5UX1NZTSAn KCcgJyknCiAJICB7CiAJICAgICQkPSBuZXcgSXRlbV9mdW5jX3Jvd19jb3VudCgpOworICAgICAg ICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAJICAg IExleC0+c2FmZV90b19jYWNoZV9xdWVyeT0gMDsKIAkgIH0KIAl8IFNVQkRBVEVfU1lNICcoJyBl eHByICcsJyBleHByICcpJwotCSAgeyAkJD0gbmV3IEl0ZW1fZGF0ZV9hZGRfaW50ZXJ2YWwoJDMs ICQ1LCBJTlRFUlZBTF9EQVksIDEpO30KKwkgIHsKKyAgICAgICAgICAgICQkPSBuZXcgSXRlbV9k YXRlX2FkZF9pbnRlcnZhbCgkMywgJDUsIElOVEVSVkFMX0RBWSwgMSk7CisgICAgICAgICAgICBp ZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9 CiAJfCBTVUJEQVRFX1NZTSAnKCcgZXhwciAnLCcgSU5URVJWQUxfU1lNIGV4cHIgaW50ZXJ2YWwg JyknCi0JICB7ICQkPSBuZXcgSXRlbV9kYXRlX2FkZF9pbnRlcnZhbCgkMywgJDYsICQ3LCAxKTsg fQorCSAgeworICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX2RhdGVfYWRkX2ludGVydmFsKCQzLCAk NiwgJDcsIDEpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1Z U1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogCXwgU0VDT05EX1NZTSAnKCcgZXhwciAnKScKLQkg IHsgJCQ9IG5ldyBJdGVtX2Z1bmNfc2Vjb25kKCQzKTsgfQorCSAgeworICAgICAgICAgICAgJCQ9 IG5ldyBJdGVtX2Z1bmNfc2Vjb25kKCQzKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQor ICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KIAl8IFNVQlNUUklORyAn KCcgZXhwciAnLCcgZXhwciAnLCcgZXhwciAnKScKLQkgIHsgJCQ9IG5ldyBJdGVtX2Z1bmNfc3Vi c3RyKCQzLCQ1LCQ3KTsgfQorCSAgeworICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX2Z1bmNfc3Vi c3RyKCQzLCQ1LCQ3KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAg ICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KIAl8IFNVQlNUUklORyAnKCcgZXhwciAnLCcg ZXhwciAnKScKLQkgIHsgJCQ9IG5ldyBJdGVtX2Z1bmNfc3Vic3RyKCQzLCQ1KTsgfQorCSAgewor ICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX2Z1bmNfc3Vic3RyKCQzLCQ1KTsKKyAgICAgICAgICAg IGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAg IH0KIAl8IFNVQlNUUklORyAnKCcgZXhwciBGUk9NIGV4cHIgRk9SX1NZTSBleHByICcpJwotCSAg eyAkJD0gbmV3IEl0ZW1fZnVuY19zdWJzdHIoJDMsJDUsJDcpOyB9CisJICB7CisgICAgICAgICAg ICAkJD0gbmV3IEl0ZW1fZnVuY19zdWJzdHIoJDMsJDUsJDcpOworICAgICAgICAgICAgaWYgKCQk ID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogCXwg U1VCU1RSSU5HICcoJyBleHByIEZST00gZXhwciAnKScKLQkgIHsgJCQ9IG5ldyBJdGVtX2Z1bmNf c3Vic3RyKCQzLCQ1KTsgfQorCSAgeworICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX2Z1bmNfc3Vi c3RyKCQzLCQ1KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBN WVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KIAl8IFNVQlNUUklOR19JTkRFWCAnKCcgZXhwciAn LCcgZXhwciAnLCcgZXhwciAnKScKLQkgIHsgJCQ9IG5ldyBJdGVtX2Z1bmNfc3Vic3RyX2luZGV4 KCQzLCQ1LCQ3KTsgfQorCSAgeworICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX2Z1bmNfc3Vic3Ry X2luZGV4KCQzLCQ1LCQ3KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAg ICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KIAl8IFNZU0RBVEUgb3B0aW9uYWxfYnJh Y2VzCiAgICAgICAgICAgewogICAgICAgICAgICAgaWYgKGdsb2JhbF9zeXN0ZW1fdmFyaWFibGVz LnN5c2RhdGVfaXNfbm93ID09IDApCiAgICAgICAgICAgICAgICQkPSBuZXcgSXRlbV9mdW5jX3N5 c2RhdGVfbG9jYWwoKTsKICAgICAgICAgICAgIGVsc2UgJCQ9IG5ldyBJdGVtX2Z1bmNfbm93X2xv Y2FsKCk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxf WVlBQk9SVDsKICAgICAgICAgICAgIExleC0+c2FmZV90b19jYWNoZV9xdWVyeT0wOwogICAgICAg ICAgIH0KIAl8IFNZU0RBVEUgJygnIGV4cHIgJyknCkBAIC01MTEzLDM2ICs1NzMwLDk0IEBAIHNp bXBsZV9leHByOgogICAgICAgICAgICAgaWYgKGdsb2JhbF9zeXN0ZW1fdmFyaWFibGVzLnN5c2Rh dGVfaXNfbm93ID09IDApCiAgICAgICAgICAgICAgICQkPSBuZXcgSXRlbV9mdW5jX3N5c2RhdGVf bG9jYWwoJDMpOwogICAgICAgICAgICAgZWxzZSAkJD0gbmV3IEl0ZW1fZnVuY19ub3dfbG9jYWwo JDMpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZ QUJPUlQ7CiAgICAgICAgICAgICBMZXgtPnNhZmVfdG9fY2FjaGVfcXVlcnk9MDsKICAgICAgICAg ICB9CiAJfCBUSU1FX1NZTSAnKCcgZXhwciAnKScKLQkgIHsgJCQ9IG5ldyBJdGVtX3RpbWVfdHlw ZWNhc3QoJDMpOyB9CisJICB7CisgICAgICAgICAgICAkJD0gbmV3IEl0ZW1fdGltZV90eXBlY2Fz dCgkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxf WVlBQk9SVDsKKyAgICAgICAgICB9CiAJfCBUSU1FU1RBTVAgJygnIGV4cHIgJyknCi0JICB7ICQk PSBuZXcgSXRlbV9kYXRldGltZV90eXBlY2FzdCgkMyk7IH0KKwkgIHsKKyAgICAgICAgICAgICQk PSBuZXcgSXRlbV9kYXRldGltZV90eXBlY2FzdCgkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0g TlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAJfCBUSU1F U1RBTVAgJygnIGV4cHIgJywnIGV4cHIgJyknCi0JICB7ICQkPSBuZXcgSXRlbV9mdW5jX2FkZF90 aW1lKCQzLCAkNSwgMSwgMCk7IH0KKwkgIHsKKyAgICAgICAgICAgICQkPSBuZXcgSXRlbV9mdW5j X2FkZF90aW1lKCQzLCAkNSwgMSwgMCk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAg ICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAJfCBUSU1FU1RBTVBfQURE ICcoJyBpbnRlcnZhbF90aW1lX3N0YW1wICcsJyBleHByICcsJyBleHByICcpJwotCSAgeyAkJD0g bmV3IEl0ZW1fZGF0ZV9hZGRfaW50ZXJ2YWwoJDcsJDUsJDMsMCk7IH0KKwkgIHsKKyAgICAgICAg ICAgICQkPSBuZXcgSXRlbV9kYXRlX2FkZF9pbnRlcnZhbCgkNywkNSwkMywwKTsKKyAgICAgICAg ICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAg ICAgIH0KIAl8IFRJTUVTVEFNUF9ESUZGICcoJyBpbnRlcnZhbF90aW1lX3N0YW1wICcsJyBleHBy ICcsJyBleHByICcpJwotCSAgeyAkJD0gbmV3IEl0ZW1fZnVuY190aW1lc3RhbXBfZGlmZigkNSwk NywkMyk7IH0KKwkgIHsKKyAgICAgICAgICAgICQkPSBuZXcgSXRlbV9mdW5jX3RpbWVzdGFtcF9k aWZmKCQ1LCQ3LCQzKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAg ICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KIAl8IFRSSU0gJygnIGV4cHIgJyknCi0JICB7 ICQkPSBuZXcgSXRlbV9mdW5jX3RyaW0oJDMpOyB9CisJICB7CisgICAgICAgICAgICAkJD0gbmV3 IEl0ZW1fZnVuY190cmltKCQzKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAg ICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KIAl8IFRSSU0gJygnIExFQURJTkcg ZXhwciBGUk9NIGV4cHIgJyknCi0JICB7ICQkPSBuZXcgSXRlbV9mdW5jX2x0cmltKCQ2LCQ0KTsg fQorCSAgeworICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX2Z1bmNfbHRyaW0oJDYsJDQpOworICAg ICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7Cisg ICAgICAgICAgfQogCXwgVFJJTSAnKCcgVFJBSUxJTkcgZXhwciBGUk9NIGV4cHIgJyknCi0JICB7 ICQkPSBuZXcgSXRlbV9mdW5jX3J0cmltKCQ2LCQ0KTsgfQorCSAgeworICAgICAgICAgICAgJCQ9 IG5ldyBJdGVtX2Z1bmNfcnRyaW0oJDYsJDQpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwp CisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogCXwgVFJJTSAnKCcg Qk9USCBleHByIEZST00gZXhwciAnKScKLQkgIHsgJCQ9IG5ldyBJdGVtX2Z1bmNfdHJpbSgkNiwk NCk7IH0KKwkgIHsKKyAgICAgICAgICAgICQkPSBuZXcgSXRlbV9mdW5jX3RyaW0oJDYsJDQpOwor ICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7 CisgICAgICAgICAgfQogCXwgVFJJTSAnKCcgTEVBRElORyBGUk9NIGV4cHIgJyknCi0JIHsgJCQ9 IG5ldyBJdGVtX2Z1bmNfbHRyaW0oJDUpOyB9CisJICB7CisgICAgICAgICAgICAkJD0gbmV3IEl0 ZW1fZnVuY19sdHJpbSgkNSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAg ICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAJfCBUUklNICcoJyBUUkFJTElORyBG Uk9NIGV4cHIgJyknCi0JICB7ICQkPSBuZXcgSXRlbV9mdW5jX3J0cmltKCQ1KTsgfQorCSAgewor ICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX2Z1bmNfcnRyaW0oJDUpOworICAgICAgICAgICAgaWYg KCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQog CXwgVFJJTSAnKCcgQk9USCBGUk9NIGV4cHIgJyknCi0JICB7ICQkPSBuZXcgSXRlbV9mdW5jX3Ry aW0oJDUpOyB9CisJICB7CisgICAgICAgICAgICAkJD0gbmV3IEl0ZW1fZnVuY190cmltKCQ1KTsK KyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JU OworICAgICAgICAgIH0KIAl8IFRSSU0gJygnIGV4cHIgRlJPTSBleHByICcpJwotCSAgeyAkJD0g bmV3IEl0ZW1fZnVuY190cmltKCQ1LCQzKTsgfQorCSAgeworICAgICAgICAgICAgJCQ9IG5ldyBJ dGVtX2Z1bmNfdHJpbSgkNSwkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAg ICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAJfCBUUlVOQ0FURV9TWU0gJygn IGV4cHIgJywnIGV4cHIgJyknCi0JICB7ICQkPSBuZXcgSXRlbV9mdW5jX3JvdW5kKCQzLCQ1LDEp OyB9CisJICB7CisgICAgICAgICAgICAkJD0gbmV3IEl0ZW1fZnVuY19yb3VuZCgkMywkNSwxKTsK KyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JU OworICAgICAgICAgIH0KIAl8IGlkZW50ICcuJyBpZGVudCAnKCcgb3B0X2V4cHJfbGlzdCAnKScK IAkgIHsKIAkgICAgTEVYICpsZXg9IExleDsKQEAgLTUxNTUsNiArNTgzMCw4IEBAIHNpbXBsZV9l eHByOgogCSAgICAgICQkPSBuZXcgSXRlbV9mdW5jX3NwKExleC0+Y3VycmVudF9jb250ZXh0KCks IG5hbWUsICokNSk7CiAJICAgIGVsc2UKIAkgICAgICAkJD0gbmV3IEl0ZW1fZnVuY19zcChMZXgt PmN1cnJlbnRfY29udGV4dCgpLCBuYW1lKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQor ICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogCSAgICBsZXgtPnNhZmVfdG9fY2FjaGVfcXVl cnk9MDsKIAkgIH0KIAl8IElERU5UX3N5cyAnKCcgCkBAIC01Mjk1LDQ3ICs1OTcyLDExMCBAQCBz aW1wbGVfZXhwcjoKICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICQkPSBuZXcg SXRlbV9mdW5jX3NwKExleC0+Y3VycmVudF9jb250ZXh0KCksIG5hbWUpOwogICAgICAgICAgICAg fSAgICAgICAgICAKLSAgICAgICAgICBsZXgtPnNhZmVfdG9fY2FjaGVfcXVlcnk9MDsKKyAgICAg ICAgICAgIGxleC0+c2FmZV90b19jYWNoZV9xdWVyeT0wOworCisgICAgICAgICAgICBpZiAoJCQg PT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAgICB9CiAJfCBV TklRVUVfVVNFUlMgJygnIHRleHRfbGl0ZXJhbCAnLCcgTlVNICcsJyBOVU0gJywnIGV4cHJfbGlz dCAnKScKIAkgIHsKICAgICAgICAgICAgICQkPSBuZXcgSXRlbV9mdW5jX3VuaXF1ZV91c2Vycygk MyxhdG9pKCQ1LnN0ciksYXRvaSgkNy5zdHIpLCAqICQ5KTsKKyAgICAgICAgICAgIGlmICgkJCA9 PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogCSAgfQogCXwgVU5JWF9USU1F U1RBTVAgJygnICcpJwogCSAgewogCSAgICAkJD0gbmV3IEl0ZW1fZnVuY191bml4X3RpbWVzdGFt cCgpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZ QUJPUlQ7CiAJICAgIExleC0+c2FmZV90b19jYWNoZV9xdWVyeT0wOwogCSAgfQogCXwgVU5JWF9U SU1FU1RBTVAgJygnIGV4cHIgJyknCi0JICB7ICQkPSBuZXcgSXRlbV9mdW5jX3VuaXhfdGltZXN0 YW1wKCQzKTsgfQorCSAgeworICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX2Z1bmNfdW5peF90aW1l c3RhbXAoJDMpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1Z U1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogCXwgVVNFUiAnKCcgJyknCi0JICB7ICQkPSBuZXcg SXRlbV9mdW5jX3VzZXIoKTsgTGV4LT5zYWZlX3RvX2NhY2hlX3F1ZXJ5PTA7IH0KKwkgIHsKKyAg ICAgICAgICAgICQkPSBuZXcgSXRlbV9mdW5jX3VzZXIoKTsKKyAgICAgICAgICAgIGlmICgkJCA9 PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgICAgTGV4LT5z YWZlX3RvX2NhY2hlX3F1ZXJ5PTA7CisgICAgICAgICAgfQogCXwgVVRDX0RBVEVfU1lNIG9wdGlv bmFsX2JyYWNlcwotCSAgeyAkJD0gbmV3IEl0ZW1fZnVuY19jdXJkYXRlX3V0YygpOyBMZXgtPnNh ZmVfdG9fY2FjaGVfcXVlcnk9MDt9CisJICB7CisgICAgICAgICAgICAkJD0gbmV3IEl0ZW1fZnVu Y19jdXJkYXRlX3V0YygpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAg ICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgICBMZXgtPnNhZmVfdG9fY2FjaGVfcXVlcnk9 MDsKKyAgICAgICAgICB9CiAJfCBVVENfVElNRV9TWU0gb3B0aW9uYWxfYnJhY2VzCi0JICB7ICQk PSBuZXcgSXRlbV9mdW5jX2N1cnRpbWVfdXRjKCk7IExleC0+c2FmZV90b19jYWNoZV9xdWVyeT0w O30KKwkgIHsKKyAgICAgICAgICAgICQkPSBuZXcgSXRlbV9mdW5jX2N1cnRpbWVfdXRjKCk7Cisg ICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsK KyAgICAgICAgICAgIExleC0+c2FmZV90b19jYWNoZV9xdWVyeT0wOworICAgICAgICAgIH0KIAl8 IFVUQ19USU1FU1RBTVBfU1lNIG9wdGlvbmFsX2JyYWNlcwotCSAgeyAkJD0gbmV3IEl0ZW1fZnVu Y19ub3dfdXRjKCk7IExleC0+c2FmZV90b19jYWNoZV9xdWVyeT0wO30KKwkgIHsKKyAgICAgICAg ICAgICQkPSBuZXcgSXRlbV9mdW5jX25vd191dGMoKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBO VUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgICAgTGV4LT5zYWZl X3RvX2NhY2hlX3F1ZXJ5PTA7CisgICAgICAgICAgfQogCXwgV0VFS19TWU0gJygnIGV4cHIgJykn CiAJICB7Ci0gICAgICAgICAgICAkJD0gbmV3IEl0ZW1fZnVuY193ZWVrKCQzLG5ldyBJdGVtX2lu dCgoY2hhciopICIwIiwKLQkJCQkgICBZWVRIRC0+dmFyaWFibGVzLmRlZmF1bHRfd2Vla19mb3Jt YXQsMSkpOworICAgICAgICAgICAgSXRlbSAqaXRlbT0gbmV3IEl0ZW1faW50KChjaGFyKikgIjAi LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlZVEhELT52YXJpYWJsZXMu ZGVmYXVsdF93ZWVrX2Zvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAxKTsKKyAgICAgICAgICAgIGlmIChpdGVtID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FM X1lZQUJPUlQ7CisgICAgICAgICAgICAkJD0gbmV3IEl0ZW1fZnVuY193ZWVrKCQzLCBpdGVtKTsK KyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JU OwogICAgICAgICAgIH0KIAl8IFdFRUtfU1lNICcoJyBleHByICcsJyBleHByICcpJwotCSAgeyAk JD0gbmV3IEl0ZW1fZnVuY193ZWVrKCQzLCQ1KTsgfQorCSAgeworICAgICAgICAgICAgJCQ9IG5l dyBJdGVtX2Z1bmNfd2VlaygkMywkNSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAg ICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAJfCBZRUFSX1NZTSAnKCcg ZXhwciAnKScKLQkgIHsgJCQ9IG5ldyBJdGVtX2Z1bmNfeWVhcigkMyk7IH0KKwkgIHsKKyAgICAg ICAgICAgICQkPSBuZXcgSXRlbV9mdW5jX3llYXIoJDMpOworICAgICAgICAgICAgaWYgKCQkID09 IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogCXwgWUVB UldFRUsgJygnIGV4cHIgJyknCi0JICB7ICQkPSBuZXcgSXRlbV9mdW5jX3llYXJ3ZWVrKCQzLG5l dyBJdGVtX2ludCgoY2hhciopICIwIiwwLDEpKTsgfQorCSAgeworICAgICAgICAgICAgSXRlbSAq aXRlbT0gbmV3IEl0ZW1faW50KChjaGFyKikgIjAiLDAsMSk7CisgICAgICAgICAgICBpZiAoaXRl bSA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgICAgJCQ9 IG5ldyBJdGVtX2Z1bmNfeWVhcndlZWsoJDMsIGl0ZW0pOworICAgICAgICAgICAgaWYgKCQkID09 IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogCXwgWUVB UldFRUsgJygnIGV4cHIgJywnIGV4cHIgJyknCi0JICB7ICQkPSBuZXcgSXRlbV9mdW5jX3llYXJ3 ZWVrKCQzLCAkNSk7IH0KKwkgIHsKKyAgICAgICAgICAgICQkPSBuZXcgSXRlbV9mdW5jX3llYXJ3 ZWVrKCQzLCAkNSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAg TVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAJfCBCRU5DSE1BUktfU1lNICcoJyB1bG9uZ19u dW0gJywnIGV4cHIgJyknCiAJICB7CiAJICAgICQkPW5ldyBJdGVtX2Z1bmNfYmVuY2htYXJrKCQz LCQ1KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9Z WUFCT1JUOwogCSAgICBMZXgtPnVuY2FjaGVhYmxlKFVOQ0FDSEVBQkxFX1NJREVFRkZFQ1QpOwog CSAgfQogCXwgRVhUUkFDVF9TWU0gJygnIGludGVydmFsIEZST00gZXhwciAnKScKLQl7ICQkPW5l dyBJdGVtX2V4dHJhY3QoICQzLCAkNSk7IH07CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9 bmV3IEl0ZW1fZXh0cmFjdCggJDMsICQ1KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQor ICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KKyAgICAgICAgOwogCiBn ZW9tZXRyeV9mdW5jdGlvbjoKIAkgIENPTlRBSU5TX1NZTSAnKCcgZXhwciAnLCcgZXhwciAnKScK QEAgLTU0MTEsNyArNjE1MSwxMiBAQCB1ZGZfZXhwcl9saXN0OgogCTsKIAogdWRmX2V4cHJfbGlz dDI6Ci0JeyBTZWxlY3QtPmV4cHJfbGlzdC5wdXNoX2Zyb250KG5ldyBMaXN0PEl0ZW0+KTsgfQor CSAgeworICAgICAgICAgICAgTGlzdDxJdGVtPiAqbGlzdD0gbmV3IExpc3Q8SXRlbT47CisgICAg ICAgICAgICBpZiAobGlzdCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwor ICAgICAgICAgICAgU2VsZWN0LT5leHByX2xpc3QucHVzaF9mcm9udChsaXN0KTsKKyAgICAgICAg ICB9CiAJdWRmX2V4cHJfbGlzdDMKIAl7ICQkPSBTZWxlY3QtPmV4cHJfbGlzdC5wb3AoKTsgfQog CTsKQEAgLTU0NTksNTMgKzYyMDQsMTMyIEBAIHVkZl9leHByOgogCTsKIAogc3VtX2V4cHI6Ci0J QVZHX1NZTSAnKCcgaW5fc3VtX2V4cHIgJyknCi0JICB7ICQkPW5ldyBJdGVtX3N1bV9hdmcoJDMp OyB9CisJICBBVkdfU1lNICcoJyBpbl9zdW1fZXhwciAnKScKKwkgIHsKKyAgICAgICAgICAgICQk PW5ldyBJdGVtX3N1bV9hdmcoJDMpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAg ICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogCXwgQVZHX1NZTSAnKCcgRElT VElOQ1QgaW5fc3VtX2V4cHIgJyknCi0JICB7ICQkPW5ldyBJdGVtX3N1bV9hdmdfZGlzdGluY3Qo JDQpOyB9CisJICB7CisgICAgICAgICAgICAkJD1uZXcgSXRlbV9zdW1fYXZnX2Rpc3RpbmN0KCQ0 KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFC T1JUOworICAgICAgICAgIH0KIAl8IEJJVF9BTkQgICcoJyBpbl9zdW1fZXhwciAnKScKLQkgIHsg JCQ9bmV3IEl0ZW1fc3VtX2FuZCgkMyk7IH0KKwkgIHsKKyAgICAgICAgICAgICQkPW5ldyBJdGVt X3N1bV9hbmQoJDMpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAg IE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogCXwgQklUX09SICAnKCcgaW5fc3VtX2V4cHIg JyknCi0JICB7ICQkPW5ldyBJdGVtX3N1bV9vcigkMyk7IH0KKwkgIHsKKyAgICAgICAgICAgICQk PW5ldyBJdGVtX3N1bV9vcigkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAg ICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAJfCBCSVRfWE9SICAnKCcgaW5f c3VtX2V4cHIgJyknCi0JICB7ICQkPW5ldyBJdGVtX3N1bV94b3IoJDMpOyB9CisJICB7CisgICAg ICAgICAgICAkJD1uZXcgSXRlbV9zdW1feG9yKCQzKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBO VUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KIAl8IENPVU5U X1NZTSAnKCcgb3B0X2FsbCAnKicgJyknCi0JICB7ICQkPW5ldyBJdGVtX3N1bV9jb3VudChuZXcg SXRlbV9pbnQoKGludDMyKSAwTCwxKSk7IH0KKwkgIHsKKyAgICAgICAgICAgIEl0ZW0gKml0ZW09 IG5ldyBJdGVtX2ludCgoaW50MzIpIDBMLDEpOworICAgICAgICAgICAgaWYgKGl0ZW0gPT0gTlVM TCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICAgICQkPW5ldyBJdGVt X3N1bV9jb3VudChuZXcgSXRlbV9pbnQoKGludDMyKSAwTCwxKSk7CisgICAgICAgICAgICBpZiAo JCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAJ fCBDT1VOVF9TWU0gJygnIGluX3N1bV9leHByICcpJwotCSAgeyAkJD1uZXcgSXRlbV9zdW1fY291 bnQoJDMpOyB9CisJICB7CisgICAgICAgICAgICAkJD1uZXcgSXRlbV9zdW1fY291bnQoJDMpOwor ICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7 CisgICAgICAgICAgfQogCXwgQ09VTlRfU1lNICcoJyBESVNUSU5DVAogCSAgeyBTZWxlY3QtPmlu X3N1bV9leHByKys7IH0KIAkgICBleHByX2xpc3QKIAkgIHsgU2VsZWN0LT5pbl9zdW1fZXhwci0t OyB9CiAJICAnKScKLQkgIHsgJCQ9bmV3IEl0ZW1fc3VtX2NvdW50X2Rpc3RpbmN0KCogJDUpOyB9 CisJICB7CisgICAgICAgICAgICAkJD1uZXcgSXRlbV9zdW1fY291bnRfZGlzdGluY3QoKiAkNSk7 CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9S VDsKKyAgICAgICAgICB9CiAJfCBHUk9VUF9VTklRVUVfVVNFUlMgJygnIHRleHRfbGl0ZXJhbCAn LCcgTlVNICcsJyBOVU0gJywnIGluX3N1bV9leHByICcpJwotCSAgeyAkJD0gbmV3IEl0ZW1fc3Vt X3VuaXF1ZV91c2VycygkMyxhdG9pKCQ1LnN0ciksYXRvaSgkNy5zdHIpLCQ5KTsgfQorCSAgewor ICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX3N1bV91bmlxdWVfdXNlcnMoJDMsYXRvaSgkNS5zdHIp LGF0b2koJDcuc3RyKSwkOSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAg ICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAJfCBNSU5fU1lNICcoJyBpbl9zdW1f ZXhwciAnKScKLQkgIHsgJCQ9bmV3IEl0ZW1fc3VtX21pbigkMyk7IH0KKwkgIHsKKyAgICAgICAg ICAgICQkPW5ldyBJdGVtX3N1bV9taW4oJDMpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwp CisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogLyoKICAgIEFjY29y ZGluZyB0byBBTlNJIFNRTCwgRElTVElOQ1QgaXMgYWxsb3dlZCBhbmQgaGFzCiAgICBubyBzZW5j ZSBpbnNpZGUgTUlOIGFuZCBNQVggZ3JvdXBpbmcgZnVuY3Rpb25zOyBzbyBNSU58TUFYKERJU1RJ TkNUIC4uLikKICAgIGlzIHByb2Nlc3NlZCBsaWtlIGFuIG9yZGluYXJ5IE1JTiB8IE1BWCgpCiAg Ki8KIAl8IE1JTl9TWU0gJygnIERJU1RJTkNUIGluX3N1bV9leHByICcpJwotCSAgeyAkJD1uZXcg SXRlbV9zdW1fbWluKCQ0KTsgfQorCSAgeworICAgICAgICAgICAgJCQ9bmV3IEl0ZW1fc3VtX21p bigkNCk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxf WVlBQk9SVDsKKyAgICAgICAgICB9CiAJfCBNQVhfU1lNICcoJyBpbl9zdW1fZXhwciAnKScKLQkg IHsgJCQ9bmV3IEl0ZW1fc3VtX21heCgkMyk7IH0KKwkgIHsKKyAgICAgICAgICAgICQkPW5ldyBJ dGVtX3N1bV9tYXgoJDMpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAg ICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogCXwgTUFYX1NZTSAnKCcgRElTVElOQ1Qg aW5fc3VtX2V4cHIgJyknCi0JICB7ICQkPW5ldyBJdGVtX3N1bV9tYXgoJDQpOyB9CisJICB7Cisg ICAgICAgICAgICAkJD1uZXcgSXRlbV9zdW1fbWF4KCQ0KTsKKyAgICAgICAgICAgIGlmICgkJCA9 PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KIAl8IFNU RF9TWU0gJygnIGluX3N1bV9leHByICcpJwotCSAgeyAkJD1uZXcgSXRlbV9zdW1fc3RkKCQzLCAw KTsgfQorCSAgeworICAgICAgICAgICAgJCQ9bmV3IEl0ZW1fc3VtX3N0ZCgkMywgMCk7CisgICAg ICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAg ICAgICAgICB9CiAJfCBWQVJJQU5DRV9TWU0gJygnIGluX3N1bV9leHByICcpJwotCSAgeyAkJD1u ZXcgSXRlbV9zdW1fdmFyaWFuY2UoJDMsIDApOyB9CisJICB7CisgICAgICAgICAgICAkJD1uZXcg SXRlbV9zdW1fdmFyaWFuY2UoJDMsIDApOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisg ICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogCXwgU1REREVWX1NBTVBf U1lNICcoJyBpbl9zdW1fZXhwciAnKScKLQkgIHsgJCQ9bmV3IEl0ZW1fc3VtX3N0ZCgkMywgMSk7 IH0KKwkgIHsKKyAgICAgICAgICAgICQkPW5ldyBJdGVtX3N1bV9zdGQoJDMsIDEpOworICAgICAg ICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAg ICAgICAgfQogCXwgVkFSX1NBTVBfU1lNICcoJyBpbl9zdW1fZXhwciAnKScKLQkgIHsgJCQ9bmV3 IEl0ZW1fc3VtX3ZhcmlhbmNlKCQzLCAxKTsgfQorCSAgeworICAgICAgICAgICAgJCQ9bmV3IEl0 ZW1fc3VtX3ZhcmlhbmNlKCQzLCAxKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAg ICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KIAl8IFNVTV9TWU0gJygnIGlu X3N1bV9leHByICcpJwotCSAgeyAkJD1uZXcgSXRlbV9zdW1fc3VtKCQzKTsgfQorCSAgeworICAg ICAgICAgICAgJCQ9bmV3IEl0ZW1fc3VtX3N1bSgkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0g TlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAJfCBTVU1f U1lNICcoJyBESVNUSU5DVCBpbl9zdW1fZXhwciAnKScKLQkgIHsgJCQ9bmV3IEl0ZW1fc3VtX3N1 bV9kaXN0aW5jdCgkNCk7IH0KKwkgIHsKKyAgICAgICAgICAgICQkPW5ldyBJdGVtX3N1bV9zdW1f ZGlzdGluY3QoJDQpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAg IE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogCXwgR1JPVVBfQ09OQ0FUX1NZTSAnKCcgb3B0 X2Rpc3RpbmN0CiAJICB7IFNlbGVjdC0+aW5fc3VtX2V4cHIrKzsgfQogCSAgZXhwcl9saXN0IG9w dF9nb3JkZXJfY2xhdXNlCkBAIC01NTE2LDYgKzYzNDAsOCBAQCBzdW1fZXhwcjoKIAkgICAgc2Vs LT5pbl9zdW1fZXhwci0tOwogCSAgICAkJD1uZXcgSXRlbV9mdW5jX2dyb3VwX2NvbmNhdChMZXgt PmN1cnJlbnRfY29udGV4dCgpLCAkMywgJDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWwtPmdvcmRlcl9saXN0LCAkNyk7CisgICAgICAgICAgICBpZiAoJCQg PT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKIAkgICAgJDUtPmVtcHR5KCk7 CiAJICB9OwogCkBAIC01NTM4LDEyICs2MzY0LDE2IEBAIHZhcmlhYmxlX2F1eDoKICAgICAgICAg ICBpZGVudF9vcl90ZXh0IFNFVF9WQVIgZXhwcgogICAgICAgICAgIHsKICAgICAgICAgICAgICQk PSBuZXcgSXRlbV9mdW5jX3NldF91c2VyX3ZhcigkMSwgJDMpOworICAgICAgICAgICAgaWYgKCQk ID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICBMRVgg KmxleD0gTGV4OwogICAgICAgICAgICAgbGV4LT51bmNhY2hlYWJsZShVTkNBQ0hFQUJMRV9SQU5E KTsKICAgICAgICAgICB9CiAgICAgICAgIHwgaWRlbnRfb3JfdGV4dAogICAgICAgICAgIHsKICAg ICAgICAgICAgICQkPSBuZXcgSXRlbV9mdW5jX2dldF91c2VyX3ZhcigkMSk7CisgICAgICAgICAg ICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAg ICAgIExFWCAqbGV4PSBMZXg7CiAgICAgICAgICAgICBsZXgtPnVuY2FjaGVhYmxlKFVOQ0FDSEVB QkxFX1JBTkQpOwogICAgICAgICAgIH0KQEAgLTU1NjQsMTEgKzYzOTQsMTQgQEAgb3B0X2Rpc3Rp bmN0OgogICAgIHxESVNUSU5DVCAgIHsgJCQgPSAxOyB9OwogCiBvcHRfZ2NvbmNhdF9zZXBhcmF0 b3I6Ci0gICAgLyogZW1wdHkgKi8KLSAgICAgIHsKLSAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1l bV9yb290KSBTdHJpbmcoIiwiLCAxLCAmbXlfY2hhcnNldF9sYXRpbjEpOwotICAgICAgfQotICAg IHwgU0VQQVJBVE9SX1NZTSB0ZXh0X3N0cmluZyB7ICQkID0gJDI7IH07CisgICAgICAgICAgLyog ZW1wdHkgKi8KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jv b3QpIFN0cmluZygiLCIsIDEsICZteV9jaGFyc2V0X2xhdGluMSk7CisgICAgICAgICAgICBpZiAo JCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9Cisg ICAgICAgIHwgU0VQQVJBVE9SX1NZTSB0ZXh0X3N0cmluZyB7ICQkID0gJDI7IH0KKyAgICAgICAg OwogCiAKIG9wdF9nb3JkZXJfY2xhdXNlOgpAQCAtNTU4Miw2ICs2NDE1LDggQEAgb3B0X2dvcmRl cl9jbGF1c2U6CiAgICAgICAgICAgICBzZWxlY3QtPmdvcmRlcl9saXN0PQogCSAgICAgIChTUUxf TElTVCopIHNxbF9tZW1kdXAoKGNoYXIqKSAmc2VsZWN0LT5vcmRlcl9saXN0LAogCQkJCSAgICAg c2l6ZW9mKHN0X3NxbF9saXN0KSk7CisgICAgICAgICAgICBpZiAoc2VsZWN0LT5nb3JkZXJfbGlz dCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogCSAgICBzZWxlY3QtPm9y ZGVyX2xpc3QuZW1wdHkoKTsKIAkgIH07CiAKQEAgLTU2MjIsNyArNjQ1NywxMiBAQCBvcHRfZXhw cl9saXN0OgogCTsKIAogZXhwcl9saXN0OgotCXsgU2VsZWN0LT5leHByX2xpc3QucHVzaF9mcm9u dChuZXcgTGlzdDxJdGVtPik7IH0KKwl7CisgICAgICAgICAgTGlzdDxJdGVtPiAqbGlzdD0gbmV3 IExpc3Q8SXRlbT47CisgICAgICAgICAgaWYgKGxpc3QgPT0gTlVMTCkKKyAgICAgICAgICAgIE1Z U1FMX1lZQUJPUlQ7CisgICAgICAgICAgU2VsZWN0LT5leHByX2xpc3QucHVzaF9mcm9udChsaXN0 KTsKKyAgICAgICAgfQogCWV4cHJfbGlzdDIKIAl7ICQkPSBTZWxlY3QtPmV4cHJfbGlzdC5wb3Ao KTsgfTsKIApAQCAtNTYzNSw3ICs2NDc1LDEyIEBAIGlkZW50X2xpc3RfYXJnOgogICAgICAgICB8 ICcoJyBpZGVudF9saXN0ICcpJyAgeyAkJD0gJDI7IH07CiAKIGlkZW50X2xpc3Q6Ci0gICAgICAg IHsgU2VsZWN0LT5leHByX2xpc3QucHVzaF9mcm9udChuZXcgTGlzdDxJdGVtPik7IH0KKyAgICAg ICAgeworICAgICAgICAgIExpc3Q8SXRlbT4gKmxpc3Q9IG5ldyBMaXN0PEl0ZW0+OworICAgICAg ICAgIGlmIChsaXN0ID09IE5VTEwpCisgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAg ICAgIFNlbGVjdC0+ZXhwcl9saXN0LnB1c2hfZnJvbnQobmV3IExpc3Q8SXRlbT4pOworICAgICAg ICB9CiAgICAgICAgIGlkZW50X2xpc3QyCiAgICAgICAgIHsgJCQ9IFNlbGVjdC0+ZXhwcl9saXN0 LnBvcCgpOyB9OwogCkBAIC01NjU1LDYgKzY1MDAsOCBAQCB3aGVuX2xpc3Q6CiAgICAgICAgICAg V0hFTl9TWU0gZXhwciBUSEVOX1NZTSBleHByCiAgICAgICAgICAgewogICAgICAgICAgICAgJCQ9 IG5ldyBMaXN0PEl0ZW0+OworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAg ICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICAkJC0+cHVzaF9iYWNrKCQyKTsKICAgICAg ICAgICAgICQkLT5wdXNoX2JhY2soJDQpOwogICAgICAgICAgIH0KQEAgLTYwNjEsMzIgKzY5MDgs NTMgQEAga2V5X2xpc3Rfb3JfZW1wdHk6CiAKIGtleV91c2FnZV9saXN0MjoKIAlrZXlfdXNhZ2Vf bGlzdDIgJywnIGlkZW50Ci0gICAgICAgIHsgU2VsZWN0LT4KLQkgICAgaW50ZXJ2YWxfbGlzdC5w dXNoX2JhY2sobmV3IChZWVRIRC0+bWVtX3Jvb3QpIFN0cmluZygoY29uc3QgY2hhciopICQzLnN0 ciwgJDMubGVuZ3RoLAotCQkJCSAgICBzeXN0ZW1fY2hhcnNldF9pbmZvKSk7IH0KKyAgICAgICAg eworICAgICAgICAgIFN0cmluZyAqcz0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIFN0cmluZygoY29u c3QgY2hhciopICQzLnN0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICQzLmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN5c3RlbV9jaGFyc2V0X2luZm8pOworICAgICAgICAgIGlmIChz ID09IE5VTEwpCisgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIFNlbGVjdC0+ aW50ZXJ2YWxfbGlzdC5wdXNoX2JhY2socyk7CisgICAgICAgIH0KIAl8IGlkZW50Ci0gICAgICAg IHsgU2VsZWN0LT4KLQkgICAgaW50ZXJ2YWxfbGlzdC5wdXNoX2JhY2sobmV3IChZWVRIRC0+bWVt X3Jvb3QpIFN0cmluZygoY29uc3QgY2hhciopICQxLnN0ciwgJDEubGVuZ3RoLAotCQkJCSAgICBz eXN0ZW1fY2hhcnNldF9pbmZvKSk7IH0KKyAgICAgICAgeworICAgICAgICAgIFN0cmluZyAqcz0g bmV3IChZWVRIRC0+bWVtX3Jvb3QpIFN0cmluZygoY29uc3QgY2hhciopICQxLnN0ciwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQxLmxlbmd0aCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5c3Rl bV9jaGFyc2V0X2luZm8pOworICAgICAgICAgIGlmIChzID09IE5VTEwpCisgICAgICAgICAgICBN WVNRTF9ZWUFCT1JUOworICAgICAgICAgIFNlbGVjdC0+aW50ZXJ2YWxfbGlzdC5wdXNoX2JhY2so cyk7CisgICAgICAgIH0KIAl8IFBSSU1BUllfU1lNCi0gICAgICAgIHsgU2VsZWN0LT4KLQkgICAg aW50ZXJ2YWxfbGlzdC5wdXNoX2JhY2sobmV3IChZWVRIRC0+bWVtX3Jvb3QpIFN0cmluZygiUFJJ TUFSWSIsIDcsCi0JCQkJICAgIHN5c3RlbV9jaGFyc2V0X2luZm8pKTsgfTsKKyAgICAgICAgewor ICAgICAgICAgIFN0cmluZyAqcz0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIFN0cmluZygiUFJJTUFS WSIsIDcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN5c3RlbV9jaGFyc2V0X2luZm8pOworICAgICAgICAgIGlmIChzID09IE5VTEwpCisgICAgICAg ICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIFNlbGVjdC0+aW50ZXJ2YWxfbGlzdC5wdXNo X2JhY2socyk7CisgICAgICAgIH0KKyAgICAgICAgOwogCiB1c2luZ19saXN0OgogCWlkZW50CiAJ ICB7CiAgICAgICAgICAgICBpZiAoISgkJD0gbmV3IExpc3Q8U3RyaW5nPikpCiAJICAgICAgTVlT UUxfWVlBQk9SVDsKLSAgICAgICAgICAgICQkLT5wdXNoX2JhY2sobmV3IChZWVRIRC0+bWVtX3Jv b3QpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcoKGNvbnN0IGNoYXIgKikg JDEuc3RyLCAkMS5sZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN5c3RlbV9jaGFyc2V0X2luZm8pKTsKKyAgICAgICAgICAgIFN0cmluZyAqcz0gbmV3IChZWVRI RC0+bWVtX3Jvb3QpIFN0cmluZygoY29uc3QgY2hhciAqKSAkMS5zdHIsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJDEubGVuZ3RoLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5c3RlbV9jaGFy c2V0X2luZm8pOworICAgICAgICAgICAgaWYgKHMgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlT UUxfWVlBQk9SVDsKKyAgICAgICAgICAgICQkLT5wdXNoX2JhY2socyk7CiAJICB9CiAJfCB1c2lu Z19saXN0ICcsJyBpZGVudAogCSAgewotICAgICAgICAgICAgJDEtPnB1c2hfYmFjayhuZXcgKFlZ VEhELT5tZW1fcm9vdCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZygoY29u c3QgY2hhciAqKSAkMy5zdHIsICQzLmxlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3lzdGVtX2NoYXJzZXRfaW5mbykpOworICAgICAgICAgICAgU3RyaW5nICpz PSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgU3RyaW5nKChjb25zdCBjaGFyICopICQzLnN0ciwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkMy5sZW5n dGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3lzdGVtX2NoYXJzZXRfaW5mbyk7CisgICAgICAgICAgICBpZiAocyA9PSBOVUxMKQorICAgICAg ICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgICAgJDEtPnB1c2hfYmFjayhzKTsKICAg ICAgICAgICAgICQkPSAkMTsKIAkgIH07CiAKQEAgLTYxNTEsNyArNzAxOSwxMiBAQCB0YWJsZV9h bGlhczoKIG9wdF90YWJsZV9hbGlhczoKIAkvKiBlbXB0eSAqLwkJeyAkJD0wOyB9CiAJfCB0YWJs ZV9hbGlhcyBpZGVudAotCSAgeyAkJD0gKExFWF9TVFJJTkcqKSBzcWxfbWVtZHVwKCYkMixzaXpl b2YoTEVYX1NUUklORykpOyB9OworCSAgeworICAgICAgICAgICAgJCQ9IChMRVhfU1RSSU5HKikg c3FsX21lbWR1cCgmJDIsc2l6ZW9mKExFWF9TVFJJTkcpKTsKKyAgICAgICAgICAgIGlmICgkJCA9 PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KKyAgICAg ICAgOwogCiBvcHRfYWxsOgogCS8qIGVtcHR5ICovCkBAIC02MjAyLDYgKzcwNzUsOCBAQCBvcHRf ZXNjYXBlOgogICAgICAgICAgICAgJCQ9ICgoWVlUSEQtPnZhcmlhYmxlcy5zcWxfbW9kZSAmIE1P REVfTk9fQkFDS1NMQVNIX0VTQ0FQRVMpID8KIAkJIG5ldyBJdGVtX3N0cmluZygiIiwgMCwgJm15 X2NoYXJzZXRfbGF0aW4xKSA6CiAgICAgICAgICAgICAgICAgIG5ldyBJdGVtX3N0cmluZygiXFwi LCAxLCAmbXlfY2hhcnNldF9sYXRpbjEpKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQor ICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgIH0KICAgICAgICAgOwogCkBA IC02MzcyLDkgKzcyNDcsMjQgQEAgbGltaXRfb3B0aW9uOgogICAgICAgICB7CiAgICAgICAgICAg KChJdGVtX3BhcmFtICopICQxKS0+bGltaXRfY2xhdXNlX3BhcmFtPSBUUlVFOwogICAgICAgICB9 Ci0gICAgICAgIHwgVUxPTkdMT05HX05VTSB7ICQkPSBuZXcgSXRlbV91aW50KCQxLnN0ciwgJDEu bGVuZ3RoKTsgfQotICAgICAgICB8IExPTkdfTlVNICAgICB7ICQkPSBuZXcgSXRlbV91aW50KCQx LnN0ciwgJDEubGVuZ3RoKTsgfQotICAgICAgICB8IE5VTSAgICAgICAgICAgeyAkJD0gbmV3IEl0 ZW1fdWludCgkMS5zdHIsICQxLmxlbmd0aCk7IH0KKyAgICAgICAgfCBVTE9OR0xPTkdfTlVNCisg ICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX3VpbnQoJDEuc3RyLCAkMS5sZW5n dGgpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZ QUJPUlQ7CisgICAgICAgICAgfQorICAgICAgICB8IExPTkdfTlVNCisgICAgICAgICAgeworICAg ICAgICAgICAgJCQ9IG5ldyBJdGVtX3VpbnQoJDEuc3RyLCAkMS5sZW5ndGgpOworICAgICAgICAg ICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAg ICAgfQorICAgICAgICB8IE5VTQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgSXRl bV91aW50KCQxLnN0ciwgJDEubGVuZ3RoKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQor ICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgOwogCiBk ZWxldGVfbGltaXRfY2xhdXNlOgpAQCAtNjQyNywxMCArNzMxNywxMSBAQCBwcm9jZWR1cmVfY2xh dXNlOgogCSAgICBsZXgtPnByb2NfbGlzdC5lbGVtZW50cz0wOwogCSAgICBsZXgtPnByb2NfbGlz dC5maXJzdD0wOwogCSAgICBsZXgtPnByb2NfbGlzdC5uZXh0PSAoYnl0ZSoqKSAmbGV4LT5wcm9j X2xpc3QuZmlyc3Q7Ci0JICAgIGlmIChhZGRfcHJvY190b19saXN0KGxleC0+dGhkLCBuZXcgSXRl bV9maWVsZCgmbGV4LT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjdXJyZW50X3NlbGVjdC0+Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dCwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLE5VTEws JDIuc3RyKSkpCisgICAgICAgICAgICBJdGVtX2ZpZWxkICppdGVtPSBuZXcgSXRlbV9maWVsZCgm bGV4LT5jdXJyZW50X3NlbGVjdC0+Y29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE5VTEwsTlVMTCwkMi5zdHIpOworICAgICAgICAgICAgaWYgKGl0 ZW0gPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKwkgICAgaWYgKGFkZF9w cm9jX3RvX2xpc3QobGV4LT50aGQsIGl0ZW0pKQogCSAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAJICAg IExleC0+dW5jYWNoZWFibGUoVU5DQUNIRUFCTEVfU0lERUVGRkVDVCk7CiAJICB9CkBAIC02NDgx LDEzICs3MzcyLDIwIEBAIHNlbGVjdF92YXJfaWRlbnQ6ICAKICAgICAgICAgICAgewogICAgICAg ICAgICAgIExFWCAqbGV4PUxleDsKIAkgICAgIGlmIChsZXgtPnJlc3VsdCkgCi0JICAgICAgICgo c2VsZWN0X2R1bXB2YXIgKilsZXgtPnJlc3VsdCktPnZhcl9saXN0LnB1c2hfYmFjayggbmV3IG15 X3ZhcigkMiwwLDAsKGVudW1fZmllbGRfdHlwZXMpMCkpOworICAgICAgICAgICAgIHsKKyAgICAg ICAgICAgICAgIG15X3ZhciAqdmFyPSBuZXcgbXlfdmFyKCQyLDAsMCwoZW51bV9maWVsZF90eXBl cykwKTsKKyAgICAgICAgICAgICAgIGlmICh2YXIgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICAg TVlTUUxfWVlBQk9SVDsKKwkgICAgICAgKChzZWxlY3RfZHVtcHZhciAqKWxleC0+cmVzdWx0KS0+ dmFyX2xpc3QucHVzaF9iYWNrKHZhcik7CisgICAgICAgICAgICAgfQogCSAgICAgZWxzZQorICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAgICAgIFRoZSBwYXJz ZXIgd29uJ3QgY3JlYXRlIHNlbGVjdF9yZXN1bHQgaW5zdGFuY2Ugb25seQogCSAgICAgICAgIGlm IGl0J3MgYW4gRVhQTEFJTi4KICAgICAgICAgICAgICAgICovCiAgICAgICAgICAgICAgICBEQlVH X0FTU0VSVChsZXgtPmRlc2NyaWJlKTsKKyAgICAgICAgICAgICB9CiAJICAgfQogICAgICAgICAg ICB8IGlkZW50X29yX3RleHQKICAgICAgICAgICAgewpAQCAtNjUwMSwxMiArNzM5OSwxMiBAQCBz ZWxlY3RfdmFyX2lkZW50OiAgCiAJICAgICB9CiAJICAgICBpZiAobGV4LT5yZXN1bHQpCiAgICAg ICAgICAgICAgewotICAgICAgICAgICAgICAgbXlfdmFyICp2YXI7Ci0JICAgICAgICgoc2VsZWN0 X2R1bXB2YXIgKilsZXgtPnJlc3VsdCktPgotICAgICAgICAgICAgICAgICB2YXJfbGlzdC5wdXNo X2JhY2sodmFyPSBuZXcgbXlfdmFyKCQxLDEsdC0+b2Zmc2V0LHQtPnR5cGUpKTsKKyAgICAgICAg ICAgICAgIG15X3ZhciAqdmFyPSBuZXcgbXlfdmFyKCQxLDEsdC0+b2Zmc2V0LHQtPnR5cGUpOwor ICAgICAgICAgICAgICAgaWYgKHZhciA9PSBOVUxMKQorICAgICAgICAgICAgICAgICBNWVNRTF9Z WUFCT1JUOworCSAgICAgICAoKHNlbGVjdF9kdW1wdmFyICopbGV4LT5yZXN1bHQpLT52YXJfbGlz dC5wdXNoX2JhY2sodmFyKTsKICNpZm5kZWYgREJVR19PRkYKLQkgICAgICAgaWYgKHZhcikKLQkJ IHZhci0+c3A9IGxleC0+c3BoZWFkOworICAgICAgICAgICAgICAgdmFyLT5zcD0gbGV4LT5zcGhl YWQ7CiAjZW5kaWYKICAgICAgICAgICAgICB9CiAJICAgICBlbHNlCkBAIC02NTkxLDExICs3NDg5 LDEzIEBAIGRyb3A6CiAJfCBEUk9QIElOREVYX1NZTSBpZGVudCBPTiB0YWJsZV9pZGVudCB7fQog CSAgewogCSAgICAgTEVYICpsZXg9TGV4OworICAgICAgICAgICAgIEFsdGVyX2Ryb3AgKmFkPSBu ZXcgQWx0ZXJfZHJvcChBbHRlcl9kcm9wOjpLRVksICQzLnN0cik7CisgICAgICAgICAgICAgaWYg KGFkID09IE5VTEwpCisgICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogCSAgICAgbGV4LT5z cWxfY29tbWFuZD0gU1FMQ09NX0RST1BfSU5ERVg7CiAgICAgICAgICAgICAgbGV4LT5hbHRlcl9p bmZvLnJlc2V0KCk7CiAgICAgICAgICAgICAgbGV4LT5hbHRlcl9pbmZvLmZsYWdzPSBBTFRFUl9E Uk9QX0lOREVYOwotCSAgICAgbGV4LT5hbHRlcl9pbmZvLmRyb3BfbGlzdC5wdXNoX2JhY2sobmV3 IEFsdGVyX2Ryb3AoQWx0ZXJfZHJvcDo6S0VZLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQzLnN0cikpOworCSAgICAgbGV4 LT5hbHRlcl9pbmZvLmRyb3BfbGlzdC5wdXNoX2JhY2soYWQpOwogCSAgICAgaWYgKCFsZXgtPmN1 cnJlbnRfc2VsZWN0LT5hZGRfdGFibGVfdG9fbGlzdChsZXgtPnRoZCwgJDUsIE5VTEwsCiAJCQkJ CQkJVExfT1BUSU9OX1VQREFUSU5HKSkKIAkgICAgICBNWVNRTF9ZWUFCT1JUOwpAQCAtNjYyMCw2 ICs3NTIwLDggQEAgZHJvcDoKIAkgICAgbGV4LT5zcWxfY29tbWFuZCA9IFNRTENPTV9EUk9QX0ZV TkNUSU9OOwogCSAgICBsZXgtPmRyb3BfaWZfZXhpc3RzPSAkMzsKIAkgICAgc3BuYW1lPSBuZXcg c3BfbmFtZSgkNCwgJDYsIHRydWUpOworICAgICAgICAgICAgaWYgKHNwbmFtZSA9PSBOVUxMKQor ICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogCSAgICBzcG5hbWUtPmluaXRfcW5hbWUodGhk KTsKIAkgICAgbGV4LT5zcG5hbWU9IHNwbmFtZTsKIAkgIH0KQEAgLTY2MzksNiArNzU0MSw4IEBA IGRyb3A6CiAJICAgIGxleC0+c3FsX2NvbW1hbmQgPSBTUUxDT01fRFJPUF9GVU5DVElPTjsKIAkg ICAgbGV4LT5kcm9wX2lmX2V4aXN0cz0gJDM7CiAJICAgIHNwbmFtZT0gbmV3IHNwX25hbWUoZGIs ICQ0LCBmYWxzZSk7CisgICAgICAgICAgICBpZiAoc3BuYW1lID09IE5VTEwpCisgICAgICAgICAg ICAgIE1ZU1FMX1lZQUJPUlQ7CiAJICAgIHNwbmFtZS0+aW5pdF9xbmFtZSh0aGQpOwogCSAgICBs ZXgtPnNwbmFtZT0gc3BuYW1lOwogCSAgfQpAQCAtNjg1Myw3ICs3NzU3LDEyIEBAIHZhbHVlczoK IAogZXhwcl9vcl9kZWZhdWx0OgogCWV4cHIJICB7ICQkPSAkMTt9Ci0JfCBERUZBVUxUIHskJD0g bmV3IEl0ZW1fZGVmYXVsdF92YWx1ZShMZXgtPmN1cnJlbnRfY29udGV4dCgpKTsgfQorCXwgREVG QVVMVAorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgSXRlbV9kZWZhdWx0X3ZhbHVl KExleC0+Y3VycmVudF9jb250ZXh0KCkpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisg ICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogCTsKIAogb3B0X2luc2Vy dF91cGRhdGU6CkBAIC02OTcxLDE1ICs3ODgwLDIxIEBAIHRhYmxlX3dpbGRfbGlzdDoKIHRhYmxl X3dpbGRfb25lOgogCWlkZW50IG9wdF93aWxkIG9wdF90YWJsZV9hbGlhcwogCXsKLQkgIGlmICgh U2VsZWN0LT5hZGRfdGFibGVfdG9fbGlzdChZWVRIRCwgbmV3IFRhYmxlX2lkZW50KCQxKSwgJDMs CisgICAgICAgICAgVGFibGVfaWRlbnQgKnRpPSBuZXcgVGFibGVfaWRlbnQoJDEpOworICAgICAg ICAgIGlmICh0aSA9PSBOVUxMKQorICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKwkgIGlmICgh U2VsZWN0LT5hZGRfdGFibGVfdG9fbGlzdChZWVRIRCwgdGksICQzLAogCQkJCQkgVExfT1BUSU9O X1VQREFUSU5HIHwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRM X09QVElPTl9BTElBUywgTGV4LT5sb2NrX29wdGlvbikpCiAJICAgIE1ZU1FMX1lZQUJPUlQ7CiAg ICAgICAgIH0KIAl8IGlkZW50ICcuJyBpZGVudCBvcHRfd2lsZCBvcHRfdGFibGVfYWxpYXMKIAkg IHsKKyAgICAgICAgICAgIFRhYmxlX2lkZW50ICp0aT0gbmV3IFRhYmxlX2lkZW50KFlZVEhELCAk MSwgJDMsIDApOworICAgICAgICAgICAgaWYgKHRpID09IE5VTEwpCisgICAgICAgICAgICAgIE1Z U1FMX1lZQUJPUlQ7CiAJICAgIGlmICghU2VsZWN0LT5hZGRfdGFibGVfdG9fbGlzdChZWVRIRCwK LQkJCQkJICAgbmV3IFRhYmxlX2lkZW50KFlZVEhELCAkMSwgJDMsIDApLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpLAogCQkJCQkgICAkNSwgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVExfT1BUSU9OX1VQREFUSU5HIHwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVExfT1BUSU9OX0FM SUFTLApAQCAtNzM1Nyw4ICs4MjcyLDEyIEBAIGJpbmxvZ19mcm9tOgogd2lsZF9hbmRfd2hlcmU6 CiAgICAgICAvKiBlbXB0eSAqLwogICAgICAgfCBMSUtFIFRFWFRfU1RSSU5HX3N5cwotCXsgTGV4 LT53aWxkPSAgbmV3IChZWVRIRC0+bWVtX3Jvb3QpIFN0cmluZygkMi5zdHIsICQyLmxlbmd0aCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5c3Rl bV9jaGFyc2V0X2luZm8pOyB9CisJeworICAgICAgICAgIExleC0+d2lsZD0gbmV3IChZWVRIRC0+ bWVtX3Jvb3QpIFN0cmluZygkMi5zdHIsICQyLmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3lzdGVtX2NoYXJzZXRfaW5mbyk7CisgICAg ICAgICAgaWYgKExleC0+d2lsZCA9PSBOVUxMKQorICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsK KyAgICAgICAgfQogICAgICAgfCBXSEVSRSBleHByCiAgICAgICAgIHsKICAgICAgICAgICBTZWxl Y3QtPndoZXJlPSAkMjsKQEAgLTc0MDYsNyArODMyNSwxNCBAQCBvcHRfZGVzY3JpYmVfY29sdW1u OgogCS8qIGVtcHR5ICovCXt9CiAJfCB0ZXh0X3N0cmluZwl7IExleC0+d2lsZD0gJDE7IH0KIAl8 IGlkZW50Ci0JICB7IExleC0+d2lsZD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIFN0cmluZygoY29u c3QgY2hhciopICQxLnN0ciwkMS5sZW5ndGgsc3lzdGVtX2NoYXJzZXRfaW5mbyk7IH07CisJICB7 CisgICAgICAgICAgICBMZXgtPndpbGQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBTdHJpbmcoKGNv bnN0IGNoYXIqKSAkMS5zdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJDEubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN5c3RlbV9jaGFyc2V0X2luZm8pOworICAgICAgICAgICAg aWYgKExleC0+d2lsZCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAg ICAgICAgIH0KKyAgICAgICAgOwogCiAKIC8qIGZsdXNoIHRoaW5ncyAqLwpAQCAtNzY5MCw3ICs4 NjE2LDExIEBAIGZpZWxkc19vcl92YXJzOgogZmllbGRfb3JfdmFyOgogICAgICAgICBzaW1wbGVf aWRlbnRfbm9zcHZhciB7JCQ9ICQxO30KICAgICAgICAgfCAnQCcgaWRlbnRfb3JfdGV4dAotICAg ICAgICAgIHsgJCQ9IG5ldyBJdGVtX3VzZXJfdmFyX2FzX291dF9wYXJhbSgkMik7IH0KKyAgICAg ICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IEl0ZW1fdXNlcl92YXJfYXNfb3V0X3BhcmFtKCQy KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFC T1JUOworICAgICAgICAgIH0KICAgICAgICAgOwogCiBvcHRfbG9hZF9kYXRhX3NldF9zcGVjOgpA QCAtNzcxNSw5ICs4NjQ1LDE0IEBAIHRleHRfbGl0ZXJhbDoKICAgICAgICAgICAgICAgIG15X2No YXJzZXRfaXNfYXNjaWlfYmFzZWQoY3NfY29uKSkpCiAgICAgICAgICAgICB0bXA9ICQxOwogICAg ICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRoZC0+Y29udmVydF9zdHJpbmcoJnRtcCwgY3NfY29u LCAkMS5zdHIsICQxLmxlbmd0aCwgY3NfY2xpKTsKKyAgICAgICAgICB7CisgICAgICAgICAgICBp ZiAodGhkLT5jb252ZXJ0X3N0cmluZygmdG1wLCBjc19jb24sICQxLnN0ciwgJDEubGVuZ3RoLCBj c19jbGkpKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAg ICAgICAkJD0gbmV3IEl0ZW1fc3RyaW5nKHRtcC5zdHIsIHRtcC5sZW5ndGgsIGNzX2NvbiwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFUklWQVRJT05fQ09FUkNJQkxFLCByZXBlcnRv aXJlKTsKKyAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgIE1ZU1FMX1lZQUJP UlQ7CiAgICAgICAgIH0KICAgICAgICAgfCBOQ0hBUl9TVFJJTkcKICAgICAgICAgewpAQCAtNzcy NiwxMCArODY2MSwxNCBAQCB0ZXh0X2xpdGVyYWw6CiAgICAgICAgICAgREJVR19BU1NFUlQobXlf Y2hhcnNldF9pc19hc2NpaV9iYXNlZChuYXRpb25hbF9jaGFyc2V0X2luZm8pKTsKICAgICAgICAg ICAkJD0gbmV3IEl0ZW1fc3RyaW5nKCQxLnN0ciwgJDEubGVuZ3RoLCBuYXRpb25hbF9jaGFyc2V0 X2luZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBERVJJVkFUSU9OX0NPRVJDSUJM RSwgcmVwZXJ0b2lyZSk7CisgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICBN WVNRTF9ZWUFCT1JUOwogICAgICAgICB9CiAgICAgICAgIHwgVU5ERVJTQ09SRV9DSEFSU0VUIFRF WFRfU1RSSU5HCiAgICAgICAgICAgewogICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX3N0cmluZygk Mi5zdHIsICQyLmxlbmd0aCwgTGV4LT51bmRlcnNjb3JlX2NoYXJzZXQpOworICAgICAgICAgICAg aWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAg ICAoKEl0ZW1fc3RyaW5nKikgJCQpLT5zZXRfcmVwZXJ0b2lyZV9mcm9tX3ZhbHVlKCk7CiAgICAg ICAgICAgfQogICAgICAgICB8IHRleHRfbGl0ZXJhbCBURVhUX1NUUklOR19saXRlcmFsCkBAIC03 NzUxLDI4ICs4NjkwLDM3IEBAIHRleHRfbGl0ZXJhbDoKICAgICAgICAgOwogCiB0ZXh0X3N0cmlu ZzoKLQlURVhUX1NUUklOR19saXRlcmFsCi0JeyAkJD0gIG5ldyAoWVlUSEQtPm1lbV9yb290KSBT dHJpbmcoJDEuc3RyLCQxLmxlbmd0aCxZWVRIRC0+dmFyaWFibGVzLmNvbGxhdGlvbl9jb25uZWN0 aW9uKTsgfQorCSAgVEVYVF9TVFJJTkdfbGl0ZXJhbAorICAgICAgICAgIHsKKyAgICAgICAgICAg ICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgU3RyaW5nKCQxLnN0ciwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQxLmxlbmd0aCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlZVEhELT52YXJpYWJsZXMuY29sbGF0aW9u X2Nvbm5lY3Rpb24pOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAg IE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogCXwgSEVYX05VTQogCSAgewogCSAgICBJdGVt ICp0bXA9IG5ldyBJdGVtX2hleF9zdHJpbmcoJDEuc3RyLCAkMS5sZW5ndGgpOworICAgICAgICAg ICAgaWYgKHRtcCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogCSAgICAv KgogCSAgICAgIGl0IGlzIE9LIG9ubHkgZW11bGF0ZSBmaXhfZmllbGRzLCBiZWNhdXNlIHdlIG5l ZWQgb25seQogICAgICAgICAgICAgICB2YWx1ZSBvZiBjb25zdGFudAogCSAgICAqLwotCSAgICAk JD0gdG1wID8KLQkgICAgICB0bXAtPnF1aWNrX2ZpeF9maWVsZCgpLCB0bXAtPnZhbF9zdHIoKFN0 cmluZyopIDApIDoKLQkgICAgICAoU3RyaW5nKikgMDsKKyAgICAgICAgICAgIHRtcC0+cXVpY2tf Zml4X2ZpZWxkKCk7CisgICAgICAgICAgICAkJD0gdG1wLT52YWxfc3RyKChTdHJpbmcqKSAwKTsK IAkgIH0KICAgICAgICAgfCBCSU5fTlVNCiAgICAgICAgICAgewogCSAgICBJdGVtICp0bXA9IG5l dyBJdGVtX2Jpbl9zdHJpbmcoJDEuc3RyLCAkMS5sZW5ndGgpOworICAgICAgICAgICAgaWYgKHRt cCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogCSAgICAvKgogCSAgICAg IGl0IGlzIE9LIG9ubHkgZW11bGF0ZSBmaXhfZmllbGRzLCBiZWNhdXNlIHdlIG5lZWQgb25seQog ICAgICAgICAgICAgICB2YWx1ZSBvZiBjb25zdGFudAogCSAgICAqLwotCSAgICAkJD0gdG1wID8g dG1wLT5xdWlja19maXhfZmllbGQoKSwgdG1wLT52YWxfc3RyKChTdHJpbmcqKSAwKSA6Ci0JCSAg ICAgIChTdHJpbmcqKSAwOworICAgICAgICAgICAgdG1wLT5xdWlja19maXhfZmllbGQoKTsKKyAg ICAgICAgICAgICQkPSB0bXAtPnZhbF9zdHIoKFN0cmluZyopIDApOwogICAgICAgICAgIH0KIAk7 CiAKQEAgLTc4MTQsNzYgKzg3NjIsMTIxIEBAIGxpdGVyYWw6CiAJfCBOVUxMX1NZTQogICAgICAg ICAgIHsKICAgICAgICAgICAgICQkID0gbmV3IEl0ZW1fbnVsbCgpOworICAgICAgICAgICAgaWYg KCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICBZ WUxJUC0+bmV4dF9zdGF0ZT0gTVlfTEVYX09QRVJBVE9SX09SX0lERU5UOwogICAgICAgICAgIH0K LQl8IEZBTFNFX1NZTQl7ICQkPSBuZXcgSXRlbV9pbnQoKGNoYXIqKSAiRkFMU0UiLDAsMSk7IH0K LQl8IFRSVUVfU1lNCXsgJCQ9IG5ldyBJdGVtX2ludCgoY2hhciopICJUUlVFIiwxLDEpOyB9Ci0J fCBIRVhfTlVNCXsgJCQgPQluZXcgSXRlbV9oZXhfc3RyaW5nKCQxLnN0ciwgJDEubGVuZ3RoKTt9 Ci0JfCBCSU5fTlVNCXsgJCQ9IG5ldyBJdGVtX2Jpbl9zdHJpbmcoJDEuc3RyLCAkMS5sZW5ndGgp OyB9CisJfCBGQUxTRV9TWU0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IEl0ZW1f aW50KChjaGFyKikgIkZBTFNFIiwwLDEpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisg ICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQorCXwgVFJVRV9TWU0KKyAg ICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IEl0ZW1faW50KChjaGFyKikgIlRSVUUiLDEs MSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlB Qk9SVDsKKyAgICAgICAgICB9CisJfCBIRVhfTlVNCisgICAgICAgICAgeworICAgICAgICAgICAg JCQ9CW5ldyBJdGVtX2hleF9zdHJpbmcoJDEuc3RyLCAkMS5sZW5ndGgpOworICAgICAgICAgICAg aWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAg fQorCXwgQklOX05VTQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgSXRlbV9iaW5f c3RyaW5nKCQxLnN0ciwgJDEubGVuZ3RoKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQor ICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBVTkRF UlNDT1JFX0NIQVJTRVQgSEVYX05VTQogICAgICAgICAgIHsKICAgICAgICAgICAgIEl0ZW0gKnRt cD0gbmV3IEl0ZW1faGV4X3N0cmluZygkMi5zdHIsICQyLmxlbmd0aCk7CisgICAgICAgICAgICBp ZiAodG1wID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAg ICAvKgogICAgICAgICAgICAgICBpdCBpcyBPSyBvbmx5IGVtdWxhdGUgZml4X2ZpZWRzLCBiZWNh dXNlIHdlIG5lZWQgb25seQogICAgICAgICAgICAgICB2YWx1ZSBvZiBjb25zdGFudAogICAgICAg ICAgICAgKi8KLSAgICAgICAgICAgIFN0cmluZyAqc3RyPSB0bXAgPwotICAgICAgICAgICAgICB0 bXAtPnF1aWNrX2ZpeF9maWVsZCgpLCB0bXAtPnZhbF9zdHIoKFN0cmluZyopIDApIDoKLSAgICAg ICAgICAgICAgKFN0cmluZyopIDA7Ci0gICAgICAgICAgICAkJD0gbmV3IEl0ZW1fc3RyaW5nKE5V TEwsIC8qIG5hbWUgd2lsbCBiZSBzZXQgaW4gc2VsZWN0X2l0ZW0gKi8KLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RyID8gc3RyLT5wdHIoKSA6ICIiLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHIgPyBzdHItPmxlbmd0aCgpIDogMCwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTGV4LT51bmRlcnNjb3JlX2NoYXJzZXQpOwotICAgICAgICAgICAg aWYgKCEkJCB8fCAhJCQtPmNoZWNrX3dlbGxfZm9ybWVkX3Jlc3VsdCgmJCQtPnN0cl92YWx1ZSwg VFJVRSkpCisgICAgICAgICAgICB0bXAtPnF1aWNrX2ZpeF9maWVsZCgpOworICAgICAgICAgICAg U3RyaW5nICpzdHI9IHRtcC0+dmFsX3N0cigoU3RyaW5nKikgMCk7CisgICAgICAgICAgICBJdGVt X3N0cmluZyAqaXRlbV9zdHI7CisgICAgICAgICAgICBpdGVtX3N0cj0gbmV3IEl0ZW1fc3RyaW5n KE5VTEwsIC8qIG5hbWUgd2lsbCBiZSBzZXQgaW4gc2VsZWN0X2l0ZW0gKi8KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyID8gc3RyLT5wdHIoKSA6ICIiLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIgPyBzdHItPmxlbmd0aCgpIDogMCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGV4LT51bmRlcnNjb3JlX2No YXJzZXQpOworICAgICAgICAgICAgaWYgKCFpdGVtX3N0ciB8fAorICAgICAgICAgICAgICAgICFp dGVtX3N0ci0+Y2hlY2tfd2VsbF9mb3JtZWRfcmVzdWx0KCZpdGVtX3N0ci0+c3RyX3ZhbHVlLCBU UlVFKSkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAg ICAgICAgIH0KLSAgICAgICAgICAgICgoSXRlbV9zdHJpbmcgKikgJCQpLT5zZXRfcmVwZXJ0b2ly ZV9mcm9tX3ZhbHVlKCk7CisgICAgICAgICAgICBpdGVtX3N0ci0+c2V0X3JlcGVydG9pcmVfZnJv bV92YWx1ZSgpOworICAgICAgICAgICAgJCQ9IGl0ZW1fc3RyOwogICAgICAgICAgIH0KIAl8IFVO REVSU0NPUkVfQ0hBUlNFVCBCSU5fTlVNCiAgICAgICAgICAgewogCSAgICBJdGVtICp0bXA9IG5l dyBJdGVtX2Jpbl9zdHJpbmcoJDIuc3RyLCAkMi5sZW5ndGgpOworICAgICAgICAgICAgaWYgKHRt cCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogCSAgICAvKgogCSAgICAg IGl0IGlzIE9LIG9ubHkgZW11bGF0ZSBmaXhfZmllZHMsIGJlY2F1c2Ugd2UgbmVlZCBvbmx5CiAg ICAgICAgICAgICAgIHZhbHVlIG9mIGNvbnN0YW50CiAJICAgICovCi0JICAgIFN0cmluZyAqc3Ry PSB0bXAgPwotCSAgICAgIHRtcC0+cXVpY2tfZml4X2ZpZWxkKCksIHRtcC0+dmFsX3N0cigoU3Ry aW5nKikgMCkgOgotCSAgICAgIChTdHJpbmcqKSAwOwotICAgICAgICAgICAgJCQ9IG5ldyBJdGVt X3N0cmluZyhOVUxMLCAvKiBuYW1lIHdpbGwgYmUgc2V0IGluIHNlbGVjdF9pdGVtICovCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciA/IHN0ci0+cHRyKCkgOiAiIiwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyID8gc3RyLT5sZW5ndGgoKSA6IDAsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExleC0+dW5kZXJzY29yZV9jaGFyc2V0KTsKLSAg ICAgICAgICAgIGlmICghJCQgfHwgISQkLT5jaGVja193ZWxsX2Zvcm1lZF9yZXN1bHQoJiQkLT5z dHJfdmFsdWUsIFRSVUUpKQorICAgICAgICAgICAgdG1wLT5xdWlja19maXhfZmllbGQoKTsKKwkg ICAgU3RyaW5nICpzdHI9IHRtcC0+dmFsX3N0cigoU3RyaW5nKikgMCk7CisgICAgICAgICAgICBJ dGVtX3N0cmluZyAqaXRlbV9zdHI7CisgICAgICAgICAgICBpdGVtX3N0cj0gbmV3IEl0ZW1fc3Ry aW5nKE5VTEwsIC8qIG5hbWUgd2lsbCBiZSBzZXQgaW4gc2VsZWN0X2l0ZW0gKi8KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyID8gc3RyLT5wdHIoKSA6ICIiLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIgPyBzdHItPmxlbmd0aCgpIDog MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGV4LT51bmRlcnNjb3Jl X2NoYXJzZXQpOworICAgICAgICAgICAgaWYgKCFpdGVtX3N0ciB8fAorICAgICAgICAgICAgICAg ICFpdGVtX3N0ci0+Y2hlY2tfd2VsbF9mb3JtZWRfcmVzdWx0KCZpdGVtX3N0ci0+c3RyX3ZhbHVl LCBUUlVFKSkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICQkPSBpdGVtX3N0cjsKICAgICAgICAgICB9CiAJfCBE QVRFX1NZTSB0ZXh0X2xpdGVyYWwgeyAkJCA9ICQyOyB9CiAJfCBUSU1FX1NZTSB0ZXh0X2xpdGVy YWwgeyAkJCA9ICQyOyB9CiAJfCBUSU1FU1RBTVAgdGV4dF9saXRlcmFsIHsgJCQgPSAkMjsgfTsK IAogTlVNX2xpdGVyYWw6Ci0JTlVNCQl7IGludCBlcnJvcjsgJCQgPSBuZXcgSXRlbV9pbnQoJDEu c3RyLCAobG9uZ2xvbmcpIG15X3N0cnRvbGwxMCgkMS5zdHIsIE5VTEwsICZlcnJvciksICQxLmxl bmd0aCk7IH0KLQl8IExPTkdfTlVNCXsgaW50IGVycm9yOyAkJCA9IG5ldyBJdGVtX2ludCgkMS5z dHIsIChsb25nbG9uZykgbXlfc3RydG9sbDEwKCQxLnN0ciwgTlVMTCwgJmVycm9yKSwgJDEubGVu Z3RoKTsgfQotCXwgVUxPTkdMT05HX05VTQl7ICQkID0JbmV3IEl0ZW1fdWludCgkMS5zdHIsICQx Lmxlbmd0aCk7IH0KKwkgIE5VTQorICAgICAgICAgIHsKKyAgICAgICAgICAgIGludCBlcnJvcjsK KyAgICAgICAgICAgICQkID0gbmV3IEl0ZW1faW50KCQxLnN0ciwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChsb25nbG9uZykgbXlfc3RydG9sbDEwKCQxLnN0ciwgTlVMTCwgJmVycm9y KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQxLmxlbmd0aCk7CisgICAgICAgICAg fQorCXwgTE9OR19OVU0KKyAgICAgICAgICB7CisgICAgICAgICAgICBpbnQgZXJyb3I7CisgICAg ICAgICAgICAkJCA9IG5ldyBJdGVtX2ludCgkMS5zdHIsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAobG9uZ2xvbmcpIG15X3N0cnRvbGwxMCgkMS5zdHIsIE5VTEwsICZlcnJvciksCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkMS5sZW5ndGgpOworICAgICAgICAgIH0KKwl8 IFVMT05HTE9OR19OVU0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0JbmV3IEl0ZW1fdWlu dCgkMS5zdHIsICQxLmxlbmd0aCk7CisgICAgICAgICAgfQogICAgICAgICB8IERFQ0lNQUxfTlVN Ci0JewotICAgICAgICAgICAkJD0gbmV3IEl0ZW1fZGVjaW1hbCgkMS5zdHIsICQxLmxlbmd0aCwg WVlUSEQtPmNoYXJzZXQoKSk7Ci0JICAgaWYgKFlZVEhELT5uZXQucmVwb3J0X2Vycm9yKQotCSAg IHsKLQkgICAgIE1ZU1FMX1lZQUJPUlQ7Ci0JICAgfQotCX0KKwkgIHsKKyAgICAgICAgICAgICQk PSBuZXcgSXRlbV9kZWNpbWFsKCQxLnN0ciwgJDEubGVuZ3RoLCBZWVRIRC0+Y2hhcnNldCgpKTsK KyAgICAgICAgICAgIGlmICgoJCQgPT0gTlVMTCkgfHwgKFlZVEhELT5uZXQucmVwb3J0X2Vycm9y KSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAg ICAgIH0KKyAgICAgICAgICB9CiAJfCBGTE9BVF9OVU0KLQl7Ci0JICAgJCQgPQluZXcgSXRlbV9m bG9hdCgkMS5zdHIsICQxLmxlbmd0aCk7Ci0JICAgaWYgKFlZVEhELT5uZXQucmVwb3J0X2Vycm9y KQotCSAgIHsKLQkgICAgIE1ZU1FMX1lZQUJPUlQ7Ci0JICAgfQotCX0KLQk7CisgICAgICAgICAg eworICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX2Zsb2F0KCQxLnN0ciwgJDEubGVuZ3RoKTsKKyAg ICAgICAgICAgIGlmICgoJCQgPT0gTlVMTCkgfHwgKFlZVEhELT5uZXQucmVwb3J0X2Vycm9yKSkK KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICAg IH0KKyAgICAgICAgICB9CisgICAgICAgIDsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICoqIENyZWF0aW5n IGRpZmZlcmVudCBpdGVtcy4KQEAgLTc4OTgsNiArODg5MSw4IEBAIHRhYmxlX3dpbGQ6CiAJewog ICAgICAgICAgIFNFTEVDVF9MRVggKnNlbD0gU2VsZWN0OwogCSAgJCQgPSBuZXcgSXRlbV9maWVs ZChMZXgtPmN1cnJlbnRfY29udGV4dCgpLCBOdWxsUywgJDEuc3RyLCAiKiIpOworICAgICAgICAg IGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKIAkgIHNlbC0+d2l0 aF93aWxkKys7CiAJfQogCXwgaWRlbnQgJy4nIGlkZW50ICcuJyAnKicKQEAgLTc5MDYsNiArODkw MSw4IEBAIHRhYmxlX3dpbGQ6CiAJICAkJCA9IG5ldyBJdGVtX2ZpZWxkKExleC0+Y3VycmVudF9j b250ZXh0KCksIChZWVRIRC0+Y2xpZW50X2NhcGFiaWxpdGllcyAmCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIENMSUVOVF9OT19TQ0hFTUEgPyBOdWxsUyA6ICQxLnN0ciksCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICQzLnN0ciwiKiIpOworICAgICAgICAgIGlmICgkJCA9PSBO VUxMKQorICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKIAkgIHNlbC0+d2l0aF93aWxkKys7CiAJ fQogCTsKQEAgLTc5MzUsMTEgKzg5MzIsMTIgQEAgc2ltcGxlX2lkZW50OgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsaXAtPnRva19zdGFydF9wcmV2IC0gCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxleC0+c3BoZWFkLT5tX3RtcF9xdWVyeSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlwLT50b2tfZW5kIC0gbGlw LT50b2tfc3RhcnRfcHJldik7CisgICAgICAgICAgICBpZiAoc3Bsb2NhbCA9PSBOVUxMKQorICAg ICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogI2lmbmRlZiBEQlVHX09GRgotICAgICAgICAgICAg aWYgKHNwbG9jYWwpCi0gICAgICAgICAgICAgIHNwbG9jYWwtPm1fc3A9IGxleC0+c3BoZWFkOwor ICAgICAgICAgICAgc3Bsb2NhbC0+bV9zcD0gbGV4LT5zcGhlYWQ7CiAjZW5kaWYKLQkgICAgJCQg PSAoSXRlbSopIHNwbG9jYWw7CisJICAgICQkPSBzcGxvY2FsOwogCSAgICBsZXgtPnNhZmVfdG9f Y2FjaGVfcXVlcnk9MDsKIAkgIH0KIAkgIGVsc2UKQEAgLTc5NDksNiArODk0Nyw4IEBAIHNpbXBs ZV9pZGVudDoKIAkgICAgICAgICBzZWwtPmdldF9pbl9zdW1fZXhwcigpID4gMCkgPwogICAgICAg ICAgICAgICAgICAoSXRlbSopIG5ldyBJdGVtX2ZpZWxkKExleC0+Y3VycmVudF9jb250ZXh0KCks IE51bGxTLCBOdWxsUywgJDEuc3RyKSA6CiAJICAgICAgICAgKEl0ZW0qKSBuZXcgSXRlbV9yZWYo TGV4LT5jdXJyZW50X2NvbnRleHQoKSwgTnVsbFMsIE51bGxTLCAkMS5zdHIpOworICAgICAgICAg ICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAJICB9CiAg ICAgICAgIH0KICAgICAgICAgfCBzaW1wbGVfaWRlbnRfcSB7ICQkPSAkMTsgfQpAQCAtNzk2Miw2 ICs4OTYyLDggQEAgc2ltcGxlX2lkZW50X25vc3B2YXI6CiAJICAgICAgIHNlbC0+Z2V0X2luX3N1 bV9leHByKCkgPiAwKSA/CiAgICAgICAgICAgICAgIChJdGVtKikgbmV3IEl0ZW1fZmllbGQoTGV4 LT5jdXJyZW50X2NvbnRleHQoKSwgTnVsbFMsIE51bGxTLCAkMS5zdHIpIDoKIAkgICAgICAoSXRl bSopIG5ldyBJdGVtX3JlZihMZXgtPmN1cnJlbnRfY29udGV4dCgpLCBOdWxsUywgTnVsbFMsICQx LnN0cik7CisgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICBNWVNRTF9ZWUFC T1JUOwogCX0KIAl8IHNpbXBsZV9pZGVudF9xIHsgJCQ9ICQxOyB9CiAJOwpAQCAtODAzMyw2ICs5 MDM1LDggQEAgc2ltcGxlX2lkZW50X3E6CiAJICAgICAgICAgc2VsLT5nZXRfaW5fc3VtX2V4cHIo KSA+IDApID8KIAkgICAgICAgIChJdGVtKikgbmV3IEl0ZW1fZmllbGQoTGV4LT5jdXJyZW50X2Nv bnRleHQoKSwgTnVsbFMsICQxLnN0ciwgJDMuc3RyKSA6CiAJICAgICAgICAoSXRlbSopIG5ldyBJ dGVtX3JlZihMZXgtPmN1cnJlbnRfY29udGV4dCgpLCBOdWxsUywgJDEuc3RyLCAkMy5zdHIpOwor ICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7 CiAgICAgICAgICAgfQogICAgICAgICB9CiAJfCAnLicgaWRlbnQgJy4nIGlkZW50CkBAIC04MDQ5 LDYgKzkwNTMsOCBAQCBzaW1wbGVfaWRlbnRfcToKIAkgICAgICAgc2VsLT5nZXRfaW5fc3VtX2V4 cHIoKSA+IDApID8KIAkgICAgICAoSXRlbSopIG5ldyBJdGVtX2ZpZWxkKExleC0+Y3VycmVudF9j b250ZXh0KCksIE51bGxTLCAkMi5zdHIsICQ0LnN0cikgOgogICAgICAgICAgICAgICAoSXRlbSop IG5ldyBJdGVtX3JlZihMZXgtPmN1cnJlbnRfY29udGV4dCgpLCBOdWxsUywgJDIuc3RyLCAkNC5z dHIpOworICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgTVlTUUxfWVlBQk9S VDsKIAl9CiAJfCBpZGVudCAnLicgaWRlbnQgJy4nIGlkZW50CiAJewpAQCAtODA3MCw2ICs5MDc2 LDggQEAgc2ltcGxlX2lkZW50X3E6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChZWVRIRC0+Y2xpZW50X2NhcGFiaWxpdGllcyAmCiAJCQkJICAgIENMSUVOVF9OT19TQ0hFTUEg PyBOdWxsUyA6ICQxLnN0ciksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQz LnN0ciwgJDUuc3RyKTsKKyAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgIE1Z U1FMX1lZQUJPUlQ7CiAJfTsKIAogCkBAIC04MTA0LDEzICs5MTEyLDM0IEBAIGZpZWxkX2lkZW50 OgogCXwgJy4nIGlkZW50CQl7ICQkPSQyO30JLyogRm9yIERlbHBoaSAqLzsKIAogdGFibGVfaWRl bnQ6Ci0JaWRlbnQJCQl7ICQkPW5ldyBUYWJsZV9pZGVudCgkMSk7IH0KLQl8IGlkZW50ICcuJyBp ZGVudAl7ICQkPW5ldyBUYWJsZV9pZGVudChZWVRIRCwgJDEsJDMsMCk7fQotCXwgJy4nIGlkZW50 CQl7ICQkPW5ldyBUYWJsZV9pZGVudCgkMik7fSAvKiBGb3IgRGVscGhpICovCisJICBpZGVudAor ICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPW5ldyBUYWJsZV9pZGVudCgkMSk7CisgICAgICAg ICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAg ICAgICB9CisJfCBpZGVudCAnLicgaWRlbnQKKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD1u ZXcgVGFibGVfaWRlbnQoWVlUSEQsICQxLCQzLDApOworICAgICAgICAgICAgaWYgKCQkID09IE5V TEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQorCXwgJy4nIGlk ZW50CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9bmV3IFRhYmxlX2lkZW50KCQyKTsgLyog Rm9yIERlbHBoaSAqLworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAg IE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAgICA7CiAKIHRhYmxlX2lkZW50X25v ZGI6Ci0JaWRlbnQJCQl7IExFWF9TVFJJTkcgZGI9eyhjaGFyKikgYW55X2RiLDN9OyAkJD1uZXcg VGFibGVfaWRlbnQoWVlUSEQsIGRiLCQxLDApOyB9CisJaWRlbnQKKyAgICAgICAgICB7CisgICAg ICAgICAgICBMRVhfU1RSSU5HIGRiPXsoY2hhciopIGFueV9kYiwzfTsKKyAgICAgICAgICAgICQk PW5ldyBUYWJsZV9pZGVudChZWVRIRCwgZGIsJDEsMCk7CisgICAgICAgICAgICBpZiAoJCQgPT0g TlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAg IDsKIAogSURFTlRfc3lzOgpAQCAtODEzNCw4ICs5MTYzLDExIEBAIElERU5UX3N5czoKIAkgICAg ICAkJD0gJDE7CiAgICAgICAgICAgICB9CiAJICAgIGVsc2UKLQkgICAgICB0aGQtPmNvbnZlcnRf c3RyaW5nKCYkJCwgc3lzdGVtX2NoYXJzZXRfaW5mbywKLQkJCQkgICQxLnN0ciwgJDEubGVuZ3Ro LCB0aGQtPmNoYXJzZXQoKSk7CisgICAgICAgICAgICB7CisJICAgICAgaWYgKHRoZC0+Y29udmVy dF9zdHJpbmcoJiQkLCBzeXN0ZW1fY2hhcnNldF9pbmZvLAorCQkJCSAgJDEuc3RyLCAkMS5sZW5n dGgsIHRoZC0+Y2hhcnNldCgpKSkKKyAgICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAg ICAgICAgICAgfQogCSAgfQogCTsKIApAQCAtODE0Niw4ICs5MTc4LDExIEBAIFRFWFRfU1RSSU5H X3N5czoKIAkgIGlmICh0aGQtPmNoYXJzZXRfaXNfc3lzdGVtX2NoYXJzZXQpCiAJICAgICQkPSAk MTsKIAkgIGVsc2UKLQkgICAgdGhkLT5jb252ZXJ0X3N0cmluZygmJCQsIHN5c3RlbV9jaGFyc2V0 X2luZm8sCi0JCQkJJDEuc3RyLCAkMS5sZW5ndGgsIHRoZC0+Y2hhcnNldCgpKTsKKyAgICAgICAg ICB7CisJICAgIGlmICh0aGQtPmNvbnZlcnRfc3RyaW5nKCYkJCwgc3lzdGVtX2NoYXJzZXRfaW5m bywKKwkJCQkkMS5zdHIsICQxLmxlbmd0aCwgdGhkLT5jaGFyc2V0KCkpKQorICAgICAgICAgICAg ICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KIAl9CiAJOwogCkBAIC04MTU4LDggKzkxOTMs MTEgQEAgVEVYVF9TVFJJTkdfbGl0ZXJhbDoKIAkgIGlmICh0aGQtPmNoYXJzZXRfaXNfY29sbGF0 aW9uX2Nvbm5lY3Rpb24pCiAJICAgICQkPSAkMTsKIAkgIGVsc2UKLQkgICAgdGhkLT5jb252ZXJ0 X3N0cmluZygmJCQsIHRoZC0+dmFyaWFibGVzLmNvbGxhdGlvbl9jb25uZWN0aW9uLAotCQkJCSQx LnN0ciwgJDEubGVuZ3RoLCB0aGQtPmNoYXJzZXQoKSk7CisgICAgICAgICAgeworCSAgICBpZiAo dGhkLT5jb252ZXJ0X3N0cmluZygmJCQsIHRoZC0+dmFyaWFibGVzLmNvbGxhdGlvbl9jb25uZWN0 aW9uLAorCQkJCSQxLnN0ciwgJDEubGVuZ3RoLCB0aGQtPmNoYXJzZXQoKSkpCisgICAgICAgICAg ICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogCX0KIAk7CiAKQEAgLTgxNzEsOCArOTIw OSwxMSBAQCBURVhUX1NUUklOR19maWxlc3lzdGVtOgogCSAgaWYgKHRoZC0+Y2hhcnNldF9pc19j aGFyYWN0ZXJfc2V0X2ZpbGVzeXN0ZW0pCiAJICAgICQkPSAkMTsKIAkgIGVsc2UKLQkgICAgdGhk LT5jb252ZXJ0X3N0cmluZygmJCQsIHRoZC0+dmFyaWFibGVzLmNoYXJhY3Rlcl9zZXRfZmlsZXN5 c3RlbSwKLQkJCQkkMS5zdHIsICQxLmxlbmd0aCwgdGhkLT5jaGFyc2V0KCkpOworICAgICAgICAg IHsKKwkgICAgaWYgKHRoZC0+Y29udmVydF9zdHJpbmcoJiQkLCB0aGQtPnZhcmlhYmxlcy5jaGFy YWN0ZXJfc2V0X2ZpbGVzeXN0ZW0sCisJCQkJJDEuc3RyLCAkMS5sZW5ndGgsIHRoZC0+Y2hhcnNl dCgpKSkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAJfQogCTsK IApAQCAtODE4Miw2ICs5MjIzLDggQEAgaWRlbnQ6CiAJewogCSAgVEhEICp0aGQ9IFlZVEhEOwog CSAgJCQuc3RyPSAgICB0aGQtPnN0cm1ha2UoJDEuc3RyLCAkMS5sZW5ndGgpOworICAgICAgICAg IGlmICgkJC5zdHIgPT0gTlVMTCkKKyAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAJICAkJC5s ZW5ndGg9ICQxLmxlbmd0aDsKIAl9CiAJOwpAQCAtODE5Miw2ICs5MjM1LDggQEAgbGFiZWxfaWRl bnQ6CiAJewogCSAgVEhEICp0aGQ9IFlZVEhEOwogCSAgJCQuc3RyPSAgICB0aGQtPnN0cm1ha2Uo JDEuc3RyLCAkMS5sZW5ndGgpOworICAgICAgICAgIGlmICgkJC5zdHIgPT0gTlVMTCkKKyAgICAg ICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAJICAkJC5sZW5ndGg9ICQxLmxlbmd0aDsKIAl9CiAJOwpA QCAtODcyMywyOSArOTc2OCw1MCBAQCBzeXNfb3B0aW9uX3ZhbHVlOgogCSAgTEVYICpsZXg9TGV4 OwogICAgICAgICAgIGlmICgkMSkKICAgICAgICAgICAgIGxleC0+b3B0aW9uX3R5cGU9ICQxOwot CSAgbGV4LT52YXJfbGlzdC5wdXNoX2JhY2sobmV3IHNldF92YXIobGV4LT5vcHRpb25fdHlwZSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5kX3N5c192 YXIoInR4X2lzb2xhdGlvbiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICZudWxsX2xleF9zdHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbmV3IEl0ZW1faW50KChpbnQzMikgJDUpKSk7CisgICAgICAgICAgSXRl bSAqaXRlbT0gbmV3IEl0ZW1faW50KChpbnQzMikgJDUpOworICAgICAgICAgIGlmIChpdGVtID09 IE5VTEwpCisgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIHNldF92YXIgKnZh cj0gbmV3IHNldF92YXIobGV4LT5vcHRpb25fdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGZpbmRfc3lzX3ZhcigidHhfaXNvbGF0aW9uIiksCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAmbnVsbF9sZXhfc3RyLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaXRlbSk7CisgICAgICAgICAgaWYgKHZhciA9PSBOVUxMKQorICAg ICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKwkgIGxleC0+dmFyX2xpc3QucHVzaF9iYWNrKHZhcik7 CiAJfQogICAgICAgICA7CiAKIG9wdGlvbl92YWx1ZToKIAknQCcgaWRlbnRfb3JfdGV4dCBlcXVh bCBleHByCiAJewotICAgICAgICAgIExleC0+dmFyX2xpc3QucHVzaF9iYWNrKG5ldyBzZXRfdmFy X3VzZXIobmV3IEl0ZW1fZnVuY19zZXRfdXNlcl92YXIoJDIsJDQpKSk7CisgICAgICAgICAgSXRl bV9mdW5jX3NldF91c2VyX3ZhciAqaXRlbT0gbmV3IEl0ZW1fZnVuY19zZXRfdXNlcl92YXIoJDIs JDQpOworICAgICAgICAgIGlmIChpdGVtID09IE5VTEwpCisgICAgICAgICAgICBNWVNRTF9ZWUFC T1JUOworICAgICAgICAgIHNldF92YXJfdXNlciAqdmFyPSBuZXcgc2V0X3Zhcl91c2VyKGl0ZW0p OworICAgICAgICAgIGlmICh2YXIgPT0gTlVMTCkKKyAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7 CisgICAgICAgICAgTGV4LT52YXJfbGlzdC5wdXNoX2JhY2sodmFyKTsKIAl9CiAJfCAnQCcgJ0An IG9wdF92YXJfaWRlbnRfdHlwZSBpbnRlcm5hbF92YXJpYWJsZV9uYW1lIGVxdWFsIHNldF9leHBy X29yX2RlZmF1bHQKIAkgIHsKIAkgICAgTEVYICpsZXg9TGV4OwotCSAgICBsZXgtPnZhcl9saXN0 LnB1c2hfYmFjayhuZXcgc2V0X3ZhcigkMywgJDQudmFyLCAmJDQuYmFzZV9uYW1lLCAkNikpOwor ICAgICAgICAgICAgc2V0X3ZhciAqdmFyPSBuZXcgc2V0X3ZhcigkMywgJDQudmFyLCAmJDQuYmFz ZV9uYW1lLCAkNik7CisgICAgICAgICAgICBpZiAodmFyID09IE5VTEwpCisgICAgICAgICAgICAg IE1ZU1FMX1lZQUJPUlQ7CisJICAgIGxleC0+dmFyX2xpc3QucHVzaF9iYWNrKHZhcik7CiAJICB9 CiAJfCBjaGFyc2V0IG9sZF9vcl9uZXdfY2hhcnNldF9uYW1lX29yX2RlZmF1bHQKIAl7CiAJICBU SEQgKnRoZD0gWVlUSEQ7CiAJICBMRVggKmxleD0gTGV4OwogCSAgJDI9ICQyID8gJDI6IGdsb2Jh bF9zeXN0ZW1fdmFyaWFibGVzLmNoYXJhY3Rlcl9zZXRfY2xpZW50OwotCSAgbGV4LT52YXJfbGlz dC5wdXNoX2JhY2sobmV3IHNldF92YXJfY29sbGF0aW9uX2NsaWVudCgkMix0aGQtPnZhcmlhYmxl cy5jb2xsYXRpb25fZGF0YWJhc2UsJDIpKTsKKyAgICAgICAgICBzZXRfdmFyX2NvbGxhdGlvbl9j bGllbnQgKnZhcjsKKyAgICAgICAgICB2YXI9IG5ldyBzZXRfdmFyX2NvbGxhdGlvbl9jbGllbnQo JDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZC0+dmFy aWFibGVzLmNvbGxhdGlvbl9kYXRhYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJDIpOworICAgICAgICAgIGlmICh2YXIgPT0gTlVMTCkKKyAgICAgICAg ICAgIE1ZU1FMX1lZQUJPUlQ7CisJICBsZXgtPnZhcl9saXN0LnB1c2hfYmFjayh2YXIpOwogCX0K ICAgICAgICAgfCBOQU1FU19TWU0gZXF1YWwgZXhwcgogCSAgewpAQCAtODc3Myw3ICs5ODM5LDEx IEBAIG9wdGlvbl92YWx1ZToKICAgICAgICAgICAgICAgICAgICAgICQzLT5uYW1lLCAkMi0+Y3Nu YW1lKTsKIAkgICAgTVlTUUxfWVlBQk9SVDsKIAkgIH0KLQkgIGxleC0+dmFyX2xpc3QucHVzaF9i YWNrKG5ldyBzZXRfdmFyX2NvbGxhdGlvbl9jbGllbnQoJDMsJDMsJDMpKTsKKyAgICAgICAgICBz ZXRfdmFyX2NvbGxhdGlvbl9jbGllbnQgKnZhcjsKKyAgICAgICAgICB2YXI9IG5ldyBzZXRfdmFy X2NvbGxhdGlvbl9jbGllbnQoJDMsJDMsJDMpOworICAgICAgICAgIGlmICh2YXIgPT0gTlVMTCkK KyAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisJICBsZXgtPnZhcl9saXN0LnB1c2hfYmFjayh2 YXIpOwogCX0KIAl8IFBBU1NXT1JEIGVxdWFsIHRleHRfb3JfcGFzc3dvcmQKIAkgIHsKQEAgLTg3 OTQsMTEgKzk4NjQsMTcgQEAgb3B0aW9uX3ZhbHVlOgogCSAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAJ ICAgIHVzZXItPmhvc3Q9bnVsbF9sZXhfc3RyOwogCSAgICB1c2VyLT51c2VyLnN0cj10aGQtPnNl Y3VyaXR5X2N0eC0+cHJpdl91c2VyOwotCSAgICB0aGQtPmxleC0+dmFyX2xpc3QucHVzaF9iYWNr KG5ldyBzZXRfdmFyX3Bhc3N3b3JkKHVzZXIsICQzKSk7CisgICAgICAgICAgICBzZXRfdmFyX3Bh c3N3b3JkICp2YXI9IG5ldyBzZXRfdmFyX3Bhc3N3b3JkKHVzZXIsICQzKTsKKyAgICAgICAgICAg IGlmICh2YXIgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKwkgICAgdGhk LT5sZXgtPnZhcl9saXN0LnB1c2hfYmFjayh2YXIpOwogCSAgfQogCXwgUEFTU1dPUkQgRk9SX1NZ TSB1c2VyIGVxdWFsIHRleHRfb3JfcGFzc3dvcmQKIAkgIHsKLQkgICAgTGV4LT52YXJfbGlzdC5w dXNoX2JhY2sobmV3IHNldF92YXJfcGFzc3dvcmQoJDMsJDUpKTsKKyAgICAgICAgICAgIHNldF92 YXJfcGFzc3dvcmQgKnZhcj0gbmV3IHNldF92YXJfcGFzc3dvcmQoJDMsJDUpOworICAgICAgICAg ICAgaWYgKHZhciA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworCSAgICBM ZXgtPnZhcl9saXN0LnB1c2hfYmFjayh2YXIpOwogCSAgfQogCTsKIApAQCAtODkxMiwxMSArOTk4 OCwxNSBAQCB0ZXh0X29yX3Bhc3N3b3JkOgogCSAgICAgICAgSXRlbV9mdW5jX29sZF9wYXNzd29y ZDo6YWxsb2MoWVlUSEQsICQzLnN0cikgOgogCSAgICAgICAgSXRlbV9mdW5jX3Bhc3N3b3JkOjph bGxvYyhZWVRIRCwgJDMuc3RyKSA6CiAJICAgICAgJDMuc3RyOworICAgICAgICAgICAgaWYgKCQk ID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAJICB9CiAJfCBPTERfUEFT U1dPUkQgJygnIFRFWFRfU1RSSU5HICcpJwogCSAgewogCSAgICAkJD0gJDMubGVuZ3RoID8gSXRl bV9mdW5jX29sZF9wYXNzd29yZDo6YWxsb2MoWVlUSEQsICQzLnN0cikgOgogCSAgICAgICQzLnN0 cjsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFC T1JUOwogCSAgfQogICAgICAgICAgIDsKIApAQCAtODkyNCw5ICsxMDAwNCwyNCBAQCB0ZXh0X29y X3Bhc3N3b3JkOgogc2V0X2V4cHJfb3JfZGVmYXVsdDoKIAlleHByICAgICAgeyAkJD0kMTsgfQog CXwgREVGQVVMVCB7ICQkPTA7IH0KLQl8IE9OCSAgeyAkJD1uZXcgSXRlbV9zdHJpbmcoIk9OIiwg IDIsIHN5c3RlbV9jaGFyc2V0X2luZm8pOyB9Ci0JfCBBTEwJICB7ICQkPW5ldyBJdGVtX3N0cmlu ZygiQUxMIiwgMywgc3lzdGVtX2NoYXJzZXRfaW5mbyk7IH0KLQl8IEJJTkFSWSAgeyAkJD1uZXcg SXRlbV9zdHJpbmcoImJpbmFyeSIsIDYsIHN5c3RlbV9jaGFyc2V0X2luZm8pOyB9CisJfCBPTgor ICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPW5ldyBJdGVtX3N0cmluZygiT04iLCAgMiwgc3lz dGVtX2NoYXJzZXRfaW5mbyk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAg ICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CisJfCBBTEwKKyAgICAgICAgICB7Cisg ICAgICAgICAgICAkJD1uZXcgSXRlbV9zdHJpbmcoIkFMTCIsIDMsIHN5c3RlbV9jaGFyc2V0X2lu Zm8pOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZ QUJPUlQ7CisgICAgICAgICAgfQorCXwgQklOQVJZCisgICAgICAgICAgeworICAgICAgICAgICAg JCQ9bmV3IEl0ZW1fc3RyaW5nKCJiaW5hcnkiLCA2LCBzeXN0ZW1fY2hhcnNldF9pbmZvKTsKKyAg ICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwor ICAgICAgICAgIH0KIAk7CiAKIApAQCAtOTAyNyw3ICsxMDEyMiwxMCBAQCBoYW5kbGVyOgogCSAg fQogCSAgbGV4LT5zcWxfY29tbWFuZCA9IFNRTENPTV9IQV9SRUFEOwogCSAgbGV4LT5oYV9ya2V5 X21vZGU9IEhBX1JFQURfS0VZX0VYQUNUOwkvKiBBdm9pZCBwdXJpZnkgd2FybmluZ3MgKi8KLQkg IGxleC0+Y3VycmVudF9zZWxlY3QtPnNlbGVjdF9saW1pdD0gbmV3IEl0ZW1faW50KChpbnQzMikg MSk7CisgICAgICAgICAgSXRlbSAqb25lPSBuZXcgSXRlbV9pbnQoKGludDMyKSAxKTsKKyAgICAg ICAgICBpZiAob25lID09IE5VTEwpCisgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworCSAgbGV4 LT5jdXJyZW50X3NlbGVjdC0+c2VsZWN0X2xpbWl0PSBvbmU7CiAJICBsZXgtPmN1cnJlbnRfc2Vs ZWN0LT5vZmZzZXRfbGltaXQ9IDA7CiAJICBpZiAoIWxleC0+Y3VycmVudF9zZWxlY3QtPmFkZF90 YWJsZV90b19saXN0KGxleC0+dGhkLCAkMiwgMCwgMCkpCiAJICAgIE1ZU1FMX1lZQUJPUlQ7CkBA IC05MzM0LDggKzEwNDMyLDkgQEAgZ3JhbnRfdXNlcjoKICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBjaGFyICpidWZmPSAKICAgICAgICAgICAgICAgICAgKGNoYXIgKikgWVlUSEQtPmFs bG9jKFNDUkFNQkxFRF9QQVNTV09SRF9DSEFSX0xFTkdUSF8zMjMrMSk7Ci0gICAgICAgICAgICAg ICBpZiAoYnVmZikKLSAgICAgICAgICAgICAgICAgbWFrZV9zY3JhbWJsZWRfcGFzc3dvcmRfMzIz KGJ1ZmYsICQ0LnN0cik7CisgICAgICAgICAgICAgICBpZiAoYnVmZiA9PSBOVUxMKQorICAgICAg ICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgICAgICAgbWFrZV9zY3JhbWJsZWRf cGFzc3dvcmRfMzIzKGJ1ZmYsICQ0LnN0cik7CiAgICAgICAgICAgICAgICAkMS0+cGFzc3dvcmQu c3RyPSBidWZmOwogICAgICAgICAgICAgICAgJDEtPnBhc3N3b3JkLmxlbmd0aD0gU0NSQU1CTEVE X1BBU1NXT1JEX0NIQVJfTEVOR1RIXzMyMzsKICAgICAgICAgICAgICB9CkBAIC05MzQzLDggKzEw NDQyLDkgQEAgZ3JhbnRfdXNlcjoKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjaGFy ICpidWZmPSAKICAgICAgICAgICAgICAgICAgKGNoYXIgKikgWVlUSEQtPmFsbG9jKFNDUkFNQkxF RF9QQVNTV09SRF9DSEFSX0xFTkdUSCsxKTsKLSAgICAgICAgICAgICAgIGlmIChidWZmKQotICAg ICAgICAgICAgICAgICBtYWtlX3NjcmFtYmxlZF9wYXNzd29yZChidWZmLCAkNC5zdHIpOworICAg ICAgICAgICAgICAgaWYgKGJ1ZmYgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgTVlTUUxfWVlB Qk9SVDsKKyAgICAgICAgICAgICAgIG1ha2Vfc2NyYW1ibGVkX3Bhc3N3b3JkKGJ1ZmYsICQ0LnN0 cik7CiAgICAgICAgICAgICAgICAkMS0+cGFzc3dvcmQuc3RyPSBidWZmOwogICAgICAgICAgICAg ICAgJDEtPnBhc3N3b3JkLmxlbmd0aD0gU0NSQU1CTEVEX1BBU1NXT1JEX0NIQVJfTEVOR1RIOwog ICAgICAgICAgICAgIH0KQEAgLTkzNzMsNiArMTA0NzMsOCBAQCBjb2x1bW5fbGlzdF9pZDoKIAlp ZGVudAogCXsKIAkgIFN0cmluZyAqbmV3X3N0ciA9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBTdHJp bmcoKGNvbnN0IGNoYXIqKSAkMS5zdHIsJDEubGVuZ3RoLHN5c3RlbV9jaGFyc2V0X2luZm8pOwor ICAgICAgICAgIGlmIChuZXdfc3RyID09IE5VTEwpCisgICAgICAgICAgICBNWVNRTF9ZWUFCT1JU OwogCSAgTGlzdF9pdGVyYXRvciA8TEVYX0NPTFVNTj4gaXRlcihMZXgtPmNvbHVtbnMpOwogCSAg Y2xhc3MgTEVYX0NPTFVNTiAqcG9pbnQ7CiAJICBMRVggKmxleD1MZXg7CkBAIC05Mzg2LDcgKzEw NDg4LDEyIEBAIGNvbHVtbl9saXN0X2lkOgogCSAgaWYgKHBvaW50KQogCSAgICBwb2ludC0+cmln aHRzIHw9IGxleC0+d2hpY2hfY29sdW1uczsKIAkgIGVsc2UKLQkgICAgbGV4LT5jb2x1bW5zLnB1 c2hfYmFjayhuZXcgTEVYX0NPTFVNTiAoKm5ld19zdHIsbGV4LT53aGljaF9jb2x1bW5zKSk7Cisg ICAgICAgICAgeworICAgICAgICAgICAgTEVYX0NPTFVNTiAqY29sPSBuZXcgTEVYX0NPTFVNTiAo Km5ld19zdHIsbGV4LT53aGljaF9jb2x1bW5zKTsKKyAgICAgICAgICAgIGlmIChjb2wgPT0gTlVM TCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKwkgICAgbGV4LT5jb2x1bW5zLnB1c2hf YmFjayhjb2wpOworICAgICAgICAgIH0KIAl9CiAgICAgICAgIDsKIApAQCAtOTgwMCwxMyArMTA5 MDcsMTcgQEAgdmlld19saXN0X29wdDoKIHZpZXdfbGlzdDoKIAlpZGVudCAKIAkgIHsKLQkgICAg TGV4LT52aWV3X2xpc3QucHVzaF9iYWNrKChMRVhfU1RSSU5HKikKLQkJCQkgICAgIHNxbF9tZW1k dXAoJiQxLCBzaXplb2YoTEVYX1NUUklORykpKTsKKyAgICAgICAgICAgIExFWF9TVFJJTkcgKmxz PSAoTEVYX1NUUklORyopIHNxbF9tZW1kdXAoJiQxLCBzaXplb2YoTEVYX1NUUklORykpOworICAg ICAgICAgICAgaWYgKGxzID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisJ ICAgIExleC0+dmlld19saXN0LnB1c2hfYmFjayhscyk7CiAJICB9CiAJfCB2aWV3X2xpc3QgJywn IGlkZW50CiAJICB7Ci0JICAgIExleC0+dmlld19saXN0LnB1c2hfYmFjaygoTEVYX1NUUklORyop Ci0JCQkJICAgICBzcWxfbWVtZHVwKCYkMywgc2l6ZW9mKExFWF9TVFJJTkcpKSk7CisgICAgICAg ICAgICBMRVhfU1RSSU5HICpscz0gKExFWF9TVFJJTkcqKSBzcWxfbWVtZHVwKCYkMywgc2l6ZW9m KExFWF9TVFJJTkcpKTsKKyAgICAgICAgICAgIGlmIChscyA9PSBOVUxMKQorICAgICAgICAgICAg ICBNWVNRTF9ZWUFCT1JUOworCSAgICBMZXgtPnZpZXdfbGlzdC5wdXNoX2JhY2sobHMpOwogCSAg fQogCTsKIApAQCAtOTk3OSw2ICsxMTA5MCw4IEBAIHNmX3RhaWw6CiAKIAkgICAgLyogT3JkZXIg aXMgaW1wb3J0YW50IGhlcmU6IG5ldyAtIHJlc2V0IC0gaW5pdCAqLwogCSAgICBzcD0gbmV3IHNw X2hlYWQoKTsKKyAgICAgICAgICAgIGlmIChzcCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNR TF9ZWUFCT1JUOwogCSAgICBzcC0+cmVzZXRfdGhkX21lbV9yb290KHRoZCk7CiAJICAgIHNwLT5p bml0KGxleCk7CiAgICAgICAgICAgICBzcC0+aW5pdF9zcF9uYW1lKHRoZCwgbGV4LT5zcG5hbWUp OwoKPT09IG1vZGlmaWVkIGZpbGUgJ3NxbC90aHJfbWFsbG9jLmNjJwotLS0gYS9zcWwvdGhyX21h bGxvYy5jYwkyMDA2LTEyLTMxIDAwOjAyOjI3ICswMDAwCisrKyBiL3NxbC90aHJfbWFsbG9jLmNj CTIwMDgtMDgtMTEgMTY6MTA6MDAgKzAwMDAKQEAgLTIxLDEwICsyMSwzNSBAQAogZXh0ZXJuICJD IiB7CiAgIHZvaWQgc3FsX2FsbG9jX2Vycm9yX2hhbmRsZXIodm9pZCkKICAgewotICAgIFRIRCAq dGhkPWN1cnJlbnRfdGhkOwotICAgIGlmICh0aGQpCQkJCQkvLyBRUTsgIFRvIGJlIHJlbW92ZWQK LSAgICAgIHRoZC0+ZmF0YWxfZXJyb3IoKTsJCQkvKiBwdXJlY292OiBpbnNwZWN0ZWQgKi8KICAg ICBzcWxfcHJpbnRfZXJyb3IoRVIoRVJfT1VUX09GX1JFU09VUkNFUykpOworCisgICAgVEhEICp0 aGQ9Y3VycmVudF90aGQ7CisgICAgaWYgKHRoZCkKKyAgICB7CisgICAgICAvKgorICAgICAgICBU aGlzIHRocmVhZCBpcyBPdXQgT2YgTWVtb3J5LgorICAgICAgICBBbiBPT00gY29uZGl0aW9uIGlz IGEgZmF0YWwgZXJyb3IuCisgICAgICAgIEl0IHNob3VsZCBub3QgYmUgY2F1Z2h0IGJ5IGVycm9y IGhhbmRsZXJzIGluIHN0b3JlZCBwcm9jZWR1cmVzLgorICAgICAgICBBbHNvLCByZWNvcmRpbmcg dGhhdCBTUUwgY29uZGl0aW9uIGluIHRoZSBjb25kaXRpb24gYXJlYSBjb3VsZAorICAgICAgICBj YXVzZSBtb3JlIG1lbW9yeSBhbGxvY2F0aW9ucywgd2hpY2ggaW4gdHVybiBjb3VsZCByYWlzZSBt b3JlCisgICAgICAgIE9PTSBjb25kaXRpb25zLCBjYXVzaW5nIHJlY3Vyc2lvbiBpbiB0aGUgZXJy b3IgaGFuZGxpbmcgY29kZSBpdHNlbGYuCisgICAgICAgIEFzIGEgcmVzdWx0LCBteV9lcnJvcigp IHNob3VsZCBub3QgYmUgaW52b2tlZCwgYW5kIHRoZQorICAgICAgICB0aHJlYWQgZGlhZ25vc3Rp Y3MgYXJlYSBpcyBzZXQgdG8gYW4gZXJyb3Igc3RhdHVzIGRpcmVjdGx5LgorICAgICAgICBUaGUg dmlzaWJsZSByZXN1bHQgZm9yIGEgY2xpZW50IGFwcGxpY2F0aW9uIHdpbGwgYmU6CisgICAgICAg IC0gYSBxdWVyeSBmYWlscyB3aXRoIGFuIEVSX09VVF9PRl9SRVNPVVJDRVMgZXJyb3IsCisgICAg ICAgIHJldHVybmVkIGluIHRoZSBlcnJvciBwYWNrZXQuCisgICAgICAgIC0gU0hPVyBFUlJPUi9T SE9XIFdBUk5JTkdTIG1heSBiZSBlbXB0eS4KKyAgICAgICovCisKKyAgICAgIE5FVCAqbmV0PSAm dGhkLT5uZXQ7CisgICAgICB0aGQtPmZhdGFsX2Vycm9yKCk7CisgICAgICBpZiAoIW5ldC0+bGFz dF9lcnJvclswXSkgICAgICAgICAgICAgICAgICAvLyBSZXR1cm4gb25seSBmaXJzdCBtZXNzYWdl CisgICAgICB7CisgICAgICAgIHN0cm1ha2UobmV0LT5sYXN0X2Vycm9yLCBFUihFUl9PVVRfT0Zf UkVTT1VSQ0VTKSwKKyAgICAgICAgICAgICAgICBzaXplb2YobmV0LT5sYXN0X2Vycm9yKS0xKTsK KyAgICAgICAgbmV0LT5sYXN0X2Vycm5vPSBFUl9PVVRfT0ZfUkVTT1VSQ0VTOworICAgICAgfQor ICAgIH0KICAgfQogfQogCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3VwcG9ydC1maWxlcy9idWlsZC10 YWdzJwotLS0gYS9zdXBwb3J0LWZpbGVzL2J1aWxkLXRhZ3MJMjAwMi0wMS0yMCAwMjoxNjo1MiAr MDAwMAorKysgYi9zdXBwb3J0LWZpbGVzL2J1aWxkLXRhZ3MJMjAwOC0wOC0wNiAyMDoyNToyNSAr MDAwMApAQCAtMiw4ICsyLDExIEBACiAKIHJtIC1mIFRBR1MKIGZpbHRlcj0nXC5jYyRcfFwuYyRc fFwuaCRcfFwueXkkJwotZmlsZXM9YGJrIC1yIHNmaWxlcyAtZ1UgfCBncmVwICRmaWx0ZXIgYAot Zm9yIGYgaW4gJGZpbGVzIDsKKworbGlzdD0iZmluZCAuIC10eXBlIGYiCitienIgcm9vdCA+L2Rl di9udWxsIDI+L2Rldi9udWxsICYmIGxpc3Q9ImJ6ciBscyAtLWtpbmQ9ZmlsZSAtLXZlcnNpb25l ZCIKKworJGxpc3QgfGdyZXAgJGZpbHRlciB8d2hpbGUgcmVhZCBmOyAKIGRvCiAJIGV0YWdzIC1v IFRBR1MgLS1hcHBlbmQgJGYKIGRvbmUKCj09PSBtb2RpZmllZCBmaWxlICd0ZXN0cy9teXNxbF9j bGllbnRfdGVzdC5jJwotLS0gYS90ZXN0cy9teXNxbF9jbGllbnRfdGVzdC5jCTIwMDgtMDUtMjcg MTE6MzM6MDggKzAwMDAKKysrIGIvdGVzdHMvbXlzcWxfY2xpZW50X3Rlc3QuYwkyMDA4LTA4LTEx IDIzOjI3OjA5ICswMDAwCkBAIC0xNjE4OSw2ICsxNjE4OSwzOCBAQCBzdGF0aWMgdm9pZCB0ZXN0 X2J1ZzMyMjY1KCkKICAgREJVR19WT0lEX1JFVFVSTjsKIH0KIAorCisvKioKKyAgQnVnIzM4NDg2 IENyYXNoIHdoZW4gdXNpbmcgY3Vyc29yIHByb3RvY29sCisqLworCitzdGF0aWMgdm9pZCB0ZXN0 X2J1ZzM4NDg2KHZvaWQpCit7CisgIE1ZU1FMX1NUTVQgKnN0bXQ7CisgIGNvbnN0IGNoYXIgKnN0 bXRfdGV4dDsKKyAgdW5zaWduZWQgbG9uZyB0eXBlPSBDVVJTT1JfVFlQRV9SRUFEX09OTFk7CisK KyAgREJVR19FTlRFUigidGVzdF9idWczODQ4NiIpOworICBteWhlYWRlcigidGVzdF9idWczODQ4 NiIpOworCisgIHN0bXQ9IG15c3FsX3N0bXRfaW5pdChteXNxbCk7CisgIG15c3FsX3N0bXRfYXR0 cl9zZXQoc3RtdCwgU1RNVF9BVFRSX0NVUlNPUl9UWVBFLCAodm9pZCopJnR5cGUpOworICBzdG10 X3RleHQ9ICJDUkVBVEUgVEFCTEUgdDEgKGEgSU5UKSI7CisgIG15c3FsX3N0bXRfcHJlcGFyZShz dG10LCBzdG10X3RleHQsIHN0cmxlbihzdG10X3RleHQpKTsKKyAgbXlzcWxfc3RtdF9leGVjdXRl KHN0bXQpOworICBteXNxbF9zdG10X2Nsb3NlKHN0bXQpOworCisgIHN0bXQ9IG15c3FsX3N0bXRf aW5pdChteXNxbCk7CisgIG15c3FsX3N0bXRfYXR0cl9zZXQoc3RtdCwgU1RNVF9BVFRSX0NVUlNP Ul9UWVBFLCAodm9pZCopJnR5cGUpOworICBzdG10X3RleHQ9ICJJTlNFUlQgSU5UTyB0MSBWQUxV RVMgKDEpIjsKKyAgbXlzcWxfc3RtdF9wcmVwYXJlKHN0bXQsIHN0bXRfdGV4dCwgc3RybGVuKHN0 bXRfdGV4dCkpOworICBteXNxbF9zdG10X2V4ZWN1dGUoc3RtdCk7CisgIG15c3FsX3N0bXRfY2xv c2Uoc3RtdCk7CisKKyAgREJVR19WT0lEX1JFVFVSTjsKK30KKworCiAvKgogICBSZWFkIGFuZCBw YXJzZSBhcmd1bWVudHMgYW5kIE15U1FMIG9wdGlvbnMgZnJvbSBteS5jbmYKICovCkBAIC0xNjQ4 Myw2ICsxNjUxNSw3IEBAIHN0YXRpYyBzdHJ1Y3QgbXlfdGVzdHNfc3QgbXlfdGVzdHNbXT0gewog ICB7ICJ0ZXN0X2J1ZzI5MzA2IiwgdGVzdF9idWcyOTMwNiB9LAogICB7ICJ0ZXN0X2J1ZzMxNjY5 IiwgdGVzdF9idWczMTY2OSB9LAogICB7ICJ0ZXN0X2J1ZzMyMjY1IiwgdGVzdF9idWczMjI2NSB9 LAorICB7ICJ0ZXN0X2J1ZzM4NDg2IiwgdGVzdF9idWczODQ4NiB9LAogICB7IDAsIDAgfQogfTsK IAoK