From: magnus.blaudd Date: September 27 2011 9:28am Subject: bzr push into mysql-trunk branch (magnus.blaudd:3435) List-Archive: http://lists.mysql.com/commits/141157 Message-Id: <201109270929.p8R9T2KB020857@acsmt357.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDM0MzUgbWFnbnVzLmJsYXVkZEBvcmFjbGUuY29tCTIwMTEtMDktMjcgW21lcmdlXQogICAgICBN ZXJnZQoKICAgIGFkZGVkOgogICAgICBzdG9yYWdlL25kYi9jb21waWxlLWNsdXN0ZXIKPT09IG1v ZGlmaWVkIGZpbGUgJ2NsaWVudC9teXNxbF9wbHVnaW4uYycKLS0tIGEvY2xpZW50L215c3FsX3Bs dWdpbi5jCTIwMTEtMDgtMTEgMTY6NDg6MDAgKzAwMDAKKysrIGIvY2xpZW50L215c3FsX3BsdWdp bi5jCTIwMTEtMDktMjMgMTA6NTU6MTAgKzAwMDAKQEAgLTg0NiwxMiArODQ2LDE5IEBAIHN0YXRp YyBpbnQgcHJvY2Vzc19vcHRpb25zKGludCBhcmdjLCBjaGEKICAgewogICAgIGk9IChpbnQpc3Ry bGVuZ3RoKG9wdF9iYXNlZGlyKTsKICAgICBpZiAob3B0X2Jhc2VkaXJbaS0xXSAhPSBGTl9MSUJD SEFSIHx8IG9wdF9iYXNlZGlyW2ktMV0gIT0gRk5fTElCQ0hBUjIpCisgICAgeworICAgICAgY2hh ciBidWZmW0ZOX1JFRkxFTl07CisgICAgICAKKyAgICAgIHN0cm5jcHkoYnVmZiwgb3B0X2Jhc2Vk aXIsIHNpemVvZihidWZmKSAtIDEpOwogI2lmZGVmIF9fV0lOX18KLSAgICAgIGlmIChvcHRfYmFz ZWRpcltpLTFdICE9ICcvJykKLSAgICAgICAgc3RyY2F0KG9wdF9iYXNlZGlyLCAiLy8iKTsKKyAg ICAgIHN0cm5jYXQoYnVmZiwgIi8iLCBzaXplb2YoYnVmZikgLSBzdHJsZW4oYnVmZikgLSAxKTsK ICNlbHNlCi0gICAgICBzdHJjYXQob3B0X2Jhc2VkaXIsIEZOX0RJUlNFUCk7CisgICAgICBzdHJu Y2F0KGJ1ZmYsIEZOX0RJUlNFUCwgc2l6ZW9mKGJ1ZmYpIC0gc3RybGVuKGJ1ZmYpIC0gMSk7CiAj ZW5kaWYKKyAgICAgIGJ1ZmZbc2l6ZW9mKGJ1ZmYpIC0gMV09IDA7CisgICAgICBteV9kZWxldGUo b3B0X2Jhc2VkaXIsIE1ZRigwKSk7CisgICAgICBvcHRfYmFzZWRpcj0gbXlfc3RyZHVwKGJ1ZmYs IE1ZRihNWV9GQUUpKTsKKyAgICB9CiAgIH0KICAgCiAgIC8qCkBAIC0xMTU3LDEwICsxMTY0LDEz IEBAIHN0YXRpYyBpbnQgYm9vdHN0cmFwX3NlcnZlcihjaGFyICpzZXJ2ZXIKIAogI2lmZGVmIF9f V0lOX18KICAgY2hhciAqZm9ybWF0X3N0cj0gMDsKLSAgY2hhciAqdmVyYm9zZV9zdHI9ICIiOwor ICBjb25zdCBjaGFyICp2ZXJib3NlX3N0cj0gTlVMTDsKKyAgIAogICAKICAgaWYgKG9wdF92ZXJi b3NlKQotICAgIHN0cmNhdCh2ZXJib3NlX3N0ciwgIi0tY29uc29sZSIpOworICAgIHZlcmJvc2Vf c3RyPSAiLS1jb25zb2xlIjsKKyAgZWxzZQorICAgIHZlcmJvc2Vfc3RyPSAiIjsKICAgaWYgKGhh c19zcGFjZXMob3B0X2RhdGFkaXIpIHx8IGhhc19zcGFjZXMob3B0X2Jhc2VkaXIpIHx8CiAgICAg ICBoYXNfc3BhY2VzKGJvb3RzdHJhcF9maWxlKSkKICAgICBmb3JtYXRfc3RyPSAiXCIlcyAlcyAt LWJvb3RzdHJhcCAtLWRhdGFkaXI9JXMgLS1iYXNlZGlyPSVzIDwgJXNcIiI7Cgo9PT0gbW9kaWZp ZWQgZmlsZSAnY21ha2UvcGx1Z2luLmNtYWtlJwotLS0gYS9jbWFrZS9wbHVnaW4uY21ha2UJMjAx MS0wNi0xMCAxNDoxMjozOCArMDAwMAorKysgYi9jbWFrZS9wbHVnaW4uY21ha2UJMjAxMS0wOS0y MSAxMTowMTo0MSArMDAwMApAQCAtMTk2LDYgKzE5NiwxMCBAQCBNQUNSTyhNWVNRTF9BRERfUExV R0lOKQogICAgICMgSW5zdGFsbCBkeW5hbWljIGxpYnJhcnkKICAgICBNWVNRTF9JTlNUQUxMX1RB UkdFVFMoJHt0YXJnZXR9IERFU1RJTkFUSU9OICR7SU5TVEFMTF9QTFVHSU5ESVJ9IENPTVBPTkVO VCBTZXJ2ZXIpCiAgICAgSU5TVEFMTF9ERUJVR19UQVJHRVQoJHt0YXJnZXR9IERFU1RJTkFUSU9O ICR7SU5TVEFMTF9QTFVHSU5ESVJ9L2RlYnVnKQorICAgICMgQWRkIGluc3RhbGxlZCBmaWxlcyB0 byBsaXN0IGZvciBSUE1zCisgICAgRklMRShBUFBFTkQgJHtDTUFLRV9CSU5BUllfRElSfS9zdXBw b3J0LWZpbGVzL3BsdWdpbnMuZmlsZXMKKyAgICAgICAgICAgICIlYXR0cig3NTUsIHJvb3QsIHJv b3QpICV7X3ByZWZpeH0vJHtJTlNUQUxMX1BMVUdJTkRJUn0vJHtBUkdfTU9EVUxFX09VVFBVVF9O QU1FfS5zb1xuIgorICAgICAgICAgICAgIiVhdHRyKDc1NSwgcm9vdCwgcm9vdCkgJXtfcHJlZml4 fS8ke0lOU1RBTExfUExVR0lORElSfS9kZWJ1Zy8ke0FSR19NT0RVTEVfT1VUUFVUX05BTUV9LnNv XG4iKQogICAgICMgRm9yIGludGVybmFsIHRlc3RpbmcgaW4gUEIyLCBhcHBlbmQgY29sbGVjdGlv bnMgZmlsZXMKICAgICBJRihERUZJTkVEIEVOVntQQjJXT1JLRElSfSkKICAgICAgIFBMVUdJTl9B UFBFTkRfQ09MTEVDVElPTlMoJHtwbHVnaW59KQoKPT09IG1vZGlmaWVkIGZpbGUgJ2luY2x1ZGUv bXlzcWwvcGx1Z2luLmgnCi0tLSBhL2luY2x1ZGUvbXlzcWwvcGx1Z2luLmgJMjAxMS0wNy0xOSAx NToxMToxNSArMDAwMAorKysgYi9pbmNsdWRlL215c3FsL3BsdWdpbi5oCTIwMTEtMDktMjEgMTE6 MDE6NDEgKzAwMDAKQEAgLTczLDcgKzczLDcgQEAgdHlwZWRlZiBzdHJ1Y3Qgc3RfbXlzcWxfeGlk IE1ZU1FMX1hJRDsKICAgUGx1Z2luIEFQSS4gQ29tbW9uIGZvciBhbGwgcGx1Z2luIHR5cGVzLgog Ki8KIAotI2RlZmluZSBNWVNRTF9QTFVHSU5fSU5URVJGQUNFX1ZFUlNJT04gMHgwMTAyCisjZGVm aW5lIE1ZU1FMX1BMVUdJTl9JTlRFUkZBQ0VfVkVSU0lPTiAweDAxMDMKIAogLyoKICAgVGhlIGFs bG93YWJsZSB0eXBlcyBvZiBwbHVnaW5zCkBAIC0xMjIsNyArMTIyLDcgQEAgX19NWVNRTF9ERUNM QVJFX1BMVUdJTihOQU1FLCBcCiAgICAgICAgICAgICAgICAgIGJ1aWx0aW5fICMjIE5BTUUgIyMg X3NpemVvZl9zdHJ1Y3Rfc3RfcGx1Z2luLCBcCiAgICAgICAgICAgICAgICAgIGJ1aWx0aW5fICMj IE5BTUUgIyMgX3BsdWdpbikKIAotI2RlZmluZSBteXNxbF9kZWNsYXJlX3BsdWdpbl9lbmQgLHsw LDAsMCwwLDAsMCwwLDAsMCwwLDAsMH19CisjZGVmaW5lIG15c3FsX2RlY2xhcmVfcGx1Z2luX2Vu ZCAsezAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDB9fQogCiAvKioKICAgZGVjbGFyYXRpb25zIGZv ciBTSE9XIFNUQVRVUyBzdXBwb3J0IGluIHBsdWdpbnMKQEAgLTE0OSw2ICsxNDksMTQgQEAgdHlw ZWRlZiBpbnQgKCpteXNxbF9zaG93X3Zhcl9mdW5jKShNWVNRTAogCiAKIC8qCisgIENvbnN0YW50 cyBmb3IgcGx1Z2luIGZsYWdzLgorICovCisKKyNkZWZpbmUgUExVR0lOX09QVF9OT19JTlNUQUxM ICAgMVVMICAgLyogTm90IGR5bmFtaWNhbGx5IGxvYWRhYmxlICovCisjZGVmaW5lIFBMVUdJTl9P UFRfTk9fVU5JTlNUQUxMIDJVTCAgIC8qIE5vdCBkeW5hbWljYWxseSB1bmxvYWRhYmxlICovCisK KworLyoKICAgZGVjbGFyYXRpb25zIGZvciBzZXJ2ZXIgdmFyaWFibGVzIGFuZCBjb21tYW5kIGxp bmUgb3B0aW9ucwogKi8KIApAQCAtNDIwLDYgKzQyOCw3IEBAIHN0cnVjdCBzdF9teXNxbF9wbHVn aW4KICAgc3RydWN0IHN0X215c3FsX3Nob3dfdmFyICpzdGF0dXNfdmFyczsKICAgc3RydWN0IHN0 X215c3FsX3N5c192YXIgKipzeXN0ZW1fdmFyczsKICAgdm9pZCAqIF9fcmVzZXJ2ZWQxOyAgIC8q IHJlc2VydmVkIGZvciBkZXBlbmRlbmN5IGNoZWNraW5nICAgICAgICAgICAgICovCisgIHVuc2ln bmVkIGxvbmcgZmxhZ3M7ICAvKiBmbGFncyBmb3IgcGx1Z2luICovCiB9OwogCiAvKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgoKPT09IG1vZGlmaWVkIGZpbGUgJ2luY2x1ZGUvbXlzcWwvcGx1Z2luX2F1ZGl0Lmgu cHAnCi0tLSBhL2luY2x1ZGUvbXlzcWwvcGx1Z2luX2F1ZGl0LmgucHAJMjAxMS0wNy0xOSAxNTox MToxNSArMDAwMAorKysgYi9pbmNsdWRlL215c3FsL3BsdWdpbl9hdWRpdC5oLnBwCTIwMTEtMDkt MjEgMTE6MDE6NDEgKzAwMDAKQEAgLTExOCw2ICsxMTgsNyBAQCBzdHJ1Y3Qgc3RfbXlzcWxfcGx1 Z2luCiAgIHN0cnVjdCBzdF9teXNxbF9zaG93X3ZhciAqc3RhdHVzX3ZhcnM7CiAgIHN0cnVjdCBz dF9teXNxbF9zeXNfdmFyICoqc3lzdGVtX3ZhcnM7CiAgIHZvaWQgKiBfX3Jlc2VydmVkMTsKKyAg dW5zaWduZWQgbG9uZyBmbGFnczsKIH07CiAjaW5jbHVkZSAicGx1Z2luX2Z0cGFyc2VyLmgiCiAj aW5jbHVkZSAicGx1Z2luLmgiCgo9PT0gbW9kaWZpZWQgZmlsZSAnaW5jbHVkZS9teXNxbC9wbHVn aW5fYXV0aC5oLnBwJwotLS0gYS9pbmNsdWRlL215c3FsL3BsdWdpbl9hdXRoLmgucHAJMjAxMS0w Ny0xOSAxNToxMToxNSArMDAwMAorKysgYi9pbmNsdWRlL215c3FsL3BsdWdpbl9hdXRoLmgucHAJ MjAxMS0wOS0yMSAxMTowMTo0MSArMDAwMApAQCAtMTE4LDYgKzExOCw3IEBAIHN0cnVjdCBzdF9t eXNxbF9wbHVnaW4KICAgc3RydWN0IHN0X215c3FsX3Nob3dfdmFyICpzdGF0dXNfdmFyczsKICAg c3RydWN0IHN0X215c3FsX3N5c192YXIgKipzeXN0ZW1fdmFyczsKICAgdm9pZCAqIF9fcmVzZXJ2 ZWQxOworICB1bnNpZ25lZCBsb25nIGZsYWdzOwogfTsKICNpbmNsdWRlICJwbHVnaW5fZnRwYXJz ZXIuaCIKICNpbmNsdWRlICJwbHVnaW4uaCIKCj09PSBtb2RpZmllZCBmaWxlICdpbmNsdWRlL215 c3FsL3BsdWdpbl9mdHBhcnNlci5oLnBwJwotLS0gYS9pbmNsdWRlL215c3FsL3BsdWdpbl9mdHBh cnNlci5oLnBwCTIwMTEtMDctMTkgMTU6MTE6MTUgKzAwMDAKKysrIGIvaW5jbHVkZS9teXNxbC9w bHVnaW5fZnRwYXJzZXIuaC5wcAkyMDExLTA5LTIxIDExOjAxOjQxICswMDAwCkBAIC00NCw3ICs0 NCw3IEBAIHR5cGVkZWYgZW51bSBfdGhkX3dhaXRfdHlwZV9lIHsKICAgVEhEX1dBSVRfQklOTE9H PSA4LAogICBUSERfV0FJVF9HUk9VUF9DT01NSVQ9IDksCiAgIFRIRF9XQUlUX1NZTkM9IDEwLAot ICBUSERfV0FJVF9MQVNUPSAxMSAKKyAgVEhEX1dBSVRfTEFTVD0gMTEKIH0gdGhkX3dhaXRfdHlw ZTsKIGV4dGVybiBzdHJ1Y3QgdGhkX3dhaXRfc2VydmljZV9zdCB7CiAgIHZvaWQgKCp0aGRfd2Fp dF9iZWdpbl9mdW5jKSh2b2lkKiwgaW50KTsKQEAgLTExOCw2ICsxMTgsNyBAQCBzdHJ1Y3Qgc3Rf bXlzcWxfcGx1Z2luCiAgIHN0cnVjdCBzdF9teXNxbF9zaG93X3ZhciAqc3RhdHVzX3ZhcnM7CiAg IHN0cnVjdCBzdF9teXNxbF9zeXNfdmFyICoqc3lzdGVtX3ZhcnM7CiAgIHZvaWQgKiBfX3Jlc2Vy dmVkMTsKKyAgdW5zaWduZWQgbG9uZyBmbGFnczsKIH07CiAjaW5jbHVkZSAicGx1Z2luX2Z0cGFy c2VyLmgiCiBzdHJ1Y3Qgc3RfbXlzcWxfZGFlbW9uCgo9PT0gbW9kaWZpZWQgZmlsZSAnbGlibXlz cWwvYXV0aGVudGljYXRpb25fd2luL2NvbW1vbi5jYycKLS0tIGEvbGlibXlzcWwvYXV0aGVudGlj YXRpb25fd2luL2NvbW1vbi5jYwkyMDExLTA0LTI5IDIxOjUzOjQ2ICswMDAwCisrKyBiL2xpYm15 c3FsL2F1dGhlbnRpY2F0aW9uX3dpbi9jb21tb24uY2MJMjAxMS0wOS0yMSAxMTowMTo0MSArMDAw MApAQCAtMjIsNiArMjIsMjQgQEAgdGVtcGxhdGUgPD4gdm9pZCBlcnJvcl9sb2dfcHJpbnQ8ZXJy b3JfbAogdGVtcGxhdGUgPD4gdm9pZCBlcnJvcl9sb2dfcHJpbnQ8ZXJyb3JfbG9nX2xldmVsOjpX QVJOSU5HPihjb25zdCBjaGFyICpmbXQsIC4uLik7CiB0ZW1wbGF0ZSA8PiB2b2lkIGVycm9yX2xv Z19wcmludDxlcnJvcl9sb2dfbGV2ZWw6OkVSUk9SPihjb25zdCBjaGFyICpmbXQsIC4uLik7CiAK Ky8qKgorICBPcHRpb24gaW5kaWNhdGluZyBkZXNpcmVkIGxldmVsIG9mIGxvZ2dpbmcuIFZhbHVl czoKKworICAwIC0gbm8gbG9nZ2luZworICAxIC0gbG9nIG9ubHkgZXJyb3IgbWVzc2FnZXMKKyAg MiAtIGFkZGl0aW9uYWxseSBsb2cgd2FybmluZ3MKKyAgMyAtIGFkZGl0aW9uYWxseSBsb2cgaW5m byBub3RlcworICA0IC0gYWxzbyBsb2cgZGVidWcgbWVzc2FnZXMKKworICBWYWx1ZSBvZiB0aGlz IG9wdGlvbiBzaG91bGQgYmUgdGFrZW4gaW50byBhY2NvdW50IGluIHRoZSAKKyAgaW1wbGVtZW50 YXRpb24gb2YgIGVycm9yX2xvZ192cHJpbnQoKSBmdW5jdGlvbiAoc2VlIAorICBsb2dfY2xpZW50 LmNjKS4KKworICBOb3RlOiBObyBlcnJvciBvciBkZWJ1ZyBtZXNzYWdlcyBhcmUgbG9nZ2VkIGlu IHByb2R1Y3Rpb24gY29kZQorICAoc2VlIGxvZ2dpbmcgbWFjcm9zIGluIGNvbW1vbi5oKS4KKyov CitpbnQgb3B0X2F1dGhfd2luX2xvZ19sZXZlbD0gMjsKKwogCiAvKiogQ29ubmVjdGlvbiBjbGFz cyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAoK PT09IG1vZGlmaWVkIGZpbGUgJ2xpYm15c3FsL2F1dGhlbnRpY2F0aW9uX3dpbi9jb21tb24uaCcK LS0tIGEvbGlibXlzcWwvYXV0aGVudGljYXRpb25fd2luL2NvbW1vbi5oCTIwMTEtMDQtMjkgMjE6 NTM6NDYgKzAwMDAKKysrIGIvbGlibXlzcWwvYXV0aGVudGljYXRpb25fd2luL2NvbW1vbi5oCTIw MTEtMDktMjEgMTE6MDE6NDEgKzAwMDAKQEAgLTQxLDEzICs0MSwxNSBAQCBzdHJ1Y3QgZXJyb3Jf bG9nX2xldmVsCiAgIHR5cGVkZWYgZW51bSB7SU5GTywgV0FSTklORywgRVJST1J9ICB0eXBlOwog fTsKIAorZXh0ZXJuICJDIiBpbnQgb3B0X2F1dGhfd2luX2xvZ19sZXZlbDsKK3Vuc2lnbmVkIGlu dCAgZ2V0X2xvZ19sZXZlbCh2b2lkKTsKK3ZvaWQgICAgICAgICAgc2V0X2xvZ19sZXZlbCh1bnNp Z25lZCBpbnQpOworCiAKIC8qCiAgIElmIERFQlVHX0VSUk9SX0xPRyBpcyBkZWZpbmVkIHRoZW4g ZXJyb3IgbG9nZ2luZyBoYXBwZW5zIG9ubHkKICAgaW4gZGVidWctY29waWxlZCBjb2RlLiBPdGhl cndpc2UgRVJST1JfTE9HKCkgZXhwYW5kcyB0byAKLSAgZXJyb3JfbG9nX3ByaW50KCkgZXZlbiBp biBwcm9kdWN0aW9uIGNvZGUuIE5vdGUgdGhhdCBpbiBjbGllbnQKLSAgcGx1Z2luLCBlcnJvcl9s b2dfcHJpbnQoKSB3aWxsIHByaW50IG5vdGhpbmcgaWYgb3B0X2F1dGhfd2luX2NsaW5ldF9sb2cK LSAgaXMgMC4KKyAgZXJyb3JfbG9nX3ByaW50KCkgZXZlbiBpbiBwcm9kdWN0aW9uIGNvZGUuCiAK ICAgTm90ZTogTWFjcm8gRVJST1JfTE9HKCkgY2FuIHVzZSBwcmludGYtbGlrZSBmb3JtYXQgc3Ry aW5nIGxpa2UgdGhpczoKIApAQCAtNTcsOCArNTksNiBAQCBzdHJ1Y3QgZXJyb3JfbG9nX2xldmVs CiAgIHRvIGZwcmludGYoKSAoc2VlIGVycm9yX2xvZ192cHJpbnQoKSBmdW5jdGlvbikuCiAqLwog Ci1leHRlcm4gIkMiIGludCBvcHRfYXV0aF93aW5fY2xpZW50X2xvZzsKLQogI2lmIGRlZmluZWQo REVCVUdfRVJST1JfTE9HKSAmJiBkZWZpbmVkKERCVUdfT0ZGKQogI2RlZmluZSBFUlJPUl9MT0co TGV2ZWwsIE1zZykgICAgIGRvIHt9IHdoaWxlICgwKQogI2Vsc2UKQEAgLTY3LDcgKzY3LDcgQEAg ZXh0ZXJuICJDIiBpbnQgb3B0X2F1dGhfd2luX2NsaWVudF9sb2c7CiAKIAogdm9pZCBlcnJvcl9s b2dfdnByaW50KGVycm9yX2xvZ19sZXZlbDo6dHlwZSBsZXZlbCwKLSAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcmdzKTsKKyAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXJncyk7CiAKIHRlbXBsYXRlIDxlcnJvcl9s b2dfbGV2ZWw6OnR5cGUgTGV2ZWw+CiB2b2lkIGVycm9yX2xvZ19wcmludChjb25zdCBjaGFyICpm bXQsIC4uLikKQEAgLTk2LDcgKzk2LDcgQEAgY29uc3QgY2hhciogZ2V0X2xhc3RfZXJyb3JfbWVz c2FnZShFcnJvcgogCiAjZGVmaW5lIERCVUdfUFJJTlRfRE8oS2V5d29yZCwgTXNnKSBcCiAgIGRv IHsgXAotICAgIGlmICgyID4gb3B0X2F1dGhfd2luX2NsaWVudF9sb2cpIGJyZWFrOyBcCisgICAg aWYgKDQgPiBnZXRfbG9nX2xldmVsKCkpIGJyZWFrOyBcCiAgICAgZnByaW50ZihzdGRlcnIsICJ3 aW5hdXRoOiAlczogIiwgS2V5d29yZCk7IFwKICAgICBkZWJ1Z19tc2cgTXNnOyBcCiAgIH0gd2hp bGUgKDApCgo9PT0gbW9kaWZpZWQgZmlsZSAnbGlibXlzcWwvYXV0aGVudGljYXRpb25fd2luL2hh bmRzaGFrZV9jbGllbnQuY2MnCi0tLSBhL2xpYm15c3FsL2F1dGhlbnRpY2F0aW9uX3dpbi9oYW5k c2hha2VfY2xpZW50LmNjCTIwMTEtMDQtMjkgMjE6NTM6NDYgKzAwMDAKKysrIGIvbGlibXlzcWwv YXV0aGVudGljYXRpb25fd2luL2hhbmRzaGFrZV9jbGllbnQuY2MJMjAxMS0wOS0yMSAxMTowMTo0 MSArMDAwMApAQCAtMzIzLDEzICszMjMsMTMgQEAgaW50IHdpbl9hdXRoX2hhbmRzaGFrZV9jbGll bnQoTVlTUUxfUExVRwogICAgIGludCBvcHRfdmFsPSBvcHQgPyBhdG9pKG9wdCkgOiAwOwogICAg IGlmIChvcHQgJiYgIW9wdF92YWwpCiAgICAgewotICAgICAgaWYgKCFzdHJuY2FzZWNtcCgib24i LCBvcHQsIDIpKSAgICBvcHRfdmFsPSAxOwotICAgICAgaWYgKCFzdHJuY2FzZWNtcCgieWVzIiwg b3B0LCAzKSkgICBvcHRfdmFsPSAxOwotICAgICAgaWYgKCFzdHJuY2FzZWNtcCgidHJ1ZSIsIG9w dCwgNCkpICBvcHRfdmFsPSAxOwotICAgICAgaWYgKCFzdHJuY2FzZWNtcCgiZGVidWciLCBvcHQs IDUpKSBvcHRfdmFsPSAyOwotICAgICAgaWYgKCFzdHJuY2FzZWNtcCgiZGJ1ZyIsIG9wdCwgNCkp ICBvcHRfdmFsPSAyOworICAgICAgaWYgKCFzdHJuY2FzZWNtcCgib24iLCBvcHQsIDIpKSAgICBv cHRfdmFsPSAyOworICAgICAgaWYgKCFzdHJuY2FzZWNtcCgieWVzIiwgb3B0LCAzKSkgICBvcHRf dmFsPSAyOworICAgICAgaWYgKCFzdHJuY2FzZWNtcCgidHJ1ZSIsIG9wdCwgNCkpICBvcHRfdmFs PSAyOworICAgICAgaWYgKCFzdHJuY2FzZWNtcCgiZGVidWciLCBvcHQsIDUpKSBvcHRfdmFsPSA0 OworICAgICAgaWYgKCFzdHJuY2FzZWNtcCgiZGJ1ZyIsIG9wdCwgNCkpICBvcHRfdmFsPSA0Owog ICAgIH0KLSAgICBvcHRfYXV0aF93aW5fY2xpZW50X2xvZz0gb3B0X3ZhbDsKKyAgICBzZXRfbG9n X2xldmVsKG9wdF92YWwpOwogICB9CiAKICAgRVJST1JfTE9HKElORk8sICgiQXV0aGVudGljYXRp b24gaGFuZHNoYWtlIGZvciBhY2NvdW50ICVzIiwgbXlzcWwtPnVzZXIpKTsKCj09PSBtb2RpZmll ZCBmaWxlICdsaWJteXNxbC9hdXRoZW50aWNhdGlvbl93aW4vbG9nX2NsaWVudC5jYycKLS0tIGEv bGlibXlzcWwvYXV0aGVudGljYXRpb25fd2luL2xvZ19jbGllbnQuY2MJMjAxMS0wNC0yOSAyMTo1 Mzo0NiArMDAwMAorKysgYi9saWJteXNxbC9hdXRoZW50aWNhdGlvbl93aW4vbG9nX2NsaWVudC5j YwkyMDExLTA5LTIxIDExOjAxOjQxICswMDAwCkBAIC0xNiwzNiArMTYsMzIgQEAKICNpbmNsdWRl IDxteV9nbG9iYWwuaD4KICNpbmNsdWRlICJjb21tb24uaCIKIAotLyoqCi0gIFRoaXMgb3B0aW9u IGlzIHNldCBpbiB3aW5fYXV0aF9oYW5kc2hha2VfY2xpZW50KCkgZnVuY3Rpb24gCi0gIGluIGhh bmRzaGFrZV9jbGllbnQuY2MuCi0KLSAgVmFsdWVzOgotICAwIC0gbm8gbG9nZ2luZwotICAxIC0g bG9nIGVycm9yL3dhcm5pbmcvaW5mbyBtZXNzYWdlcwotICAyIC0gYWxzbyBsb2cgZGVidWcgbWVz c2FnZXMKLQotICBOb3RlOiBObyBlcnJvciBvciBkZWJ1ZyBtZXNzYWdlcyBhcmUgbG9nZ2VkIGlu IHByb2R1Y3Rpb24gY29kZQotICAoc2VlIGxvZ2dpbmcgbWFjcm9zIGluIGNvbW1vbi5oKS4KLSov Ci1pbnQgb3B0X2F1dGhfd2luX2NsaWVudF9sb2c9IDA7Ci0KIAogLy8gQ2xpZW50LXNpZGUgbG9n Z2luZyBmdW5jdGlvbgogCiB2b2lkIGVycm9yX2xvZ192cHJpbnQoZXJyb3JfbG9nX2xldmVsOjp0 eXBlIGxldmVsLAogICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZm10LCB2YV9s aXN0IGFyZ3MpCiB7Ci0gIGlmICgwID09IG9wdF9hdXRoX3dpbl9jbGllbnRfbG9nKQotICAgIHJl dHVybjsKLQogICBjb25zdCBjaGFyICpsZXZlbF9zdHJpbmc9ICIiOworICBpbnQgICBsb2dfbGV2 ZWw9IGdldF9sb2dfbGV2ZWwoKTsKIAogICBzd2l0Y2ggKGxldmVsKQogICB7Ci0gIGNhc2UgZXJy b3JfbG9nX2xldmVsOjpJTkZPOiAgICBsZXZlbF9zdHJpbmc9ICJOb3RlIjsgYnJlYWs7Ci0gIGNh c2UgZXJyb3JfbG9nX2xldmVsOjpXQVJOSU5HOiBsZXZlbF9zdHJpbmc9ICJXYXJuaW5nIjsgYnJl YWs7Ci0gIGNhc2UgZXJyb3JfbG9nX2xldmVsOjpFUlJPUjogICBsZXZlbF9zdHJpbmc9ICJFUlJP UiI7IGJyZWFrOworICBjYXNlIGVycm9yX2xvZ19sZXZlbDo6SU5GTzogICAgCisgICAgaWYgKDMg PiBsb2dfbGV2ZWwpCisgICAgICByZXR1cm47CisgICAgbGV2ZWxfc3RyaW5nPSAiTm90ZSI7IAor ICAgIGJyZWFrOworICBjYXNlIGVycm9yX2xvZ19sZXZlbDo6V0FSTklORzogCisgICAgaWYgKDIg PiBsb2dfbGV2ZWwpCisgICAgICByZXR1cm47CisgICAgbGV2ZWxfc3RyaW5nPSAiV2FybmluZyI7 IAorICAgIGJyZWFrOworICBjYXNlIGVycm9yX2xvZ19sZXZlbDo6RVJST1I6ICAgCisgICAgaWYg KDEgPiBsb2dfbGV2ZWwpCisgICAgICByZXR1cm47CisgICAgbGV2ZWxfc3RyaW5nPSAiRVJST1Ii OworICAgIGJyZWFrOwogICB9CiAKICAgZnByaW50ZihzdGRlcnIsICJXaW5kb3dzIEF1dGhlbnRp Y2F0aW9uIFBsdWdpbiAlczogIiwgbGV2ZWxfc3RyaW5nKTsKQEAgLTUzLDMgKzQ5LDE3IEBAIHZv aWQgZXJyb3JfbG9nX3ZwcmludChlcnJvcl9sb2dfbGV2ZWw6OnQKICAgZnB1dGMoJ1xuJywgc3Rk ZXJyKTsKICAgZmZsdXNoKHN0ZGVycik7CiB9CisKKworLy8gVHJpdmlhbCBpbXBsZW1lbnRhdGlv biBvZiBsb2ctbGV2ZWwgc2V0dGluZyBzdG9yYWdlLgorCit2b2lkIHNldF9sb2dfbGV2ZWwodW5z aWduZWQgaW50IGxldmVsKQoreworICBvcHRfYXV0aF93aW5fbG9nX2xldmVsPSBsZXZlbDsKK30K KworCit1bnNpZ25lZCBpbnQgIGdldF9sb2dfbGV2ZWwodm9pZCkKK3sKKyAgcmV0dXJuIG9wdF9h dXRoX3dpbl9sb2dfbGV2ZWw7Cit9Cgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9jb2xs ZWN0aW9ucy9kZWZhdWx0LmV4cGVyaW1lbnRhbCcKLS0tIGEvbXlzcWwtdGVzdC9jb2xsZWN0aW9u cy9kZWZhdWx0LmV4cGVyaW1lbnRhbAkyMDExLTA5LTE0IDExOjIzOjQ2ICswMDAwCisrKyBiL215 c3FsLXRlc3QvY29sbGVjdGlvbnMvZGVmYXVsdC5leHBlcmltZW50YWwJMjAxMS0wOS0yMyAxOTow NjozNiArMDAwMApAQCAtMjcsNyArMjcsNiBAQCBycGwucnBsX2NoYW5nZV9tYXN0ZXJfZGJ1ZyAg ICAgICAgICAgICAgCiBycGwucnBsX2RlbGF5ZWRfc2xhdmUgICAgICAgICAgICAgICAgICAgICMg QlVHIzExNzY0NjU0IHJwbF9kZWxheWVkX3NsYXZlIGZhaWxzIHNwb3JhZGljYWxseSBpbiBwYgog cnBsLnJwbF9oZWFydGJlYXRfYmFzaWMgICAgICAgICAgICAgICAgICAjIEJVRyMxMjQwMzAwOCAy MDExLTA0LTI3IHN2ZW4gZmFpbHMgc3BvcmFkaWNhbGx5CiBycGwucnBsX2lubm9kYl9idWcyODQz MCAgICAgICAgICAgICAgICAgICMgQnVnIzExNzU0NDI1Ci1ycGwucnBsX3Jvd19pZ25vcmFibGVf ZXZlbnQgICAgICAgICAgICAgICMgU3ZlbjogQlVHIzEyNzY1NDQxCiBycGwucnBsX3Jvd19zcDAx MSAgQHNvbGFyaXMgICAgICAgICAgICAgICMgQnVnIzExNzUzOTE5IDIwMTAtMDEtMjAgYWxpayBT ZXZlcmFsIHRlc3QgY2FzZXMgZmFpbCBvbiBTb2xhcmlzIHdpdGggZXJyb3IgVGhyZWFkIHN0YWNr IG92ZXJydW4KIHJwbC5ycGxfc2Vjb25kc19iZWhpbmRfbWFzdGVyICAgICAgICAgICAgIyBCVUcj MTE3NjUxMjQgMjAxMC0xMS0yNCBsdWlzIGZhaWxzIHNwb3JhZGljYWxseSBvbiBwYjIKIHJwbC5y cGxfc2hvd19zbGF2ZV9ydW5uaW5nICAgICAgICAgICAgICAgIyBCVUcjMTIzNDYwNDggMjAxMS0w NC0xMSBzdmVuIGZhaWxzIHNwb3JhZGljYWxseSBvbiBwYjIKCj09PSBtb2RpZmllZCBmaWxlICdt eXNxbC10ZXN0L2luY2x1ZGUvb3JkZXJfYnkuaW5jJwotLS0gYS9teXNxbC10ZXN0L2luY2x1ZGUv b3JkZXJfYnkuaW5jCTIwMTEtMDMtMzAgMTM6MzM6MjkgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9p bmNsdWRlL29yZGVyX2J5LmluYwkyMDExLTA5LTIxIDExOjAxOjQxICswMDAwCkBAIC0xNzA2LDYg KzE3MDYsMTMgQEAgU0VMRUNUIERJU1RJTkNUIGEsMSBGUk9NIHQxIFdIRVJFIGEgPD4gMQogCiBE Uk9QIFRBQkxFIHQxOwogCistLWVjaG8gIworLS1lY2hvICMgQnVnIzExNzY1MjU1IDU4MjAxOgor LS1lY2hvICMgVkFMR1JJTkQvQ1JBU0ggV0hFTiBPUkRFUklORyBCWSBNVUxUSVBMRSBBR0dSRUdB VEUgRlVOQ1RJT05TCistLWVjaG8gIworCitzZWxlY3QgMSBvcmRlciBieSBtYXgoMSkgKyBtaW4o MSk7CisKIC0tZWNobyBFbmQgb2YgNS4xIHRlc3RzCiAKIAoKPT09IG1vZGlmaWVkIGZpbGUgJ215 c3FsLXRlc3QvbXlzcWwtdGVzdC1ydW4ucGwnCi0tLSBhL215c3FsLXRlc3QvbXlzcWwtdGVzdC1y dW4ucGwJMjAxMS0wOC0zMCAxMDo0OToyNCArMDAwMAorKysgYi9teXNxbC10ZXN0L215c3FsLXRl c3QtcnVuLnBsCTIwMTEtMDktMjMgMTA6NTU6MTAgKzAwMDAKQEAgLTQ1Miw4ICs0NTIsOSBAQCBz dWIgbWFpbiB7CiAgICMKICAgcmVhZF9wbHVnaW5fZGVmcygiaW5jbHVkZS9wbHVnaW4uZGVmcyIp OwogCi0gICMgQWxzbyByZWFkIGZyb20gYW55IHBsdWdpbiBsb2NhbCBwbHVnaW4uZGVmcwotICBm b3IgKGdsb2IgIiRiYXNlZGlyL3BsdWdpbi8qL3Rlc3RzL210ci9wbHVnaW4uZGVmcyIpIHsKKyAg IyBBbHNvIHJlYWQgZnJvbSBhbnkgcGx1Z2luIGxvY2FsIG9yIHN1aXRlIHNwZWNpZmljIHBsdWdp bi5kZWZzCisgIGZvciAoZ2xvYiAiJGJhc2VkaXIvcGx1Z2luLyovdGVzdHMvbXRyL3BsdWdpbi5k ZWZzIi4KKyAgICAgICAgICAgICIgc3VpdGUvKi9wbHVnaW4uZGVmcyIpIHsKICAgICByZWFkX3Bs dWdpbl9kZWZzKCRfKTsKICAgfQogCgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9yL2N0 eXBlX2Vycm9ycy5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvci9jdHlwZV9lcnJvcnMucmVzdWx0 CTIwMTAtMDgtMzAgMDY6Mzg6MDkgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9yL2N0eXBlX2Vycm9y cy5yZXN1bHQJMjAxMS0wOS0yMSAxMTowMTo0MSArMDAwMApAQCAtMjksNCArMjksMTQgQEAgU0VU IGxjX21lc3NhZ2VzPWNzX0NaOwogU0VUIE5BTUVTIFVURjg7CiBVU0Ugbm9uZXhpc3RhbnQ7CiBF UlJPUiA0MjAwMDogTmV6bhstQsOhbcOhIGRhdGFiw6F6ZSAnbm9uZXhpc3RhbnQnCi1FbmQgb2Yg NS40IHRlc3RzCisjCisjIEJ1ZyMxMjczNjI5NTogQnVmZmVyIG92ZXJmbG93IGZvciB2YXJpYWJs ZSBjb252ZXJ0ZWRfZXJyCisjICAgICAgICAgICAgICAgd2l0aCBub24tbGF0aW4xIHNlcnZlciBl cnJvciBtZXNzYWdlCisjCisjIENvbm5lY3Rpb24gY29uMQorU0VUIGxjX21lc3NhZ2VzPXJ1X1JV OworU0VUIE5BTUVTIGxhdGluMTsKK1NFTEVDVCAnMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2 Nzg5MDEyMzRcJzsKK0VSUk9SIDQyMDAwOiBcMDQyMyBcMDQzMlwwNDMwXDA0NDEgXDA0M0VcMDQ0 OFwwNDM4XDA0MzFcMDQzQVwwNDMwIFwwNDMyIFwwNDM3XDA0MzBcMDQzRlwwNDQwXDA0M0VcMDQ0 MVwwNDM1LiBcMDQxOFwwNDM3XDA0NDNcMDQ0N1wwNDM4XDA0NDJcMDQzNSBcMDQzNFwwNDNFXDA0 M0FcMDQ0M1wwNDNDXDA0MzVcMDQzRFwwNDQyXDA0MzBcMDQ0NlwwNDM4XDA0NEUgXDA0M0ZcMDQz RSBcMDQzOFwwNDQxXDA0M0ZcMDQzRVwwNDNCXDA0NENcMDQzN1wwNDQzXDA0MzVcMDQzQ1wwNDNF XDA0MzkgXDA0MzJcMDQzNVwwNDQwXDA0NDFcMDQzOFwwNDM4IE15U1FMIFwwNDNEXDA0MzAgXDA0 M0ZcMDQ0MFwwNDM1XDA0MzRcMDQzQ1wwNDM1XDA0NDIgXDA0M0FcMDQzRVwwNDQwXDA0NDBcMDQz NVwwNDNBXDA0NDJcMDQzRFwwNDNFXDA0MzNcMDQzRSBcMDQ0MVwwNDM4XDA0M0RcMDQ0MlwwNDMw XDA0M0FcMDQ0MVwwNDM4XDA0NDFcMDQzMCBcMDQzRVwwNDNBXDA0M0VcMDQzQlwwNDNFICcnMDEy MzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2CisjIENvbm5lY3Rpb24gZGVmYXVsdAorRW5kIG9mIDUu NSB0ZXN0cwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvci9jdHlwZV91dGYzMl91Y2Eu cmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3IvY3R5cGVfdXRmMzJfdWNhLnJlc3VsdAkyMDEwLTEx LTI2IDExOjM2OjM5ICswMDAwCisrKyBiL215c3FsLXRlc3Qvci9jdHlwZV91dGYzMl91Y2EucmVz dWx0CTIwMTEtMDktMjEgMTE6MDE6NDEgKzAwMDAKQEAgLTI4ODcsNiArMjg4NywyNiBAQCBIRVgo czEpCiAwMDAwMDA2MQogRFJPUCBUQUJMRSB0MTsKICMKKyMgQnVnICMxMjMxOTcxMCA6IElOVkFM SUQgTUVNT1JZIFJFQUQgQU5EL09SIENSQVNIIElOIAorIyAgIE1ZX1VDQV9DSEFSQ01QIFdJVEgg VVRGMzIKKyMKK1NFVCBjb2xsYXRpb25fY29ubmVjdGlvbj11dGYzMl91bmljb2RlX2NpOworQ1JF QVRFIFRBQkxFIHQxIChhIFRFWFQgQ0hBUkFDVEVSIFNFVCB1dGYzMiBDT0xMQVRFIHV0ZjMyX3R1 cmtpc2hfY2kgTk9UIE5VTEwpOworSU5TRVJUIElOVE8gdDEgVkFMVUVTICgnYScpLCAoJ2InKTsK K0NSRUFURSBUQUJMRSB0MiAoYiBWQVJCSU5BUlkoNSkgTk9UIE5VTEwpOworI2luc2VydCBjaGFy cyBvdXRzaWRlIG9mIEJNUAorSU5TRVJUIElOVE8gdDIgVkFMVUVzICgweDA4MjgzNyksKDB4MDgy ODM3KTsKKyN0ZXN0IGZvciByZWFkLW91dC1vZi1ib3VuZHMgd2l0aCBub24tQk1QIGNoYXJzIGFz IGEgTElLRSBwYXR0ZXJuCitTRUxFQ1QgKiBGUk9NIHQxLHQyIFdIRVJFIGEgTElLRSBiOworYQli CisjdGVzdCB0aGUgb3JpZ2luYWwgc3RhdGVtZW50CitTRUxFQ1QgMSBGUk9NIHQxIEFTIHQxXzAg TkFUVVJBTCBMRUZUIE9VVEVSIEpPSU4gdDIgQVMgdDJfMAorUklHSFQgSk9JTiB0MSBBUyB0MV8x IE9OIHQxXzAuYSBMSUtFIHQyXzAuYjsKKzEKKzEKKzEKK0RST1AgVEFCTEUgdDEsdDI7CisjCiAj IEVuZCBvZiA1LjUgdGVzdHMKICMKICMKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3Iv b3JkZXJfYnlfYWxsLnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9yL29yZGVyX2J5X2FsbC5yZXN1 bHQJMjAxMS0wOC0wMyAxMToyOToyMCArMDAwMAorKysgYi9teXNxbC10ZXN0L3Ivb3JkZXJfYnlf YWxsLnJlc3VsdAkyMDExLTA5LTIxIDExOjAxOjQxICswMDAwCkBAIC0yNTUwLDYgKzI1NTAsMTMg QEAgYQkxCiAzCTEKIDIJMQogRFJPUCBUQUJMRSB0MTsKKyMKKyMgQnVnIzExNzY1MjU1IDU4MjAx OgorIyBWQUxHUklORC9DUkFTSCBXSEVOIE9SREVSSU5HIEJZIE1VTFRJUExFIEFHR1JFR0FURSBG VU5DVElPTlMKKyMKK3NlbGVjdCAxIG9yZGVyIGJ5IG1heCgxKSArIG1pbigxKTsKKzEKKzEKIEVu ZCBvZiA1LjEgdGVzdHMKICMKICMgQnVnICMzODc0NTogTXlTUUwgNS4xIG9wdGltaXplciB1c2Vz IGZpbGVzb3J0IGZvciBPUkRFUiBCWQoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvci9v cmRlcl9ieV9pY3BfbXJyLnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9yL29yZGVyX2J5X2ljcF9t cnIucmVzdWx0CTIwMTEtMDgtMDMgMTE6Mjk6MjAgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9yL29y ZGVyX2J5X2ljcF9tcnIucmVzdWx0CTIwMTEtMDktMjMgMTI6MjI6NTggKzAwMDAKQEAgLTI1NTAs NiArMjU1MCwxMyBAQCBhCTEKIDMJMQogMgkxCiBEUk9QIFRBQkxFIHQxOworIworIyBCdWcjMTE3 NjUyNTUgNTgyMDE6CisjIFZBTEdSSU5EL0NSQVNIIFdIRU4gT1JERVJJTkcgQlkgTVVMVElQTEUg QUdHUkVHQVRFIEZVTkNUSU9OUworIworc2VsZWN0IDEgb3JkZXIgYnkgbWF4KDEpICsgbWluKDEp OworMQorMQogRW5kIG9mIDUuMSB0ZXN0cwogIwogIyBCdWcgIzM4NzQ1OiBNeVNRTCA1LjEgb3B0 aW1pemVyIHVzZXMgZmlsZXNvcnQgZm9yIE9SREVSIEJZCgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlz cWwtdGVzdC9yL29yZGVyX2J5X25vbmUucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3Ivb3JkZXJf Ynlfbm9uZS5yZXN1bHQJMjAxMS0wOC0wMyAxMToyOToyMCArMDAwMAorKysgYi9teXNxbC10ZXN0 L3Ivb3JkZXJfYnlfbm9uZS5yZXN1bHQJMjAxMS0wOS0yMyAxMjoyMjo1OCArMDAwMApAQCAtMjU0 OSw2ICsyNTQ5LDEzIEBAIGEJMQogMwkxCiAyCTEKIERST1AgVEFCTEUgdDE7CisjCisjIEJ1ZyMx MTc2NTI1NSA1ODIwMToKKyMgVkFMR1JJTkQvQ1JBU0ggV0hFTiBPUkRFUklORyBCWSBNVUxUSVBM RSBBR0dSRUdBVEUgRlVOQ1RJT05TCisjCitzZWxlY3QgMSBvcmRlciBieSBtYXgoMSkgKyBtaW4o MSk7CisxCisxCiBFbmQgb2YgNS4xIHRlc3RzCiAjCiAjIEJ1ZyAjMzg3NDU6IE15U1FMIDUuMSBv cHRpbWl6ZXIgdXNlcyBmaWxlc29ydCBmb3IgT1JERVIgQlkKCj09PSBtb2RpZmllZCBmaWxlICdt eXNxbC10ZXN0L3IvcGx1Z2luX2F1dGgucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3IvcGx1Z2lu X2F1dGgucmVzdWx0CTIwMTEtMDgtMTkgMTM6MjE6MDIgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9y L3BsdWdpbl9hdXRoLnJlc3VsdAkyMDExLTA5LTI2IDEwOjM0OjQ5ICswMDAwCkBAIC00OSw3ICs0 OSw3IEBAIEVSUk9SIDI4MDAwOiBBY2Nlc3MgZGVuaWVkIGZvciB1c2VyICdwbHUKICMjIHRlc3Qg Y29ycmVjdCBkZWZhdWx0IHBsdWdpbgogc2VsZWN0IFVTRVIoKSxDVVJSRU5UX1VTRVIoKTsKIFVT RVIoKQlDVVJSRU5UX1VTRVIoKQotcGx1Z0Bsb2NhbGhvc3QJcGx1Z0AlCitwbHVnQGxvY2FsaG9z dAlwbHVnX2Rlc3RAJQogIyMgdGVzdCBub19hdXRvX2NyZWF0ZV91c2VyIHNxbCBtb2RlIHdpdGgg cGx1Z2luIHVzZXJzCiBTRVQgQEBzcWxfbW9kZT1ub19hdXRvX2NyZWF0ZV91c2VyOwogR1JBTlQg SU5TRVJUIE9OIFRFU1QuKiBUTyBncmFudF91c2VyIElERU5USUZJRUQgV0lUSCAndGVzdF9wbHVn aW5fc2VydmVyJzsKQEAgLTQ4Niw5ICs0ODYsMjcgQEAgRFJPUCBVU0VSIGJ1ZzEyNjEwNzg0QGxv Y2FsaG9zdDsKICMKICMgQnVnICMgMTE3NjY2NDE6IDU5NzkyOiBCSU4vTVlTUUwgLVVVTktOT1dO IC1QVU5LTk9XTiAKICMgIC4tPiBVU0lORyBQQVNTV09SRDogTk8gCi0jCiAjIHNob3VkIGNvbnRh aW4gInVzaW5nIHBhc3N3b3JkPXllcyIKIEVSUk9SIDEwNDUgKDI4MDAwKTogQWNjZXNzIGRlbmll ZCBmb3IgdXNlciAndW5rbm93bidAJ2xvY2FsaG9zdCcgKHVzaW5nIHBhc3N3b3JkOiBZRVMpCiAj IHNob3VkIGNvbnRhaW4gInVzaW5nIHBhc3N3b3JkPW5vIgogRVJST1IgMTA0NSAoMjgwMDApOiBB Y2Nlc3MgZGVuaWVkIGZvciB1c2VyICd1bmtub3duJ0AnbG9jYWxob3N0JyAodXNpbmcgcGFzc3dv cmQ6IE5PKQorIyBCdWcgIzEyODE4NTQyOiBQQU06IEFERElORyBQQVNTV09SRCBGT1IgQU4gQUND T1VOVCBESVNBQkxFUyBQQU0gCisjICAgQVVUSEVOVElDQVRJT04gU0VUVElOR1MKKyMKK0NSRUFU RSBVU0VSIGJ1ZzEyODE4NTQyQGxvY2FsaG9zdCAKK0lERU5USUZJRUQgV0lUSCAndGVzdF9wbHVn aW5fc2VydmVyJyBBUyAnYnVnMTI4MTg1NDJfZGVzdCc7CitDUkVBVEUgVVNFUiBidWcxMjgxODU0 Ml9kZXN0QGxvY2FsaG9zdCAKK0lERU5USUZJRUQgQlkgJ2J1ZzEyODE4NTQyX2Rlc3RfcGFzc3dk JzsKK0dSQU5UIFBST1hZIE9OIGJ1ZzEyODE4NTQyX2Rlc3RAbG9jYWxob3N0IFRPIGJ1ZzEyODE4 NTQyQGxvY2FsaG9zdDsKK1NFTEVDVCBVU0VSKCksQ1VSUkVOVF9VU0VSKCk7CitVU0VSKCkJQ1VS UkVOVF9VU0VSKCkKK2J1ZzEyODE4NTQyQGxvY2FsaG9zdAlidWcxMjgxODU0Ml9kZXN0QGxvY2Fs aG9zdAorU0VUIFBBU1NXT1JEID0gUEFTU1dPUkQoJ2JydWhhaGEnKTsKK1dhcm5pbmdzOgorTm90 ZQkxNjk5CVNFVCBQQVNTV09SRCBoYXMgbm8gc2lnbmlmaWNhbmNlIGZvciB1c2VycyBhdXRoZW50 aWNhdGluZyB2aWEgcGx1Z2lucworU0VMRUNUIFVTRVIoKSxDVVJSRU5UX1VTRVIoKTsKK1VTRVIo KQlDVVJSRU5UX1VTRVIoKQorYnVnMTI4MTg1NDJAbG9jYWxob3N0CWJ1ZzEyODE4NTQyX2Rlc3RA bG9jYWxob3N0CitEUk9QIFVTRVIgYnVnMTI4MTg1NDJAbG9jYWxob3N0OworRFJPUCBVU0VSIGJ1 ZzEyODE4NTQyX2Rlc3RAbG9jYWxob3N0OwogRW5kIG9mIDUuNSB0ZXN0cwoKPT09IG1vZGlmaWVk IGZpbGUgJ215c3FsLXRlc3Qvci9zcC1lcnJvci5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvci9z cC1lcnJvci5yZXN1bHQJMjAxMS0wNy0yOCAwODozMTozNiArMDAwMAorKysgYi9teXNxbC10ZXN0 L3Ivc3AtZXJyb3IucmVzdWx0CTIwMTEtMDktMjEgMTE6MDE6NDEgKzAwMDAKQEAgLTE3MDcsNiAr MTcwNywyMiBAQCBFUlJPUiBIWTAwMDogVmlldyAndGVzdC52MScgcmVmZXJlbmNlcyBpCiBEUk9Q IFBST0NFRFVSRSBwMTsKIERST1AgVklFVyB2MTsKIERST1AgVEFCTEUgdDE7CisjCisjIEJ1ZyMx MjQyODgyNCAtIFBBUlNFUiBTVEFDSyBPVkVSRkxPVyBBTkQgQ1JBU0ggSU4gU1BfQUREX1VTRURf Uk9VVElORQorIyAgICAgICAgICAgICAgICBXSVRIIE9CU0NVUkUgUVVFUlkKKyMKK1NFTEVDVCB2 ZXJ5X2xvbmdfZm5fbmFtZV8xMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1NTU1NTU1NTU1 NTU1NTU1NTU1NTU1NTU1NTc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3 Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzg4ODg4ODg4OTk5OTk5OTk5OTk5OTk5OTk5 OTk5KCk7CitFUlJPUiA0MjAwMDogSWRlbnRpZmllciBuYW1lICd2ZXJ5X2xvbmdfZm5fbmFtZV8x MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTExMTExMjIyMjIyMjIyJyBpcyB0b28gbG9uZworQ0FMTCB2ZXJ5X2xvbmdfcHJf bmFtZV8xMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTExMTExMTExMTExMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1NTU1NTU1NTU1NTU1NTU1NTU1NTU1 NTU1NTc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3 Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzg4ODg4ODg4OTk5OTk5OTk5OTk5OTk5OTk5OTk5KCk7CitFUlJP UiA0MjAwMDogSWRlbnRpZmllciBuYW1lICd2ZXJ5X2xvbmdfcHJfbmFtZV8xMTExMTExMTExMTEx MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx MTExMjIyMjIyMjIyJyBpcyB0b28gbG9uZworU0VMRUNUIHZlcnlfbG9uZ19kYl9uYW1lXzExMTEx MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1Nzc3Nzc3 Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3 Nzc3Nzc3Nzc3ODg4ODg4ODg5OTk5OTk5OTk5OTk5OTk5OTk5OTkuc2ltcGxlX2Z1bmMoKTsKK0VS Uk9SIDQyMDAwOiBJbmNvcnJlY3QgZGF0YWJhc2UgbmFtZSAndmVyeV9sb25nX2RiX25hbWVfMTEx MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTExMTIyMjIyMjIyMicKK0NBTEwgdmVyeV9sb25nX2RiX25hbWVfMTExMTExMTEx MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyNTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU3Nzc3Nzc3Nzc3 Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3 Nzc3Nzc4ODg4ODg4ODk5OTk5OTk5OTk5OTk5OTk5OTk5OS5zaW1wbGVfcHJvYygpOworRVJST1Ig NDIwMDA6IEluY29ycmVjdCBkYXRhYmFzZSBuYW1lICd2ZXJ5X2xvbmdfZGJfbmFtZV8xMTExMTEx MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMjIyMjIyMjIyJworU0VMRUNUIGRiX25hbWUudmVyeV9sb25nX2ZuX25hbWVfMTEx MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTExMTIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyOTk5OTk5OTk5OTk5OTk5OTk5OTk5KCk7CitF UlJPUiA0MjAwMDogSWRlbnRpZmllciBuYW1lICd2ZXJ5X2xvbmdfZm5fbmFtZV8xMTExMTExMTEx MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMjIyMjIyMjIyJyBpcyB0b28gbG9uZworQ0FMTCBkYl9uYW1lLnZlcnlfbG9uZ19wcl9u YW1lXzExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTExMTExMTExMTEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjk5OTk5OTk5OTk5OTk5OTk5OTk5 OSgpOworRVJST1IgNDIwMDA6IElkZW50aWZpZXIgbmFtZSAndmVyeV9sb25nX3ByX25hbWVfMTEx MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTExMTIyMjIyMjIyMicgaXMgdG9vIGxvbmcKIEVuZCBvZiA1LjEgdGVzdHMKICMK ICMgQnVnIzIzMDMyOiBIYW5kbGVycyBkZWNsYXJlZCBpbiBhIFNQIGRvIG5vdCBoYW5kbGUgd2Fy bmluZ3MgZ2VuZXJhdGVkIGluIHN1Yi1TUAoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qv ci9zcC5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvci9zcC5yZXN1bHQJMjAxMS0wOC0wMiAwODox NDoyNiArMDAwMAorKysgYi9teXNxbC10ZXN0L3Ivc3AucmVzdWx0CTIwMTEtMDktMjEgMTE6MDE6 NDEgKzAwMDAKQEAgLTcwMjYsNiArNzAyNiwyMSBAQCBTRVQgQEBHTE9CQUwuaW5pdF9jb25uZWN0 PSBAb2xkX2luaXRfY29uCiBEUk9QIFBST0NFRFVSRSBwMjsKIERST1AgUFJPQ0VEVVJFIHA1Owog IworIyBCdWcjMTE4NDAzOTUgKGZvcm1lcmx5IGtub3duIGFzIGJ1ZyM2MDM0Nyk6CisjIFRoZSBz dHJpbmcgInZlcnNpb25kYXRhIiBzZWVtcworIyB0byBiZSAnbGVha2luZycgaW50byB0aGUgc2No ZW1hIG5hbWUgc3BhY2UKKyMKK0RST1AgREFUQUJBU0UgSUYgRVhJU1RTIG1peGVkQ2FzZURiTmFt ZTsKK0NSRUFURSBEQVRBQkFTRSBtaXhlZENhc2VEYk5hbWU7CitDUkVBVEUgUFJPQ0VEVVJFIG1p eGVkQ2FzZURiTmFtZS50cnlNeVByb2MoKSBiZWdpbiBlbmR8CitDUkVBVEUgRlVOQ1RJT04gbWl4 ZWRDYXNlRGJOYW1lLnRyeU15RnVuYygpIHJldHVybnMgdGV4dCBiZWdpbiByZXR1cm4gJ0lUIFdP UktTJzsgZW5kCit8CitjYWxsIG1peGVkQ2FzZURiTmFtZS50cnlNeVByb2MoKTsKK3NlbGVjdCBt aXhlZENhc2VEYk5hbWUudHJ5TXlGdW5jKCk7CittaXhlZENhc2VEYk5hbWUudHJ5TXlGdW5jKCkK K0lUIFdPUktTCitEUk9QIERBVEFCQVNFIG1peGVkQ2FzZURiTmFtZTsKKyMKICMgQnVnIzExNzY2 NTk0ICA1OTczNjogU0VMRUNUIERJU1RJTkNULi4gSU5DT1JSRUNUIFJFU1VMVCBXSVRIIERFVEVS TUlOSVNUSUMgRlVOQ1RJT04gSU4gV0hFUkUgQwogIwogQ1JFQVRFIFRBQkxFIHQxIChhIElOVCwg YiBJTlQsIEtFWShiKSk7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9yL3R5cGVfZmxv YXQucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3IvdHlwZV9mbG9hdC5yZXN1bHQJMjAxMC0wNC0x MSAwNjo1Mjo0MiArMDAwMAorKysgYi9teXNxbC10ZXN0L3IvdHlwZV9mbG9hdC5yZXN1bHQJMjAx MS0wNy0xOCAwODoyNzowNSArMDAwMApAQCAtNDMxLDQgKzQzMSwxOSBAQCBTRUxFQ1QgZjEgRlJP TSB0MTsKIGYxCiAtMS43OTc2OTMxMzQ4NjIzMWUzMDgKIERST1AgVEFCTEUgdDE7CisjCisjIEJ1 ZyMxMjQwNjA1NSBCVUZGRVIgT1ZFUkZMT1cgT0YgVkFSSUFCTEUgJ0JVRkYnIElOIFNUUklORzo6 U0VUX1JFQUwKKyMgCisjIElnbm9yaW5nIG91dHB1dCBmcm9tIG1pc2MuIGZsb2F0IG9wZXJhdGlv bnMKK3NlbGVjdCBmb3JtYXQoLTEuNzk3NjkzMTM0ODYyMzE1N0UrMzA3LDI1NikgYXMgZm9vOwor c2VsZWN0IGxlYXN0KC0xLjExMTExMTExMTExMTExMTExMTExMTExMTEsCistIGdyb3VwX2NvbmNh dCgxLjc5NzY5MzEzNDg2MjMxNTdFKzMwOCkpIGFzIGZvbzsKK3NlbGVjdCBjb25jYXQoKHRydW5j YXRlKCgtMS43OTc2OTMxMzQ4NjIzMTU3RSszMDcpLCgweDFlKSkpLAorKDk5OTk5OTk5OTk5OTk5 OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5KSkgaW50 byBAYTsKIEVuZCBvZiA1LjAgdGVzdHMKKyMKKyMgQnVnIzEyMzY4ODUzIEZPUk1BVCgpIENSQVNI RVMgV0lUSCBMQVJHRSBOVU1CRVJTIEFGVEVSIFRSVU5DQVRFLi4uCisjCitzZWxlY3QgZm9ybWF0 KHRydW5jYXRlKCcxLjc5NzY5MzEzNDg2MjMxNTdFKzMwOCcsLTEyKSwxLCdmcl9CRScpIGFzIGZv bzsKK2ZvbworMAoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvci91bmlvbi5yZXN1bHQn Ci0tLSBhL215c3FsLXRlc3Qvci91bmlvbi5yZXN1bHQJMjAxMS0wOC0wMyAxMToyOToyMCArMDAw MAorKysgYi9teXNxbC10ZXN0L3IvdW5pb24ucmVzdWx0CTIwMTEtMDktMjEgMTE6MDE6NDEgKzAw MDAKQEAgLTE2NDMsNiArMTY0Myw2MyBAQCBiCiAxCiAyCiBEUk9QIFRBQkxFIHQxLHQyOworIwor IyBCdWcjMTE3NjUyNTUgNTgyMDE6CisjIFZBTEdSSU5EL0NSQVNIIFdIRU4gT1JERVJJTkcgQlkg TVVMVElQTEUgQUdHUkVHQVRFIEZVTkNUSU9OUworIworc2VsZWN0IDEgYXMgZm9vCit1bmlvbgor c2VsZWN0IDIKK3VuaW9uCitzZWxlY3QgMwordW5pb24KK3NlbGVjdCA0CitvcmRlciBieSBtYXgo NDIpICsgbWF4KDEpICsgbWF4KDEpICsgbWF4KDEpICsgbWF4KDEpICsgbWF4KDEpCis7Citmb28K KzEKK3ByZXBhcmUgc3RtdDEgZnJvbSAnc2VsZWN0IDEgYXMgZm9vCit1bmlvbgorc2VsZWN0IDIK K3VuaW9uCitzZWxlY3QgMwordW5pb24KK3NlbGVjdCA0CitvcmRlciBieSBtYXgoNDIpICsgbWF4 KDEpICsgbWF4KDEpICsgbWF4KDEpICsgbWF4KDEpICsgbWF4KDEpCisnOworZXhlY3V0ZSBzdG10 MTsKK2ZvbworMQorZXhlY3V0ZSBzdG10MTsKK2ZvbworMQorc2VsZWN0IDEgYXMgZm9vCit1bmlv bgorc2VsZWN0IDIKK3VuaW9uCitzZWxlY3QgMwordW5pb24KKyhzZWxlY3QgNCkKK29yZGVyIGJ5 IG1heCg0MikgKyBtYXgoMSkgKyBtYXgoMSkgKyBtYXgoMSkgKyBtYXgoMSkgKyBtYXgoMSkKKzsK K2ZvbworMQorcHJlcGFyZSBzdG10MSBmcm9tICdzZWxlY3QgMSBhcyBmb28KK3VuaW9uCitzZWxl Y3QgMgordW5pb24KK3NlbGVjdCAzCit1bmlvbgorKHNlbGVjdCA0KQorb3JkZXIgYnkgbWF4KDQy KSArIG1heCgxKSArIG1heCgxKSArIG1heCgxKSArIG1heCgxKSArIG1heCgxKQorJzsKK2V4ZWN1 dGUgc3RtdDE7Citmb28KKzEKK2V4ZWN1dGUgc3RtdDE7Citmb28KKzEKK2RlYWxsb2NhdGUgcHJl cGFyZSBzdG10MTsKIEVuZCBvZiA1LjEgdGVzdHMKICMKICMgQnVnIzU3OTg2IE9SREVSIEJZIGNs YXVzZSBpcyBub3QgdXNlZCBhZnRlciBhIFVOSU9OLCAKCj09PSBtb2RpZmllZCBmaWxlICdteXNx bC10ZXN0L3QvY3R5cGVfZXJyb3JzLnRlc3QnCi0tLSBhL215c3FsLXRlc3QvdC9jdHlwZV9lcnJv cnMudGVzdAkyMDA5LTEwLTE1IDEyOjIzOjQzICswMDAwCisrKyBiL215c3FsLXRlc3QvdC9jdHlw ZV9lcnJvcnMudGVzdAkyMDExLTA3LTE1IDExOjA1OjMwICswMDAwCkBAIC00NCw0ICs0NCwxOSBA QCBVU0Ugbm9uZXhpc3RhbnQ7CiBkaXNjb25uZWN0IGNvbjE7CiBjb25uZWN0aW9uIGRlZmF1bHQ7 CiAKLS0tZWNobyBFbmQgb2YgNS40IHRlc3RzCistLWVjaG8gIworLS1lY2hvICMgQnVnIzEyNzM2 Mjk1OiBCdWZmZXIgb3ZlcmZsb3cgZm9yIHZhcmlhYmxlIGNvbnZlcnRlZF9lcnIKKy0tZWNobyAj ICAgICAgICAgICAgICAgd2l0aCBub24tbGF0aW4xIHNlcnZlciBlcnJvciBtZXNzYWdlCistLWVj aG8gIworCitjb25uZWN0IChjb24xLGxvY2FsaG9zdCxyb290LCx0ZXN0KTsKKy0tZWNobyAjIENv bm5lY3Rpb24gY29uMQorU0VUIGxjX21lc3NhZ2VzPXJ1X1JVOworU0VUIE5BTUVTIGxhdGluMTsK Ky0tZXJyb3IgRVJfUEFSU0VfRVJST1IKKy0tcXVlcnkgU0VMRUNUICcwMTIzNDU2Nzg5MDEyMzQ1 Njc4OTAxMjM0NTY3ODkwMTIzNFwnCitkaXNjb25uZWN0IGNvbjE7CistLWVjaG8gIyBDb25uZWN0 aW9uIGRlZmF1bHQKK2Nvbm5lY3Rpb24gZGVmYXVsdDsKKworLS1lY2hvIEVuZCBvZiA1LjUgdGVz dHMKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3QvY3R5cGVfdXRmMzJfdWNhLnRlc3Qn Ci0tLSBhL215c3FsLXRlc3QvdC9jdHlwZV91dGYzMl91Y2EudGVzdAkyMDEwLTExLTI2IDExOjM2 OjM5ICswMDAwCisrKyBiL215c3FsLXRlc3QvdC9jdHlwZV91dGYzMl91Y2EudGVzdAkyMDExLTA5 LTIxIDExOjAxOjQxICswMDAwCkBAIC0xNDgsNiArMTQ4LDI3IEBAIFNFVCBjb2xsYXRpb25fY29u bmVjdGlvbj11dGYzMl9jemVjaF9jaTsKIC0tc291cmNlIGluY2x1ZGUvY3R5cGVfY3plY2guaW5j CiAtLXNvdXJjZSBpbmNsdWRlL2N0eXBlX2xpa2VfaWdub3JhYmxlLmluYwogCistLWVjaG8gIwor LS1lY2hvICMgQnVnICMxMjMxOTcxMCA6IElOVkFMSUQgTUVNT1JZIFJFQUQgQU5EL09SIENSQVNI IElOIAorLS1lY2hvICMgICBNWV9VQ0FfQ0hBUkNNUCBXSVRIIFVURjMyCistLWVjaG8gIworCitT RVQgY29sbGF0aW9uX2Nvbm5lY3Rpb249dXRmMzJfdW5pY29kZV9jaTsKK0NSRUFURSBUQUJMRSB0 MSAoYSBURVhUIENIQVJBQ1RFUiBTRVQgdXRmMzIgQ09MTEFURSB1dGYzMl90dXJraXNoX2NpIE5P VCBOVUxMKTsKK0lOU0VSVCBJTlRPIHQxIFZBTFVFUyAoJ2EnKSwgKCdiJyk7CitDUkVBVEUgVEFC TEUgdDIgKGIgVkFSQklOQVJZKDUpIE5PVCBOVUxMKTsKKworLS1lY2hvICNpbnNlcnQgY2hhcnMg b3V0c2lkZSBvZiBCTVAKK0lOU0VSVCBJTlRPIHQyIFZBTFVFcyAoMHgwODI4MzcpLCgweDA4Mjgz Nyk7CisKKy0tZWNobyAjdGVzdCBmb3IgcmVhZC1vdXQtb2YtYm91bmRzIHdpdGggbm9uLUJNUCBj aGFycyBhcyBhIExJS0UgcGF0dGVybgorU0VMRUNUICogRlJPTSB0MSx0MiBXSEVSRSBhIExJS0Ug YjsKKworLS1lY2hvICN0ZXN0IHRoZSBvcmlnaW5hbCBzdGF0ZW1lbnQKK1NFTEVDVCAxIEZST00g dDEgQVMgdDFfMCBOQVRVUkFMIExFRlQgT1VURVIgSk9JTiB0MiBBUyB0Ml8wCitSSUdIVCBKT0lO IHQxIEFTIHQxXzEgT04gdDFfMC5hIExJS0UgdDJfMC5iOworCitEUk9QIFRBQkxFIHQxLHQyOwog CiAtLWVjaG8gIwogLS1lY2hvICMgRW5kIG9mIDUuNSB0ZXN0cwoKPT09IG1vZGlmaWVkIGZpbGUg J215c3FsLXRlc3QvdC9teXNxbF9wbHVnaW4udGVzdCcKLS0tIGEvbXlzcWwtdGVzdC90L215c3Fs X3BsdWdpbi50ZXN0CTIwMTEtMDgtMTIgMTA6NDk6MzggKzAwMDAKKysrIGIvbXlzcWwtdGVzdC90 L215c3FsX3BsdWdpbi50ZXN0CTIwMTEtMDktMjMgMTA6NTU6MTAgKzAwMDAKQEAgLTIyNCw2ICsy MjQsNyBAQCBsZXQgJE1ZU1FMX1BMVUdJTl9DTUQ9ICRNWVNRTF9QTFVHSU4gLW4gCiAtLWVjaG8g IyBBdHRlbXB0IHRvIHVzZSBiYWQgcGF0aHMgLSBiYXNlZGlyCiAtLWVjaG8gIwogbGV0ICRNWVNR TF9QTFVHSU5fQ01EPSAkTVlTUUxfUExVR0lOIC1uIC0tZGF0YWRpcj0kTVlTUUxEX0RBVEFESVIg LS1iYXNlZGlyPS9iYXNlZGlyX25vdF90aGVyZS8gLS1wbHVnaW4tZGlyPSRQTFVHSU5fRElSIC0t bXlzcWxkPSRNWVNRTERfQkFTRURJUiAtLW15LXByaW50LWRlZmF1bHRzPSRNWVNRTF9NWV9QUklO VF9ERUZBVUxUU19CQVNFRElSOworcmVwbGFjZV9yZXN1bHQgIi9iYXNlZGlyX25vdF90aGVyZS8v IiAiL2Jhc2VkaXJfbm90X3RoZXJlLyI7CiAtLWVycm9yIDEsMiwyNTYKIC0tZXhlYyAkTVlTUUxf UExVR0lOX0NNRCBESVNBQkxFIGRhZW1vbl9leGFtcGxlIDI+JjEKIAoKPT09IG1vZGlmaWVkIGZp bGUgJ215c3FsLXRlc3QvdC9wbHVnaW5fYXV0aC50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3QvcGx1 Z2luX2F1dGgudGVzdAkyMDExLTA4LTE3IDE0OjA3OjA3ICswMDAwCisrKyBiL215c3FsLXRlc3Qv dC9wbHVnaW5fYXV0aC50ZXN0CTIwMTEtMDktMjYgMTA6MzQ6NDkgKzAwMDAKQEAgLTU0MCwxMSAr NTQwLDkgQEAgY29ubmVjdGlvbiBkZWZhdWx0OwogZGlzY29ubmVjdCBiMTI2MTA3ODQ7CiBEUk9Q IFVTRVIgYnVnMTI2MTA3ODRAbG9jYWxob3N0OwogCi0KIC0tZWNobyAjCiAtLWVjaG8gIyBCdWcg IyAxMTc2NjY0MTogNTk3OTI6IEJJTi9NWVNRTCAtVVVOS05PV04gLVBVTktOT1dOIAogLS1lY2hv ICMgIC4tPiBVU0lORyBQQVNTV09SRDogTk8gCi0tLWVjaG8gIwogCiAtLWVjaG8gIyBzaG91ZCBj b250YWluICJ1c2luZyBwYXNzd29yZD15ZXMiCiAtLWVycm9yIDEKQEAgLTU1NCw1ICs1NTIsMzMg QEAgRFJPUCBVU0VSIGJ1ZzEyNjEwNzg0QGxvY2FsaG9zdDsKIC0tZXJyb3IgMQogLS1leGVjICRN WVNRTCAtdXVua25vd24gMj4mMQogCistLWVjaG8gIyBCdWcgIzEyODE4NTQyOiBQQU06IEFERElO RyBQQVNTV09SRCBGT1IgQU4gQUNDT1VOVCBESVNBQkxFUyBQQU0gCistLWVjaG8gIyAgIEFVVEhF TlRJQ0FUSU9OIFNFVFRJTkdTCistLWVjaG8gIworCitDUkVBVEUgVVNFUiBidWcxMjgxODU0MkBs b2NhbGhvc3QgCisgIElERU5USUZJRUQgV0lUSCAndGVzdF9wbHVnaW5fc2VydmVyJyBBUyAnYnVn MTI4MTg1NDJfZGVzdCc7CitDUkVBVEUgVVNFUiBidWcxMjgxODU0Ml9kZXN0QGxvY2FsaG9zdCAK KyAgSURFTlRJRklFRCBCWSAnYnVnMTI4MTg1NDJfZGVzdF9wYXNzd2QnOworR1JBTlQgUFJPWFkg T04gYnVnMTI4MTg1NDJfZGVzdEBsb2NhbGhvc3QgVE8gYnVnMTI4MTg1NDJAbG9jYWxob3N0Owor Citjb25uZWN0KGJ1ZzEyODE4NTQyX2Nvbixsb2NhbGhvc3QsYnVnMTI4MTg1NDIsYnVnMTI4MTg1 NDJfZGVzdCk7Citjb25uZWN0aW9uIGJ1ZzEyODE4NTQyX2NvbjsKK1NFTEVDVCBVU0VSKCksQ1VS UkVOVF9VU0VSKCk7CisKK1NFVCBQQVNTV09SRCA9IFBBU1NXT1JEKCdicnVoYWhhJyk7CisKK2Nv bm5lY3Rpb24gZGVmYXVsdDsKK2Rpc2Nvbm5lY3QgYnVnMTI4MTg1NDJfY29uOworCitjb25uZWN0 KGJ1ZzEyODE4NTQyX2NvbjIsbG9jYWxob3N0LGJ1ZzEyODE4NTQyLGJ1ZzEyODE4NTQyX2Rlc3Qp OworY29ubmVjdGlvbiBidWcxMjgxODU0Ml9jb24yOworU0VMRUNUIFVTRVIoKSxDVVJSRU5UX1VT RVIoKTsKKworY29ubmVjdGlvbiBkZWZhdWx0OworZGlzY29ubmVjdCBidWcxMjgxODU0Ml9jb24y OworCitEUk9QIFVTRVIgYnVnMTI4MTg1NDJAbG9jYWxob3N0OworRFJPUCBVU0VSIGJ1ZzEyODE4 NTQyX2Rlc3RAbG9jYWxob3N0OwogCiAtLWVjaG8gRW5kIG9mIDUuNSB0ZXN0cwoKPT09IG1vZGlm aWVkIGZpbGUgJ215c3FsLXRlc3QvdC9zcC1lcnJvci50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3Qv c3AtZXJyb3IudGVzdAkyMDExLTA3LTI4IDA4OjMxOjM2ICswMDAwCisrKyBiL215c3FsLXRlc3Qv dC9zcC1lcnJvci50ZXN0CTIwMTEtMDktMjEgMTE6MDE6NDEgKzAwMDAKQEAgLTI1MzUsNiArMjUz NSwyOCBAQCBEUk9QIFBST0NFRFVSRSBwMTsKIERST1AgVklFVyB2MTsKIERST1AgVEFCTEUgdDE7 CiAKKy0tZWNobyAjCistLWVjaG8gIyBCdWcjMTI0Mjg4MjQgLSBQQVJTRVIgU1RBQ0sgT1ZFUkZM T1cgQU5EIENSQVNIIElOIFNQX0FERF9VU0VEX1JPVVRJTkUKKy0tZWNobyAjICAgICAgICAgICAg ICAgIFdJVEggT0JTQ1VSRSBRVUVSWQorLS1lY2hvICMKKworLS1lcnJvciBFUl9UT09fTE9OR19J REVOVAorU0VMRUNUIHZlcnlfbG9uZ19mbl9uYW1lXzExMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3 Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3ODg4ODg4ODg5OTk5 OTk5OTk5OTk5OTk5OTk5OTkoKTsKKworLS1lcnJvciBFUl9UT09fTE9OR19JREVOVAorQ0FMTCB2 ZXJ5X2xvbmdfcHJfbmFtZV8xMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1NTU1NTU1NTU1 NTU1NTU1NTU1NTU1NTU1NTc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3 Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzg4ODg4ODg4OTk5OTk5OTk5OTk5OTk5OTk5 OTk5KCk7CisKKy0tZXJyb3IgRVJfV1JPTkdfREJfTkFNRQorU0VMRUNUIHZlcnlfbG9uZ19kYl9u YW1lXzExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTExMTExMTExMTEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1 NTU1Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3 Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3ODg4ODg4ODg5OTk5OTk5OTk5OTk5OTk5OTk5OTkuc2ltcGxlX2Z1 bmMoKTsKKworLS1lcnJvciBFUl9XUk9OR19EQl9OQU1FCitDQUxMIHZlcnlfbG9uZ19kYl9uYW1l XzExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTExMTExMTEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1 Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3 Nzc3Nzc3Nzc3Nzc3Nzc3ODg4ODg4ODg5OTk5OTk5OTk5OTk5OTk5OTk5OTkuc2ltcGxlX3Byb2Mo KTsKKworLS1lcnJvciBFUl9UT09fTE9OR19JREVOVAorU0VMRUNUIGRiX25hbWUudmVyeV9sb25n X2ZuX25hbWVfMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTExMTExMTExMTExMTExMTIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyOTk5OTk5OTk5OTk5OTk5 OTk5OTk5KCk7CisKKy0tZXJyb3IgRVJfVE9PX0xPTkdfSURFTlQKK0NBTEwgZGJfbmFtZS52ZXJ5 X2xvbmdfcHJfbmFtZV8xMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI5OTk5OTk5OTk5 OTk5OTk5OTk5OTkoKTsKIC0tZWNobyBFbmQgb2YgNS4xIHRlc3RzCiAKIC0tZWNobyAjCgo9PT0g bW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC90L3NwLnRlc3QnCi0tLSBhL215c3FsLXRlc3QvdC9z cC50ZXN0CTIwMTEtMDgtMDIgMDg6MTQ6MjYgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC90L3NwLnRl c3QJMjAxMS0wOS0yMSAxMTowMTo0MSArMDAwMApAQCAtODM3Niw2ICs4Mzc2LDI2IEBAIFNFVCBA QEdMT0JBTC5pbml0X2Nvbm5lY3Q9IEBvbGRfaW5pdF9jb24KIERST1AgUFJPQ0VEVVJFIHAyOwog RFJPUCBQUk9DRURVUkUgcDU7CiAKKworLS1lY2hvICMKKy0tZWNobyAjIEJ1ZyMxMTg0MDM5NSAo Zm9ybWVybHkga25vd24gYXMgYnVnIzYwMzQ3KToKKy0tZWNobyAjIFRoZSBzdHJpbmcgInZlcnNp b25kYXRhIiBzZWVtcworLS1lY2hvICMgdG8gYmUgJ2xlYWtpbmcnIGludG8gdGhlIHNjaGVtYSBu YW1lIHNwYWNlCistLWVjaG8gIworLS1kaXNhYmxlX3dhcm5pbmdzCitEUk9QIERBVEFCQVNFIElG IEVYSVNUUyBtaXhlZENhc2VEYk5hbWU7CistLWVuYWJsZV93YXJuaW5ncworQ1JFQVRFIERBVEFC QVNFIG1peGVkQ2FzZURiTmFtZTsKK0RFTElNSVRFUiB8OworQ1JFQVRFIFBST0NFRFVSRSBtaXhl ZENhc2VEYk5hbWUudHJ5TXlQcm9jKCkgYmVnaW4gZW5kfAorQ1JFQVRFIEZVTkNUSU9OIG1peGVk Q2FzZURiTmFtZS50cnlNeUZ1bmMoKSByZXR1cm5zIHRleHQgYmVnaW4gcmV0dXJuICdJVCBXT1JL Uyc7IGVuZAorfAorREVMSU1JVEVSIDt8CitjYWxsIG1peGVkQ2FzZURiTmFtZS50cnlNeVByb2Mo KTsKK3NlbGVjdCBtaXhlZENhc2VEYk5hbWUudHJ5TXlGdW5jKCk7CitEUk9QIERBVEFCQVNFIG1p eGVkQ2FzZURiTmFtZTsKKworCiAtLWVjaG8gIwogLS1lY2hvICMgQnVnIzExNzY2NTk0ICA1OTcz NjogU0VMRUNUIERJU1RJTkNULi4gSU5DT1JSRUNUIFJFU1VMVCBXSVRIIERFVEVSTUlOSVNUSUMg RlVOQ1RJT04gSU4gV0hFUkUgQwogLS1lY2hvICMKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10 ZXN0L3QvdHlwZV9mbG9hdC50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3QvdHlwZV9mbG9hdC50ZXN0 CTIwMTAtMDQtMTEgMDY6NTI6NDIgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC90L3R5cGVfZmxvYXQu dGVzdAkyMDExLTA3LTE4IDA4OjI3OjA1ICswMDAwCkBAIC0zMDcsNCArMzA3LDI3IEBAIElOU0VS VCBJTlRPIHQxIFZBTFVFUygtMS43OTc2OTMxMzQ4NjIzMWUKIFNFTEVDVCBmMSBGUk9NIHQxOwog RFJPUCBUQUJMRSB0MTsKIAorLS1lY2hvICMKKy0tZWNobyAjIEJ1ZyMxMjQwNjA1NSBCVUZGRVIg T1ZFUkZMT1cgT0YgVkFSSUFCTEUgJ0JVRkYnIElOIFNUUklORzo6U0VUX1JFQUwKKy0tZWNobyAj IAorCistLWVjaG8gIyBJZ25vcmluZyBvdXRwdXQgZnJvbSBtaXNjLiBmbG9hdCBvcGVyYXRpb25z CistLWRpc2FibGVfcmVzdWx0X2xvZworCitsZXQgJG5pbmVfNjU9Cis5OTk5OTk5OTk5OTk5OTk5 OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTsKKworc2Vs ZWN0IGZvcm1hdCgtMS43OTc2OTMxMzQ4NjIzMTU3RSszMDcsMjU2KSBhcyBmb287CitzZWxlY3Qg bGVhc3QoLTEuMTExMTExMTExMTExMTExMTExMTExMTExMSwKKyAgICAgICAgICAgICAtIGdyb3Vw X2NvbmNhdCgxLjc5NzY5MzEzNDg2MjMxNTdFKzMwOCkpIGFzIGZvbzsKK2V2YWwgc2VsZWN0IGNv bmNhdCgodHJ1bmNhdGUoKC0xLjc5NzY5MzEzNDg2MjMxNTdFKzMwNyksKDB4MWUpKSksCisgICAg ICAgICAgICAgICAgICAgKCRuaW5lXzY1KSkgaW50byBAYTsKKy0tZW5hYmxlX3Jlc3VsdF9sb2cK KwogLS1lY2hvIEVuZCBvZiA1LjAgdGVzdHMKKworLS1lY2hvICMKKy0tZWNobyAjIEJ1ZyMxMjM2 ODg1MyBGT1JNQVQoKSBDUkFTSEVTIFdJVEggTEFSR0UgTlVNQkVSUyBBRlRFUiBUUlVOQ0FURS4u LgorLS1lY2hvICMKKworc2VsZWN0IGZvcm1hdCh0cnVuY2F0ZSgnMS43OTc2OTMxMzQ4NjIzMTU3 RSszMDgnLC0xMiksMSwnZnJfQkUnKSBhcyBmb287Cgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwt dGVzdC90L3VuaW9uLnRlc3QnCi0tLSBhL215c3FsLXRlc3QvdC91bmlvbi50ZXN0CTIwMTEtMDEt MTAgMTI6NDU6NTMgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC90L3VuaW9uLnRlc3QJMjAxMS0wOS0y MSAxMTowMTo0MSArMDAwMApAQCAtMTExNyw2ICsxMTE3LDQ3IEBAIFNFTEVDVCAqIEZST00gdDIg VU5JT04gU0VMRUNUICogRlJPTSB0MgogRFJPUCBUQUJMRSB0MSx0MjsKIAogCistLWVjaG8gIwor LS1lY2hvICMgQnVnIzExNzY1MjU1IDU4MjAxOgorLS1lY2hvICMgVkFMR1JJTkQvQ1JBU0ggV0hF TiBPUkRFUklORyBCWSBNVUxUSVBMRSBBR0dSRUdBVEUgRlVOQ1RJT05TCistLWVjaG8gIworCits ZXQgJG15X3N0bXQ9CitzZWxlY3QgMSBhcyBmb28KK3VuaW9uCitzZWxlY3QgMgordW5pb24KK3Nl bGVjdCAzCit1bmlvbgorc2VsZWN0IDQKK29yZGVyIGJ5IG1heCg0MikgKyBtYXgoMSkgKyBtYXgo MSkgKyBtYXgoMSkgKyBtYXgoMSkgKyBtYXgoMSkKKzsKKworZXZhbCAkbXlfc3RtdDsKKworZXZh bCBwcmVwYXJlIHN0bXQxIGZyb20gJyRteV9zdG10JzsKK2V4ZWN1dGUgc3RtdDE7CitleGVjdXRl IHN0bXQxOworCitsZXQgJG15X3N0bXQ9CitzZWxlY3QgMSBhcyBmb28KK3VuaW9uCitzZWxlY3Qg MgordW5pb24KK3NlbGVjdCAzCit1bmlvbgorKHNlbGVjdCA0KQorb3JkZXIgYnkgbWF4KDQyKSAr IG1heCgxKSArIG1heCgxKSArIG1heCgxKSArIG1heCgxKSArIG1heCgxKQorOworCitldmFsICRt eV9zdG10OworCitldmFsIHByZXBhcmUgc3RtdDEgZnJvbSAnJG15X3N0bXQnOworZXhlY3V0ZSBz dG10MTsKK2V4ZWN1dGUgc3RtdDE7CisKK2RlYWxsb2NhdGUgcHJlcGFyZSBzdG10MTsKKwogLS1l Y2hvIEVuZCBvZiA1LjEgdGVzdHMKIAogLS1lY2hvICMKCj09PSBtb2RpZmllZCBmaWxlICdwbHVn aW4vYXVkaXRfbnVsbC9hdWRpdF9udWxsLmMnCi0tLSBhL3BsdWdpbi9hdWRpdF9udWxsL2F1ZGl0 X251bGwuYwkyMDExLTA3LTEyIDA2OjUwOjE4ICswMDAwCisrKyBiL3BsdWdpbi9hdWRpdF9udWxs L2F1ZGl0X251bGwuYwkyMDExLTA5LTIxIDExOjAxOjQxICswMDAwCkBAIC0yMDUsNyArMjA1LDgg QEAgbXlzcWxfZGVjbGFyZV9wbHVnaW4oYXVkaXRfbnVsbCkKICAgMHgwMDAzLCAgICAgICAgICAg ICAgICAgICAgIC8qIHZlcnNpb24gICAgICAgICAgICAgICAgICAgICAgICAgKi8KICAgc2ltcGxl X3N0YXR1cywgICAgICAgICAgICAgIC8qIHN0YXR1cyB2YXJpYWJsZXMgICAgICAgICAgICAgICAg Ki8KICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgIC8qIHN5c3RlbSB2YXJpYWJsZXMgICAg ICAgICAgICAgICAgKi8KLSAgTlVMTAorICBOVUxMLAorICAwLAogfQogbXlzcWxfZGVjbGFyZV9w bHVnaW5fZW5kOwogCgo9PT0gbW9kaWZpZWQgZmlsZSAncGx1Z2luL2F1dGgvYXV0aF9zb2NrZXQu YycKLS0tIGEvcGx1Z2luL2F1dGgvYXV0aF9zb2NrZXQuYwkyMDExLTA2LTMwIDE1OjQ2OjUzICsw MDAwCisrKyBiL3BsdWdpbi9hdXRoL2F1dGhfc29ja2V0LmMJMjAxMS0wOC0xNSAxODoxMjoxMSAr MDAwMApAQCAtODgsNyArODgsOCBAQCBteXNxbF9kZWNsYXJlX3BsdWdpbihzb2NrZXRfYXV0aCkK ICAgMHgwMTAwLAogICBOVUxMLAogICBOVUxMLAotICBOVUxMCisgIE5VTEwsCisgIDAsCiB9CiBt eXNxbF9kZWNsYXJlX3BsdWdpbl9lbmQ7CiAKCj09PSBtb2RpZmllZCBmaWxlICdwbHVnaW4vYXV0 aC9kaWFsb2cuYycKLS0tIGEvcGx1Z2luL2F1dGgvZGlhbG9nLmMJMjAxMC0xMC0yNyAxNToxMjox NyArMDAwMAorKysgYi9wbHVnaW4vYXV0aC9kaWFsb2cuYwkyMDExLTA4LTE1IDE4OjEyOjExICsw MDAwCkBAIC0xNTMsNyArMTUzLDggQEAgbXlzcWxfZGVjbGFyZV9wbHVnaW4oZGlhbG9nKQogICAw eDAxMDAsCiAgIE5VTEwsCiAgIE5VTEwsCi0gIE5VTEwKKyAgTlVMTCwKKyAgMCwKIH0sCiB7CiAg IE1ZU1FMX0FVVEhFTlRJQ0FUSU9OX1BMVUdJTiwKQEAgLTE2Nyw3ICsxNjgsOCBAQCBteXNxbF9k ZWNsYXJlX3BsdWdpbihkaWFsb2cpCiAgIDB4MDEwMCwKICAgTlVMTCwKICAgTlVMTCwKLSAgTlVM TAorICBOVUxMLAorICAwLAogfQogbXlzcWxfZGVjbGFyZV9wbHVnaW5fZW5kOwogCgo9PT0gbW9k aWZpZWQgZmlsZSAncGx1Z2luL2F1dGgvcWFfYXV0aF9pbnRlcmZhY2UuYycKLS0tIGEvcGx1Z2lu L2F1dGgvcWFfYXV0aF9pbnRlcmZhY2UuYwkyMDExLTA5LTIwIDE0OjI0OjE4ICswMDAwCisrKyBi L3BsdWdpbi9hdXRoL3FhX2F1dGhfaW50ZXJmYWNlLmMJMjAxMS0wOS0yMyAxMDoxOTozNyArMDAw MApAQCAtMTY3LDcgKzE2Nyw4IEBAIG15c3FsX2RlY2xhcmVfcGx1Z2luKHRlc3RfcGx1Z2luKQog ICAweDAxMDAsCiAgIE5VTEwsCiAgIE5VTEwsCi0gIE5VTEwKKyAgTlVMTCwKKyAgMCwKIH0KIG15 c3FsX2RlY2xhcmVfcGx1Z2luX2VuZDsKIAoKPT09IG1vZGlmaWVkIGZpbGUgJ3BsdWdpbi9hdXRo L3FhX2F1dGhfc2VydmVyLmMnCi0tLSBhL3BsdWdpbi9hdXRoL3FhX2F1dGhfc2VydmVyLmMJMjAx MC0xMC0yMCAxNDo1NjowOSArMDAwMAorKysgYi9wbHVnaW4vYXV0aC9xYV9hdXRoX3NlcnZlci5j CTIwMTEtMDgtMTUgMTg6MTI6MTEgKzAwMDAKQEAgLTgyLDYgKzgyLDcgQEAgbXlzcWxfZGVjbGFy ZV9wbHVnaW4odGVzdF9wbHVnaW4pCiAgIDB4MDEwMCwKICAgTlVMTCwKICAgTlVMTCwKLSAgTlVM TAorICBOVUxMLAorICAwLAogfQogbXlzcWxfZGVjbGFyZV9wbHVnaW5fZW5kOwoKPT09IG1vZGlm aWVkIGZpbGUgJ3BsdWdpbi9hdXRoL3Rlc3RfcGx1Z2luLmMnCi0tLSBhL3BsdWdpbi9hdXRoL3Rl c3RfcGx1Z2luLmMJMjAxMS0wNi0zMCAxNTo1MDo0NSArMDAwMAorKysgYi9wbHVnaW4vYXV0aC90 ZXN0X3BsdWdpbi5jCTIwMTEtMDktMjEgMTE6MDE6NDEgKzAwMDAKQEAgLTE0Niw3ICsxNDYsOCBA QCBteXNxbF9kZWNsYXJlX3BsdWdpbih0ZXN0X3BsdWdpbikKICAgMHgwMTAwLAogICBOVUxMLAog ICBOVUxMLAotICBOVUxMCisgIE5VTEwsCisgIDAsCiB9LAogewogICBNWVNRTF9BVVRIRU5USUNB VElPTl9QTFVHSU4sCkBAIC0xNjAsNyArMTYxLDggQEAgbXlzcWxfZGVjbGFyZV9wbHVnaW4odGVz dF9wbHVnaW4pCiAgIDB4MDEwMCwKICAgTlVMTCwKICAgTlVMTCwKLSAgTlVMTAorICBOVUxMLAor ICAwLAogfQogbXlzcWxfZGVjbGFyZV9wbHVnaW5fZW5kOwogCgo9PT0gbW9kaWZpZWQgZmlsZSAn cGx1Z2luL2RhZW1vbl9leGFtcGxlL2RhZW1vbl9leGFtcGxlLmNjJwotLS0gYS9wbHVnaW4vZGFl bW9uX2V4YW1wbGUvZGFlbW9uX2V4YW1wbGUuY2MJMjAxMS0wNi0zMCAxNTo0Njo1MyArMDAwMAor KysgYi9wbHVnaW4vZGFlbW9uX2V4YW1wbGUvZGFlbW9uX2V4YW1wbGUuY2MJMjAxMS0wOC0xNSAx ODoxMjoxMSArMDAwMApAQCAtMjAxLDYgKzIwMSw3IEBAIG15c3FsX2RlY2xhcmVfcGx1Z2luKGRh ZW1vbl9leGFtcGxlKQogICAweDAxMDAgLyogMS4wICovLAogICBOVUxMLCAgICAgICAgICAgICAg ICAgICAgICAgLyogc3RhdHVzIHZhcmlhYmxlcyAgICAgICAgICAgICAgICAqLwogICBOVUxMLCAg ICAgICAgICAgICAgICAgICAgICAgLyogc3lzdGVtIHZhcmlhYmxlcyAgICAgICAgICAgICAgICAq LwotICBOVUxMICAgICAgICAgICAgICAgICAgICAgICAgLyogY29uZmlnIG9wdGlvbnMgICAgICAg ICAgICAgICAgICAqLworICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgLyogY29uZmlnIG9w dGlvbnMgICAgICAgICAgICAgICAgICAqLworICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAg LyogZmxhZ3MgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogfQogbXlzcWxfZGVjbGFyZV9w bHVnaW5fZW5kOwoKPT09IG1vZGlmaWVkIGZpbGUgJ3BsdWdpbi9mdWxsdGV4dC9wbHVnaW5fZXhh bXBsZS5jJwotLS0gYS9wbHVnaW4vZnVsbHRleHQvcGx1Z2luX2V4YW1wbGUuYwkyMDExLTA3LTAz IDIzOjQ4OjE5ICswMDAwCisrKyBiL3BsdWdpbi9mdWxsdGV4dC9wbHVnaW5fZXhhbXBsZS5jCTIw MTEtMDgtMTUgMTg6MTI6MTEgKzAwMDAKQEAgLTI2Nyw3ICsyNjcsOCBAQCBteXNxbF9kZWNsYXJl X3BsdWdpbihmdGV4YW1wbGUpCiAgIDB4MDAwMSwgICAgICAgICAgICAgICAgICAgICAvKiB2ZXJz aW9uICAgICAgICAgICAgICAgICAgICAgICAgICovCiAgIHNpbXBsZV9zdGF0dXMsICAgICAgICAg ICAgICAvKiBzdGF0dXMgdmFyaWFibGVzICAgICAgICAgICAgICAgICovCiAgIHNpbXBsZV9zeXN0 ZW1fdmFyaWFibGVzLCAgICAvKiBzeXN0ZW0gdmFyaWFibGVzICAgICAgICAgICAgICAgICovCi0g IE5VTEwKKyAgTlVMTCwKKyAgMCwKIH0KIG15c3FsX2RlY2xhcmVfcGx1Z2luX2VuZDsKIAoKPT09 IG1vZGlmaWVkIGZpbGUgJ3BsdWdpbi9zZW1pc3luYy9zZW1pc3luY19tYXN0ZXJfcGx1Z2luLmNj JwotLS0gYS9wbHVnaW4vc2VtaXN5bmMvc2VtaXN5bmNfbWFzdGVyX3BsdWdpbi5jYwkyMDExLTA3 LTIxIDE2OjI3OjE0ICswMDAwCisrKyBiL3BsdWdpbi9zZW1pc3luYy9zZW1pc3luY19tYXN0ZXJf cGx1Z2luLmNjCTIwMTEtMDktMjEgMTE6MDE6NDEgKzAwMDAKQEAgLTQzOSw2ICs0MzksNyBAQCBt eXNxbF9kZWNsYXJlX3BsdWdpbihzZW1pX3N5bmNfbWFzdGVyKQogICAweDAxMDAgLyogMS4wICov LAogICBzZW1pX3N5bmNfbWFzdGVyX3N0YXR1c192YXJzLAkvKiBzdGF0dXMgdmFyaWFibGVzICov CiAgIHNlbWlfc3luY19tYXN0ZXJfc3lzdGVtX3ZhcnMsCS8qIHN5c3RlbSB2YXJpYWJsZXMgKi8K LSAgTlVMTCAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNvbmZpZyBvcHRpb25zICAgICAgICAg ICAgICAgICAgKi8KKyAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogY29uZmlnIG9w dGlvbnMgKi8KKyAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZmxhZ3MgKi8KIH0K IG15c3FsX2RlY2xhcmVfcGx1Z2luX2VuZDsKCj09PSBtb2RpZmllZCBmaWxlICdwbHVnaW4vc2Vt aXN5bmMvc2VtaXN5bmNfc2xhdmVfcGx1Z2luLmNjJwotLS0gYS9wbHVnaW4vc2VtaXN5bmMvc2Vt aXN5bmNfc2xhdmVfcGx1Z2luLmNjCTIwMTEtMDUtMDUgMjM6MTc6NDcgKzAwMDAKKysrIGIvcGx1 Z2luL3NlbWlzeW5jL3NlbWlzeW5jX3NsYXZlX3BsdWdpbi5jYwkyMDExLTA5LTIxIDExOjAxOjQx ICswMDAwCkBAIC0yMjUsNiArMjI1LDcgQEAgbXlzcWxfZGVjbGFyZV9wbHVnaW4oc2VtaV9zeW5j X3NsYXZlKQogICAweDAxMDAgLyogMS4wICovLAogICBzZW1pX3N5bmNfc2xhdmVfc3RhdHVzX3Zh cnMsCS8qIHN0YXR1cyB2YXJpYWJsZXMgKi8KICAgc2VtaV9zeW5jX3NsYXZlX3N5c3RlbV92YXJz LAkvKiBzeXN0ZW0gdmFyaWFibGVzICovCi0gIE5VTEwgICAgICAgICAgICAgICAgICAgICAgICAv KiBjb25maWcgb3B0aW9ucyAgICAgICAgICAgICAgICAgICovCisgIE5VTEwsICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIGNvbmZpZyBvcHRpb25zICovCisgIDAsICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIGZsYWdzICovCiB9CiBteXNxbF9kZWNsYXJlX3BsdWdpbl9lbmQ7Cgo9PT0g bW9kaWZpZWQgZmlsZSAnc3FsL2JpbmxvZy5jYycKLS0tIGEvc3FsL2JpbmxvZy5jYwkyMDExLTA4 LTE5IDEzOjA0OjI4ICswMDAwCisrKyBiL3NxbC9iaW5sb2cuY2MJMjAxMS0wOS0yMyAxMjoyMjo1 OCArMDAwMApAQCAtNjEwNCw2ICs2MTA0LDcgQEAgbXlzcWxfZGVjbGFyZV9wbHVnaW4oYmlubG9n KQogICAweDAxMDAgLyogMS4wICovLAogICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgLyog c3RhdHVzIHZhcmlhYmxlcyAgICAgICAgICAgICAgICAqLwogICBOVUxMLCAgICAgICAgICAgICAg ICAgICAgICAgLyogc3lzdGVtIHZhcmlhYmxlcyAgICAgICAgICAgICAgICAqLwotICBOVUxMICAg ICAgICAgICAgICAgICAgICAgICAgLyogY29uZmlnIG9wdGlvbnMgICAgICAgICAgICAgICAgICAq LworICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgLyogY29uZmlnIG9wdGlvbnMgICAgICAg ICAgICAgICAgICAqLworICAwLCAgCiB9CiBteXNxbF9kZWNsYXJlX3BsdWdpbl9lbmQ7Cgo9PT0g bW9kaWZpZWQgZmlsZSAnc3FsL2hhX25kYmNsdXN0ZXIuY2MnCi0tLSBhL3NxbC9oYV9uZGJjbHVz dGVyLmNjCTIwMTEtMDgtMTIgMDc6MTg6NDEgKzAwMDAKKysrIGIvc3FsL2hhX25kYmNsdXN0ZXIu Y2MJMjAxMS0wOS0yMSAxMTowMTo0MSArMDAwMApAQCAtMTExMzYsNyArMTExMzYsOCBAQCBteXNx bF9kZWNsYXJlX3BsdWdpbihuZGJjbHVzdGVyKQogICAweDAxMDAgLyogMS4wICovLAogICBuZGJf c3RhdHVzX3ZhcmlhYmxlc19leHBvcnQsLyogc3RhdHVzIHZhcmlhYmxlcyAgICAgICAgICAgICAg ICAqLwogICBzeXN0ZW1fdmFyaWFibGVzLCAgICAgICAgICAgLyogc3lzdGVtIHZhcmlhYmxlcyAg ICAgICAgICAgICAgICAqLwotICBOVUxMICAgICAgICAgICAgICAgICAgICAgICAgLyogY29uZmln IG9wdGlvbnMgICAgICAgICAgICAgICAgICAqLworICBOVUxMLCAgICAgICAgICAgICAgICAgICAg ICAgLyogY29uZmlnIG9wdGlvbnMgICAgICAgICAgICAgICAgICAqLworICAwLCAgICAgICAgICAg ICAgICAgICAgICAgICAgLyogZmxhZ3MgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogfQog bXlzcWxfZGVjbGFyZV9wbHVnaW5fZW5kOwogCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL2hhX3Bh cnRpdGlvbi5jYycKLS0tIGEvc3FsL2hhX3BhcnRpdGlvbi5jYwkyMDExLTA3LTA3IDE5OjEzOjE5 ICswMDAwCisrKyBiL3NxbC9oYV9wYXJ0aXRpb24uY2MJMjAxMS0wOS0yMSAxMTowMTo0MSArMDAw MApAQCAtNzQzMyw3ICs3NDMzLDggQEAgbXlzcWxfZGVjbGFyZV9wbHVnaW4ocGFydGl0aW9uKQog ICAweDAxMDAsIC8qIDEuMCAqLwogICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgLyogc3Rh dHVzIHZhcmlhYmxlcyAgICAgICAgICAgICAgICAqLwogICBOVUxMLCAgICAgICAgICAgICAgICAg ICAgICAgLyogc3lzdGVtIHZhcmlhYmxlcyAgICAgICAgICAgICAgICAqLwotICBOVUxMICAgICAg ICAgICAgICAgICAgICAgICAgLyogY29uZmlnIG9wdGlvbnMgICAgICAgICAgICAgICAgICAqLwor ICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgLyogY29uZmlnIG9wdGlvbnMgICAgICAgICAg ICAgICAgICAqLworICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZmxhZ3MgICAgICAg ICAgICAgICAgICAgICAgICAgICAqLwogfQogbXlzcWxfZGVjbGFyZV9wbHVnaW5fZW5kOwogCgo9 PT0gbW9kaWZpZWQgZmlsZSAnc3FsL2l0ZW1fc3RyZnVuYy5jYycKLS0tIGEvc3FsL2l0ZW1fc3Ry ZnVuYy5jYwkyMDExLTA5LTIyIDEwOjQyOjEwICswMDAwCisrKyBiL3NxbC9pdGVtX3N0cmZ1bmMu Y2MJMjAxMS0wOS0yMyAxMDoxOTozNyArMDAwMApAQCAtMjQyMSw3ICsyNDIxLDcgQEAgU3RyaW5n ICpJdGVtX2Z1bmNfZm9ybWF0Ojp2YWxfc3RyX2FzY2lpKAogICAgICAgcmV0dXJuIDA7IC8qIHB1 cmVjb3Y6IGluc3BlY3RlZCAqLwogICAgIG5yPSBteV9kb3VibGVfcm91bmQobnIsIChsb25nbG9u ZykgZGVjLCBGQUxTRSwgRkFMU0UpOwogICAgIHN0ci0+c2V0X3JlYWwobnIsIGRlYywgJm15X2No YXJzZXRfbnVtZXJpYyk7Ci0gICAgaWYgKGlzbmFuKG5yKSkKKyAgICBpZiAoaXNuYW4obnIpIHx8 IG15X2lzaW5mKG5yKSkKICAgICAgIHJldHVybiBzdHI7CiAgICAgc3RyX2xlbmd0aD1zdHItPmxl bmd0aCgpOwogICB9CkBAIC0yNDc3LDYgKzI0NzcsNyBAQCBTdHJpbmcgKkl0ZW1fZnVuY19mb3Jt YXQ6OnZhbF9zdHJfYXNjaWkoCiAgICAgICBGb3Igc2hvcnQgdmFsdWVzIHdpdGhvdXQgdGhvdXNh bmRzICg8MTAwMCkKICAgICAgIHJlcGxhY2UgZGVjaW1hbCBwb2ludCB0byBsb2NhbGl6ZWQgdmFs dWUuCiAgICAgKi8KKyAgICBEQlVHX0FTU0VSVChkZWNfbGVuZ3RoIDw9IHN0cl9sZW5ndGgpOwog ICAgICgoY2hhciopIHN0ci0+cHRyKCkpW3N0cl9sZW5ndGggLSBkZWNfbGVuZ3RoXT0gbGMtPmRl Y2ltYWxfcG9pbnQ7CiAgIH0KICAgcmV0dXJuIHN0cjsKCj09PSBtb2RpZmllZCBmaWxlICdzcWwv c2hhcmUvZXJybXNnLXV0ZjgudHh0JwotLS0gYS9zcWwvc2hhcmUvZXJybXNnLXV0ZjgudHh0CTIw MTEtMDktMjEgMTI6MDA6MDkgKzAwMDAKKysrIGIvc3FsL3NoYXJlL2Vycm1zZy11dGY4LnR4dAky MDExLTA5LTIzIDEwOjU1OjEwICswMDAwCkBAIC02NTI2LDMgKzY1MjYsOSBAQCBFUl9NVFNfSU5D T05TSVNURU5UX0RBVEEKIAogRVJfVU5ET19SRUNPUkRfVE9PX0JJRwogICBlbmcgIlVuZG8gbG9n IHJlY29yZCBpcyB0b28gYmlnLiIKKworRVJfUExVR0lOX05PX1VOSU5TVEFMTAorICBlbmcgIlBs dWdpbiAnJXMnIGlzIG1hcmtlZCBhcyBub3QgZHluYW1pY2FsbHkgdW5pbnN0YWxsYWJsZS4gWW91 IGhhdmUgdG8gc3RvcCB0aGUgc2VydmVyIHRvIHVuaW5zdGFsbCBpdC4iCisKK0VSX1BMVUdJTl9O T19JTlNUQUxMCisgIGVuZyAiUGx1Z2luICclcycgaXMgbWFya2VkIGFzIG5vdCBkeW5hbWljYWxs eSBpbnN0YWxsYWJsZS4gWW91IGhhdmUgdG8gc3RvcCB0aGUgc2VydmVyIHRvIGluc3RhbGwgaXQu IgoKPT09IG1vZGlmaWVkIGZpbGUgJ3NxbC9zcWxfYWNsLmNjJwotLS0gYS9zcWwvc3FsX2FjbC5j YwkyMDExLTA4LTE5IDEzOjIxOjAyICswMDAwCisrKyBiL3NxbC9zcWxfYWNsLmNjCTIwMTEtMDkt MjEgMTE6NDk6MDAgKzAwMDAKQEAgLTE4ODEsMTcgKzE4ODEsMTcgQEAgYm9vbCBjaGFuZ2VfcGFz c3dvcmQoVEhEICp0aGQsIGNvbnN0IGNoYQogICAgIGdvdG8gZW5kOwogICB9CiAKKyAgLyogdXBk YXRlIGxvYWRlZCBhY2wgZW50cnk6ICovCisgIHNldF91c2VyX3NhbHQoYWNsX3VzZXIsIG5ld19w YXNzd29yZCwgbmV3X3Bhc3N3b3JkX2xlbik7CisKICAgaWYgKG15X3N0cmNhc2VjbXAoc3lzdGVt X2NoYXJzZXRfaW5mbywgYWNsX3VzZXItPnBsdWdpbi5zdHIsCiAgICAgICAgICAgICAgICAgICAg IG5hdGl2ZV9wYXNzd29yZF9wbHVnaW5fbmFtZS5zdHIpICYmCiAgICAgICBteV9zdHJjYXNlY21w KHN5c3RlbV9jaGFyc2V0X2luZm8sIGFjbF91c2VyLT5wbHVnaW4uc3RyLAogICAgICAgICAgICAg ICAgICAgICBvbGRfcGFzc3dvcmRfcGx1Z2luX25hbWUuc3RyKSkKLSAgewogICAgIHB1c2hfd2Fy bmluZyh0aGQsIFNxbF9jb25kaXRpb246OldBUk5fTEVWRUxfTk9URSwKICAgICAgICAgICAgICAg ICAgRVJfU0VUX1BBU1NXT1JEX0FVVEhfUExVR0lOLCBFUihFUl9TRVRfUEFTU1dPUkRfQVVUSF9Q TFVHSU4pKTsKLSAgfQotICAvKiB1cGRhdGUgbG9hZGVkIGFjbCBlbnRyeTogKi8KLSAgc2V0X3Vz ZXJfc2FsdChhY2xfdXNlciwgbmV3X3Bhc3N3b3JkLCBuZXdfcGFzc3dvcmRfbGVuKTsKLSAgc2V0 X3VzZXJfcGx1Z2luKGFjbF91c2VyLCBuZXdfcGFzc3dvcmRfbGVuKTsKKyAgZWxzZQorICAgIHNl dF91c2VyX3BsdWdpbihhY2xfdXNlciwgbmV3X3Bhc3N3b3JkX2xlbik7CiAKICAgaWYgKHVwZGF0 ZV91c2VyX3RhYmxlKHRoZCwgdGFibGUsCiAJCQlhY2xfdXNlci0+aG9zdC5ob3N0bmFtZSA/IGFj bF91c2VyLT5ob3N0Lmhvc3RuYW1lIDogIiIsCkBAIC04OTM5LDI0ICs4OTM5LDE4IEBAIHN0YXRp YyB1bG9uZyBwYXJzZV9jbGllbnRfaGFuZHNoYWtlX3BhY2sKIAogCiAvKioKLSAgTWFrZSBzdXJl IHRoYXQgd2hlbiBzZW5kaW5nIHBsdWdpbiBzdXBwbHVlZCBkYXRhIHRvIHRoZSBjbGllbnQgdGhl eQorICBNYWtlIHN1cmUgdGhhdCB3aGVuIHNlbmRpbmcgcGx1Z2luIHN1cHBsaWVkIGRhdGEgdG8g dGhlIGNsaWVudCB0aGV5CiAgIGFyZSBub3QgY29uc2lkZXJlZCBhIHNwZWNpYWwgb3V0LW9mLWJh bmQgY29tbWFuZCwgbGlrZSBlLmcuIAotICBcMjU1IChlcnJvcikgb3IgXDI1NCAoY2hhbmdlIHVz ZXIgcmVxdWVzdCBwYWNrZXQpLgotICBUbyBhdm9pZCB0aGlzIHdlIHNlbmQgcGx1Z2luIGRhdGEg cGFja2V0cyBzdGFydGluZyB3aXRoIG9uZSBvZiB0aGVzZQotICAyIGJ5dGVzICJ3cmFwcGVkIiBp biBhIGNvbW1hbmQgXDEuIAotICBGb3IgdGhlIGFib3ZlIHJlYXNvbiB3ZSBoYXZlIHRvIHdyYXAg cGx1Z2luIGRhdGEgcGFja2V0cyBzdGFydGluZyB3aXRoCi0gIFwxIGFzIHdlbGwuCisgIFwyNTUg KGVycm9yKSBvciBcMjU0IChjaGFuZ2UgdXNlciByZXF1ZXN0IHBhY2tldCkgb3IgXDAgKE9LKS4K KyAgVG8gYXZvaWQgdGhpcyB0aGUgc2VydmVyIHdpbGwgc2VuZCBhbGwgcGx1Z2luIGRhdGEgcGFj a2V0cyAid3JhcHBlZCIgCisgIGluIGEgY29tbWFuZCBcMS4KKyAgTm90ZSB0aGF0IHRoZSBjbGll bnQgd2lsbCBjb250aW51ZSBzZW5kaW5nIGl0cyByZXBsaWVzIHVucndhcHBlZC4KICovCiAKLSNk ZWZpbmUgSVNfT1VUX09GX0JBTkRfUEFDS0VUKHBhY2tldCxwYWNrZXRfbGVuKSBcCi0gICgocGFj a2V0X2xlbikgPiAwICYmIFwKLSAgICgqKHBhY2tldCkgPT0gMSB8fCAqKHBhY2tldCkgPT0gMjU1 IHx8ICoocGFja2V0KSA9PSAyNTQpKQotCiBzdGF0aWMgaW5saW5lIGludCAKIHdyYXBfcGxndWlu X2RhdGFfaW50b19wcm9wZXJfY29tbWFuZChORVQgKm5ldCwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgdWNoYXIgKnBhY2tldCwgaW50IHBhY2tldF9sZW4pCiB7 Ci0gIERCVUdfQVNTRVJUKElTX09VVF9PRl9CQU5EX1BBQ0tFVChwYWNrZXQsIHBhY2tldF9sZW4p KTsKICAgcmV0dXJuIG5ldF93cml0ZV9jb21tYW5kKG5ldCwgMSwgKHVjaGFyICopICIiLCAwLCBw YWNrZXQsIHBhY2tldF9sZW4pOwogfQogCkBAIC04OTkzLDEzICs4OTg3LDggQEAgc3RhdGljIGlu dCBzZXJ2ZXJfbXB2aW9fd3JpdGVfcGFja2V0KE1ZUwogICAgIHJlcz0gc2VuZF9zZXJ2ZXJfaGFu ZHNoYWtlX3BhY2tldChtcHZpbywgKGNoYXIqKSBwYWNrZXQsIHBhY2tldF9sZW4pOwogICBlbHNl IGlmIChtcHZpby0+c3RhdHVzID09IE1QVklPX0VYVDo6UkVTVEFSVCkKICAgICByZXM9IHNlbmRf cGx1Z2luX3JlcXVlc3RfcGFja2V0KG1wdmlvLCBwYWNrZXQsIHBhY2tldF9sZW4pOwotICBlbHNl IGlmIChJU19PVVRfT0ZfQkFORF9QQUNLRVQocGFja2V0LCBwYWNrZXRfbGVuKSkKLSAgICByZXM9 IHdyYXBfcGxndWluX2RhdGFfaW50b19wcm9wZXJfY29tbWFuZChtcHZpby0+bmV0LCBwYWNrZXQs IHBhY2tldF9sZW4pOwogICBlbHNlCi0gIHsKLSAgICByZXM9IG15X25ldF93cml0ZShtcHZpby0+ bmV0LCBwYWNrZXQsIHBhY2tldF9sZW4pIHx8Ci0gICAgICAgICBuZXRfZmx1c2gobXB2aW8tPm5l dCk7Ci0gIH0KKyAgICByZXM9IHdyYXBfcGxndWluX2RhdGFfaW50b19wcm9wZXJfY29tbWFuZCht cHZpby0+bmV0LCBwYWNrZXQsIHBhY2tldF9sZW4pOwogICBtcHZpby0+cGFja2V0c193cml0dGVu Kys7CiAgIERCVUdfUkVUVVJOKHJlcyk7CiB9CkBAIC05NzY3LDcgKzk3NTYsOCBAQCBteXNxbF9k ZWNsYXJlX3BsdWdpbihteXNxbF9wYXNzd29yZCkKICAgMHgwMTAwLCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8qIFZlcnNpb24gKDEuMCkgICAgKi8KICAgTlVMTCwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHN0YXR1cyB2YXJpYWJsZXMg Ki8KICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHN5 c3RlbSB2YXJpYWJsZXMgKi8KLSAgTlVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIGNvbmZpZyBvcHRpb25zICAgKi8KKyAgTlVMTCwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNvbmZpZyBvcHRpb25zICAgKi8KKyAgMCwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGZsYWdzICAgICAgICAg ICAgKi8KIH0sCiB7CiAgIE1ZU1FMX0FVVEhFTlRJQ0FUSU9OX1BMVUdJTiwgICAgICAgICAgICAg ICAgICAvKiB0eXBlIGNvbnN0YW50ICAgICovCkBAIC05NzgxLDcgKzk3NzEsOCBAQCBteXNxbF9k ZWNsYXJlX3BsdWdpbihteXNxbF9wYXNzd29yZCkKICAgMHgwMTAwLCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8qIFZlcnNpb24gKDEuMCkgICAgKi8KICAgTlVMTCwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHN0YXR1cyB2YXJpYWJsZXMg Ki8KICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHN5 c3RlbSB2YXJpYWJsZXMgKi8KLSAgTlVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIGNvbmZpZyBvcHRpb25zICAgKi8KKyAgTlVMTCwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNvbmZpZyBvcHRpb25zICAgKi8KKyAgMCwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGZsYWdzICAgICAgICAg ICAgKi8KIH0KIG15c3FsX2RlY2xhcmVfcGx1Z2luX2VuZDsKIAoKPT09IG1vZGlmaWVkIGZpbGUg J3NxbC9zcWxfZXJyb3IuY2MnCi0tLSBhL3NxbC9zcWxfZXJyb3IuY2MJMjAxMS0wNy0yOCAxMDo1 NDo0NCArMDAwMAorKysgYi9zcWwvc3FsX2Vycm9yLmNjCTIwMTEtMDktMjEgMTE6MDE6NDEgKzAw MDAKQEAgLTkwNywxNCArOTA3LDE2IEBAIHVpbnQzMiBjb252ZXJ0X2Vycm9yX21lc3NhZ2UoY2hh ciAqdG8sIHUKICAgbXlfd2NfdCAgICAgd2M7CiAgIGNvbnN0IHVjaGFyICpmcm9tX2VuZD0gKGNv bnN0IHVjaGFyKikgZnJvbStmcm9tX2xlbmd0aDsKICAgY2hhciAqdG9fc3RhcnQ9IHRvOwotICB1 Y2hhciAqdG9fZW5kPSAodWNoYXIqKSB0byt0b19sZW5ndGg7CisgIHVjaGFyICp0b19lbmQ7CiAg IG15X2NoYXJzZXRfY29udl9tYl93YyBtYl93Yz0gZnJvbV9jcy0+Y3NldC0+bWJfd2M7CiAgIG15 X2NoYXJzZXRfY29udl93Y19tYiB3Y19tYjsKICAgdWludCBlcnJvcl9jb3VudD0gMDsKICAgdWlu dCBsZW5ndGg7CiAKICAgREJVR19BU1NFUlQodG9fbGVuZ3RoID4gMCk7CisgIC8qIE1ha2Ugcm9v bSBmb3IgdGhlIG51bGwgdGVybWluYXRvci4gKi8KICAgdG9fbGVuZ3RoLS07CisgIHRvX2VuZD0g KHVjaGFyKikgKHRvICsgdG9fbGVuZ3RoKTsKIAogICBpZiAoIXRvX2NzIHx8IGZyb21fY3MgPT0g dG9fY3MgfHwgdG9fY3MgPT0gJm15X2NoYXJzZXRfYmluKQogICB7Cgo9PT0gbW9kaWZpZWQgZmls ZSAnc3FsL3NxbF9sZXguY2MnCi0tLSBhL3NxbC9zcWxfbGV4LmNjCTIwMTEtMDgtMTUgMDk6NDQ6 MDAgKzAwMDAKKysrIGIvc3FsL3NxbF9sZXguY2MJMjAxMS0wOS0yMyAxMTo0MjozNSArMDAwMApA QCAtNDM2LDYgKzQzNiw3IEBAIHZvaWQgbGV4X3N0YXJ0KFRIRCAqdGhkKQogCiAgIGxleC0+aXNf bGV4X3N0YXJ0ZWQ9IFRSVUU7CiAgIGxleC0+dXNlZF90YWJsZXM9IDA7CisgIGxleC0+cmVzZXRf c2xhdmVfaW5mby5hbGw9IGZhbHNlOwogICBEQlVHX1ZPSURfUkVUVVJOOwogfQogCkBAIC0yMTU0 LDYgKzIxNTUsOSBAQCBib29sIHN0X3NlbGVjdF9sZXg6OnNldHVwX3JlZl9hcnJheShUSEQgCiAg IC8vIGZpbmRfb3JkZXJfaW5fbGlzdCgpIG1heSBuZWVkIHNvbWUgZXh0cmEgc3BhY2UsIHNvIG11 bHRpcGx5IGJ5IHR3by4KICAgb3JkZXJfZ3JvdXBfbnVtKj0gMjsKIAorICAvLyBmaW5kX29yZGVy X2luX2xpc3QoKSBtYXkgbmVlZCBzb21lIGV4dHJhIHNwYWNlLCBzbyBtdWx0aXBseSBieSB0d28u CisgIG9yZGVyX2dyb3VwX251bSo9IDI7CisKICAgLyoKICAgICBXZSBoYXZlIHRvIGNyZWF0ZSBh cnJheSBpbiBwcmVwYXJlZCBzdGF0ZW1lbnQgbWVtb3J5IGlmIGl0IGlzCiAgICAgcHJlcGFyZWQg c3RhdGVtZW50Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL3NxbF9wbHVnaW4uY2MnCi0tLSBhL3Nx bC9zcWxfcGx1Z2luLmNjCTIwMTEtMDgtMTggMDg6MzE6MDggKzAwMDAKKysrIGIvc3FsL3NxbF9w bHVnaW4uY2MJMjAxMS0wOS0yMSAxMTowMTo0MSArMDAwMApAQCAtNTM5LDYgKzUzOSwxMSBAQCBz dGF0aWMgc3RfcGx1Z2luX2RsICpwbHVnaW5fZGxfYWRkKGNvbnN0CiAjZW5kaWYKICAgICB9CiAK KyAgICAvKgorICAgICAgV2hhdCdzIHRoZSBwdXJwb3NlIG9mIHRoaXMgbG9vcD8gSWYgdGhlIGdv YWwgaXMgdG8gY2F0Y2ggYQorICAgICAgbWlzc2luZyAwIHJlY29yZCBhdCB0aGUgZW5kIG9mIGEg bGlzdCwgaXQgd2lsbCBmYWlsIG1pc2VyYWJseQorICAgICAgc2luY2UgdGhlIGNvbXBpbGVyIGlz IGxpa2VseSB0byBvcHRpbWl6ZSB0aGlzIGF3YXkuIC9NYXR6CisgICAgICovCiAgICAgZm9yIChp PSAwOwogICAgICAgICAgKChzdHJ1Y3Qgc3RfbXlzcWxfcGx1Z2luICopKHB0citpKnNpemVvZl9z dF9wbHVnaW4pKS0+aW5mbzsKICAgICAgICAgIGkrKykKQEAgLTU2Nyw2ICs1NzIsMjMgQEAgc3Rh dGljIHN0X3BsdWdpbl9kbCAqcGx1Z2luX2RsX2FkZChjb25zdAogICB9CiAgIHBsdWdpbl9kbC5w bHVnaW5zPSAoc3RydWN0IHN0X215c3FsX3BsdWdpbiAqKXN5bTsKIAorICAvKgorICAgIElmIHJl cG9ydCBpcyBSRVBPUlRfVE9fVVNFUiwgd2Ugd2VyZSBjYWxsZWQgZnJvbQorICAgIG15c3FsX2lu c3RhbGxfcGx1Z2luLiBPdGhlcndpc2UsIHdlIGFyZSBjYWxsZWQgZGlyZWN0bHkgb3IKKyAgICBp bmRpcmVjdGx5IGZyb20gcGx1Z2luX2luaXQuCisgICAqLworICBpZiAocmVwb3J0ID09IFJFUE9S VF9UT19VU0VSKQorICB7CisgICAgc3RfbXlzcWxfcGx1Z2luICpwbHVnaW49IHBsdWdpbl9kbC5w bHVnaW5zOworICAgIGZvciAoIDsgcGx1Z2luLT5pbmZvIDsgKytwbHVnaW4pCisgICAgICBpZiAo cGx1Z2luLT5mbGFncyAmIFBMVUdJTl9PUFRfTk9fSU5TVEFMTCkKKyAgICAgIHsKKyAgICAgICAg cmVwb3J0X2Vycm9yKHJlcG9ydCwgRVJfUExVR0lOX05PX0lOU1RBTEwsIHBsdWdpbi0+bmFtZSk7 CisgICAgICAgIGZyZWVfcGx1Z2luX21lbSgmcGx1Z2luX2RsKTsKKyAgICAgICAgREJVR19SRVRV Uk4oMCk7CisgICB9CisgIH0KKwogICAvKiBEdXBsaWNhdGUgYW5kIGNvbnZlcnQgZGxsIG5hbWUg Ki8KICAgcGx1Z2luX2RsLmRsLmxlbmd0aD0gZGwtPmxlbmd0aCAqIGZpbGVzX2NoYXJzZXRfaW5m by0+bWJtYXhsZW4gKyAxOwogICBpZiAoISAocGx1Z2luX2RsLmRsLnN0cj0gKGNoYXIqKSBteV9t YWxsb2MocGx1Z2luX2RsLmRsLmxlbmd0aCwgTVlGKDApKSkpCkBAIC0xODk0LDYgKzE5MTYsMTYg QEAgYm9vbCBteXNxbF91bmluc3RhbGxfcGx1Z2luKFRIRCAqdGhkLCBjbwogICAgIG15X2Vycm9y KEVSX1BMVUdJTl9JU19QRVJNQU5FTlQsIE1ZRigwKSwgbmFtZS0+c3RyKTsKICAgICBnb3RvIGVy cjsKICAgfQorICAvKgorICAgIEVycm9yIG1lc3NhZ2UgZm9yIEVSX1BMVUdJTl9JU19QRVJNQU5F TlQgaXMgbm90IHN1aXRhYmxlIGZvcgorICAgIHBsdWdpbnMgbWFya2VkIGFzIG5vdCBkeW5hbWlj YWxseSB1bmluc3RhbGxhYmxlLCBzbyB3ZSBoYXZlIGEKKyAgICBzZXBhcmF0ZSBvbmUgaW5zdGVh ZCBvZiBjaGFuZ2luZyB0aGUgb2xkIG9uZS4KKyAgICovCisgIGlmIChwbHVnaW4tPnBsdWdpbi0+ ZmxhZ3MgJiBQTFVHSU5fT1BUX05PX1VOSU5TVEFMTCkKKyAgeworICAgIG15X2Vycm9yKEVSX1BM VUdJTl9OT19VTklOU1RBTEwsIE1ZRigwKSwgcGx1Z2luLT5wbHVnaW4tPm5hbWUpOworICAgIGdv dG8gZXJyOworICB9CiAKICAgcGx1Z2luLT5zdGF0ZT0gUExVR0lOX0lTX0RFTEVURUQ7CiAgIGlm IChwbHVnaW4tPnJlZl9jb3VudCkKCj09PSBtb2RpZmllZCBmaWxlICdzcWwvc3FsX3VuaW9uLmNj JwotLS0gYS9zcWwvc3FsX3VuaW9uLmNjCTIwMTEtMDctMjEgMTI6NTQ6NTQgKzAwMDAKKysrIGIv c3FsL3NxbF91bmlvbi5jYwkyMDExLTA5LTIxIDExOjAxOjQxICswMDAwCkBAIC0xLDQgKzEsNCBA QAotLyogQ29weXJpZ2h0IChjKSAyMDAxLCAyMDExLCBPcmFjbGUgYW5kL29yIGl0cyBhZmZpbGlh dGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLyogQ29weXJpZ2h0IChjKSAyMDAwLCAyMDExLCBP cmFjbGUgYW5kL29yIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogCiAgICBU aGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yIG1vZGlmeQogICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKQEAgLTQzMiw3ICs0MzIsNyBAQCBib29sIHN0X3Nl bGVjdF9sZXhfdW5pdDo6cHJlcGFyZShUSEQgKnRoCiAgICAgICAgICAgRmFrZSBzdF9zZWxlY3Rf bGV4IHNob3VsZCBoYXZlIGl0ZW0gbGlzdCBmb3IgY29ycmVjdCByZWZfYXJyYXkKICAgICAgICAg ICBhbGxvY2F0aW9uLgogICAgICAgICAqLwotCWZha2Vfc2VsZWN0X2xleC0+aXRlbV9saXN0PSBp dGVtX2xpc3Q7CisgICAgICAgIGZha2Vfc2VsZWN0X2xleC0+aXRlbV9saXN0PSBpdGVtX2xpc3Q7 CiAKICAgICAgICAgdGhkX2FyZy0+bGV4LT5jdXJyZW50X3NlbGVjdD0gZmFrZV9zZWxlY3RfbGV4 OwogCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL3NxbF95YWNjLnl5JwotLS0gYS9zcWwvc3FsX3lh Y2MueXkJMjAxMS0wOS0xMyAwNzoyMjo0OSArMDAwMAorKysgYi9zcWwvc3FsX3lhY2MueXkJMjAx MS0wOS0yNiAwNzoxOTowNCArMDAwMApAQCAtODgwMyw2ICs4ODAzLDExIEBAIGZ1bmN0aW9uX2Nh bGxfZ2VuZXJpYzoKICAgICAgICAgICAgIENyZWF0ZV9mdW5jICpidWlsZGVyOwogICAgICAgICAg ICAgSXRlbSAqaXRlbT0gTlVMTDsKIAorICAgICAgICAgICAgaWYgKGNoZWNrX3JvdXRpbmVfbmFt ZSgmJDEpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAg ICAgICAgICAgfQorCiAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICBJbXBsZW1lbnRhdGlv biBub3RlOgogICAgICAgICAgICAgICBuYW1lcyBhcmUgcmVzb2x2ZWQgd2l0aCB0aGUgZm9sbG93 aW5nIG9yZGVyOgpAQCAtODg2Niw2ICs4ODcxLDE2IEBAIGZ1bmN0aW9uX2NhbGxfZ2VuZXJpYzoK ICAgICAgICAgICAgICAgdmVyc2lvbigpIChhIHZlbmRvciBjYW4gc3BlY2lmeSBhbnkgc2NoZW1h KS4KICAgICAgICAgICAgICovCiAKKyAgICAgICAgICAgIGlmICghJDEuc3RyIHx8IGNoZWNrX2Fu ZF9jb252ZXJ0X2RiX25hbWUoJiQxLCBGQUxTRSkpCisgICAgICAgICAgICB7CisgICAgICAgICAg ICAgIG15X2Vycm9yKEVSX1dST05HX0RCX05BTUUsIE1ZRigwKSwgJDEuc3RyKTsKKyAgICAgICAg ICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjaGVj a19yb3V0aW5lX25hbWUoJiQzKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgTVlTUUxf WVlBQk9SVDsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgYnVpbGRlcj0gZmluZF9xdWFs aWZpZWRfZnVuY3Rpb25fYnVpbGRlcih0aGQpOwogICAgICAgICAgICAgREJVR19BU1NFUlQoYnVp bGRlcik7CiAgICAgICAgICAgICBpdGVtPSBidWlsZGVyLT5jcmVhdGUodGhkLCAkMSwgJDMsIHRy dWUsICQ1KTsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2FyY2hpdmUvaGFfYXJjaGl2ZS5j YycKLS0tIGEvc3RvcmFnZS9hcmNoaXZlL2hhX2FyY2hpdmUuY2MJMjAxMS0wNy0wNCAwMDoyNTo0 NiArMDAwMAorKysgYi9zdG9yYWdlL2FyY2hpdmUvaGFfYXJjaGl2ZS5jYwkyMDExLTA5LTIxIDEx OjAxOjQxICswMDAwCkBAIC0xNzc1LDcgKzE3NzUsOCBAQCBteXNxbF9kZWNsYXJlX3BsdWdpbihh cmNoaXZlKQogICAweDAzMDAgLyogMy4wICovLAogICBOVUxMLCAgICAgICAgICAgICAgICAgICAg ICAgLyogc3RhdHVzIHZhcmlhYmxlcyAgICAgICAgICAgICAgICAqLwogICBOVUxMLCAgICAgICAg ICAgICAgICAgICAgICAgLyogc3lzdGVtIHZhcmlhYmxlcyAgICAgICAgICAgICAgICAqLwotICBO VUxMICAgICAgICAgICAgICAgICAgICAgICAgLyogY29uZmlnIG9wdGlvbnMgICAgICAgICAgICAg ICAgICAqLworICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgLyogY29uZmlnIG9wdGlvbnMg ICAgICAgICAgICAgICAgICAqLworICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZmxh Z3MgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogfQogbXlzcWxfZGVjbGFyZV9wbHVnaW5f ZW5kOwogCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9ibGFja2hvbGUvaGFfYmxhY2tob2xl LmNjJwotLS0gYS9zdG9yYWdlL2JsYWNraG9sZS9oYV9ibGFja2hvbGUuY2MJMjAxMS0wOC0xOSAx MzowNDoyOCArMDAwMAorKysgYi9zdG9yYWdlL2JsYWNraG9sZS9oYV9ibGFja2hvbGUuY2MJMjAx MS0wOS0yMSAxMTowMTo0MSArMDAwMApAQCAtNDQ3LDYgKzQ0Nyw3IEBAIG15c3FsX2RlY2xhcmVf cGx1Z2luKGJsYWNraG9sZSkKICAgMHgwMTAwIC8qIDEuMCAqLywKICAgTlVMTCwgICAgICAgICAg ICAgICAgICAgICAgIC8qIHN0YXR1cyB2YXJpYWJsZXMgICAgICAgICAgICAgICAgKi8KICAgTlVM TCwgICAgICAgICAgICAgICAgICAgICAgIC8qIHN5c3RlbSB2YXJpYWJsZXMgICAgICAgICAgICAg ICAgKi8KLSAgTlVMTCAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNvbmZpZyBvcHRpb25zICAg ICAgICAgICAgICAgICAgKi8KKyAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgIC8qIGNvbmZp ZyBvcHRpb25zICAgICAgICAgICAgICAgICAgKi8KKyAgMCwgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIGZsYWdzICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIH0KIG15c3FsX2RlY2xh cmVfcGx1Z2luX2VuZDsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2Nzdi9oYV90aW5hLmNj JwotLS0gYS9zdG9yYWdlL2Nzdi9oYV90aW5hLmNjCTIwMTEtMDYtMzAgMTU6NTA6NDUgKzAwMDAK KysrIGIvc3RvcmFnZS9jc3YvaGFfdGluYS5jYwkyMDExLTA5LTIxIDExOjAxOjQxICswMDAwCkBA IC0xNzU5LDcgKzE3NTksOCBAQCBteXNxbF9kZWNsYXJlX3BsdWdpbihjc3YpCiAgIDB4MDEwMCAv KiAxLjAgKi8sCiAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAvKiBzdGF0dXMgdmFyaWFi bGVzICAgICAgICAgICAgICAgICovCiAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAvKiBz eXN0ZW0gdmFyaWFibGVzICAgICAgICAgICAgICAgICovCi0gIE5VTEwgICAgICAgICAgICAgICAg ICAgICAgICAvKiBjb25maWcgb3B0aW9ucyAgICAgICAgICAgICAgICAgICovCisgIE5VTEwsICAg ICAgICAgICAgICAgICAgICAgICAvKiBjb25maWcgb3B0aW9ucyAgICAgICAgICAgICAgICAgICov CisgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBmbGFncyAgICAgICAgICAgICAgICAg ICAgICAgICAgICovCiB9CiBteXNxbF9kZWNsYXJlX3BsdWdpbl9lbmQ7CiAKCj09PSBtb2RpZmll ZCBmaWxlICdzdG9yYWdlL2V4YW1wbGUvaGFfZXhhbXBsZS5jYycKLS0tIGEvc3RvcmFnZS9leGFt cGxlL2hhX2V4YW1wbGUuY2MJMjAxMS0wNi0zMCAxNTo1MDo0NSArMDAwMAorKysgYi9zdG9yYWdl L2V4YW1wbGUvaGFfZXhhbXBsZS5jYwkyMDExLTA5LTIxIDExOjAxOjQxICswMDAwCkBAIC0xMDAx LDYgKzEwMDEsNyBAQCBteXNxbF9kZWNsYXJlX3BsdWdpbihleGFtcGxlKQogICAweDAwMDEgLyog MC4xICovLAogICBmdW5jX3N0YXR1cywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Lyogc3RhdHVzIHZhcmlhYmxlcyAqLwogICBleGFtcGxlX3N5c3RlbV92YXJpYWJsZXMsICAgICAg ICAgICAgICAgICAgICAgLyogc3lzdGVtIHZhcmlhYmxlcyAqLwotICBOVUxMICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogY29uZmlnIG9wdGlvbnMgKi8KKyAgTlVM TCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNvbmZpZyBvcHRp b25zICovCisgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv KiBmbGFncyAqLwogfQogbXlzcWxfZGVjbGFyZV9wbHVnaW5fZW5kOwoKPT09IG1vZGlmaWVkIGZp bGUgJ3N0b3JhZ2UvZmVkZXJhdGVkL2hhX2ZlZGVyYXRlZC5jYycKLS0tIGEvc3RvcmFnZS9mZWRl cmF0ZWQvaGFfZmVkZXJhdGVkLmNjCTIwMTEtMDYtMzAgMTU6NTA6NDUgKzAwMDAKKysrIGIvc3Rv cmFnZS9mZWRlcmF0ZWQvaGFfZmVkZXJhdGVkLmNjCTIwMTEtMDktMjEgMTE6MDE6NDEgKzAwMDAK QEAgLTM0NzQsNiArMzQ3NCw3IEBAIG15c3FsX2RlY2xhcmVfcGx1Z2luKGZlZGVyYXRlZCkKICAg MHgwMTAwIC8qIDEuMCAqLywKICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgIC8qIHN0YXR1 cyB2YXJpYWJsZXMgICAgICAgICAgICAgICAgKi8KICAgTlVMTCwgICAgICAgICAgICAgICAgICAg ICAgIC8qIHN5c3RlbSB2YXJpYWJsZXMgICAgICAgICAgICAgICAgKi8KLSAgTlVMTCAgICAgICAg ICAgICAgICAgICAgICAgIC8qIGNvbmZpZyBvcHRpb25zICAgICAgICAgICAgICAgICAgKi8KKyAg TlVMTCwgICAgICAgICAgICAgICAgICAgICAgIC8qIGNvbmZpZyBvcHRpb25zICAgICAgICAgICAg ICAgICAgKi8KKyAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGZsYWdzICAgICAgICAg ICAgICAgICAgICAgICAgICAgKi8KIH0KIG15c3FsX2RlY2xhcmVfcGx1Z2luX2VuZDsKCj09PSBt b2RpZmllZCBmaWxlICdzdG9yYWdlL2hlYXAvaGFfaGVhcC5jYycKLS0tIGEvc3RvcmFnZS9oZWFw L2hhX2hlYXAuY2MJMjAxMS0wNy0wNCAwMDoyNTo0NiArMDAwMAorKysgYi9zdG9yYWdlL2hlYXAv aGFfaGVhcC5jYwkyMDExLTA5LTIxIDExOjAxOjQxICswMDAwCkBAIC04MjEsNiArODIxLDcgQEAg bXlzcWxfZGVjbGFyZV9wbHVnaW4oaGVhcCkKICAgMHgwMTAwLCAvKiAxLjAgKi8KICAgTlVMTCwg ICAgICAgICAgICAgICAgICAgICAgIC8qIHN0YXR1cyB2YXJpYWJsZXMgICAgICAgICAgICAgICAg Ki8KICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgIC8qIHN5c3RlbSB2YXJpYWJsZXMgICAg ICAgICAgICAgICAgKi8KLSAgTlVMTCAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNvbmZpZyBv cHRpb25zICAgICAgICAgICAgICAgICAgKi8KKyAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAg IC8qIGNvbmZpZyBvcHRpb25zICAgICAgICAgICAgICAgICAgKi8KKyAgMCwgICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIGZsYWdzICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIH0KIG15 c3FsX2RlY2xhcmVfcGx1Z2luX2VuZDsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9i YXNlL2J0ci9idHIwcGN1ci5jJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2J0ci9idHIwcGN1ci5j CTIwMTEtMDgtMTUgMDk6MzQ6MzkgKzAwMDAKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9idHIvYnRy MHBjdXIuYwkyMDExLTA5LTI2IDA3OjE5OjA0ICswMDAwCkBAIC0zNTgsMzMgKzM1OCw2IEBAIGJ0 cl9wY3VyX3Jlc3RvcmVfcG9zaXRpb25fZnVuYygKIAlyZXR1cm4oRkFMU0UpOwogfQogCi0vKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KiovLyoqCi1JZiB0aGUgbGF0Y2ggbW9kZSBvZiB0aGUgY3Vyc29yIGlzIEJUUl9MRUFGX1NFQVJD SCBvciBCVFJfTEVBRl9NT0RJRlksCi1yZWxlYXNlcyB0aGUgcGFnZSBsYXRjaCBhbmQgYnVmZmVy Zml4IHJlc2VydmVkIGJ5IHRoZSBjdXJzb3IuCi1OT1RFISBJbiB0aGUgY2FzZSBvZiBCVFJfTEVB Rl9NT0RJRlksIHRoZXJlIHNob3VsZCBub3QgZXhpc3QgY2hhbmdlcwotbWFkZSBieSB0aGUgY3Vy cmVudCBtaW5pLXRyYW5zYWN0aW9uIHRvIHRoZSBkYXRhIHByb3RlY3RlZCBieSB0aGUKLWN1cnNv ciBsYXRjaCwgYXMgdGhlbiB0aGUgbGF0Y2ggbXVzdCBub3QgYmUgcmVsZWFzZWQgdW50aWwgbXRy X2NvbW1pdC4gKi8KLVVOSVZfSU5URVJOCi12b2lkCi1idHJfcGN1cl9yZWxlYXNlX2xlYWYoCi0v Kj09PT09PT09PT09PT09PT09PSovCi0JYnRyX3BjdXJfdCoJY3Vyc29yLCAvKiE8IGluOiBwZXJz aXN0ZW50IGN1cnNvciAqLwotCW10cl90KgkJbXRyKQkvKiE8IGluOiBtdHIgKi8KLXsKLQlidWZf YmxvY2tfdCoJYmxvY2s7Ci0KLQl1dF9hKGN1cnNvci0+cG9zX3N0YXRlID09IEJUUl9QQ1VSX0lT X1BPU0lUSU9ORUQpOwotCXV0X2FkKGN1cnNvci0+bGF0Y2hfbW9kZSAhPSBCVFJfTk9fTEFUQ0hF Uyk7Ci0KLQlibG9jayA9IGJ0cl9wY3VyX2dldF9ibG9jayhjdXJzb3IpOwotCi0JYnRyX2xlYWZf cGFnZV9yZWxlYXNlKGJsb2NrLCBjdXJzb3ItPmxhdGNoX21vZGUsIG10cik7Ci0KLQljdXJzb3It PmxhdGNoX21vZGUgPSBCVFJfTk9fTEFUQ0hFUzsKLQotCWN1cnNvci0+cG9zX3N0YXRlID0gQlRS X1BDVVJfV0FTX1BPU0lUSU9ORUQ7Ci19Ci0KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBNb3ZlcyB0aGUgcGVyc2lzdGVudCBj dXJzb3IgdG8gdGhlIGZpcnN0IHJlY29yZCBvbiB0aGUgbmV4dCBwYWdlLiBSZWxlYXNlcyB0aGUK IGxhdGNoIG9uIHRoZSBjdXJyZW50IHBhZ2UsIGFuZCBidWZmZXJ1bmZpeGVzIGl0LiBOb3RlIHRo YXQgdGhlcmUgbXVzdCBub3QgYmUKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNl L2hhbmRsZXIvaGFfaW5ub2RiLmNjJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2hhbmRsZXIvaGFf aW5ub2RiLmNjCTIwMTEtMDktMDEgMTg6NTk6NDQgKzAwMDAKKysrIGIvc3RvcmFnZS9pbm5vYmFz ZS9oYW5kbGVyL2hhX2lubm9kYi5jYwkyMDExLTA5LTIzIDEwOjU1OjEwICswMDAwCkBAIC00Mzgy LDI1ICs0MzgyLDYgQEAgZmllbGRfaW5fcmVjb3JkX2lzX251bGwoCiAJcmV0dXJuKDApOwogfQog Ci0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovLyoqCi1TZXRzIGEgZmllbGQgaW4gYSByZWNvcmQgdG8gU1FMIE5VTEwuIFVzZXMg dGhlIHJlY29yZCBmb3JtYXQKLWluZm9ybWF0aW9uIGluIHRhYmxlIHRvIHRyYWNrIHRoZSBudWxs IGJpdCBpbiByZWNvcmQuICovCi1zdGF0aWMgaW5saW5lCi12b2lkCi1zZXRfZmllbGRfaW5fcmVj b3JkX3RvX251bGwoCi0vKj09PT09PT09PT09PT09PT09PT09PT09PSovCi0JVEFCTEUqCXRhYmxl LAkvKiE8IGluOiBNeVNRTCB0YWJsZSBvYmplY3QgKi8KLQlGaWVsZCoJZmllbGQsCS8qITwgaW46 IE15U1FMIGZpZWxkIG9iamVjdCAqLwotCWNoYXIqCXJlY29yZCkJLyohPCBpbjogYSByb3cgaW4g TXlTUUwgZm9ybWF0ICovCi17Ci0JaW50CW51bGxfb2Zmc2V0OwotCi0JbnVsbF9vZmZzZXQgPSAo dWludCkgKChjaGFyKikgZmllbGQtPm51bGxfcHRyCi0JCSAgICAtIChjaGFyKikgdGFibGUtPnJl Y29yZFswXSk7Ci0KLQlyZWNvcmRbbnVsbF9vZmZzZXRdID0gcmVjb3JkW251bGxfb2Zmc2V0XSB8 IGZpZWxkLT5udWxsX2JpdDsKLX0KLQogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBJbm5vREIgdXNlcyB0aGlzIGZ1bmN0 aW9uIHRvIGNvbXBhcmUgdHdvIGRhdGEgZmllbGRzIGZvciB3aGljaCB0aGUgZGF0YSB0eXBlCiBp cyBzdWNoIHRoYXQgd2UgbXVzdCB1c2UgTXlTUUwgY29kZSB0byBjb21wYXJlIHRoZW0uIE5PVEUg dGhhdCB0aGUgcHJvdG90eXBlCkBAIC0xMzAzNSw3ICsxMzAxNiw4IEBAIG15c3FsX2RlY2xhcmVf cGx1Z2luKGlubm9iYXNlKQogICBJTk5PREJfVkVSU0lPTl9TSE9SVCwKICAgaW5ub2RiX3N0YXR1 c192YXJpYWJsZXNfZXhwb3J0LC8qIHN0YXR1cyB2YXJpYWJsZXMgICAgICAgICAgICAgKi8KICAg aW5ub2Jhc2Vfc3lzdGVtX3ZhcmlhYmxlcywgLyogc3lzdGVtIHZhcmlhYmxlcyAqLwotICBOVUxM IC8qIHJlc2VydmVkICovCisgIE5VTEwsIC8qIHJlc2VydmVkICovCisgIDAsICAgIC8qIGZsYWdz ICovCiB9LAogaV9zX2lubm9kYl90cngsCiBpX3NfaW5ub2RiX2xvY2tzLAoKPT09IG1vZGlmaWVk IGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvaGFuZGxlci9pX3MuY2MnCi0tLSBhL3N0b3JhZ2UvaW5u b2Jhc2UvaGFuZGxlci9pX3MuY2MJMjAxMS0wOS0wOCAxMDowNTozOCArMDAwMAorKysgYi9zdG9y YWdlL2lubm9iYXNlL2hhbmRsZXIvaV9zLmNjCTIwMTEtMDktMjMgMTE6MDk6NTggKzAwMDAKQEAg LTcyOSw3ICs3MjksMTEgQEAgVU5JVl9JTlRFUk4gc3RydWN0IHN0X215c3FsX3BsdWdpbglpX3Nf aQogCiAJLyogcmVzZXJ2ZWQgZm9yIGRlcGVuZGVuY3kgY2hlY2tpbmcgKi8KIAkvKiB2b2lkKiAq LwotCVNUUlVDVF9GTEQoX19yZXNlcnZlZDEsIE5VTEwpCisJU1RSVUNUX0ZMRChfX3Jlc2VydmVk MSwgTlVMTCksCisKKwkvKiBQbHVnaW4gZmxhZ3MgKi8KKwkvKiB1bnNpZ25lZCBsb25nICovCisJ U1RSVUNUX0ZMRChmbGFncywgMFVMKSwKIH07CiAKIC8qIEZpZWxkcyBvZiB0aGUgZHluYW1pYyB0 YWJsZSBJTkZPUk1BVElPTl9TQ0hFTUEuaW5ub2RiX2xvY2tzICovCkBAIC05OTUsNyArOTk5LDEx IEBAIFVOSVZfSU5URVJOIHN0cnVjdCBzdF9teXNxbF9wbHVnaW4JaV9zX2kKIAogCS8qIHJlc2Vy dmVkIGZvciBkZXBlbmRlbmN5IGNoZWNraW5nICovCiAJLyogdm9pZCogKi8KLQlTVFJVQ1RfRkxE KF9fcmVzZXJ2ZWQxLCBOVUxMKQorCVNUUlVDVF9GTEQoX19yZXNlcnZlZDEsIE5VTEwpLAorCisJ LyogUGx1Z2luIGZsYWdzICovCisJLyogdW5zaWduZWQgbG9uZyAqLworCVNUUlVDVF9GTEQoZmxh Z3MsIDBVTCksCiB9OwogCiAvKiBGaWVsZHMgb2YgdGhlIGR5bmFtaWMgdGFibGUgSU5GT1JNQVRJ T05fU0NIRU1BLmlubm9kYl9sb2NrX3dhaXRzICovCkBAIC0xMTc4LDcgKzExODYsMTEgQEAgVU5J Vl9JTlRFUk4gc3RydWN0IHN0X215c3FsX3BsdWdpbglpX3NfaQogCiAJLyogcmVzZXJ2ZWQgZm9y IGRlcGVuZGVuY3kgY2hlY2tpbmcgKi8KIAkvKiB2b2lkKiAqLwotCVNUUlVDVF9GTEQoX19yZXNl cnZlZDEsIE5VTEwpCisJU1RSVUNUX0ZMRChfX3Jlc2VydmVkMSwgTlVMTCksCisKKwkvKiBQbHVn aW4gZmxhZ3MgKi8KKwkvKiB1bnNpZ25lZCBsb25nICovCisJU1RSVUNUX0ZMRChmbGFncywgMFVM KSwKIH07CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLy8qKgpAQCAtMTUxMSw3ICsxNTIzLDExIEBAIFVOSVZfSU5U RVJOIHN0cnVjdCBzdF9teXNxbF9wbHVnaW4JaV9zX2kKIAogCS8qIHJlc2VydmVkIGZvciBkZXBl bmRlbmN5IGNoZWNraW5nICovCiAJLyogdm9pZCogKi8KLQlTVFJVQ1RfRkxEKF9fcmVzZXJ2ZWQx LCBOVUxMKQorCVNUUlVDVF9GTEQoX19yZXNlcnZlZDEsIE5VTEwpLAorCisJLyogUGx1Z2luIGZs YWdzICovCisJLyogdW5zaWduZWQgbG9uZyAqLworCVNUUlVDVF9GTEQoZmxhZ3MsIDBVTCksCiB9 OwogCiBVTklWX0lOVEVSTiBzdHJ1Y3Qgc3RfbXlzcWxfcGx1Z2luCWlfc19pbm5vZGJfY21wX3Jl c2V0ID0KQEAgLTE1NjEsNyArMTU3NywxMSBAQCBVTklWX0lOVEVSTiBzdHJ1Y3Qgc3RfbXlzcWxf cGx1Z2luCWlfc19pCiAKIAkvKiByZXNlcnZlZCBmb3IgZGVwZW5kZW5jeSBjaGVja2luZyAqLwog CS8qIHZvaWQqICovCi0JU1RSVUNUX0ZMRChfX3Jlc2VydmVkMSwgTlVMTCkKKwlTVFJVQ1RfRkxE KF9fcmVzZXJ2ZWQxLCBOVUxMKSwKKworCS8qIFBsdWdpbiBmbGFncyAqLworCS8qIHVuc2lnbmVk IGxvbmcgKi8KKwlTVFJVQ1RfRkxEKGZsYWdzLCAwVUwpLAogfTsKIAogLyogRmllbGRzIG9mIHRo ZSBkeW5hbWljIHRhYmxlIGluZm9ybWF0aW9uX3NjaGVtYS5pbm5vZGJfY21wbWVtLiAqLwpAQCAt MTgwMiw3ICsxODIyLDExIEBAIFVOSVZfSU5URVJOIHN0cnVjdCBzdF9teXNxbF9wbHVnaW4JaV9z X2kKIAogCS8qIHJlc2VydmVkIGZvciBkZXBlbmRlbmN5IGNoZWNraW5nICovCiAJLyogdm9pZCog Ki8KLQlTVFJVQ1RfRkxEKF9fcmVzZXJ2ZWQxLCBOVUxMKQorCVNUUlVDVF9GTEQoX19yZXNlcnZl ZDEsIE5VTEwpLAorCisJLyogUGx1Z2luIGZsYWdzICovCisJLyogdW5zaWduZWQgbG9uZyAqLwor CVNUUlVDVF9GTEQoZmxhZ3MsIDBVTCksCiB9OwogCiBVTklWX0lOVEVSTiBzdHJ1Y3Qgc3RfbXlz cWxfcGx1Z2luCWlfc19pbm5vZGJfY21wbWVtX3Jlc2V0ID0KQEAgLTE4NTIsNyArMTg3NiwxMSBA QCBVTklWX0lOVEVSTiBzdHJ1Y3Qgc3RfbXlzcWxfcGx1Z2luCWlfc19pCiAKIAkvKiByZXNlcnZl ZCBmb3IgZGVwZW5kZW5jeSBjaGVja2luZyAqLwogCS8qIHZvaWQqICovCi0JU1RSVUNUX0ZMRChf X3Jlc2VydmVkMSwgTlVMTCkKKwlTVFJVQ1RfRkxEKF9fcmVzZXJ2ZWQxLCBOVUxMKSwKKworCS8q IFBsdWdpbiBmbGFncyAqLworCS8qIHVuc2lnbmVkIGxvbmcgKi8KKwlTVFJVQ1RfRkxEKGZsYWdz LCAwVUwpLAogfTsKIAogLyogRmllbGRzIG9mIHRoZSBkeW5hbWljIHRhYmxlIElORk9STUFUSU9O X1NDSEVNQS5pbm5vZGJfbWV0cmljcyAqLwpAQCAtMjM3Niw3ICsyNDA0LDExIEBAIFVOSVZfSU5U RVJOIHN0cnVjdCBzdF9teXNxbF9wbHVnaW4JaV9zX2kKIAogCS8qIHJlc2VydmVkIGZvciBkZXBl bmRlbmN5IGNoZWNraW5nICovCiAJLyogdm9pZCogKi8KLQlTVFJVQ1RfRkxEKF9fcmVzZXJ2ZWQx LCBOVUxMKQorCVNUUlVDVF9GTEQoX19yZXNlcnZlZDEsIE5VTEwpLAorCisJLyogUGx1Z2luIGZs YWdzICovCisJLyogdW5zaWduZWQgbG9uZyAqLworCVNUUlVDVF9GTEQoZmxhZ3MsIDBVTCksCiB9 OwogCiAvKiBGaWVsZHMgb2YgdGhlIGR5bmFtaWMgdGFibGUgSU5OT0RCX0JVRkZFUl9QT09MX1NU QVRTLiAqLwpAQCAtMjg5Myw3ICsyOTI1LDExIEBAIFVOSVZfSU5URVJOIHN0cnVjdCBzdF9teXNx bF9wbHVnaW4JaV9zX2kKIAogCS8qIHJlc2VydmVkIGZvciBkZXBlbmRlbmN5IGNoZWNraW5nICov CiAJLyogdm9pZCogKi8KLQlTVFJVQ1RfRkxEKF9fcmVzZXJ2ZWQxLCBOVUxMKQorCVNUUlVDVF9G TEQoX19yZXNlcnZlZDEsIE5VTEwpLAorCisJLyogUGx1Z2luIGZsYWdzICovCisJLyogdW5zaWdu ZWQgbG9uZyAqLworCVNUUlVDVF9GTEQoZmxhZ3MsIDBVTCksCiB9OwogCiAvKiBGaWVsZHMgb2Yg dGhlIGR5bmFtaWMgdGFibGUgSU5OT0RCX0JVRkZFUl9QT09MX1BBR0UuICovCkBAIC0zNTgyLDcg KzM2MTgsMTEgQEAgVU5JVl9JTlRFUk4gc3RydWN0IHN0X215c3FsX3BsdWdpbglpX3NfaQogCiAJ LyogcmVzZXJ2ZWQgZm9yIGRlcGVuZGVuY3kgY2hlY2tpbmcgKi8KIAkvKiB2b2lkKiAqLwotCVNU UlVDVF9GTEQoX19yZXNlcnZlZDEsIE5VTEwpCisJU1RSVUNUX0ZMRChfX3Jlc2VydmVkMSwgTlVM TCksCisKKwkvKiBQbHVnaW4gZmxhZ3MgKi8KKwkvKiB1bnNpZ25lZCBsb25nICovCisJU1RSVUNU X0ZMRChmbGFncywgMFVMKSwKIH07CiAKIHN0YXRpYyBTVF9GSUVMRF9JTkZPCWlfc19pbm5vZGJf YnVmX3BhZ2VfbHJ1X2ZpZWxkc19pbmZvW10gPQpAQCAtNDEyNCw3ICs0MTY0LDExIEBAIFVOSVZf SU5URVJOIHN0cnVjdCBzdF9teXNxbF9wbHVnaW4JaV9zX2kKIAogCS8qIHJlc2VydmVkIGZvciBk ZXBlbmRlbmN5IGNoZWNraW5nICovCiAJLyogdm9pZCogKi8KLQlTVFJVQ1RfRkxEKF9fcmVzZXJ2 ZWQxLCBOVUxMKQorCVNUUlVDVF9GTEQoX19yZXNlcnZlZDEsIE5VTEwpLAorCisJLyogUGx1Z2lu IGZsYWdzICovCisJLyogdW5zaWduZWQgbG9uZyAqLworCVNUUlVDVF9GTEQoZmxhZ3MsIDBVTCks CiB9OwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKi8vKioKQEAgLTQzNjYsNyArNDQxMCwxMSBAQCBVTklWX0lOVEVS TiBzdHJ1Y3Qgc3RfbXlzcWxfcGx1Z2luCWlfc19pCiAKIAkvKiByZXNlcnZlZCBmb3IgZGVwZW5k ZW5jeSBjaGVja2luZyAqLwogCS8qIHZvaWQqICovCi0JU1RSVUNUX0ZMRChfX3Jlc2VydmVkMSwg TlVMTCkKKwlTVFJVQ1RfRkxEKF9fcmVzZXJ2ZWQxLCBOVUxMKSwKKworCS8qIFBsdWdpbiBmbGFn cyAqLworCS8qIHVuc2lnbmVkIGxvbmcgKi8KKwlTVFJVQ1RfRkxEKGZsYWdzLCAwVUwpLAogfTsK IAogLyogRmllbGRzIG9mIHRoZSBkeW5hbWljIHRhYmxlIElORk9STUFUSU9OX1NDSEVNQS5TWVNf VEFCTEVTVEFUUyAqLwpAQCAtNDY0MSw3ICs0Njg5LDExIEBAIFVOSVZfSU5URVJOIHN0cnVjdCBz dF9teXNxbF9wbHVnaW4JaV9zX2kKIAogCS8qIHJlc2VydmVkIGZvciBkZXBlbmRlbmN5IGNoZWNr aW5nICovCiAJLyogdm9pZCogKi8KLQlTVFJVQ1RfRkxEKF9fcmVzZXJ2ZWQxLCBOVUxMKQorCVNU UlVDVF9GTEQoX19yZXNlcnZlZDEsIE5VTEwpLAorCisJLyogUGx1Z2luIGZsYWdzICovCisJLyog dW5zaWduZWQgbG9uZyAqLworCVNUUlVDVF9GTEQoZmxhZ3MsIDBVTCksCiB9OwogCiAvKiBGaWVs ZHMgb2YgdGhlIGR5bmFtaWMgdGFibGUgSU5GT1JNQVRJT05fU0NIRU1BLlNZU19JTkRFWEVTICov CkBAIC00ODk2LDcgKzQ5NDgsMTEgQEAgVU5JVl9JTlRFUk4gc3RydWN0IHN0X215c3FsX3BsdWdp bglpX3NfaQogCiAJLyogcmVzZXJ2ZWQgZm9yIGRlcGVuZGVuY3kgY2hlY2tpbmcgKi8KIAkvKiB2 b2lkKiAqLwotCVNUUlVDVF9GTEQoX19yZXNlcnZlZDEsIE5VTEwpCisJU1RSVUNUX0ZMRChfX3Jl c2VydmVkMSwgTlVMTCksCisKKwkvKiBQbHVnaW4gZmxhZ3MgKi8KKwkvKiB1bnNpZ25lZCBsb25n ICovCisJU1RSVUNUX0ZMRChmbGFncywgMFVMKSwKIH07CiAKIC8qIEZpZWxkcyBvZiB0aGUgZHlu YW1pYyB0YWJsZSBJTkZPUk1BVElPTl9TQ0hFTUEuU1lTX0NPTFVNTlMgKi8KQEAgLTUxMzEsNyAr NTE4NywxMSBAQCBVTklWX0lOVEVSTiBzdHJ1Y3Qgc3RfbXlzcWxfcGx1Z2luCWlfc19pCiAKIAkv KiByZXNlcnZlZCBmb3IgZGVwZW5kZW5jeSBjaGVja2luZyAqLwogCS8qIHZvaWQqICovCi0JU1RS VUNUX0ZMRChfX3Jlc2VydmVkMSwgTlVMTCkKKwlTVFJVQ1RfRkxEKF9fcmVzZXJ2ZWQxLCBOVUxM KSwKKworCS8qIFBsdWdpbiBmbGFncyAqLworCS8qIHVuc2lnbmVkIGxvbmcgKi8KKwlTVFJVQ1Rf RkxEKGZsYWdzLCAwVUwpLAogfTsKIC8qIEZpZWxkcyBvZiB0aGUgZHluYW1pYyB0YWJsZSBJTkZP Uk1BVElPTl9TQ0hFTUEuaW5ub2RiX3N5c19maWVsZHMgKi8KIHN0YXRpYyBTVF9GSUVMRF9JTkZP CWlubm9kYl9zeXNfZmllbGRzX2ZpZWxkc19pbmZvW10gPQpAQCAtNTMzOCw3ICs1Mzk4LDExIEBA IFVOSVZfSU5URVJOIHN0cnVjdCBzdF9teXNxbF9wbHVnaW4JaV9zX2kKIAogCS8qIHJlc2VydmVk IGZvciBkZXBlbmRlbmN5IGNoZWNraW5nICovCiAJLyogdm9pZCogKi8KLQlTVFJVQ1RfRkxEKF9f cmVzZXJ2ZWQxLCBOVUxMKQorCVNUUlVDVF9GTEQoX19yZXNlcnZlZDEsIE5VTEwpLAorCisJLyog UGx1Z2luIGZsYWdzICovCisJLyogdW5zaWduZWQgbG9uZyAqLworCVNUUlVDVF9GTEQoZmxhZ3Ms IDBVTCksCiB9OwogCiAvKiBGaWVsZHMgb2YgdGhlIGR5bmFtaWMgdGFibGUgSU5GT1JNQVRJT05f U0NIRU1BLmlubm9kYl9zeXNfZm9yZWlnbiAqLwpAQCAtNTU1OSw3ICs1NjIzLDExIEBAIFVOSVZf SU5URVJOIHN0cnVjdCBzdF9teXNxbF9wbHVnaW4JaV9zX2kKIAogCS8qIHJlc2VydmVkIGZvciBk ZXBlbmRlbmN5IGNoZWNraW5nICovCiAJLyogdm9pZCogKi8KLQlTVFJVQ1RfRkxEKF9fcmVzZXJ2 ZWQxLCBOVUxMKQorCVNUUlVDVF9GTEQoX19yZXNlcnZlZDEsIE5VTEwpLAorCisJLyogUGx1Z2lu IGZsYWdzICovCisJLyogdW5zaWduZWQgbG9uZyAqLworCVNUUlVDVF9GTEQoZmxhZ3MsIDBVTCks CiB9OwogLyogRmllbGRzIG9mIHRoZSBkeW5hbWljIHRhYmxlIElORk9STUFUSU9OX1NDSEVNQS5p bm5vZGJfc3lzX2ZvcmVpZ25fY29scyAqLwogc3RhdGljIFNUX0ZJRUxEX0lORk8JaW5ub2RiX3N5 c19mb3JlaWduX2NvbHNfZmllbGRzX2luZm9bXSA9CkBAIC01NzczLDYgKzU4NDEsMTAgQEAgVU5J Vl9JTlRFUk4gc3RydWN0IHN0X215c3FsX3BsdWdpbglpX3NfaQogCiAJLyogcmVzZXJ2ZWQgZm9y IGRlcGVuZGVuY3kgY2hlY2tpbmcgKi8KIAkvKiB2b2lkKiAqLwotCVNUUlVDVF9GTEQoX19yZXNl cnZlZDEsIE5VTEwpCisJU1RSVUNUX0ZMRChfX3Jlc2VydmVkMSwgTlVMTCksCisKKwkvKiBQbHVn aW4gZmxhZ3MgKi8KKwkvKiB1bnNpZ25lZCBsb25nICovCisJU1RSVUNUX0ZMRChmbGFncywgMFVM KSwKIH07CiAKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvYnRy MHBjdXIuaCcKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2J0cjBwY3VyLmgJMjAxMS0w My0yMiAxMjozNDoxNiArMDAwMAorKysgYi9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvYnRyMHBj dXIuaAkyMDExLTA5LTIxIDExOjAxOjQxICswMDAwCkBAIC0xLDYgKzEsNiBAQAogLyoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqCiAKLUNvcHlyaWdodCAoYykgMTk5NiwgMjAxMCwgSW5ub2Jhc2UgT3kuIEFs bCBSaWdodHMgUmVzZXJ2ZWQuCitDb3B5cmlnaHQgKGMpIDE5OTYsIDIwMTEsIE9yYWNsZSBhbmQv b3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAKIFRoaXMgcHJvZ3JhbSBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0 IHVuZGVyCiB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQpAQCAtMjQ1LDE4ICsyNDUsNiBAQCBidHJfcGN1 cl9yZXN0b3JlX3Bvc2l0aW9uX2Z1bmMoCiAJbXRyX3QqCQltdHIpOwkJLyohPCBpbjogbXRyICov CiAjZGVmaW5lIGJ0cl9wY3VyX3Jlc3RvcmVfcG9zaXRpb24obCxjdXIsbXRyKQkJCQlcCiAJYnRy X3BjdXJfcmVzdG9yZV9wb3NpdGlvbl9mdW5jKGwsY3VyLF9fRklMRV9fLF9fTElORV9fLG10cikK LS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8vKioKLUlmIHRoZSBsYXRjaCBtb2RlIG9mIHRoZSBjdXJzb3IgaXMgQlRSX0xFQUZf U0VBUkNIIG9yIEJUUl9MRUFGX01PRElGWSwKLXJlbGVhc2VzIHRoZSBwYWdlIGxhdGNoIGFuZCBi dWZmZXJmaXggcmVzZXJ2ZWQgYnkgdGhlIGN1cnNvci4KLU5PVEUhIEluIHRoZSBjYXNlIG9mIEJU Ul9MRUFGX01PRElGWSwgdGhlcmUgc2hvdWxkIG5vdCBleGlzdCBjaGFuZ2VzCi1tYWRlIGJ5IHRo ZSBjdXJyZW50IG1pbmktdHJhbnNhY3Rpb24gdG8gdGhlIGRhdGEgcHJvdGVjdGVkIGJ5IHRoZQot Y3Vyc29yIGxhdGNoLCBhcyB0aGVuIHRoZSBsYXRjaCBtdXN0IG5vdCBiZSByZWxlYXNlZCB1bnRp bCBtdHJfY29tbWl0LiAqLwotVU5JVl9JTlRFUk4KLXZvaWQKLWJ0cl9wY3VyX3JlbGVhc2VfbGVh ZigKLS8qPT09PT09PT09PT09PT09PT09Ki8KLQlidHJfcGN1cl90KgljdXJzb3IsIC8qITwgaW46 IHBlcnNpc3RlbnQgY3Vyc29yICovCi0JbXRyX3QqCQltdHIpOwkvKiE8IGluOiBtdHIgKi8KIC8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiov LyoqCiBHZXRzIHRoZSByZWxfcG9zIGZpZWxkIGZvciBhIGN1cnNvciB3aG9zZSBwb3NpdGlvbiBo YXMgYmVlbiBzdG9yZWQuCiBAcmV0dXJuCUJUUl9QQ1VSX09OLCAuLi4gKi8KQEAgLTI2NywxMCAr MjU1LDkgQEAgYnRyX3BjdXJfZ2V0X3JlbF9wb3MoCiAJY29uc3QgYnRyX3BjdXJfdCoJY3Vyc29y KTsvKiE8IGluOiBwZXJzaXN0ZW50IGN1cnNvciAqLwogLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogQ29tbWl0cyB0aGUg bXRyIGFuZCBzZXRzIHRoZSBwY3VyIGxhdGNoIG1vZGUgdG8gQlRSX05PX0xBVENIRVMsCi10aGF0 IGlzLCB0aGUgY3Vyc29yIGJlY29tZXMgZGV0YWNoZWQuIElmIHRoZXJlIGhhdmUgYmVlbiBtb2Rp ZmljYXRpb25zCi10byB0aGUgcGFnZSB3aGVyZSBwY3VyIGlzIHBvc2l0aW9uZWQsIHRoaXMgY2Fu IGJlIHVzZWQgaW5zdGVhZCBvZgotYnRyX3BjdXJfcmVsZWFzZV9sZWFmLiBGdW5jdGlvbiBidHJf cGN1cl9zdG9yZV9wb3NpdGlvbiBzaG91bGQgYmUgdXNlZAotYmVmb3JlIGNhbGxpbmcgdGhpcywg aWYgcmVzdG9yYXRpb24gb2YgY3Vyc29yIGlzIHdhbnRlZCBsYXRlci4gKi8KK3RoYXQgaXMsIHRo ZSBjdXJzb3IgYmVjb21lcyBkZXRhY2hlZC4KK0Z1bmN0aW9uIGJ0cl9wY3VyX3N0b3JlX3Bvc2l0 aW9uIHNob3VsZCBiZSB1c2VkIGJlZm9yZSBjYWxsaW5nIHRoaXMsCitpZiByZXN0b3JhdGlvbiBv ZiBjdXJzb3IgaXMgd2FudGVkIGxhdGVyLiAqLwogVU5JVl9JTkxJTkUKIHZvaWQKIGJ0cl9wY3Vy X2NvbW1pdF9zcGVjaWZ5X210cigKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNl L2luY2x1ZGUvYnRyMHBjdXIuaWMnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9idHIw cGN1ci5pYwkyMDExLTAzLTIyIDEyOjM0OjE2ICswMDAwCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2Uv aW5jbHVkZS9idHIwcGN1ci5pYwkyMDExLTA5LTIxIDExOjAxOjQxICswMDAwCkBAIC0xLDYgKzEs NiBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCiAKLUNvcHlyaWdodCAoYykgMTk5NiwgMjAxMCwg SW5ub2Jhc2UgT3kuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitDb3B5cmlnaHQgKGMpIDE5OTYsIDIw MTEsIE9yYWNsZSBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAK IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQpAQCAtMzY5LDEwICsz NjksOSBAQCBidHJfcGN1cl9tb3ZlX3RvX25leHQoCiAKIC8qKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIENvbW1pdHMgdGhl IG10ciBhbmQgc2V0cyB0aGUgcGN1ciBsYXRjaCBtb2RlIHRvIEJUUl9OT19MQVRDSEVTLAotdGhh dCBpcywgdGhlIGN1cnNvciBiZWNvbWVzIGRldGFjaGVkLiBJZiB0aGVyZSBoYXZlIGJlZW4gbW9k aWZpY2F0aW9ucwotdG8gdGhlIHBhZ2Ugd2hlcmUgcGN1ciBpcyBwb3NpdGlvbmVkLCB0aGlzIGNh biBiZSB1c2VkIGluc3RlYWQgb2YKLWJ0cl9wY3VyX3JlbGVhc2VfbGVhZi4gRnVuY3Rpb24gYnRy X3BjdXJfc3RvcmVfcG9zaXRpb24gc2hvdWxkIGJlIHVzZWQKLWJlZm9yZSBjYWxsaW5nIHRoaXMs IGlmIHJlc3RvcmF0aW9uIG9mIGN1cnNvciBpcyB3YW50ZWQgbGF0ZXIuICovCit0aGF0IGlzLCB0 aGUgY3Vyc29yIGJlY29tZXMgZGV0YWNoZWQuCitGdW5jdGlvbiBidHJfcGN1cl9zdG9yZV9wb3Np dGlvbiBzaG91bGQgYmUgdXNlZCBiZWZvcmUgY2FsbGluZyB0aGlzLAoraWYgcmVzdG9yYXRpb24g b2YgY3Vyc29yIGlzIHdhbnRlZCBsYXRlci4gKi8KIFVOSVZfSU5MSU5FCiB2b2lkCiBidHJfcGN1 cl9jb21taXRfc3BlY2lmeV9tdHIoCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFz ZS9pbmNsdWRlL210cjBtdHIuaCcKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL210cjBt dHIuaAkyMDExLTA4LTI5IDA4OjQ1OjMwICswMDAwCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvaW5j bHVkZS9tdHIwbXRyLmgJMjAxMS0wOS0yNiAwNzoxOTowNCArMDAwMApAQCAtMjE4LDE2ICsyMTgs NiBAQCB1bGludAogbXRyX3NldF9zYXZlcG9pbnQoCiAvKj09PT09PT09PT09PT09Ki8KIAltdHJf dCoJbXRyKTsJLyohPCBpbjogbXRyICovCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKLVJlbGVhc2VzIHRoZSBsYXRjaGVzIHN0 b3JlZCBpbiBhbiBtdHIgbWVtbyBkb3duIHRvIGEgc2F2ZXBvaW50LgotTk9URSEgVGhlIG10ciBt dXN0IG5vdCBoYXZlIG1hZGUgY2hhbmdlcyB0byBidWZmZXIgcGFnZXMgYWZ0ZXIgdGhlCi1zYXZl cG9pbnQsIGFzIHRoZXNlIGNhbiBiZSBoYW5kbGVkIG9ubHkgYnkgbXRyX2NvbW1pdC4gKi8KLVVO SVZfSU5URVJOCi12b2lkCi1tdHJfcm9sbGJhY2tfdG9fc2F2ZXBvaW50KAotLyo9PT09PT09PT09 PT09PT09PT09PT09Ki8KLQltdHJfdCoJbXRyLAkJLyohPCBpbjogbXRyICovCi0JdWxpbnQJc2F2 ZXBvaW50KTsJLyohPCBpbjogc2F2ZXBvaW50ICovCiAjaWZuZGVmIFVOSVZfSE9UQkFDS1VQCiAv KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ki8vKioKIFJlbGVhc2VzIHRoZSAoaW5kZXggdHJlZSkgcy1sYXRjaCBzdG9yZWQgaW4gYW4gbXRy IG1lbW8gYWZ0ZXIgYQoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVk ZS91dDBtZW0uaCcKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3V0MG1lbS5oCTIwMTAt MTAtMDIgMTk6MTI6NTggKzAwMDAKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3V0MG1l bS5oCTIwMTEtMDktMjEgMTE6MDE6NDEgKzAwMDAKQEAgLTEsNiArMSw2IEBACiAvKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKIAotQ29weXJpZ2h0IChjKSAxOTk0LCAyMDA5LCBJbm5vYmFzZSBPeS4gQWxs IFJpZ2h0cyBSZXNlcnZlZC4KK0NvcHlyaWdodCAoYykgMTk5NCwgMjAxMSwgT3JhY2xlIGFuZC9v ciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KIAogVGhpcyBwcm9ncmFtIGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQg dW5kZXIKIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCkBAIC0yMTAsNDMgKzIxMCw2IEBAIHV0X3N0cmxj cHlfcmV2KAogCXVsaW50CQlzaXplKTsJLyohPCBpbjogc2l6ZSBvZiBkZXN0aW5hdGlvbiBidWZm ZXIgKi8KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKiovLyoqCi1Db21wdXRlIHN0cmxlbih1dF9zdHJjcHlxKHN0 ciwgcSkpLgotQHJldHVybglsZW5ndGggb2YgdGhlIHN0cmluZyB3aGVuIHF1b3RlZCAqLwotVU5J Vl9JTkxJTkUKLXVsaW50Ci11dF9zdHJsZW5xKAotLyo9PT09PT09Ki8KLQljb25zdCBjaGFyKglz dHIsCS8qITwgaW46IG51bGwtdGVybWluYXRlZCBzdHJpbmcgKi8KLQljaGFyCQlxKTsJLyohPCBp bjogdGhlIHF1b3RlIGNoYXJhY3RlciAqLwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKLU1ha2UgYSBx dW90ZWQgY29weSBvZiBhIE5VTC10ZXJtaW5hdGVkIHN0cmluZy4JTGVhZGluZyBhbmQgdHJhaWxp bmcKLXF1b3RlcyB3aWxsIG5vdCBiZSBpbmNsdWRlZDsgb25seSBlbWJlZGRlZCBxdW90ZXMgd2ls bCBiZSBlc2NhcGVkLgotU2VlIGFsc28gdXRfc3RybGVucSgpIGFuZCB1dF9tZW1jcHlxKCkuCi1A cmV0dXJuCXBvaW50ZXIgdG8gZW5kIG9mIGRlc3QgKi8KLVVOSVZfSU5URVJOCi1jaGFyKgotdXRf c3RyY3B5cSgKLS8qPT09PT09PSovCi0JY2hhcioJCWRlc3QsCS8qITwgaW46IG91dHB1dCBidWZm ZXIgKi8KLQljaGFyCQlxLAkvKiE8IGluOiB0aGUgcXVvdGUgY2hhcmFjdGVyICovCi0JY29uc3Qg Y2hhcioJc3JjKTsJLyohPCBpbjogbnVsbC10ZXJtaW5hdGVkIHN0cmluZyAqLwotCi0vKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8vKioKLU1ha2UgYSBxdW90ZWQgY29weSBvZiBhIGZpeGVkLWxlbmd0aCBzdHJpbmcu ICBMZWFkaW5nIGFuZCB0cmFpbGluZwotcXVvdGVzIHdpbGwgbm90IGJlIGluY2x1ZGVkOyBvbmx5 IGVtYmVkZGVkIHF1b3RlcyB3aWxsIGJlIGVzY2FwZWQuCi1TZWUgYWxzbyB1dF9zdHJsZW5xKCkg YW5kIHV0X3N0cmNweXEoKS4KLUByZXR1cm4JcG9pbnRlciB0byBlbmQgb2YgZGVzdCAqLwotVU5J Vl9JTlRFUk4KLWNoYXIqCi11dF9tZW1jcHlxKAotLyo9PT09PT09Ki8KLQljaGFyKgkJZGVzdCwJ LyohPCBpbjogb3V0cHV0IGJ1ZmZlciAqLwotCWNoYXIJCXEsCS8qITwgaW46IHRoZSBxdW90ZSBj aGFyYWN0ZXIgKi8KLQljb25zdCBjaGFyKglzcmMsCS8qITwgaW46IHN0cmluZyB0byBiZSBxdW90 ZWQgKi8KLQl1bGludAkJbGVuKTsJLyohPCBpbjogbGVuZ3RoIG9mIHNyYyAqLwotCi0vKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8vKioKIFJldHVybiB0aGUgbnVtYmVyIG9mIHRpbWVzIHMyIG9jY3VycyBpbiBzMS4g T3ZlcmxhcHBpbmcgaW5zdGFuY2VzIG9mIHMyCiBhcmUgb25seSBjb3VudGVkIG9uY2UuCiBAcmV0 dXJuCXRoZSBudW1iZXIgb2YgdGltZXMgczIgb2NjdXJzIGluIHMxICovCgo9PT0gbW9kaWZpZWQg ZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3V0MG1lbS5pYycKLS0tIGEvc3RvcmFnZS9p bm5vYmFzZS9pbmNsdWRlL3V0MG1lbS5pYwkyMDEwLTA3LTE2IDIxOjAwOjUwICswMDAwCisrKyBi L3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS91dDBtZW0uaWMJMjAxMS0wOS0yMSAxMTowMTo0MSAr MDAwMApAQCAtMSw2ICsxLDYgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogCi1Db3B5cmlnaHQg KGMpIDE5OTQsIDIwMDksIElubm9iYXNlIE95LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorQ29weXJp Z2h0IChjKSAxOTk0LCAyMDExLCBPcmFjbGUgYW5kL29yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmln aHRzIFJlc2VydmVkLgogCiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlcgogdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh cmUKQEAgLTk5LDI3ICs5OSw2IEBAIHV0X3N0cmNtcChjb25zdCBjaGFyKiBzdHIxLCBjb25zdCBj aGFyKiAKIH0KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCi1Db21wdXRlIHN0cmxlbih1dF9zdHJjcHlx KHN0ciwgcSkpLgotQHJldHVybglsZW5ndGggb2YgdGhlIHN0cmluZyB3aGVuIHF1b3RlZCAqLwot VU5JVl9JTkxJTkUKLXVsaW50Ci11dF9zdHJsZW5xKAotLyo9PT09PT09Ki8KLQljb25zdCBjaGFy KglzdHIsCS8qITwgaW46IG51bGwtdGVybWluYXRlZCBzdHJpbmcgKi8KLQljaGFyCQlxKQkvKiE8 IGluOiB0aGUgcXVvdGUgY2hhcmFjdGVyICovCi17Ci0JdWxpbnQgbGVuOwotCi0JZm9yIChsZW4g PSAwOyAqc3RyOyBsZW4rKywgc3RyKyspIHsKLQkJaWYgKCpzdHIgPT0gcSkgewotCQkJbGVuKys7 Ci0JCX0KLQl9Ci0KLQlyZXR1cm4obGVuKTsKLX0KLQotLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBDb252 ZXJ0cyBhIHJhdyBiaW5hcnkgZGF0YSB0byBhIE5VTC10ZXJtaW5hdGVkIGhleCBzdHJpbmcuIFRo ZSBvdXRwdXQgaXMKIHRydW5jYXRlZCBpZiB0aGVyZSBpcyBub3QgZW5vdWdoIHNwYWNlIGluICJo ZXgiLCBtYWtlIHN1cmUgImhleF9zaXplIiBpcyBhdAogbGVhc3QgKDIgKiByYXdfc2l6ZSArIDEp IGlmIHlvdSBkbyBub3Qgd2FudCB0aGlzIHRvIGhhcHBlbi4gUmV0dXJucyB0aGUKCj09PSBtb2Rp ZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2xvZy9sb2cwbG9nLmMnCi0tLSBhL3N0b3JhZ2Uv aW5ub2Jhc2UvbG9nL2xvZzBsb2cuYwkyMDExLTA4LTEwIDA2OjI2OjM5ICswMDAwCisrKyBiL3N0 b3JhZ2UvaW5ub2Jhc2UvbG9nL2xvZzBsb2cuYwkyMDExLTA5LTIzIDEzOjQ5OjEzICswMDAwCkBA IC0zNDg3LDE1ICszNDg3LDIwIEBAIGxvZ19wcmludCgKIAogCWN1cnJlbnRfdGltZSA9IHRpbWUo TlVMTCk7CiAKLQl0aW1lX2VsYXBzZWQgPSAwLjAwMSArIGRpZmZ0aW1lKGN1cnJlbnRfdGltZSwK LQkJCQkJbG9nX3N5cy0+bGFzdF9wcmludG91dF90aW1lKTsKKwl0aW1lX2VsYXBzZWQgPSBkaWZm dGltZShjdXJyZW50X3RpbWUsCisJCQkJbG9nX3N5cy0+bGFzdF9wcmludG91dF90aW1lKTsKKwor CWlmICh0aW1lX2VsYXBzZWQgPD0gMCkgeworCQl0aW1lX2VsYXBzZWQgPSAxOworCX0KKwogCWZw cmludGYoZmlsZSwKIAkJIiVsdSBwZW5kaW5nIGxvZyB3cml0ZXMsICVsdSBwZW5kaW5nIGNoa3Ag d3JpdGVzXG4iCiAJCSIlbHUgbG9nIGkvbydzIGRvbmUsICUuMmYgbG9nIGkvbydzL3NlY29uZFxu IiwKIAkJKHVsb25nKSBsb2dfc3lzLT5uX3BlbmRpbmdfd3JpdGVzLAogCQkodWxvbmcpIGxvZ19z eXMtPm5fcGVuZGluZ19jaGVja3BvaW50X3dyaXRlcywKIAkJKHVsb25nKSBsb2dfc3lzLT5uX2xv Z19pb3MsCi0JCSgobG9nX3N5cy0+bl9sb2dfaW9zIC0gbG9nX3N5cy0+bl9sb2dfaW9zX29sZCkK KwkJKChkb3VibGUpKGxvZ19zeXMtPm5fbG9nX2lvcyAtIGxvZ19zeXMtPm5fbG9nX2lvc19vbGQp CiAJCSAvIHRpbWVfZWxhcHNlZCkpOwogCiAJbG9nX3N5cy0+bl9sb2dfaW9zX29sZCA9IGxvZ19z eXMtPm5fbG9nX2lvczsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL210ci9t dHIwbXRyLmMnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvbXRyL210cjBtdHIuYwkyMDExLTA4LTI5 IDA4OjQ1OjMwICswMDAwCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvbXRyL210cjBtdHIuYwkyMDEx LTA5LTI2IDA3OjE5OjA0ICswMDAwCkBAIC0zMTIsNDQgKzMxMiw2IEBAIG10cl9jb21taXQoCiB9 CiAKICNpZm5kZWYgVU5JVl9IT1RCQUNLVVAKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgotUmVsZWFzZXMgdGhlIGxhdGNoZXMg c3RvcmVkIGluIGFuIG10ciBtZW1vIGRvd24gdG8gYSBzYXZlcG9pbnQuCi1OT1RFISBUaGUgbXRy IG11c3Qgbm90IGhhdmUgbWFkZSBjaGFuZ2VzIHRvIGJ1ZmZlciBwYWdlcyBhZnRlciB0aGUKLXNh dmVwb2ludCwgYXMgdGhlc2UgY2FuIGJlIGhhbmRsZWQgb25seSBieSBtdHJfY29tbWl0LiAqLwot VU5JVl9JTlRFUk4KLXZvaWQKLW10cl9yb2xsYmFja190b19zYXZlcG9pbnQoCi0vKj09PT09PT09 PT09PT09PT09PT09PT0qLwotCW10cl90KgltdHIsCQkvKiE8IGluOiBtdHIgKi8KLQl1bGludAlz YXZlcG9pbnQpCS8qITwgaW46IHNhdmVwb2ludCAqLwotewotCW10cl9tZW1vX3Nsb3RfdCogc2xv dDsKLQlkeW5fYXJyYXlfdCoJbWVtbzsKLQl1bGludAkJb2Zmc2V0OwotCi0JdXRfYWQobXRyKTsK LQl1dF9hZChtdHItPm1hZ2ljX24gPT0gTVRSX01BR0lDX04pOwotCXV0X2FkKG10ci0+c3RhdGUg PT0gTVRSX0FDVElWRSk7Ci0KLQltZW1vID0gJihtdHItPm1lbW8pOwotCi0Jb2Zmc2V0ID0gZHlu X2FycmF5X2dldF9kYXRhX3NpemUobWVtbyk7Ci0JdXRfYWQob2Zmc2V0ID49IHNhdmVwb2ludCk7 Ci0KLQl3aGlsZSAob2Zmc2V0ID4gc2F2ZXBvaW50KSB7Ci0JCW9mZnNldCAtPSBzaXplb2YobXRy X21lbW9fc2xvdF90KTsKLQotCQlzbG90ID0gZHluX2FycmF5X2dldF9lbGVtZW50KG1lbW8sIG9m ZnNldCk7Ci0KLQkJdXRfYWQoc2xvdC0+dHlwZSAhPSBNVFJfTUVNT19NT0RJRlkpOwotCi0JCS8q IFdlIGRvIG5vdCBjYWxsIG10cl9tZW1vX3Nsb3Rfbm90ZV9tb2RpZmljYXRpb24oKQotCQliZWNh dXNlIHRoZXJlIE1VU1QgYmUgbm8gY2hhbmdlcyBtYWRlIHRvIHRoZSBidWZmZXIKLQkJcGFnZXMg YWZ0ZXIgdGhlIHNhdmVwb2ludCAqLwotCQltdHJfbWVtb19zbG90X3JlbGVhc2UobXRyLCBzbG90 KTsKLQl9Ci19Ci0KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovLyoqCiBSZWxlYXNlcyBhbiBvYmplY3QgaW4gdGhlIG1lbW8gc3RhY2suICovCiBV TklWX0lOVEVSTgoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBw dXJnZS5jJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwcHVyZ2UuYwkyMDExLTA5LTIx IDAwOjI0OjU5ICswMDAwCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBwdXJnZS5jCTIw MTEtMDktMjYgMDc6MTk6MDQgKzAwMDAKQEAgLTUxNiw3ICs1MTYsNyBAQCByb3dfcHVyZ2VfdXBk X2V4aXN0X29yX2V4dGVybl9mdW5jKAogCiAJdXRfYWQobm9kZSk7CiAKLQlpZiAoKG5vZGUtPnJl Y190eXBlID09IFRSWF9VTkRPX1VQRF9ERUxfUkVDKQorCWlmIChub2RlLT5yZWNfdHlwZSA9PSBU UlhfVU5ET19VUERfREVMX1JFQwogCSAgICB8fCAobm9kZS0+Y21wbF9pbmZvICYgVVBEX05PREVf Tk9fT1JEX0NIQU5HRSkpIHsKIAogCQlnb3RvIHNraXBfc2Vjb25kYXJpZXM7Cgo9PT0gbW9kaWZp ZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS91dC91dDBtZW0uYycKLS0tIGEvc3RvcmFnZS9pbm5v YmFzZS91dC91dDBtZW0uYwkyMDExLTAyLTE1IDA5OjQwOjM0ICswMDAwCisrKyBiL3N0b3JhZ2Uv aW5ub2Jhc2UvdXQvdXQwbWVtLmMJMjAxMS0wOS0yMSAxMTowMTo0MSArMDAwMApAQCAtMSw2ICsx LDYgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKgogCi1Db3B5cmlnaHQgKGMpIDE5OTQsIDIwMDks IElubm9iYXNlIE95LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorQ29weXJpZ2h0IChjKSAxOTk0LCAy MDExLCBPcmFjbGUgYW5kL29yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgog CiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeSBpdCB1bmRlcgogdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKQEAgLTQ4OCw1MyAr NDg4LDYgQEAgdXRfc3RybGNweV9yZXYoCiAJcmV0dXJuKHNyY19zaXplKTsKIH0KIAotLyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovLyoqCi1NYWtlIGEgcXVvdGVkIGNvcHkgb2YgYSBOVUwtdGVybWluYXRlZCBzdHJp bmcuCUxlYWRpbmcgYW5kIHRyYWlsaW5nCi1xdW90ZXMgd2lsbCBub3QgYmUgaW5jbHVkZWQ7IG9u bHkgZW1iZWRkZWQgcXVvdGVzIHdpbGwgYmUgZXNjYXBlZC4KLVNlZSBhbHNvIHV0X3N0cmxlbnEo KSBhbmQgdXRfbWVtY3B5cSgpLgotQHJldHVybglwb2ludGVyIHRvIGVuZCBvZiBkZXN0ICovCi1V TklWX0lOVEVSTgotY2hhcioKLXV0X3N0cmNweXEoCi0vKj09PT09PT0qLwotCWNoYXIqCQlkZXN0 LAkvKiE8IGluOiBvdXRwdXQgYnVmZmVyICovCi0JY2hhcgkJcSwJLyohPCBpbjogdGhlIHF1b3Rl IGNoYXJhY3RlciAqLwotCWNvbnN0IGNoYXIqCXNyYykJLyohPCBpbjogbnVsbC10ZXJtaW5hdGVk IHN0cmluZyAqLwotewotCXdoaWxlICgqc3JjKSB7Ci0JCWlmICgoKmRlc3QrKyA9ICpzcmMrKykg PT0gcSkgewotCQkJKmRlc3QrKyA9IHE7Ci0JCX0KLQl9Ci0KLQlyZXR1cm4oZGVzdCk7Ci19Ci0K LS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqLy8qKgotTWFrZSBhIHF1b3RlZCBjb3B5IG9mIGEgZml4ZWQtbGVuZ3Ro IHN0cmluZy4gIExlYWRpbmcgYW5kIHRyYWlsaW5nCi1xdW90ZXMgd2lsbCBub3QgYmUgaW5jbHVk ZWQ7IG9ubHkgZW1iZWRkZWQgcXVvdGVzIHdpbGwgYmUgZXNjYXBlZC4KLVNlZSBhbHNvIHV0X3N0 cmxlbnEoKSBhbmQgdXRfc3RyY3B5cSgpLgotQHJldHVybglwb2ludGVyIHRvIGVuZCBvZiBkZXN0 ICovCi1VTklWX0lOVEVSTgotY2hhcioKLXV0X21lbWNweXEoCi0vKj09PT09PT0qLwotCWNoYXIq CQlkZXN0LAkvKiE8IGluOiBvdXRwdXQgYnVmZmVyICovCi0JY2hhcgkJcSwJLyohPCBpbjogdGhl IHF1b3RlIGNoYXJhY3RlciAqLwotCWNvbnN0IGNoYXIqCXNyYywJLyohPCBpbjogc3RyaW5nIHRv IGJlIHF1b3RlZCAqLwotCXVsaW50CQlsZW4pCS8qITwgaW46IGxlbmd0aCBvZiBzcmMgKi8KLXsK LQljb25zdCBjaGFyKglzcmNlbmQgPSBzcmMgKyBsZW47Ci0KLQl3aGlsZSAoc3JjIDwgc3JjZW5k KSB7Ci0JCWlmICgoKmRlc3QrKyA9ICpzcmMrKykgPT0gcSkgewotCQkJKmRlc3QrKyA9IHE7Ci0J CX0KLQl9Ci0KLQlyZXR1cm4oZGVzdCk7Ci19Ci0KICNpZm5kZWYgVU5JVl9IT1RCQUNLVVAKIC8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqLy8qKgogUmV0dXJuIHRoZSBudW1iZXIgb2YgdGltZXMgczIgb2NjdXJzIGlu IHMxLiBPdmVybGFwcGluZyBpbnN0YW5jZXMgb2YgczIKCj09PSBtb2RpZmllZCBmaWxlICdzdG9y YWdlL215aXNhbS9oYV9teWlzYW0uY2MnCi0tLSBhL3N0b3JhZ2UvbXlpc2FtL2hhX215aXNhbS5j YwkyMDExLTA5LTA2IDEyOjQ1OjU3ICswMDAwCisrKyBiL3N0b3JhZ2UvbXlpc2FtL2hhX215aXNh bS5jYwkyMDExLTA5LTIxIDExOjAxOjQxICswMDAwCkBAIC0yMjE2LDcgKzIyMTYsOCBAQCBteXNx bF9kZWNsYXJlX3BsdWdpbihteWlzYW0pCiAgIDB4MDEwMCwgLyogMS4wICovCiAgIE5VTEwsICAg ICAgICAgICAgICAgICAgICAgICAvKiBzdGF0dXMgdmFyaWFibGVzICAgICAgICAgICAgICAgICov CiAgIG15aXNhbV9zeXN2YXJzLCAgICAgICAgICAgICAvKiBzeXN0ZW0gdmFyaWFibGVzICAgICAg ICAgICAgICAgICovCi0gIE5VTEwKKyAgTlVMTCwKKyAgMCwKIH0KIG15c3FsX2RlY2xhcmVfcGx1 Z2luX2VuZDsKIAoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvbXlpc2FtbXJnL2hhX215aXNh bW1yZy5jYycKLS0tIGEvc3RvcmFnZS9teWlzYW1tcmcvaGFfbXlpc2FtbXJnLmNjCTIwMTEtMDct MjIgMTU6NTI6NDIgKzAwMDAKKysrIGIvc3RvcmFnZS9teWlzYW1tcmcvaGFfbXlpc2FtbXJnLmNj CTIwMTEtMDktMjEgMTE6MDE6NDEgKzAwMDAKQEAgLTE2ODAsNiArMTY4MCw3IEBAIG15c3FsX2Rl Y2xhcmVfcGx1Z2luKG15aXNhbW1yZykKICAgMHgwMTAwLCAvKiAxLjAgKi8KICAgTlVMTCwgICAg ICAgICAgICAgICAgICAgICAgIC8qIHN0YXR1cyB2YXJpYWJsZXMgICAgICAgICAgICAgICAgKi8K ICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgIC8qIHN5c3RlbSB2YXJpYWJsZXMgICAgICAg ICAgICAgICAgKi8KLSAgTlVMTCAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNvbmZpZyBvcHRp b25zICAgICAgICAgICAgICAgICAgKi8KKyAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgIC8q IGNvbmZpZyBvcHRpb25zICAgICAgICAgICAgICAgICAgKi8KKyAgMCwgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIGZsYWdzICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIH0KIG15c3Fs X2RlY2xhcmVfcGx1Z2luX2VuZDsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL3BlcmZzY2hl bWEvaGFfcGVyZnNjaGVtYS5jYycKLS0tIGEvc3RvcmFnZS9wZXJmc2NoZW1hL2hhX3BlcmZzY2hl bWEuY2MJMjAxMS0wOC0xMSAwMzoxMTo1OCArMDAwMAorKysgYi9zdG9yYWdlL3BlcmZzY2hlbWEv aGFfcGVyZnNjaGVtYS5jYwkyMDExLTA5LTIxIDExOjAxOjQxICswMDAwCkBAIC0xODUsNyArMTg1 LDggQEAgbXlzcWxfZGVjbGFyZV9wbHVnaW4ocGVyZnNjaGVtYSkKICAgMHgwMDAxIC8qIDAuMSAq LywKICAgcGZzX3N0YXR1c192YXJzLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHN0 YXR1cyB2YXJpYWJsZXMgKi8KICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIHN5c3RlbSB2YXJpYWJsZXMgKi8KLSAgTlVMTCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNvbmZpZyBvcHRpb25zICovCisgIE5VTEwsICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBjb25maWcgb3B0aW9ucyAq LworICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZmxh Z3MgKi8KIH0KIG15c3FsX2RlY2xhcmVfcGx1Z2luX2VuZDsKIAoKPT09IG1vZGlmaWVkIGZpbGUg J3N1cHBvcnQtZmlsZXMvbXlzcWwuc3BlYy5zaCcKLS0tIGEvc3VwcG9ydC1maWxlcy9teXNxbC5z cGVjLnNoCTIwMTEtMDktMjAgMTU6NDk6MzcgKzAwMDAKKysrIGIvc3VwcG9ydC1maWxlcy9teXNx bC5zcGVjLnNoCTIwMTEtMDktMjMgMTA6NTU6MTAgKzAwMDAKQEAgLTk2MSw3ICs5NjEsNyBAQCBl Y2hvICI9PT09PSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjICBGaWxlcyBzZWN0aW9u CiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIAotJWZpbGVzIC1uIE15U1FMLXNlcnZlciV7cHJvZHVj dF9zdWZmaXh9CislZmlsZXMgLW4gTXlTUUwtc2VydmVyJXtwcm9kdWN0X3N1ZmZpeH0gLWYgcmVs ZWFzZS9zdXBwb3J0LWZpbGVzL3BsdWdpbnMuZmlsZXMKICVkZWZhdHRyKC0scm9vdCxyb290LDA3 NTUpCiAKICVpZiAle2RlZmluZWQgbGljZW5zZV9maWxlc19zZXJ2ZXJ9CkBAIC0xMDAyLDYgKzEw MDIsNyBAQCBlY2hvICI9PT09PSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAlZG9jICVh dHRyKDY0NCwgcm9vdCwgbWFuKSAle19tYW5kaXJ9L21hbjEvcmVwbGFjZS4xKgogJWRvYyAlYXR0 cig2NDQsIHJvb3QsIG1hbikgJXtfbWFuZGlyfS9tYW4xL3Jlc29sdmVfc3RhY2tfZHVtcC4xKgog JWRvYyAlYXR0cig2NDQsIHJvb3QsIG1hbikgJXtfbWFuZGlyfS9tYW4xL3Jlc29sdmVpcC4xKgor JWRvYyAlYXR0cig2NDQsIHJvb3QsIG1hbikgJXtfbWFuZGlyfS9tYW4xL215c3FsX3BsdWdpbi4x KgogCiAlZ2hvc3QgJWNvbmZpZyhub3JlcGxhY2UsbWlzc2luZ29rKSAle19zeXNjb25mZGlyfS9t eS5jbmYKIApAQCAtMTAxOSw2ICsxMDIwLDcgQEAgZWNobyAiPT09PT0iICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAogJWF0dHIoNzU1LCByb290LCByb290KSAle19iaW5kaXJ9L215c3FsX3Nl dHBlcm1pc3Npb24KICVhdHRyKDc1NSwgcm9vdCwgcm9vdCkgJXtfYmluZGlyfS9teXNxbF90emlu Zm9fdG9fc3FsCiAlYXR0cig3NTUsIHJvb3QsIHJvb3QpICV7X2JpbmRpcn0vbXlzcWxfdXBncmFk ZQorJWF0dHIoNzU1LCByb290LCByb290KSAle19iaW5kaXJ9L215c3FsX3BsdWdpbgogJWF0dHIo NzU1LCByb290LCByb290KSAle19iaW5kaXJ9L215c3FsX3phcAogJWF0dHIoNzU1LCByb290LCBy b290KSAle19iaW5kaXJ9L215c3FsYnVnCiAlYXR0cig3NTUsIHJvb3QsIHJvb3QpICV7X2JpbmRp cn0vbXlzcWxkX211bHRpCkBAIC0xMDM0LDI5ICsxMDM2LDcgQEAgZWNobyAiPT09PT0iICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAogJWF0dHIoNzU1LCByb290LCByb290KSAle19zYmluZGly fS9teXNxbGQKICVhdHRyKDc1NSwgcm9vdCwgcm9vdCkgJXtfc2JpbmRpcn0vbXlzcWxkLWRlYnVn CiAlYXR0cig3NTUsIHJvb3QsIHJvb3QpICV7X3NiaW5kaXJ9L3JjbXlzcWwKLSVhdHRyKDc1NSwg cm9vdCwgcm9vdCkgJXtfbGliZGlyfS9teXNxbC9wbHVnaW4vYWR0X251bGwuc28KLSVhdHRyKDc1 NSwgcm9vdCwgcm9vdCkgJXtfbGliZGlyfS9teXNxbC9wbHVnaW4vbGliZGFlbW9uX2V4YW1wbGUu c28KICVhdHRyKDc1NSwgcm9vdCwgcm9vdCkgJXtfbGliZGlyfS9teXNxbC9wbHVnaW4vZGFlbW9u X2V4YW1wbGUuaW5pCi0lYXR0cig3NTUsIHJvb3QsIHJvb3QpICV7X2xpYmRpcn0vbXlzcWwvcGx1 Z2luL215cGx1Z2xpYi5zbwotJWF0dHIoNzU1LCByb290LCByb290KSAle19saWJkaXJ9L215c3Fs L3BsdWdpbi9zZW1pc3luY19tYXN0ZXIuc28KLSVhdHRyKDc1NSwgcm9vdCwgcm9vdCkgJXtfbGli ZGlyfS9teXNxbC9wbHVnaW4vc2VtaXN5bmNfc2xhdmUuc28KLSVhdHRyKDc1NSwgcm9vdCwgcm9v dCkgJXtfbGliZGlyfS9teXNxbC9wbHVnaW4vYXV0aC5zbwotJWF0dHIoNzU1LCByb290LCByb290 KSAle19saWJkaXJ9L215c3FsL3BsdWdpbi9hdXRoX3NvY2tldC5zbwotJWF0dHIoNzU1LCByb290 LCByb290KSAle19saWJkaXJ9L215c3FsL3BsdWdpbi9hdXRoX3Rlc3RfcGx1Z2luLnNvCi0lYXR0 cig3NTUsIHJvb3QsIHJvb3QpICV7X2xpYmRpcn0vbXlzcWwvcGx1Z2luL3FhX2F1dGhfY2xpZW50 LnNvCi0lYXR0cig3NTUsIHJvb3QsIHJvb3QpICV7X2xpYmRpcn0vbXlzcWwvcGx1Z2luL3FhX2F1 dGhfaW50ZXJmYWNlLnNvCi0lYXR0cig3NTUsIHJvb3QsIHJvb3QpICV7X2xpYmRpcn0vbXlzcWwv cGx1Z2luL3FhX2F1dGhfc2VydmVyLnNvCi0lYXR0cig3NTUsIHJvb3QsIHJvb3QpICV7X2xpYmRp cn0vbXlzcWwvcGx1Z2luL2RlYnVnL2FkdF9udWxsLnNvCi0lYXR0cig3NTUsIHJvb3QsIHJvb3Qp ICV7X2xpYmRpcn0vbXlzcWwvcGx1Z2luL2RlYnVnL2xpYmRhZW1vbl9leGFtcGxlLnNvCi0lYXR0 cig3NTUsIHJvb3QsIHJvb3QpICV7X2xpYmRpcn0vbXlzcWwvcGx1Z2luL2RlYnVnL215cGx1Z2xp Yi5zbwotJWF0dHIoNzU1LCByb290LCByb290KSAle19saWJkaXJ9L215c3FsL3BsdWdpbi9kZWJ1 Zy9zZW1pc3luY19tYXN0ZXIuc28KLSVhdHRyKDc1NSwgcm9vdCwgcm9vdCkgJXtfbGliZGlyfS9t eXNxbC9wbHVnaW4vZGVidWcvc2VtaXN5bmNfc2xhdmUuc28KLSVhdHRyKDc1NSwgcm9vdCwgcm9v dCkgJXtfbGliZGlyfS9teXNxbC9wbHVnaW4vZGVidWcvYXV0aC5zbwotJWF0dHIoNzU1LCByb290 LCByb290KSAle19saWJkaXJ9L215c3FsL3BsdWdpbi9kZWJ1Zy9hdXRoX3NvY2tldC5zbwotJWF0 dHIoNzU1LCByb290LCByb290KSAle19saWJkaXJ9L215c3FsL3BsdWdpbi9kZWJ1Zy9hdXRoX3Rl c3RfcGx1Z2luLnNvCi0lYXR0cig3NTUsIHJvb3QsIHJvb3QpICV7X2xpYmRpcn0vbXlzcWwvcGx1 Z2luL2RlYnVnL3FhX2F1dGhfY2xpZW50LnNvCi0lYXR0cig3NTUsIHJvb3QsIHJvb3QpICV7X2xp YmRpcn0vbXlzcWwvcGx1Z2luL2RlYnVnL3FhX2F1dGhfaW50ZXJmYWNlLnNvCi0lYXR0cig3NTUs IHJvb3QsIHJvb3QpICV7X2xpYmRpcn0vbXlzcWwvcGx1Z2luL2RlYnVnL3FhX2F1dGhfc2VydmVy LnNvCiAKICVpZiAle1dJVEhfVENNQUxMT0N9CiAlYXR0cig3NTUsIHJvb3QsIHJvb3QpICV7X2xp YmRpcn0vbXlzcWwvJXttYWxsb2NfbGliX3RhcmdldH0KQEAgLTExNjIsNiArMTE0MiwxMCBAQCBl Y2hvICI9PT09PSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAKIC0gIm1ha2Vfd2luX2Jp bl9kaXN0IiBhbmQgaXRzIG1hbnVhbCBhcmUgZHJvcHBlZCwgY21ha2UgZG9lcyBpdCBkaWZmZXJl bnQuCiAKKyogVGh1IFNlcCAwOCAyMDExIERhbmllbCBGaXNjaGVyIDxkYW5pZWwuZmlzY2hlckBv cmFjbGUuY29tPgorCistIEFkZCBteXNxbF9wbHVnaW4gbWFuIHBhZ2UuCisKICogVHVlIEF1ZyAz MCAyMDExIEpvZXJnIEJydWVoZSA8am9lcmcuYnJ1ZWhlQG9yYWNsZS5jb20+CiAKIC0gQWRkIHRo ZSBtYW51YWwgcGFnZSBmb3IgIm15c3FsX3BsdWdpbiIgdG8gdGhlIHNlcnZlciBwYWNrYWdlLgpA QCAtMTE3MSw2ICsxMTU1LDEwIEBAIGVjaG8gIj09PT09IiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKIC0gTnVsbC11cG1lcmdlIHRoZSBmaXggb2YgYnVnIzM3MTY1OiBUaGlzIHNwZWMgZmls ZSBpcyBub3QgYWZmZWN0ZWQuCiAtIFJlcGxhY2UgIi92YXIvbGliL215c3FsIiBieSB0aGUgc3Bl YyBmaWxlIHZhcmlhYmxlICIle215c3FsZGF0YWRpcn0iLgogCisqIEZyaSBBdWcgMTIgMjAxMSBE YW5pZWwgRmlzY2hlciA8ZGFuaWVsLmZpc2NoZXJAb3JhY2xlLmNvbT4KKworLSBTb3VyY2UgcGx1 Z2luIGxpYnJhcnkgZmlsZXMgbGlzdCBmcm9tIGNtYWtlLWdlbmVyYXRlZCBmaWxlLgorCiAqIE1v biBKdWwgMjUgMjAxMSBDaHVjayBCZWxsIDxjaHVjay5iZWxsQG9yYWNsZS5jb20+CiAKIC0gQWRk ZWQgdGhlIG15c3FsX3BsdWdpbiBjbGllbnQgLSBlbmFibGVzIG9yIGRpc2FibGVzIHBsdWdpbnMu CgpObyBidW5kbGUgKHJlYXNvbjogdXNlbGVzcyBmb3IgcHVzaCBlbWFpbHMpLg==