From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] gdb-17.2-rebase-f44: - Rebase to FSF GDB 7.2.50.20110117 (which is a 7.3 pre-release). Date: Sat, 27 Jun 2026 23:54:56 GMT Message-ID: <178260449610.1.12699473802015403172.rpms-gdb-b0e03f562dbf@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: b0e03f562dbfdebbb156e840e5aa7c32f4a09c7e ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGdkYi0xNy4yLXJlYmFzZS1mNDQK ICAgICAgICAgICAgQ29tbWl0IDogYjBlMDNmNTYyZGJmZGViYmIxNTZlODQwZTVhYTdjMzJmNGEw OWM3ZQogICAgICAgICAgICBBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxA cmVkaGF0LmNvbT4KICAgICAgICAgICAgRGF0ZSAgIDogMjAxMS0wMS0xN1QxNjozMTo0MyswMTow MAogICAgICAgICAgICBTdGF0cyAgOiArMTM5Ni8tMTYyOSBpbiAxOCBmaWxlKHMpCiAgICAgICAg ICAgIFVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvZ2RiL2MvYjBl MDNmNTYyZGJmZGViYmIxNTZlODQwZTVhYTdjMzJmNGEwOWM3ZT9icmFuY2g9Z2RiLTE3LjItcmVi YXNlLWY0NAoKICAgICAgICAgICAgTG9nOgogICAgICAgICAgICAtIFJlYmFzZSB0byBGU0YgR0RC IDcuMi41MC4yMDExMDExNyAod2hpY2ggaXMgYSA3LjMgcHJlLXJlbGVhc2UpLgotIEZpeCBjYWxs YmFjay1tb2RlIHJlYWRsaW5lLTYuMCByZWdyZXNzaW9uIGZvciBDVFJMLUMgKGZvciBSSEVMLTYu MCkuCiAgLSBGaXggb2NjYXNpb25hbCBOVUxMIGRlcmVmZXJlbmNlIG9mIHRoZSByZWFkbGluZS02 LjAgd29ya2Fyb3VuZCAoQlogNTc1NTE2KS4KCi0tLQpkaWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBi Ly5naXRpZ25vcmUKaW5kZXggODIyMjY1Mi4uNjZjNjkyYiAxMDA2NDQKLS0tIGEvLmdpdGlnbm9y ZQorKysgYi8uZ2l0aWdub3JlCkBAIC0xLDIgKzEsMiBAQAotL2dkYi03LjIuNTAuMjAxMTAxMDcu dGFyLmJ6MgogL2xpYnN0ZGMrKy12My1weXRob24tcjE1NTk3OC50YXIuYnoyCisvZ2RiLTcuMi41 MC4yMDExMDExNy50YXIuYnoyCgpkaWZmIC0tZ2l0IGEvZ2RiLTYuMy1wcGM2NHN5c2NhbGwtMjAw NDA2MjIucGF0Y2ggYi9nZGItNi4zLXBwYzY0c3lzY2FsbC0yMDA0MDYyMi5wYXRjaAppbmRleCA4 ZTZjMzkxLi5hMjM3Y2MxIDEwMDY0NAotLS0gYS9nZGItNi4zLXBwYzY0c3lzY2FsbC0yMDA0MDYy Mi5wYXRjaAorKysgYi9nZGItNi4zLXBwYzY0c3lzY2FsbC0yMDA0MDYyMi5wYXRjaApAQCAtNiwx MCArNiwxMCBAQAogCXVzZSB0byBza2lwIG92ZXIgZmlyc3QgaGFsZiBvZiBhIEdOVS9MaW51eCBz eXNjYWxsIGFuZCB1cGRhdGUKIAkiZnVuY19zdGFydCIuCiAKLUluZGV4OiBnZGItNi44LjUwLjIw MDkwODAyL2dkYi9yczYwMDAtdGRlcC5jCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDExNy9nZGIv cnM2MDAwLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDIub3JpZy9n ZGIvcnM2MDAwLXRkZXAuYwkyMDA5LTA3LTMxIDE3OjIzOjIwLjAwMDAwMDAwMCArMDIwMAotKysr IGdkYi02LjguNTAuMjAwOTA4MDIvZ2RiL3JzNjAwMC10ZGVwLmMJMjAwOS0wOC0wMyAwOTo1Mjoz OS4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNy4yLjUwLjIwMTEwMTE3Lm9yaWcvZ2RiL3JzNjAw MC10ZGVwLmMJMjAxMS0wMS0xMSAyMDoyMzowMi4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4y LjUwLjIwMTEwMTE3L2dkYi9yczYwMDAtdGRlcC5jCTIwMTEtMDEtMTcgMTU6NDg6MTkuMDAwMDAw MDAwICswMTAwCiBAQCAtMTI2LDYgKzEyNiw3IEBAIHN0YXRpYyBjb25zdCBjaGFyICpwb3dlcnBj X3ZlY3Rvcl9hYmlfc3QKICAKICBzdHJ1Y3QgcnM2MDAwX2ZyYW1lZGF0YQpAQCAtMTgsNyArMTgs NyBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMi9nZGIvcnM2MDAwLXRkZXAuYwogICAgICBp bnQgb2Zmc2V0OwkJCS8qIHRvdGFsIHNpemUgb2YgZnJhbWUgLS0tIHRoZSBkaXN0YW5jZQogIAkJ CQkgICBieSB3aGljaCB3ZSBkZWNyZW1lbnQgc3AgdG8gYWxsb2NhdGUKICAJCQkJICAgdGhlIGZy YW1lICovCi1AQCAtMTQ4OCw3ICsxNDg5LDYgQEAgc3RhdGljIENPUkVfQUREUgorQEAgLTE0OTYs NyArMTQ5Nyw2IEBAIHN0YXRpYyBDT1JFX0FERFIKICBza2lwX3Byb2xvZ3VlIChzdHJ1Y3QgZ2Ri YXJjaCAqZ2RiYXJjaCwgQ09SRV9BRERSIHBjLCBDT1JFX0FERFIgbGltX3BjLAogIAkgICAgICAg c3RydWN0IHJzNjAwMF9mcmFtZWRhdGEgKmZkYXRhKQogIHsKQEAgLTI2LDcgKzI2LDcgQEAgSW5k ZXg6IGdkYi02LjguNTAuMjAwOTA4MDIvZ2RiL3JzNjAwMC10ZGVwLmMKICAgIENPUkVfQUREUiBs YXN0X3Byb2xvZ3VlX3BjID0gcGM7CiAgICBDT1JFX0FERFIgbGlfZm91bmRfcGMgPSAwOwogICAg Z2RiX2J5dGUgYnVmWzRdOwotQEAgLTE1MDYsMTIgKzE1MDYsMTQgQEAgc2tpcF9wcm9sb2d1ZSAo c3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIAorQEAgLTE1MTQsMTIgKzE1MTQsMTQgQEAgc2tpcF9w cm9sb2d1ZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIAogICAgaW50IG1pbmltYWxfdG9jX2xv YWRlZCA9IDA7CiAgICBpbnQgcHJldl9pbnNuX3dhc19wcm9sb2d1ZV9pbnNuID0gMTsKICAgIGlu dCBudW1fc2tpcF9ub25fcHJvbG9ndWVfaW5zbnMgPSAwOwpAQCAtNDEsNyArNDEsNyBAQCBJbmRl eDogZ2RiLTYuOC41MC4yMDA5MDgwMi9nZGIvcnM2MDAwLXRkZXAuYwogICAgZmRhdGEtPnNhdmVk X2dwciA9IC0xOwogICAgZmRhdGEtPnNhdmVkX2ZwciA9IC0xOwogICAgZmRhdGEtPnNhdmVkX3Zy ID0gLTE7Ci1AQCAtMTU0NSw2ICsxNTQ3LDU1IEBAIHNraXBfcHJvbG9ndWUgKHN0cnVjdCBnZGJh cmNoICpnZGJhcmNoLCAKK0BAIC0xNTUzLDYgKzE1NTUsNTUgQEAgc2tpcF9wcm9sb2d1ZSAoc3Ry dWN0IGdkYmFyY2ggKmdkYmFyY2gsIAogIAlicmVhazsKICAgICAgICBvcCA9IGV4dHJhY3RfdW5z aWduZWRfaW50ZWdlciAoYnVmLCA0LCBieXRlX29yZGVyKTsKICAKQEAgLTk3LDcgKzk3LDcgQEAg SW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDIvZ2RiL3JzNjAwMC10ZGVwLmMKICAgICAgICBpZiAo KG9wICYgMHhmYzFmZmZmZikgPT0gMHg3YzA4MDJhNikKICAJewkJCS8qIG1mbHIgUnggKi8KICAJ ICAvKiBTaW5jZSBzaGFyZWQgbGlicmFyeSAvIFBJQyBjb2RlLCB3aGljaCBuZWVkcyB0byBnZXQg aXRzCi1AQCAtMTcyNiw5ICsxNzc3LDkgQEAgc2tpcF9wcm9sb2d1ZSAoc3RydWN0IGdkYmFyY2gg KmdkYmFyY2gsIAorQEAgLTE3MzQsOSArMTc4NSw5IEBAIHNraXBfcHJvbG9ndWUgKHN0cnVjdCBn ZGJhcmNoICpnZGJhcmNoLCAKICAJICAgICB3ZSBoYXZlIG5vIGxpbmUgdGFibGUgaW5mb3JtYXRp b24gb3IgdGhlIGxpbmUgaW5mbyB0ZWxscwogIAkgICAgIHVzIHRoYXQgdGhlIHN1YnJvdXRpbmUg Y2FsbCBpcyBub3QgcGFydCBvZiB0aGUgbGluZQogIAkgICAgIGFzc29jaWF0ZWQgd2l0aCB0aGUg cHJvbG9ndWUuICAqLwpAQCAtMTA4LDQgKzEwOCw0IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkw ODAyL2dkYi9yczYwMDAtdGRlcC5jCiArCSAgICAgIHN0cnVjdCBzeW10YWJfYW5kX2xpbmUgcHJv bG9ndWVfc2FsID0gZmluZF9wY19saW5lIChmZGF0YS0+ZnVuY19zdGFydCwgMCk7CiAgCSAgICAg IHN0cnVjdCBzeW10YWJfYW5kX2xpbmUgdGhpc19zYWwgPSBmaW5kX3BjX2xpbmUgKHBjLCAwKTsK ICAKLSAJICAgICAgaWYgKChwcm9sb2d1ZV9zYWwubGluZSA9PSAwKSB8fCAocHJvbG9ndWVfc2Fs LmxpbmUgIT0gdGhpc19zYWwubGluZSkpCisgCSAgICAgIGlmICgocHJvbG9ndWVfc2FsLmxpbmUg PT0gMCkKCmRpZmYgLS1naXQgYS9nZGItNi4zLXJlYWRuZXZlci0yMDA1MDkwNy5wYXRjaCBiL2dk Yi02LjMtcmVhZG5ldmVyLTIwMDUwOTA3LnBhdGNoCmluZGV4IDg2YzMxYmYuLmQ3M2NkODYgMTAw NjQ0Ci0tLSBhL2dkYi02LjMtcmVhZG5ldmVyLTIwMDUwOTA3LnBhdGNoCisrKyBiL2dkYi02LjMt cmVhZG5ldmVyLTIwMDUwOTA3LnBhdGNoCkBAIC0xMSwxMCArMTEsMTAgQEAKIAogICAgICAgICAq IGdkYi50ZXhpbmZvIChGaWxlIE9wdGlvbnMpOiBEb2N1bWVudCAtLXJlYWRuZXZlci4KIAotSW5k ZXg6IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL2RvYy9nZGIudGV4aW5mbworSW5kZXg6IGdkYi03 LjIuNTAuMjAxMTAxMTcvZ2RiL2RvYy9nZGIudGV4aW5mbwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjIuNTAuMjAxMTAxMDcub3JpZy9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTEtMDEtMDcgMDk6MDM6 MzguMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvZG9jL2dkYi50 ZXhpbmZvCTIwMTEtMDEtMDcgMDk6MDQ6NDguMDAwMDAwMDAwICswMTAwCistLS0gZ2RiLTcuMi41 MC4yMDExMDExNy5vcmlnL2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxMS0wMS0xNyAxNTo0NzozNy4w MDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi9kb2MvZ2RiLnRleGlu Zm8JMjAxMS0wMS0xNyAxNTo1MDo0MS4wMDAwMDAwMDAgKzAxMDAKIEBAIC0xMDA3LDYgKzEwMDcs MTIgQEAgUmVhZCBlYWNoIHN5bWJvbCBmaWxlJ3MgZW50aXJlIHN5bWJvbCB0YQogIHRoZSBkZWZh dWx0LCB3aGljaCBpcyB0byByZWFkIGl0IGluY3JlbWVudGFsbHkgYXMgaXQgaXMgbmVlZGVkLgog IFRoaXMgbWFrZXMgc3RhcnR1cCBzbG93ZXIsIGJ1dCBtYWtlcyBmdXR1cmUgb3BlcmF0aW9ucyBm YXN0ZXIuCkBAIC0yOCwxMCArMjgsMTAgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2Ri L2RvYy9nZGIudGV4aW5mbwogIEBlbmQgdGFibGUKICAKICBAbm9kZSBNb2RlIE9wdGlvbnMKLUlu ZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9tYWluLmMKK0luZGV4OiBnZGItNy4yLjUwLjIw MTEwMTE3L2dkYi9tYWluLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4yLjUwLjIwMTEwMTA3Lm9y aWcvZ2RiL21haW4uYwkyMDExLTAxLTA3IDA5OjA0OjM5LjAwMDAwMDAwMCArMDEwMAotKysrIGdk Yi03LjIuNTAuMjAxMTAxMDcvZ2RiL21haW4uYwkyMDExLTAxLTA3IDA5OjA1OjAyLjAwMDAwMDAw MCArMDEwMAorLS0tIGdkYi03LjIuNTAuMjAxMTAxMTcub3JpZy9nZGIvbWFpbi5jCTIwMTEtMDEt MTcgMTU6NTA6MjEuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi41MC4yMDExMDExNy9nZGIv bWFpbi5jCTIwMTEtMDEtMTcgMTU6NTA6NDEuMDAwMDAwMDAwICswMTAwCiBAQCAtMzk1LDYgKzM5 NSw3IEBAIGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCiAgICAgICAgeyJ4ZGIiLCBub19hcmd1 bWVudCwgJnhkYl9jb21tYW5kcywgMX0sCiAgICAgICAgeyJkYngiLCBub19hcmd1bWVudCwgJmRi eF9jb21tYW5kcywgMX0sCkBAIC00MCw3ICs0MCw3IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTEw MTA3L2dkYi9tYWluLmMKICAgICAgICB7InIiLCBub19hcmd1bWVudCwgJnJlYWRub3dfc3ltYm9s X2ZpbGVzLCAxfSwKICAgICAgICB7InF1aWV0Iiwgbm9fYXJndW1lbnQsICZxdWlldCwgMX0sCiAg ICAgICAgeyJxIiwgbm9fYXJndW1lbnQsICZxdWlldCwgMX0sCi1AQCAtMTA2MCw2ICsxMDYxLDcg QEAgT3B0aW9uczpcblxuXAorQEAgLTEwNjEsNiArMTA2Miw3IEBAIE9wdGlvbnM6XG5cblwKICAg IGZwdXRzX3VuZmlsdGVyZWQgKF8oIlwKICAgIC0tcXVpZXQgICAgICAgICAgICBEbyBub3QgcHJp bnQgdmVyc2lvbiBudW1iZXIgb24gc3RhcnR1cC5cblwKICAgIC0tcmVhZG5vdyAgICAgICAgICBG dWxseSByZWFkIHN5bWJvbCBmaWxlcyBvbiBmaXJzdCBhY2Nlc3MuXG5cCkBAIC00OCwyMiArNDgs MjIgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL21haW4uYwogICIpLCBzdHJlYW0p OwogICAgZnB1dHNfdW5maWx0ZXJlZCAoXygiXAogICAgLS1zZT1GSUxFICAgICAgICAgIFVzZSBG SUxFIGFzIHN5bWJvbCBmaWxlIGFuZCBleGVjdXRhYmxlIGZpbGUuXG5cCi1JbmRleDogZ2RiLTcu Mi41MC4yMDExMDEwNy9nZGIvc3ltZmlsZS5jCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDExNy9n ZGIvc3ltZmlsZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMi41MC4yMDExMDEwNy5vcmlnL2dk Yi9zeW1maWxlLmMJMjAxMS0wMS0wNSAyMzoyMjo1MC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGIt Ny4yLjUwLjIwMTEwMTA3L2dkYi9zeW1maWxlLmMJMjAxMS0wMS0wNyAwOTowNDo0OC4wMDAwMDAw MDAgKzAxMDAKKy0tLSBnZGItNy4yLjUwLjIwMTEwMTE3Lm9yaWcvZ2RiL3N5bWZpbGUuYwkyMDEx LTAxLTExIDIyOjUzOjI0LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuNTAuMjAxMTAxMTcv Z2RiL3N5bWZpbGUuYwkyMDExLTAxLTE3IDE1OjUwOjUzLjAwMDAwMDAwMCArMDEwMAogQEAgLTgx LDYgKzgxLDcgQEAgc3RhdGljIHZvaWQgY2xlYXJfc3ltdGFiX3VzZXJzX2NsZWFudXAgKAogIAot IC8qIEdsb2JhbCB2YXJpYWJsZXMgb3duZWQgYnkgdGhpcyBmaWxlICovCi0gaW50IHJlYWRub3df c3ltYm9sX2ZpbGVzOwkvKiBSZWFkIGZ1bGwgc3ltYm9scyBpbW1lZGlhdGVseSAqLworIC8qIEds b2JhbCB2YXJpYWJsZXMgb3duZWQgYnkgdGhpcyBmaWxlLiAgKi8KKyBpbnQgcmVhZG5vd19zeW1i b2xfZmlsZXM7CS8qIFJlYWQgZnVsbCBzeW1ib2xzIGltbWVkaWF0ZWx5LiAgKi8KICtpbnQgcmVh ZG5ldmVyX3N5bWJvbF9maWxlczsJLyogTmV2ZXIgcmVhZCBmdWxsIHN5bWJvbHMuICAqLwogIAot IC8qIEV4dGVybmFsIHZhcmlhYmxlcyBhbmQgZnVuY3Rpb25zIHJlZmVyZW5jZWQuICovCisgLyog RXh0ZXJuYWwgdmFyaWFibGVzIGFuZCBmdW5jdGlvbnMgcmVmZXJlbmNlZC4gICovCiAgCi1JbmRl eDogZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvZHdhcmYycmVhZC5jCitJbmRleDogZ2RiLTcuMi41 MC4yMDExMDExNy9nZGIvZHdhcmYycmVhZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMi41MC4y MDExMDEwNy5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJMjAxMS0wMS0wNyAwOTowMzozOC4wMDAwMDAw MDAgKzAxMDAKLSsrKyBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9kd2FyZjJyZWFkLmMJMjAxMS0w MS0wNyAwOTowNDo0OC4wMDAwMDAwMDAgKzAxMDAKKy0tLSBnZGItNy4yLjUwLjIwMTEwMTE3Lm9y aWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDExLTAxLTE3IDE1OjQ3OjM3LjAwMDAwMDAwMCArMDEwMAor KysrIGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL2R3YXJmMnJlYWQuYwkyMDExLTAxLTE3IDE1OjUw OjQxLjAwMDAwMDAwMCArMDEwMAogQEAgLTU3LDYgKzU3LDcgQEAKICAjaW5jbHVkZSAidmVjLmgi CiAgI2luY2x1ZGUgImMtbGFuZy5oIgpAQCAtODQsMTAgKzg0LDEwIEBAIEluZGV4OiBnZGItNy4y LjUwLjIwMTEwMTA3L2dkYi9kd2FyZjJyZWFkLmMKICB9CiAgCiAgLyogV2hlbiBsb2FkaW5nIHNl Y3Rpb25zLCB3ZSBjYW4gZWl0aGVyIGxvb2sgZm9yICIuPG5hbWU+Iiwgb3IgZm9yCi1JbmRleDog Z2RiLTcuMi41MC4yMDExMDEwNy9nZGIvdG9wLmgKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTE3 L2dkYi90b3AuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjIuNTAuMjAxMTAxMDcub3JpZy9nZGIv dG9wLmgJMjAxMS0wMS0wMSAxNjozMzoxOC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4yLjUw LjIwMTEwMTA3L2dkYi90b3AuaAkyMDExLTAxLTA3IDA5OjA0OjQ4LjAwMDAwMDAwMCArMDEwMAor LS0tIGdkYi03LjIuNTAuMjAxMTAxMTcub3JpZy9nZGIvdG9wLmgJMjAxMS0wMS0wMSAxNjozMzox OC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi90b3AuaAkyMDEx LTAxLTE3IDE1OjUwOjQxLjAwMDAwMDAwMCArMDEwMAogQEAgLTYxLDYgKzYxLDcgQEAgZXh0ZXJu IHZvaWQgc2V0X3Byb21wdCAoY2hhciAqKTsKICAKICAvKiBGcm9tIHJhbmRvbSBwbGFjZXMuICAq LwoKZGlmZiAtLWdpdCBhL2dkYi02LjMtdGVzdC1waWUtMjAwNTAxMDcucGF0Y2ggYi9nZGItNi4z LXRlc3QtcGllLTIwMDUwMTA3LnBhdGNoCmluZGV4IDgyNDU1NGUuLjk3YTExNDAgMTAwNjQ0Ci0t LSBhL2dkYi02LjMtdGVzdC1waWUtMjAwNTAxMDcucGF0Y2gKKysrIGIvZ2RiLTYuMy10ZXN0LXBp ZS0yMDA1MDEwNy5wYXRjaApAQCAtMSw3ICsxLDcgQEAKLUluZGV4OiBnZGItNy4yLjUwLjIwMTAx MTE2L2dkYi90ZXN0c3VpdGUvY29uZmlndXJlLmFjCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDEx Ny9nZGIvdGVzdHN1aXRlL2NvbmZpZ3VyZS5hYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjIuNTAu MjAxMDExMTYub3JpZy9nZGIvdGVzdHN1aXRlL2NvbmZpZ3VyZS5hYwkyMDEwLTExLTA1IDE1OjMx OjI5LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjIuNTAuMjAxMDExMTYvZ2RiL3Rlc3RzdWl0 ZS9jb25maWd1cmUuYWMJMjAxMC0xMS0xNiAwNzo1Njo1My4wMDAwMDAwMDAgKzAxMDAKKy0tLSBn ZGItNy4yLjUwLjIwMTEwMTE3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1cmUuYWMJMjAxMS0w MS0wNSAwNjowOTo1NS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTE3L2dk Yi90ZXN0c3VpdGUvY29uZmlndXJlLmFjCTIwMTEtMDEtMTcgMTU6NTA6MDMuMDAwMDAwMDAwICsw MTAwCiBAQCAtMTQ0LDYgKzE0NCw2IEBAIEFDX09VVFBVVChbTWFrZWZpbGUgXAogICAgZ2RiLmNw L01ha2VmaWxlIGdkYi5kaXNhc20vTWFrZWZpbGUgZ2RiLmR3YXJmMi9NYWtlZmlsZSBcCiAgICBn ZGIuZm9ydHJhbi9NYWtlZmlsZSBnZGIuc2VydmVyL01ha2VmaWxlIGdkYi5qYXZhL01ha2VmaWxl IFwKQEAgLTEwLDMxICsxMCwzMSBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIvdGVz dHN1aXRlL2NvbmZpZ3VyZS5hYwogKyAgZ2RiLm9iamMvTWFrZWZpbGUgZ2RiLm9wZW5jbC9NYWtl ZmlsZSBnZGIub3B0L01ha2VmaWxlIGdkYi5wYXNjYWwvTWFrZWZpbGUgZ2RiLnBpZS9NYWtlZmls ZSBcCiAgICBnZGIucHl0aG9uL01ha2VmaWxlIGdkYi5yZXZlcnNlL01ha2VmaWxlIFwKICAgIGdk Yi50aHJlYWRzL01ha2VmaWxlIGdkYi50cmFjZS9NYWtlZmlsZSBnZGIueG1sL01ha2VmaWxlXSkK LUluZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi90ZXN0c3VpdGUvY29uZmlndXJlCitJbmRl eDogZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvdGVzdHN1aXRlL2NvbmZpZ3VyZQogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjIuNTAuMjAxMDExMTYub3JpZy9nZGIvdGVzdHN1aXRlL2NvbmZpZ3VyZQky MDEwLTExLTA1IDE1OjMxOjI5LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjIuNTAuMjAxMDEx MTYvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1cmUJMjAxMC0xMS0xNiAwNzo1Nzo1OS4wMDAwMDAwMDAg KzAxMDAKKy0tLSBnZGItNy4yLjUwLjIwMTEwMTE3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1 cmUJMjAxMS0wMS0wNyAwMzo1MTowOS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIw MTEwMTE3L2dkYi90ZXN0c3VpdGUvY29uZmlndXJlCTIwMTEtMDEtMTcgMTU6NTA6MDkuMDAwMDAw MDAwICswMTAwCiBAQCAtMzUxNSw3ICszNTE1LDcgQEAgZG9uZQogIAogIAogIAotLWFjX2NvbmZp Z19maWxlcz0iJGFjX2NvbmZpZ19maWxlcyBNYWtlZmlsZSBnZGIuYWRhL01ha2VmaWxlIGdkYi5h cmNoL01ha2VmaWxlIGdkYi5hc20vTWFrZWZpbGUgZ2RiLmJhc2UvTWFrZWZpbGUgZ2RiLmNwL01h a2VmaWxlIGdkYi5kaXNhc20vTWFrZWZpbGUgZ2RiLmR3YXJmMi9NYWtlZmlsZSBnZGIuZm9ydHJh bi9NYWtlZmlsZSBnZGIuc2VydmVyL01ha2VmaWxlIGdkYi5qYXZhL01ha2VmaWxlIGdkYi5taS9N YWtlZmlsZSBnZGIubW9kdWxhMi9NYWtlZmlsZSBnZGIubXVsdGkvTWFrZWZpbGUgZ2RiLm9iamMv TWFrZWZpbGUgZ2RiLm9wdC9NYWtlZmlsZSBnZGIucGFzY2FsL01ha2VmaWxlIGdkYi5weXRob24v TWFrZWZpbGUgZ2RiLnJldmVyc2UvTWFrZWZpbGUgZ2RiLnRocmVhZHMvTWFrZWZpbGUgZ2RiLnRy YWNlL01ha2VmaWxlIGdkYi54bWwvTWFrZWZpbGUgZ2RiLm9wZW5jbC9NYWtlZmlsZSIKLSthY19j b25maWdfZmlsZXM9IiRhY19jb25maWdfZmlsZXMgTWFrZWZpbGUgZ2RiLmFkYS9NYWtlZmlsZSBn ZGIuYXJjaC9NYWtlZmlsZSBnZGIuYXNtL01ha2VmaWxlIGdkYi5iYXNlL01ha2VmaWxlIGdkYi5j cC9NYWtlZmlsZSBnZGIuZGlzYXNtL01ha2VmaWxlIGdkYi5kd2FyZjIvTWFrZWZpbGUgZ2RiLmZv cnRyYW4vTWFrZWZpbGUgZ2RiLnNlcnZlci9NYWtlZmlsZSBnZGIuamF2YS9NYWtlZmlsZSBnZGIu bWkvTWFrZWZpbGUgZ2RiLm1vZHVsYTIvTWFrZWZpbGUgZ2RiLm11bHRpL01ha2VmaWxlIGdkYi5v YmpjL01ha2VmaWxlIGdkYi5vcHQvTWFrZWZpbGUgZ2RiLnBhc2NhbC9NYWtlZmlsZSBnZGIucGll L01ha2VmaWxlIGdkYi5weXRob24vTWFrZWZpbGUgZ2RiLnJldmVyc2UvTWFrZWZpbGUgZ2RiLnRo cmVhZHMvTWFrZWZpbGUgZ2RiLnRyYWNlL01ha2VmaWxlIGdkYi54bWwvTWFrZWZpbGUgZ2RiLm9w ZW5jbC9NYWtlZmlsZSIKKy1hY19jb25maWdfZmlsZXM9IiRhY19jb25maWdfZmlsZXMgTWFrZWZp bGUgZ2RiLmFkYS9NYWtlZmlsZSBnZGIuYXJjaC9NYWtlZmlsZSBnZGIuYXNtL01ha2VmaWxlIGdk Yi5iYXNlL01ha2VmaWxlIGdkYi5jcC9NYWtlZmlsZSBnZGIuZGlzYXNtL01ha2VmaWxlIGdkYi5k d2FyZjIvTWFrZWZpbGUgZ2RiLmZvcnRyYW4vTWFrZWZpbGUgZ2RiLnNlcnZlci9NYWtlZmlsZSBn ZGIuamF2YS9NYWtlZmlsZSBnZGIubWkvTWFrZWZpbGUgZ2RiLm1vZHVsYTIvTWFrZWZpbGUgZ2Ri Lm11bHRpL01ha2VmaWxlIGdkYi5vYmpjL01ha2VmaWxlIGdkYi5vcGVuY2wvTWFrZWZpbGUgZ2Ri Lm9wdC9NYWtlZmlsZSBnZGIucGFzY2FsL01ha2VmaWxlIGdkYi5weXRob24vTWFrZWZpbGUgZ2Ri LnJldmVyc2UvTWFrZWZpbGUgZ2RiLnRocmVhZHMvTWFrZWZpbGUgZ2RiLnRyYWNlL01ha2VmaWxl IGdkYi54bWwvTWFrZWZpbGUiCisrYWNfY29uZmlnX2ZpbGVzPSIkYWNfY29uZmlnX2ZpbGVzIE1h a2VmaWxlIGdkYi5hZGEvTWFrZWZpbGUgZ2RiLmFyY2gvTWFrZWZpbGUgZ2RiLmFzbS9NYWtlZmls ZSBnZGIuYmFzZS9NYWtlZmlsZSBnZGIuY3AvTWFrZWZpbGUgZ2RiLmRpc2FzbS9NYWtlZmlsZSBn ZGIuZHdhcmYyL01ha2VmaWxlIGdkYi5mb3J0cmFuL01ha2VmaWxlIGdkYi5zZXJ2ZXIvTWFrZWZp bGUgZ2RiLmphdmEvTWFrZWZpbGUgZ2RiLm1pL01ha2VmaWxlIGdkYi5tb2R1bGEyL01ha2VmaWxl IGdkYi5tdWx0aS9NYWtlZmlsZSBnZGIub2JqYy9NYWtlZmlsZSBnZGIub3BlbmNsL01ha2VmaWxl IGdkYi5vcHQvTWFrZWZpbGUgZ2RiLnBhc2NhbC9NYWtlZmlsZSBnZGIucGllL01ha2VmaWxlIGdk Yi5weXRob24vTWFrZWZpbGUgZ2RiLnJldmVyc2UvTWFrZWZpbGUgZ2RiLnRocmVhZHMvTWFrZWZp bGUgZ2RiLnRyYWNlL01ha2VmaWxlIGdkYi54bWwvTWFrZWZpbGUiCiAgCiAgY2F0ID5jb25mY2Fj aGUgPDxcX0FDRU9GCiAgIyBUaGlzIGZpbGUgaXMgYSBzaGVsbCBzY3JpcHQgdGhhdCBjYWNoZXMg dGhlIHJlc3VsdHMgb2YgY29uZmlndXJlCi1AQCAtNDIzMiw2ICs0MjMyLDcgQEAgZG8KLSAgICAg ImdkYi5vYmpjL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdkYi5vYmpj L01ha2VmaWxlIiA7OworQEAgLTQyMzMsNiArNDIzMyw3IEBAIGRvCisgICAgICJnZGIub3BlbmNs L01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdkYi5vcGVuY2wvTWFrZWZp bGUiIDs7CiAgICAgICJnZGIub3B0L01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJ TEVTIGdkYi5vcHQvTWFrZWZpbGUiIDs7CiAgICAgICJnZGIucGFzY2FsL01ha2VmaWxlIikgQ09O RklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdkYi5wYXNjYWwvTWFrZWZpbGUiIDs7CiArICAgICJn ZGIucGllL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdkYi5waWUvTWFr ZWZpbGUiIDs7CiAgICAgICJnZGIucHl0aG9uL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09O RklHX0ZJTEVTIGdkYi5weXRob24vTWFrZWZpbGUiIDs7CiAgICAgICJnZGIucmV2ZXJzZS9NYWtl ZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBnZGIucmV2ZXJzZS9NYWtlZmlsZSIg OzsKICAgICAgImdkYi50aHJlYWRzL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJ TEVTIGdkYi50aHJlYWRzL01ha2VmaWxlIiA7OwotSW5kZXg6IGdkYi03LjIuNTAuMjAxMDExMTYv Z2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaC5jCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDEx Ny9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYXR0YWNoLmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251 bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4yLjUwLjIw MTAxMTE2L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2guYwkyMDEwLTExLTE2IDA3OjU2OjM0 LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL3Rlc3RzdWl0ZS9n ZGIucGllL2F0dGFjaC5jCTIwMTEtMDEtMTcgMTU6NTA6MDMuMDAwMDAwMDAwICswMTAwCiBAQCAt MCwwICsxLDIwIEBACiArLyogVGhpcyBwcm9ncmFtIGlzIGludGVuZGVkIHRvIGJlIHN0YXJ0ZWQg b3V0c2lkZSBvZiBnZGIsIGFuZCB0aGVuCiArICAgYXR0YWNoZWQgdG8gYnkgZ2RiLiAgVGh1cywg aXQgc2ltcGx5IHNwaW5zIGluIGEgbG9vcC4gIFRoZSBsb29wCkBAIC01NiwxMCArNTYsMTAgQEAg SW5kZXg6IGdkYi03LjIuNTAuMjAxMDExMTYvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaC5j CiArICAgIH0KICsgIHJldHVybiAwOwogK30KLUluZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dk Yi90ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2gyLmMKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTE3 L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2gyLmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251 bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4yLjUwLjIw MTAxMTE2L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2gyLmMJMjAxMC0xMS0xNiAwNzo1Njoz NC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi90ZXN0c3VpdGUv Z2RiLnBpZS9hdHRhY2gyLmMJMjAxMS0wMS0xNyAxNTo1MDowMy4wMDAwMDAwMDAgKzAxMDAKIEBA IC0wLDAgKzEsMjQgQEAKICsvKiBUaGlzIHByb2dyYW0gaXMgaW50ZW5kZWQgdG8gYmUgc3RhcnRl ZCBvdXRzaWRlIG9mIGdkYiwgYW5kIHRoZW4KICsgICBhdHRhY2hlZCB0byBieSBnZGIuICBUaHVz LCBpdCBzaW1wbHkgc3BpbnMgaW4gYSBsb29wLiAgVGhlIGxvb3AKQEAgLTg1LDEwICs4NSwxMCBA QCBJbmRleDogZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYXR0YWNo Mi5jCiArICAgIH0KICsgIHJldHVybiAoMCk7CiArfQotSW5kZXg6IGdkYi03LjIuNTAuMjAxMDEx MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2JyZWFrLmMKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEw MTE3L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVhay5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9u dWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMi41MC4y MDEwMTExNi9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsuYwkyMDEwLTExLTE2IDA3OjU2OjM0 LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL3Rlc3RzdWl0ZS9n ZGIucGllL2JyZWFrLmMJMjAxMS0wMS0xNyAxNTo1MDowMy4wMDAwMDAwMDAgKzAxMDAKIEBAIC0w LDAgKzEsMTQ2IEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBk ZWJ1Z2dlci4KICsKQEAgLTIzNiwxMCArMjM2LDEwIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAx MTE2L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVhay5jCiArICAgIH0KICsgIHJldHVybiAwOwog K30KLUluZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVh azEuYworSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2Jy ZWFrMS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAw MDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIvdGVzdHN1aXRlL2dkYi5w aWUvYnJlYWsxLmMJMjAxMC0xMS0xNiAwNzo1NjozNC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGIt Ny4yLjUwLjIwMTEwMTE3L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVhazEuYwkyMDExLTAxLTE3 IDE1OjUwOjAzLjAwMDAwMDAwMCArMDEwMAogQEAgLTAsMCArMSw0NCBAQAogKy8qIFRoaXMgdGVz dGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC0yODUsMTAgKzI4 NSwxMCBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIvdGVzdHN1aXRlL2dkYi5waWUv YnJlYWsxLmMKICt2b2lkIG1hcmtlcjMgKGEsIGIpIGNoYXIgKmEsICpiOyB7fQkvKiBzZXQgYnJl YWtwb2ludCAxOCBoZXJlICovCiArdm9pZCBtYXJrZXI0IChkKSBsb25nIGQ7IHt9CQkvKiBzZXQg YnJlYWtwb2ludCAxMyBoZXJlICovCiArI2VuZGlmCi1JbmRleDogZ2RiLTcuMi41MC4yMDEwMTEx Ni9nZGIvdGVzdHN1aXRlL2dkYi5waWUvY29yZW1ha2VyLmMKK0luZGV4OiBnZGItNy4yLjUwLjIw MTEwMTE3L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9jb3JlbWFrZXIuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0t IC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03 LjIuNTAuMjAxMDExMTYvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2NvcmVtYWtlci5jCTIwMTAtMTEt MTYgMDc6NTY6MzQuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi41MC4yMDExMDExNy9nZGIv dGVzdHN1aXRlL2dkYi5waWUvY29yZW1ha2VyLmMJMjAxMS0wMS0xNyAxNTo1MDowMy4wMDAwMDAw MDAgKzAxMDAKIEBAIC0wLDAgKzEsMTQyIEBACiArLyogQ29weXJpZ2h0IDE5OTIsIDE5OTMsIDE5 OTQsIDE5OTUsIDE5OTYsIDE5OTkKICsgICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K QEAgLTQzMiwxMCArNDMyLDEwIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi90ZXN0 c3VpdGUvZ2RiLnBpZS9jb3JlbWFrZXIuYwogKyAgcmV0dXJuIDA7CiArfQogKwotSW5kZXg6IGdk Yi03LjIuNTAuMjAxMDExMTYvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaC5leHAKK0luZGV4 OiBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2guZXhwCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICsw MDAwCi0rKysgZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYXR0YWNo LmV4cAkyMDEwLTExLTE2IDA3OjU2OjM0LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuNTAu MjAxMTAxMTcvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaC5leHAJMjAxMS0wMS0xNyAxNTo1 MDowMy4wMDAwMDAwMDAgKzAxMDAKIEBAIC0wLDAgKzEsNDIzIEBACiArIyAgIENvcHlyaWdodCAx OTk3LCAxOTk5LCAyMDAyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtODYw LDEwICs4NjAsMTAgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMDExMTYvZ2RiL3Rlc3RzdWl0ZS9n ZGIucGllL2F0dGFjaC5leHAKICtkb19jYWxsX2F0dGFjaF90ZXN0cwogKwogK3JldHVybiAwCi1J bmRleDogZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsuZXhw CitJbmRleDogZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsu ZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAw MDAwICswMDAwCi0rKysgZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIvdGVzdHN1aXRlL2dkYi5waWUv YnJlYWsuZXhwCTIwMTAtMTEtMTYgMDc6NTY6MzQuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcu Mi41MC4yMDExMDExNy9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsuZXhwCTIwMTEtMDEtMTcg MTU6NTA6MDMuMDAwMDAwMDAwICswMTAwCiBAQCAtMCwwICsxLDk2NiBAQAogKyMgICBDb3B5cmln aHQgMTk4OCwgMTk5MCwgMTk5MSwgMTk5MiwgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwg MTk5OSwKICsjICAgMjAwMCwgMjAwMiwgMjAwMywgMjAwNApAQCAtMTgzMSwxMCArMTgzMSwxMCBA QCBJbmRleDogZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsu ZXhwCiArICAgIHNlbmRfZ2RiICJzZXQgYXJncyBtYWluXG4iCiArICAgIGdkYl9leHBlY3QgLXJl ICIuKiRnZGJfcHJvbXB0ICQiIHt9CiArfQotSW5kZXg6IGdkYi03LjIuNTAuMjAxMDExMTYvZ2Ri L3Rlc3RzdWl0ZS9nZGIucGllL2NvcmVmaWxlLmV4cAorSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAx MTcvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2NvcmVmaWxlLmV4cAogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9k ZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjIu NTAuMjAxMDExMTYvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2NvcmVmaWxlLmV4cAkyMDEwLTExLTE2 IDA3OjU2OjM0LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL3Rl c3RzdWl0ZS9nZGIucGllL2NvcmVmaWxlLmV4cAkyMDExLTAxLTE3IDE1OjUwOjAzLjAwMDAwMDAw MCArMDEwMAogQEAgLTAsMCArMSwyMzMgQEAKICsjIENvcHlyaWdodCAxOTkyLCAxOTkzLCAxOTk0 LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwCiArIyBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KQEAgLTIwNjksMTAgKzIwNjksMTAgQEAgSW5kZXg6IGdkYi03LjIuNTAu MjAxMDExMTYvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2NvcmVmaWxlLmV4cAogK2dkYl90ZXN0ICJ1 cCIgIiNcWzAtOVxdKiAqXFswLTl4YS1mSCdcXSogaW4gLiogXFwoLipcXCkuKiIgInVwIGluIGNv cmVmaWxlLmV4cCAocmVpbml0KSIKICsKICtnZGJfdGVzdCAiY29yZSIgIk5vIGNvcmUgZmlsZSBu b3cuIgotSW5kZXg6IGdkYi03LjIuNTAuMjAxMDExMTYvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL01h a2VmaWxlLmluCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvdGVzdHN1aXRlL2dkYi5w aWUvTWFrZWZpbGUuaW4KID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDow MDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi90ZXN0c3Vp dGUvZ2RiLnBpZS9NYWtlZmlsZS5pbgkyMDEwLTExLTE2IDA3OjU2OjM0LjAwMDAwMDAwMCArMDEw MAorKysrIGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL01ha2VmaWxl LmluCTIwMTEtMDEtMTcgMTU6NTA6MDMuMDAwMDAwMDAwICswMTAwCiBAQCAtMCwwICsxLDE5IEBA CiArVlBBVEggPSBAc3JjZGlyQAogK3NyY2RpciA9IEBzcmNkaXJACgpkaWZmIC0tZ2l0IGEvZ2Ri LTYuNS1iejIxODM3OS1zb2xpYi10cmFtcG9saW5lLWxvb2t1cC1sb2NrLWZpeC5wYXRjaCBiL2dk Yi02LjUtYnoyMTgzNzktc29saWItdHJhbXBvbGluZS1sb29rdXAtbG9jay1maXgucGF0Y2gKaW5k ZXggMmU3OGEzZS4uMDgyYjlhMCAxMDA2NDQKLS0tIGEvZ2RiLTYuNS1iejIxODM3OS1zb2xpYi10 cmFtcG9saW5lLWxvb2t1cC1sb2NrLWZpeC5wYXRjaAorKysgYi9nZGItNi41LWJ6MjE4Mzc5LXNv bGliLXRyYW1wb2xpbmUtbG9va3VwLWxvY2stZml4LnBhdGNoCkBAIC0xLDEzICsxLDEzIEBACiBo dHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTIxODM3 OQogCiAKLUluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9zeW10YWIuYworSW5kZXg6IGdk Yi03LjIuNTAuMjAxMTAxMTcvZ2RiL3N5bXRhYi5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMi41 MC4yMDExMDEwNy5vcmlnL2dkYi9zeW10YWIuYwkyMDExLTAxLTA3IDA5OjAzOjM4LjAwMDAwMDAw MCArMDEwMAotKysrIGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL3N5bXRhYi5jCTIwMTEtMDEtMDcg MDk6MDY6MzIuMDAwMDAwMDAwICswMTAwCi1AQCAtMjAxNCw2ICsyMDE0LDEzIEBAIGZpbmRfcGNf c2VjdF9saW5lIChDT1JFX0FERFIgcGMsIHN0cnVjdCAKLSAJICAvKiB3YXJuaW5nICgiSW4gc3R1 YiBmb3IgJXM7IHVuYWJsZSB0byBmaW5kIHJlYWwgZnVuY3Rpb24vbGluZSBpbmZvIiwKLSAJICAg ICBTWU1CT0xfTElOS0FHRV9OQU1FIChtc3ltYm9sKSkgKi8gOworLS0tIGdkYi03LjIuNTAuMjAx MTAxMTcub3JpZy9nZGIvc3ltdGFiLmMJMjAxMS0wMS0xNyAxNTo0NzozNy4wMDAwMDAwMDAgKzAx MDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi9zeW10YWIuYwkyMDExLTAxLTE3IDE1OjUx OjQ4LjAwMDAwMDAwMCArMDEwMAorQEAgLTIwMTUsNiArMjAxNSwxMyBAQCBmaW5kX3BjX3NlY3Rf bGluZSAoQ09SRV9BRERSIHBjLCBzdHJ1Y3QgCisgCSAgICAgU1lNQk9MX0xJTktBR0VfTkFNRSAo bXN5bWJvbCkpOyAqLworIAkgIDsKICAJLyogZmFsbCB0aHJvdWdoICovCiArCS8qIGBtc3ltYm9s JyB0cmFtcG9saW5lIG1heSBiZSBsb2NhdGVkIGJlZm9yZSBpdHMgLnRleHQgc3ltYm9sCiArCSAg IGJ1dCB0aGlzIHRleHQgc3ltYm9sIG1heSBiZSB0aGUgYWRkcmVzcyB3ZSB3ZXJlIGxvb2tpbmcg Zm9yLgoKZGlmZiAtLWdpdCBhL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUucGF0Y2ggYi9nZGItNi42 LWJ1aWxkaWQtbG9jYXRlLnBhdGNoCmluZGV4IGUzNTQ0N2MuLjNkOGU1ZGUgMTAwNjQ0Ci0tLSBh L2dkYi02LjYtYnVpbGRpZC1sb2NhdGUucGF0Y2gKKysrIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0 ZS5wYXRjaApAQCAtMSw3ICsxLDcgQEAKLUluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9j b3JlbG93LmMKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi9jb3JlbG93LmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4yLjUwLjIwMTEwMTA3Lm9yaWcvZ2RiL2NvcmVsb3cuYwkyMDExLTAx LTA1IDIzOjIyOjQ3LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjIuNTAuMjAxMTAxMDcvZ2Ri L2NvcmVsb3cuYwkyMDExLTAxLTA3IDA5OjA3OjAxLjAwMDAwMDAwMCArMDEwMAorLS0tIGdkYi03 LjIuNTAuMjAxMTAxMTcub3JpZy9nZGIvY29yZWxvdy5jCTIwMTEtMDEtMDUgMjM6MjI6NDcuMDAw MDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvY29yZWxvdy5jCTIwMTEt MDEtMTcgMTU6NTI6MDYuMDAwMDAwMDAwICswMTAwCiBAQCAtNDcsNiArNDcsOSBAQAogICNpbmNs dWRlICJmaWxlbmFtZXMuaCIKICAjaW5jbHVkZSAicHJvZ3NwYWNlLmgiCkBAIC05MCwxMSArOTAs MTEgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL2NvcmVsb3cuYwogKwkJCSAgIE5V TEwsIE5VTEwsIE5VTEwsCiArCQkJICAgJnNldGxpc3QsICZzaG93bGlzdCk7CiAgfQotSW5kZXg6 IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL2RvYy9nZGIudGV4aW5mbworSW5kZXg6IGdkYi03LjIu NTAuMjAxMTAxMTcvZ2RiL2RvYy9nZGIudGV4aW5mbwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjIu NTAuMjAxMTAxMDcub3JpZy9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTEtMDEtMDcgMDk6MDQ6NDgu MDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvZG9jL2dkYi50ZXhp bmZvCTIwMTEtMDEtMDcgMDk6MDc6MDEuMDAwMDAwMDAwICswMTAwCi1AQCAtMTUyNzcsNiArMTUy NzcsMjcgQEAgaW5mb3JtYXRpb24gZmlsZXMuCistLS0gZ2RiLTcuMi41MC4yMDExMDExNy5vcmln L2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxMS0wMS0xNyAxNTo1MDo0MS4wMDAwMDAwMDAgKzAxMDAK KysrKyBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxMS0wMS0xNyAx NTo1MjowNi4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xNTIyMCw2ICsxNTIyMCwyNyBAQCBpbmZvcm1h dGlvbiBmaWxlcy4KICAKICBAZW5kIHRhYmxlCiAgCkBAIC0xMjIsMTAgKzEyMiwxMCBAQCBJbmRl eDogZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvZG9jL2dkYi50ZXhpbmZvCiAgQGNpbmRleCBAY29k ZXsuZ251X2RlYnVnbGlua30gc2VjdGlvbnMKICBAY2luZGV4IGRlYnVnIGxpbmsgc2VjdGlvbnMK ICBBIGRlYnVnIGxpbmsgaXMgYSBzcGVjaWFsIHNlY3Rpb24gb2YgdGhlIGV4ZWN1dGFibGUgZmls ZSBuYW1lZAotSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL3NvbGliLXN2cjQuYworSW5k ZXg6IGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL3NvbGliLXN2cjQuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjIuNTAuMjAxMTAxMDcub3JpZy9nZGIvc29saWItc3ZyNC5jCTIwMTEtMDEtMDcgMDk6 MDM6MzguMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvc29saWIt c3ZyNC5jCTIwMTEtMDEtMDcgMDk6MDc6MDEuMDAwMDAwMDAwICswMTAwCistLS0gZ2RiLTcuMi41 MC4yMDExMDExNy5vcmlnL2dkYi9zb2xpYi1zdnI0LmMJMjAxMS0wMS0xNyAxNTo0NzozNy4wMDAw MDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi9zb2xpYi1zdnI0LmMJMjAx MS0wMS0xNyAxNTo1MjowNi4wMDAwMDAwMDAgKzAxMDAKIEBAIC0xMTc5LDkgKzExNzksNDkgQEAg c3ZyNF9jdXJyZW50X3NvcyAodm9pZCkKICAJCSAgICAgc2FmZV9zdHJlcnJvciAoZXJyY29kZSkp OwogIAkgIGVsc2UKQEAgLTE3OSwxMCArMTc5LDEwIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTEw MTA3L2dkYi9zb2xpYi1zdnI0LmMKICAJICAgIH0KICAJICB4ZnJlZSAoYnVmZmVyKTsKICAKLUlu ZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9lbGZyZWFkLmMKK0luZGV4OiBnZGItNy4yLjUw LjIwMTEwMTE3L2dkYi9lbGZyZWFkLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4yLjUwLjIwMTEw MTA3Lm9yaWcvZ2RiL2VsZnJlYWQuYwkyMDExLTAxLTA3IDA5OjAzOjM4LjAwMDAwMDAwMCArMDEw MAotKysrIGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL2VsZnJlYWQuYwkyMDExLTAxLTA3IDA5OjA3 OjMzLjAwMDAwMDAwMCArMDEwMAorLS0tIGdkYi03LjIuNTAuMjAxMTAxMTcub3JpZy9nZGIvZWxm cmVhZC5jCTIwMTEtMDEtMTcgMTU6NDc6MzcuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi41 MC4yMDExMDExNy9nZGIvZWxmcmVhZC5jCTIwMTEtMDEtMTcgMTU6NTI6MDYuMDAwMDAwMDAwICsw MTAwCiBAQCAtMzgsNiArMzgsMTAgQEAKICAjaW5jbHVkZSAiZGVtYW5nbGUuaCIKICAjaW5jbHVk ZSAicHN5bXByaXYuaCIKQEAgLTkxMSwxMCArOTExLDEwIEBAIEluZGV4OiBnZGItNy4yLjUwLjIw MTEwMTA3L2dkYi9lbGZyZWFkLmMKICsKICsgIG9ic2VydmVyX2F0dGFjaF9leGVjdXRhYmxlX2No YW5nZWQgKGRlYnVnX3ByaW50X2V4ZWN1dGFibGVfY2hhbmdlZCk7CiAgfQotSW5kZXg6IGdkYi03 LjIuNTAuMjAxMTAxMDcvZ2RiL3N5bWZpbGUuaAorSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMTcv Z2RiL3N5bWZpbGUuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjIuNTAuMjAxMTAxMDcub3JpZy9n ZGIvc3ltZmlsZS5oCTIwMTEtMDEtMDUgMjM6MjI6NTMuMDAwMDAwMDAwICswMTAwCi0rKysgZ2Ri LTcuMi41MC4yMDExMDEwNy9nZGIvc3ltZmlsZS5oCTIwMTEtMDEtMDcgMDk6MDc6MDEuMDAwMDAw MDAwICswMTAwCistLS0gZ2RiLTcuMi41MC4yMDExMDExNy5vcmlnL2dkYi9zeW1maWxlLmgJMjAx MS0wMS0xMSAyMjo1MzoyNC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTE3 L2dkYi9zeW1maWxlLmgJMjAxMS0wMS0xNyAxNTo1MjowNi4wMDAwMDAwMDAgKzAxMDAKIEBAIC01 NTQsNiArNTU0LDEzIEBAIHZvaWQgZnJlZV9zeW1maWxlX3NlZ21lbnRfZGF0YSAoc3RydWN0IHMK ICAKICBleHRlcm4gc3RydWN0IGNsZWFudXAgKmluY3JlbWVudF9yZWFkaW5nX3N5bXRhYiAodm9p ZCk7CkBAIC05MjksMTEgKzkyOSwxMSBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIv c3ltZmlsZS5oCiAgLyogRnJvbSBkd2FyZjJyZWFkLmMgKi8KICAKICBleHRlcm4gaW50IGR3YXJm Ml9oYXNfaW5mbyAoc3RydWN0IG9iamZpbGUgKik7Ci1JbmRleDogZ2RiLTcuMi41MC4yMDExMDEw Ny9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDExNy9n ZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMi41MC4yMDEx MDEwNy5vcmlnL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAxMS0wMS0wNyAwOTowMzozOC4w MDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi90ZXN0c3VpdGUvbGli L2dkYi5leHAJMjAxMS0wMS0wNyAwOTowNzowMS4wMDAwMDAwMDAgKzAxMDAKLUBAIC0xMzkxLDYg KzEzOTEsMTYgQEAgcHJvYyBkZWZhdWx0X2dkYl9zdGFydCB7IH0geworLS0tIGdkYi03LjIuNTAu MjAxMTAxMTcub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMTEtMDEtMTcgMTU6NDc6 MzcuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvdGVzdHN1aXRl L2xpYi9nZGIuZXhwCTIwMTEtMDEtMTcgMTU6NTI6MDYuMDAwMDAwMDAwICswMTAwCitAQCAtMTM5 NSw2ICsxMzk1LDE2IEBAIHByb2MgZGVmYXVsdF9nZGJfc3RhcnQgeyB9IHsKICAJICAgIHdhcm5p bmcgIkNvdWxkbid0IHNldCB0aGUgd2lkdGggdG8gMC4iCiAgCX0KICAgICAgfQpAQCAtOTUwLDEw ICs5NTAsMTAgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL3Rlc3RzdWl0ZS9saWIv Z2RiLmV4cAogICAgICByZXR1cm4gMDsKICB9CiAgCi1JbmRleDogZ2RiLTcuMi41MC4yMDExMDEw Ny9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAorSW5kZXg6IGdkYi03LjIuNTAuMjAx MTAxMTcvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy4yLjUwLjIwMTEwMTA3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAJ MjAxMS0wMS0wMSAxNjozMzo1Mi4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4yLjUwLjIwMTEw MTA3L2dkYi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCTIwMTEtMDEtMDcgMDk6MDc6MDEu MDAwMDAwMDAwICswMTAwCistLS0gZ2RiLTcuMi41MC4yMDExMDExNy5vcmlnL2dkYi90ZXN0c3Vp dGUvbGliL21pLXN1cHBvcnQuZXhwCTIwMTEtMDEtMDEgMTY6MzM6NTIuMDAwMDAwMDAwICswMTAw CisrKysgZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4 cAkyMDExLTAxLTE3IDE1OjUyOjA2LjAwMDAwMDAwMCArMDEwMAogQEAgLTIyMSw2ICsyMjEsMTYg QEAgcHJvYyBkZWZhdWx0X21pX2dkYl9zdGFydCB7IGFyZ3MgfSB7CiAgCSAgICB9CiAgICAgIAl9 CkBAIC05NzEsMTAgKzk3MSwxMCBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvdGVz dHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAogIAogICAgICBkZXRlY3RfYXN5bmMKICAKLUluZGV4 OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9vYmpmaWxlcy5oCitJbmRleDogZ2RiLTcuMi41MC4y MDExMDExNy9nZGIvb2JqZmlsZXMuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjIuNTAuMjAxMTAx MDcub3JpZy9nZGIvb2JqZmlsZXMuaAkyMDExLTAxLTA1IDIzOjIyOjQ5LjAwMDAwMDAwMCArMDEw MAotKysrIGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL29iamZpbGVzLmgJMjAxMS0wMS0wNyAwOTow NzowMS4wMDAwMDAwMDAgKzAxMDAKKy0tLSBnZGItNy4yLjUwLjIwMTEwMTE3Lm9yaWcvZ2RiL29i amZpbGVzLmgJMjAxMS0wMS0xMCAyMTozODo0OS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4y LjUwLjIwMTEwMTE3L2dkYi9vYmpmaWxlcy5oCTIwMTEtMDEtMTcgMTU6NTI6MjYuMDAwMDAwMDAw ICswMTAwCiBAQCAtNDM0LDYgKzQzNCwxMCBAQCBzdHJ1Y3Qgb2JqZmlsZQogIAogICNkZWZpbmUg T0JKRl9VU0VSTE9BREVECSgxIDw8IDMpCS8qIFVzZXIgbG9hZGVkICovCkBAIC05ODQsNSArOTg0 LDUgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL29iamZpbGVzLmgKICsjZGVmaW5l IE9CSkZfQlVJTERfSURfQ09SRV9MT0FERUQgKDEgPDwgMTIpCiArCiAgLyogVGhlIG9iamVjdCBm aWxlIHRoYXQgY29udGFpbnMgdGhlIHJ1bnRpbWUgY29tbW9uIG1pbmltYWwgc3ltYm9scwotICAg IGZvciBTdW5PUzQuIE5vdGUgdGhhdCB0aGlzIG9iamZpbGUgaGFzIG5vIGFzc29jaWF0ZWQgQkZE LiAgKi8KKyAgICBmb3IgU3VuT1M0LiAgTm90ZSB0aGF0IHRoaXMgb2JqZmlsZSBoYXMgbm8gYXNz b2NpYXRlZCBCRkQuICAqLwogIAoKZGlmZiAtLWdpdCBhL2dkYi02LjYtc2NoZWR1bGVyX2xvY2tp bmctc3RlcC1zdy13YXRjaHBvaW50czIucGF0Y2ggYi9nZGItNi42LXNjaGVkdWxlcl9sb2NraW5n LXN0ZXAtc3ctd2F0Y2hwb2ludHMyLnBhdGNoCmluZGV4IGU4OTQyNTguLjcxZjJkYzEgMTAwNjQ0 Ci0tLSBhL2dkYi02LjYtc2NoZWR1bGVyX2xvY2tpbmctc3RlcC1zdy13YXRjaHBvaW50czIucGF0 Y2gKKysrIGIvZ2RiLTYuNi1zY2hlZHVsZXJfbG9ja2luZy1zdGVwLXN3LXdhdGNocG9pbnRzMi5w YXRjaApAQCAtMjEsMTAgKzIxLDEwIEBACiAKIAlQb3J0IHRvIEdEQi02LjhwcmUuCiAKLUluZGV4 OiBnZGItNy4yLjUwLjIwMTAxMjMxL2dkYi9pbmZlcmlvci5oCitJbmRleDogZ2RiLTcuMi41MC4y MDExMDExNy9nZGIvaW5mZXJpb3IuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjIuNTAuMjAxMDEy MzEub3JpZy9nZGIvaW5mZXJpb3IuaAkyMDExLTAxLTAxIDAxOjI1OjAxLjAwMDAwMDAwMCArMDEw MAotKysrIGdkYi03LjIuNTAuMjAxMDEyMzEvZ2RiL2luZmVyaW9yLmgJMjAxMS0wMS0wMSAwMToy NToxNi4wMDAwMDAwMDAgKzAxMDAKKy0tLSBnZGItNy4yLjUwLjIwMTEwMTE3Lm9yaWcvZ2RiL2lu ZmVyaW9yLmgJMjAxMS0wMS0wOSAwNDowODo1Ni4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4y LjUwLjIwMTEwMTE3L2dkYi9pbmZlcmlvci5oCTIwMTEtMDEtMTcgMTU6NDg6MzkuMDAwMDAwMDAw ICswMTAwCiBAQCAtMTg2LDcgKzE4NiwxNSBAQCBleHRlcm4gdm9pZCByZW9wZW5fZXhlY19maWxl ICh2b2lkKTsKICAvKiBUaGUgYHJlc3VtZScgcm91dGluZSBzaG91bGQgb25seSBiZSBjYWxsZWQg aW4gc3BlY2lhbCBjaXJjdW1zdGFuY2VzLgogICAgIE5vcm1hbGx5LCB1c2UgYHByb2NlZWQnLCB3 aGljaCBoYW5kbGVzIGEgbG90IG9mIGJvb2trZWVwaW5nLiAgKi8KQEAgLTQyLDEwICs0MiwxMCBA QCBJbmRleDogZ2RiLTcuMi41MC4yMDEwMTIzMS9nZGIvaW5mZXJpb3IuaAogIAogIC8qIEZyb20g bWlzYyBmaWxlcyAqLwogIAotSW5kZXg6IGdkYi03LjIuNTAuMjAxMDEyMzEvZ2RiL2luZnJ1bi5j CitJbmRleDogZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvaW5mcnVuLmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy4yLjUwLjIwMTAxMjMxLm9yaWcvZ2RiL2luZnJ1bi5jCTIwMTEtMDEtMDEgMDE6MjU6 MDEuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMi41MC4yMDEwMTIzMS9nZGIvaW5mcnVuLmMJ MjAxMS0wMS0wMSAwMToyNToyOS4wMDAwMDAwMDAgKzAxMDAKKy0tLSBnZGItNy4yLjUwLjIwMTEw MTE3Lm9yaWcvZ2RiL2luZnJ1bi5jCTIwMTEtMDEtMDkgMDQ6MDg6NTYuMDAwMDAwMDAwICswMTAw CisrKysgZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvaW5mcnVuLmMJMjAxMS0wMS0xNyAxNTo0OTo0 MC4wMDAwMDAwMDAgKzAxMDAKIEBAIC03Niw3ICs3Niw3IEBAIHN0YXRpYyBpbnQgZm9sbG93X2Zv cmsgKHZvaWQpOwogIHN0YXRpYyB2b2lkIHNldF9zY2hlZGxvY2tfZnVuYyAoY2hhciAqYXJncywg aW50IGZyb21fdHR5LAogIAkJCQlzdHJ1Y3QgY21kX2xpc3RfZWxlbWVudCAqYyk7CkBAIC01NSw3 ICs1NSw3IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMjMxL2dkYi9pbmZydW4uYwogIAogIHN0 YXRpYyBpbnQgY3VycmVudGx5X3N0ZXBwaW5nX29yX25leHRpbmdfY2FsbGJhY2sgKHN0cnVjdCB0 aHJlYWRfaW5mbyAqdHAsCiAgCQkJCQkJICAgdm9pZCAqZGF0YSk7Ci1AQCAtMTU3MCw3ICsxNTcw LDcgQEAgbWF5YmVfc29mdHdhcmVfc2luZ2xlc3RlcCAoc3RydWN0IGdkYmFyYworQEAgLTE1Nzcs NyArMTU3Nyw3IEBAIG1heWJlX3NvZnR3YXJlX3NpbmdsZXN0ZXAgKHN0cnVjdCBnZGJhcmMKICAg ICBTVEVQIG5vbnplcm8gaWYgd2Ugc2hvdWxkIHN0ZXAgKHplcm8gdG8gY29udGludWUgaW5zdGVh ZCkuCiAgICAgU0lHIGlzIHRoZSBzaWduYWwgdG8gZ2l2ZSB0aGUgaW5mZXJpb3IgKHplcm8gZm9y IG5vbmUpLiAgKi8KICB2b2lkCkBAIC02NCw3ICs2NCw3IEBAIEluZGV4OiBnZGItNy4yLjUwLjIw MTAxMjMxL2dkYi9pbmZydW4uYwogIHsKICAgIGludCBzaG91bGRfcmVzdW1lID0gMTsKICAgIHN0 cnVjdCBjbGVhbnVwICpvbGRfY2xlYW51cHMgPSBtYWtlX2NsZWFudXAgKHJlc3VtZV9jbGVhbnVw cywgMCk7Ci1AQCAtMTYwMiwxMCArMTYwMiwxMiBAQCByZXN1bWUgKGludCBzdGVwLCBlbnVtIHRh cmdldF9zaWduYWwgc2lnCitAQCAtMTYwOSwxMCArMTYwOSwxMiBAQCByZXN1bWUgKGludCBzdGVw LCBlbnVtIHRhcmdldF9zaWduYWwgc2lnCiAgICAgIH0KICAKICAgIGlmIChkZWJ1Z19pbmZydW4p CkBAIC04MSw3ICs4MSw3IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMjMxL2dkYi9pbmZydW4u YwogIAogICAgLyogTm9ybWFsbHksIGJ5IHRoZSB0aW1lIHdlIHJlYWNoIGByZXN1bWUnLCB0aGUg YnJlYWtwb2ludHMgYXJlIGVpdGhlcgogICAgICAgcmVtb3ZlZCBvciBpbnNlcnRlZCwgYXMgYXBw cm9wcmlhdGUuICBUaGUgZXhjZXB0aW9uIGlzIGlmIHdlJ3JlIHNpdHRpbmcKLUBAIC0xNzIzLDkg KzE3MjUsMTAgQEAgYSBjb21tYW5kIGxpa2UgYHJldHVybicgb3IgYGp1bXAnIHRvIGNvbgorQEAg LTE3MzAsOSArMTczMiwxMCBAQCBhIGNvbW1hbmQgbGlrZSBgcmV0dXJuJyBvciBganVtcCcgdG8g Y29uCiAgCSAgICAgaW5kaXZpZHVhbGx5LiAgKi8KICAJICByZXN1bWVfcHRpZCA9IGluZmVyaW9y X3B0aWQ7CiAgCX0KQEAgLTkyLDkgKzkyLDkgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMDEyMzEv Z2RiL2luZnJ1bi5jCiArCQkgICAmJiAoc3RlcCA9PSBSRVNVTUVfU1RFUF9VU0VSCiArCQkgICAg ICAgfHwgc2luZ2xlc3RlcF9icmVha3BvaW50c19pbnNlcnRlZF9wKSkpCiAgCXsKLSAJICAvKiBV c2VyLXNldHRhYmxlICdzY2hlZHVsZXInIG1vZGUgcmVxdWlyZXMgc29sbyB0aHJlYWQgcmVzdW1l LiAqLworIAkgIC8qIFVzZXItc2V0dGFibGUgJ3NjaGVkdWxlcicgbW9kZSByZXF1aXJlcyBzb2xv IHRocmVhZCByZXN1bWUuICAqLwogIAkgIHJlc3VtZV9wdGlkID0gaW5mZXJpb3JfcHRpZDsKLUBA IC0xOTM0LDcgKzE5MzcsNyBAQCBwcm9jZWVkIChDT1JFX0FERFIgYWRkciwgZW51bSB0YXJnZXRf c2lnCitAQCAtMTk0MSw3ICsxOTQ0LDcgQEAgcHJvY2VlZCAoQ09SRV9BRERSIGFkZHIsIGVudW0g dGFyZ2V0X3NpZwogICAgc3RydWN0IHRocmVhZF9pbmZvICp0cDsKICAgIENPUkVfQUREUiBwYzsK ICAgIHN0cnVjdCBhZGRyZXNzX3NwYWNlICphc3BhY2U7CkBAIC0xMDMsNyArMTAzLDcgQEAgSW5k ZXg6IGdkYi03LjIuNTAuMjAxMDEyMzEvZ2RiL2luZnJ1bi5jCiAgCiAgICAvKiBJZiB3ZSdyZSBz dG9wcGVkIGF0IGEgZm9yay92Zm9yaywgZm9sbG93IHRoZSBicmFuY2ggc2V0IGJ5IHRoZQogICAg ICAgInNldCBmb2xsb3ctZm9yay1tb2RlIiBjb21tYW5kOyBvdGhlcndpc2UsIHdlJ2xsIGp1c3Qg cHJvY2VlZAotQEAgLTE5NjksMTMgKzE5NzIsMTMgQEAgcHJvY2VlZCAoQ09SRV9BRERSIGFkZHIs IGVudW0gdGFyZ2V0X3NpZworQEAgLTE5NzYsMTMgKzE5NzksMTMgQEAgcHJvY2VlZCAoQ09SRV9B RERSIGFkZHIsIGVudW0gdGFyZ2V0X3NpZwogIAkgICBhY3R1YWxseSBiZSBleGVjdXRpbmcgdGhl IGJyZWFrcG9pbnQgaW5zbiBhbnl3YXkuCiAgCSAgIFdlJ2xsIGJlICh1bi0pZXhlY3V0aW5nIHRo ZSBwcmV2aW91cyBpbnN0cnVjdGlvbi4gICovCiAgCkBAIC0xMTksOSArMTE5LDkgQEAgSW5kZXg6 IGdkYi03LjIuNTAuMjAxMDEyMzEvZ2RiL2luZnJ1bi5jCiAgICAgIH0KICAgIGVsc2UKICAgICAg ewotQEAgLTIwMTYsMTMgKzIwMTksMTMgQEAgcHJvY2VlZCAoQ09SRV9BRERSIGFkZHIsIGVudW0g dGFyZ2V0X3NpZworQEAgLTIwMjMsMTMgKzIwMjYsMTMgQEAgcHJvY2VlZCAoQ09SRV9BRERSIGFk ZHIsIGVudW0gdGFyZ2V0X3NpZwogIAkgaXMgcmVxdWlyZWQgaXQgcmV0dXJucyBUUlVFIGFuZCBz ZXRzIHRoZSBjdXJyZW50IHRocmVhZCB0bwotIAkgdGhlIG9sZCB0aHJlYWQuICovCisgCSB0aGUg b2xkIHRocmVhZC4gICovCiAgICAgICAgaWYgKHByZXBhcmVfdG9fcHJvY2VlZCAoc3RlcCkpCiAt CW9uZXByb2MgPSAxOwogKwlyZXN1bWVfc3RlcCA9IFJFU1VNRV9TVEVQX1VTRVI7CkBAIC0xMzUs NyArMTM1LDcgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMDEyMzEvZ2RiL2luZnJ1bi5jCiAgICAg IHsKICAgICAgICB0cC0+Y29udHJvbC50cmFwX2V4cGVjdGVkID0gMTsKICAgICAgICAvKiBJZiBk aXNwbGFjZWQgc3RlcHBpbmcgaXMgZW5hYmxlZCwgd2UgY2FuIHN0ZXAgb3ZlciB0aGUKLUBAIC0y MTA5LDggKzIxMTIsMTMgQEAgcHJvY2VlZCAoQ09SRV9BRERSIGFkZHIsIGVudW0gdGFyZ2V0X3Np ZworQEAgLTIxMTYsOCArMjExOSwxMyBAQCBwcm9jZWVkIChDT1JFX0FERFIgYWRkciwgZW51bSB0 YXJnZXRfc2lnCiAgICAvKiBSZXNldCB0byBub3JtYWwgc3RhdGUuICAqLwogICAgaW5pdF9pbmZ3 YWl0X3N0YXRlICgpOwogIApAQCAtMTUwLDcgKzE1MCw3IEBAIEluZGV4OiBnZGItNy4yLjUwLjIw MTAxMjMxL2dkYi9pbmZydW4uYwogIAogICAgLyogV2FpdCBmb3IgaXQgdG8gc3RvcCAoaWYgbm90 IHN0YW5kYWxvbmUpCiAgICAgICBhbmQgaW4gYW55IGNhc2UgZGVjb2RlIHdoeSBpdCBzdG9wcGVk LCBhbmQgYWN0IGFjY29yZGluZ2x5LiAgKi8KLUBAIC00OTMzLDE0ICs0OTQxLDE5IEBAIGluZnJ1 bjogbm90IHN3aXRjaGluZyBiYWNrIHRvIHN0ZXBwZWQgdGgKK0BAIC00OTU3LDE0ICs0OTY1LDE5 IEBAIHByb2Nlc3NfZXZlbnRfc3RvcF90ZXN0OgogIAogIC8qIElzIHRocmVhZCBUUCBpbiB0aGUg bWlkZGxlIG9mIHNpbmdsZS1zdGVwcGluZz8gICovCiAgCkBAIC0xNzYsMTEgKzE3NiwxMSBAQCBJ bmRleDogZ2RiLTcuMi41MC4yMDEwMTIzMS9nZGIvaW5mcnVuLmMKICB9CiAgCiAgLyogUmV0dXJu cyB0cnVlIGlmIGFueSB0aHJlYWQgKmJ1dCogdGhlIG9uZSBwYXNzZWQgaW4gImRhdGEiIGlzIGlu IHRoZQotSW5kZXg6IGdkYi03LjIuNTAuMjAxMDEyMzEvZ2RiL2xpbnV4LW5hdC5jCitJbmRleDog Z2RiLTcuMi41MC4yMDExMDExNy9nZGIvbGludXgtbmF0LmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny4yLjUwLjIwMTAxMjMxLm9yaWcvZ2RiL2xpbnV4LW5hdC5jCTIwMTEtMDEtMDEgMDE6MjU6MTYu MDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMi41MC4yMDEwMTIzMS9nZGIvbGludXgtbmF0LmMJ MjAxMS0wMS0wMSAwMToyNToxNi4wMDAwMDAwMDAgKzAxMDAKLUBAIC0yOTA4LDcgKzI5MDgsMTAg QEAgY291bnRfZXZlbnRzX2NhbGxiYWNrIChzdHJ1Y3QgbHdwX2luZm8gKgorLS0tIGdkYi03LjIu NTAuMjAxMTAxMTcub3JpZy9nZGIvbGludXgtbmF0LmMJMjAxMS0wMS0xNyAxNTo0NzozNy4wMDAw MDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi9saW51eC1uYXQuYwkyMDEx LTAxLTE3IDE1OjQ4OjM5LjAwMDAwMDAwMCArMDEwMAorQEAgLTI5MjgsNyArMjkyOCwxMCBAQCBj b3VudF9ldmVudHNfY2FsbGJhY2sgKHN0cnVjdCBsd3BfaW5mbyAqCiAgc3RhdGljIGludAogIHNl bGVjdF9zaW5nbGVzdGVwX2x3cF9jYWxsYmFjayAoc3RydWN0IGx3cF9pbmZvICpscCwgdm9pZCAq ZGF0YSkKICB7CkBAIC0xOTIsMTAgKzE5MiwxMCBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDEwMTIz MS9nZGIvbGludXgtbmF0LmMKICAgICAgcmV0dXJuIDE7CiAgICBlbHNlCiAgICAgIHJldHVybiAw OwotSW5kZXg6IGdkYi03LjIuNTAuMjAxMDEyMzEvZ2RiL2xpbnV4LW5hdC5oCitJbmRleDogZ2Ri LTcuMi41MC4yMDExMDExNy9nZGIvbGludXgtbmF0LmgKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4y LjUwLjIwMTAxMjMxLm9yaWcvZ2RiL2xpbnV4LW5hdC5oCTIwMTEtMDEtMDEgMDE6MjU6MTYuMDAw MDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMi41MC4yMDEwMTIzMS9nZGIvbGludXgtbmF0LmgJMjAx MS0wMS0wMSAwMToyNToxNi4wMDAwMDAwMDAgKzAxMDAKKy0tLSBnZGItNy4yLjUwLjIwMTEwMTE3 Lm9yaWcvZ2RiL2xpbnV4LW5hdC5oCTIwMTEtMDEtMTcgMTU6NDc6MzcuMDAwMDAwMDAwICswMTAw CisrKysgZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvbGludXgtbmF0LmgJMjAxMS0wMS0xNyAxNTo0 ODozOS4wMDAwMDAwMDAgKzAxMDAKIEBAIC01NSw4ICs1NSw4IEBAIHN0cnVjdCBsd3BfaW5mbwog ICAgLyogSWYgbm9uLXplcm8sIGEgcGVuZGluZyB3YWl0IHN0YXR1cy4gICovCiAgICBpbnQgc3Rh dHVzOwoKZGlmZiAtLWdpdCBhL2dkYi02LjgtcXVpdC1uZXZlci1hYm9ydHMucGF0Y2ggYi9nZGIt Ni44LXF1aXQtbmV2ZXItYWJvcnRzLnBhdGNoCmluZGV4IDc5YTJmNDcuLmQ3MTU1N2YgMTAwNjQ0 Ci0tLSBhL2dkYi02LjgtcXVpdC1uZXZlci1hYm9ydHMucGF0Y2gKKysrIGIvZ2RiLTYuOC1xdWl0 LW5ldmVyLWFib3J0cy5wYXRjaApAQCAtNSwxMCArNSwxMCBAQCBTb21lIG9mIHRoZSB0aHJlYWRz IG1heSBub3QgYmUgcHJvcGVybHkgUFRSQUNFX0RFVEFDSGVkIHdoaWNoIGh1cnRzIGlmIHRoZXkK IHNob3VsZCBoYXZlIGJlZW4gZGV0YWNoZWQgd2l0aCBTSUdTVE9QIChhcyB0aGV5IGFyZSBhY2Np ZGVudGFsbHkgbGVmdCBydW5uaW5nCiBvbiB0aGUgZGVidWdnZXIgdGVybWluYXRpb24pLgogCi1J bmRleDogZ2RiLTcuMi41MC4yMDEwMTIzMS9nZGIvZGVmcy5oCitJbmRleDogZ2RiLTcuMi41MC4y MDExMDExNy9nZGIvZGVmcy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMi41MC4yMDEwMTIzMS5v cmlnL2dkYi9kZWZzLmgJMjAxMS0wMS0wMSAwMTowMDoyOS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBn ZGItNy4yLjUwLjIwMTAxMjMxL2dkYi9kZWZzLmgJMjAxMS0wMS0wMSAwMTowOToxNy4wMDAwMDAw MDAgKzAxMDAKKy0tLSBnZGItNy4yLjUwLjIwMTEwMTE3Lm9yaWcvZ2RiL2RlZnMuaAkyMDExLTAx LTE3IDE1OjQ3OjM3LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuNTAuMjAxMTAxMTcvZ2Ri L2RlZnMuaAkyMDExLTAxLTE3IDE1OjUzOjA1LjAwMDAwMDAwMCArMDEwMAogQEAgLTE2NSw2ICsx NjUsNyBAQCBleHRlcm4gY2hhciAqcHl0aG9uX2xpYmRpcjsKICBleHRlcm4gY2hhciAqZGVidWdf ZmlsZV9kaXJlY3Rvcnk7CiAgCkBAIC0xOCw3ICsxOCw3IEBAIEluZGV4OiBnZGItNy4yLjUwLjIw MTAxMjMxL2dkYi9kZWZzLmgKICBleHRlcm4gaW50IHNldmVuYml0X3N0cmluZ3M7CiAgCiBAQCAt MTc4LDcgKzE3OSw3IEBAIGV4dGVybiB2b2lkIHF1aXQgKHZvaWQpOwotICAgIG5lZWRlZC4gKi8K KyAgICBuZWVkZWQuICAqLwogIAogICNkZWZpbmUgUVVJVCB7IFwKIC0gIGlmIChxdWl0X2ZsYWcp IHF1aXQgKCk7IFwKQEAgLTI2LDEwICsyNiwxMCBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDEwMTIz MS9nZGIvZGVmcy5oCiAgICBpZiAoZGVwcmVjYXRlZF9pbnRlcmFjdGl2ZV9ob29rKSBkZXByZWNh dGVkX2ludGVyYWN0aXZlX2hvb2sgKCk7IFwKICB9CiAgCi1JbmRleDogZ2RiLTcuMi41MC4yMDEw MTIzMS9nZGIvZXZlbnQtdG9wLmMKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi9ldmVu dC10b3AuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjIuNTAuMjAxMDEyMzEub3JpZy9nZGIvZXZl bnQtdG9wLmMJMjAxMS0wMS0wMSAwMTowNzozNy4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4y LjUwLjIwMTAxMjMxL2dkYi9ldmVudC10b3AuYwkyMDExLTAxLTAxIDAxOjA5OjM5LjAwMDAwMDAw MCArMDEwMAorLS0tIGdkYi03LjIuNTAuMjAxMTAxMTcub3JpZy9nZGIvZXZlbnQtdG9wLmMJMjAx MS0wMS0xNyAxNTo1MjozOS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTE3 L2dkYi9ldmVudC10b3AuYwkyMDExLTAxLTE3IDE1OjUyOjQ5LjAwMDAwMDAwMCArMDEwMAogQEAg LTkwNCw3ICs5MDQsNyBAQCBhc3luY19yZXF1ZXN0X3F1aXQgKGdkYl9jbGllbnRfZGF0YSBhcmcp CiAgICAgICBpcyBubyByZWFzb24gdG8gY2FsbCBxdWl0IGFnYWluIGhlcmUsIHVubGVzcyBpbW1l ZGlhdGVfcXVpdCBpcwogICAgICAgc2V0LiAgKi8KQEAgLTM5LDExICszOSwxMSBAQCBJbmRleDog Z2RiLTcuMi41MC4yMDEwMTIzMS9nZGIvZXZlbnQtdG9wLmMKICAgICAgcXVpdCAoKTsKICB9CiAg Ci1JbmRleDogZ2RiLTcuMi41MC4yMDEwMTIzMS9nZGIvdG9wLmMKK0luZGV4OiBnZGItNy4yLjUw LjIwMTEwMTE3L2dkYi90b3AuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjIuNTAuMjAxMDEyMzEu b3JpZy9nZGIvdG9wLmMJMjAxMS0wMS0wMSAwMTowMDoyOS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBn ZGItNy4yLjUwLjIwMTAxMjMxL2dkYi90b3AuYwkyMDExLTAxLTAxIDAxOjA5OjE3LjAwMDAwMDAw MCArMDEwMAotQEAgLTEyNTQsNyArMTI1NCw5IEBAIHF1aXRfZm9yY2UgKGNoYXIgKmFyZ3MsIGlu dCBmcm9tX3R0eSkKKy0tLSBnZGItNy4yLjUwLjIwMTEwMTE3Lm9yaWcvZ2RiL3RvcC5jCTIwMTEt MDEtMTcgMTU6NDc6MzcuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi41MC4yMDExMDExNy9n ZGIvdG9wLmMJMjAxMS0wMS0xNyAxNTo1Mjo0OS4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xMjU3LDcg KzEyNTcsOSBAQCBxdWl0X2ZvcmNlIChjaGFyICphcmdzLCBpbnQgZnJvbV90dHkpCiAgICBxdC5h cmdzID0gYXJnczsKICAgIHF0LmZyb21fdHR5ID0gZnJvbV90dHk7CiAgCkBAIC01NCwxMCArNTQs MTAgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMDEyMzEvZ2RiL3RvcC5jCiAgICBjYXRjaF9lcnJv cnMgKHF1aXRfdGFyZ2V0LCAmcXQsCiAgCSAgICAgICAgIlF1aXR0aW5nOiAiLCBSRVRVUk5fTUFT S19BTEwpOwogIAotSW5kZXg6IGdkYi03LjIuNTAuMjAxMDEyMzEvZ2RiL3V0aWxzLmMKK0luZGV4 OiBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi91dGlscy5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu Mi41MC4yMDEwMTIzMS5vcmlnL2dkYi91dGlscy5jCTIwMTEtMDEtMDEgMDE6MDA6MjkuMDAwMDAw MDAwICswMTAwCi0rKysgZ2RiLTcuMi41MC4yMDEwMTIzMS9nZGIvdXRpbHMuYwkyMDExLTAxLTAx IDAxOjA5OjE3LjAwMDAwMDAwMCArMDEwMAorLS0tIGdkYi03LjIuNTAuMjAxMTAxMTcub3JpZy9n ZGIvdXRpbHMuYwkyMDExLTAxLTE3IDE1OjQ3OjM3LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03 LjIuNTAuMjAxMTAxMTcvZ2RiL3V0aWxzLmMJMjAxMS0wMS0xNyAxNTo1Mjo0OS4wMDAwMDAwMDAg KzAxMDAKIEBAIC0xMjEsNiArMTIxLDExIEBAIGludCBqb2JfY29udHJvbDsKICAKICBpbnQgcXVp dF9mbGFnOwoKZGlmZiAtLWdpdCBhL2dkYi1hcmNoZXItcGllLWFkZG9ucy5wYXRjaCBiL2dkYi1h cmNoZXItcGllLWFkZG9ucy5wYXRjaAppbmRleCA2N2NhMzRhLi4wYTQ3ODY2IDEwMDY0NAotLS0g YS9nZGItYXJjaGVyLXBpZS1hZGRvbnMucGF0Y2gKKysrIGIvZ2RiLWFyY2hlci1waWUtYWRkb25z LnBhdGNoCkBAIC0xLDggKzEsOCBAQAotSW5kZXg6IGdkYi03LjIuNTAuMjAxMDExMTYvZ2RiL2R3 YXJmMnJlYWQuYworSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL2R3YXJmMnJlYWQuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjIuNTAuMjAxMDExMTYub3JpZy9nZGIvZHdhcmYycmVhZC5j CTIwMTAtMTEtMTYgMDg6MjU6MjEuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMi41MC4yMDEw MTExNi9nZGIvZHdhcmYycmVhZC5jCTIwMTAtMTEtMTYgMDg6MjY6MzUuMDAwMDAwMDAwICswMTAw Ci1AQCAtNzMyNSw3ICs3MzI1LDEyIEBAIHJlYWRfY29tbW9uX2Jsb2NrIChzdHJ1Y3QgZGllX2lu Zm8gKmRpZSwKKy0tLSBnZGItNy4yLjUwLjIwMTEwMTE3Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwky MDExLTAxLTE3IDE1OjU2OjIzLjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuNTAuMjAxMTAx MTcvZ2RiL2R3YXJmMnJlYWQuYwkyMDExLTAxLTE3IDE2OjAwOjE0LjAwMDAwMDAwMCArMDEwMAor QEAgLTc0NzUsNyArNzQ3NSwxMiBAQCByZWFkX2NvbW1vbl9ibG9jayAoc3RydWN0IGRpZV9pbmZv ICpkaWUsCiAgewogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKICAgIHN0cnVjdCBzeW1ib2wg KnN5bTsKQEAgLTE2LDcgKzE2LDcgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMDExMTYvZ2RiL2R3 YXJmMnJlYWQuYwogIAogICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2xvY2F0aW9u LCBjdSk7CiAgICBpZiAoYXR0cikKLUBAIC03MzM0LDYgKzczMzksNyBAQCByZWFkX2NvbW1vbl9i bG9jayAoc3RydWN0IGRpZV9pbmZvICpkaWUsCitAQCAtNzQ4NCw2ICs3NDg5LDcgQEAgcmVhZF9j b21tb25fYmxvY2sgKHN0cnVjdCBkaWVfaW5mbyAqZGllLAogICAgICAgIGlmIChhdHRyX2Zvcm1f aXNfYmxvY2sgKGF0dHIpKQogICAgICAgICAgewogICAgICAgICAgICBiYXNlID0gZGVjb2RlX2xv Y2Rlc2MgKERXX0JMT0NLIChhdHRyKSwgY3UpOwpAQCAtMjQsNyArMjQsNyBAQCBJbmRleDogZ2Ri LTcuMi41MC4yMDEwMTExNi9nZGIvZHdhcmYycmVhZC5jCiAgICAgICAgICB9CiAgICAgICAgZWxz ZSBpZiAoYXR0cl9mb3JtX2lzX3NlY3Rpb25fb2Zmc2V0IChhdHRyKSkKICAgICAgICAgIHsKLUBA IC03Mzk1LDEyICs3NDAxLDE1IEBAIHJlYWRfY29tbW9uX2Jsb2NrIChzdHJ1Y3QgZGllX2luZm8g KmRpZSwKK0BAIC03NTQ1LDEyICs3NTUxLDE1IEBAIHJlYWRfY29tbW9uX2Jsb2NrIChzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwKICAJICAgICAgZWxzZQogIAkJZHdhcmYyX2NvbXBsZXhfbG9jYXRpb25f ZXhwcl9jb21wbGFpbnQgKCk7CiAgCkBAIC00Miw3ICs0Miw3IEBAIEluZGV4OiBnZGItNy4yLjUw LjIwMTAxMTE2L2dkYi9kd2FyZjJyZWFkLmMKICAJICBlbHNlCiAgCSAgICBTRVRfRklFTERfUEhZ U05BTUUgKCpmaWVsZCwgU1lNQk9MX0xJTktBR0VfTkFNRSAoc3ltKSk7CiAgCSAgRklFTERfVFlQ RSAoKmZpZWxkKSA9IFNZTUJPTF9UWVBFIChzeW0pOwotQEAgLTc0MTQsNyArNzQyMyw3IEBAIHJl YWRfY29tbW9uX2Jsb2NrIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwKK0BAIC03NTY0LDcgKzc1NzMs NyBAQCByZWFkX2NvbW1vbl9ibG9jayAoc3RydWN0IGRpZV9pbmZvICpkaWUsCiAgCiAgICAgICAg c3ltID0gbmV3X3N5bWJvbCAoZGllLCB0eXBlLCBjdSk7CiAgICAgICAgLyogU1lNQk9MX1ZBTFVF X0FERFJFU1MgbmV2ZXIgZ2V0cyB1c2VkIGFzIGFsbCBpdHMgZmllbGRzIGFyZSBzdGF0aWMuICAq LwpAQCAtNTEsMTEgKzUxLDExIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi9kd2Fy ZjJyZWFkLmMKICAKICAgICAgICBzZXRfZGllX3R5cGUgKGRpZSwgdHlwZSwgY3UpOwogICAgICB9 Ci1JbmRleDogZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIvZ2RidHlwZXMuaAorSW5kZXg6IGdkYi03 LjIuNTAuMjAxMTAxMTcvZ2RiL2dkYnR5cGVzLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4yLjUw LjIwMTAxMTE2Lm9yaWcvZ2RiL2dkYnR5cGVzLmgJMjAxMC0xMS0xNiAwODowMTozMy4wMDAwMDAw MDAgKzAxMDAKLSsrKyBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi9nZGJ0eXBlcy5oCTIwMTAtMTEt MTYgMDg6MjY6MzUuMDAwMDAwMDAwICswMTAwCi1AQCAtMzk1LDYgKzM5NSw3IEBAIGVudW0gdHlw ZV9pbnN0YW5jZV9mbGFnX3ZhbHVlCistLS0gZ2RiLTcuMi41MC4yMDExMDExNy5vcmlnL2dkYi9n ZGJ0eXBlcy5oCTIwMTEtMDEtMTcgMTU6NTE6MDMuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcu Mi41MC4yMDExMDExNy9nZGIvZ2RidHlwZXMuaAkyMDExLTAxLTE3IDE2OjAwOjMyLjAwMDAwMDAw MCArMDEwMAorQEAgLTM5NCw2ICszOTQsNyBAQCBlbnVtIHR5cGVfaW5zdGFuY2VfZmxhZ192YWx1 ZQogIGVudW0gZmllbGRfbG9jX2tpbmQKICAgIHsKICAgICAgRklFTERfTE9DX0tJTkRfQklUUE9T LAkvKiBiaXRwb3MgKi8KQEAgLTY1LDEzICs2NSwxMyBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDEw MTExNi9nZGIvZ2RidHlwZXMuaAogICAgfTsKIEBAIC01NzYsNiArNTc3LDcgQEAgc3RydWN0IG1h aW5fdHlwZQogIAkgICBpcyB0aGUgbG9jYXRpb24gKGluIHRoZSB0YXJnZXQpIG9mIHRoZSBzdGF0 aWMgZmllbGQuCi0gCSAgIE90aGVyd2lzZSwgcGh5c25hbWUgaXMgdGhlIG1hbmdsZWQgbGFiZWwg b2YgdGhlIHN0YXRpYyBmaWVsZC4gKi8KKyAJICAgT3RoZXJ3aXNlLCBwaHlzbmFtZSBpcyB0aGUg bWFuZ2xlZCBsYWJlbCBvZiB0aGUgc3RhdGljIGZpZWxkLiAgKi8KICAKICsJLyogVGhpcyBhZGRy ZXNzIGlzIHVucmVsb2NhdGVkIGJ5IHRoZSBvYmpmaWxlJ3MgQU5PRkZTRVQuICAqLwogIAlDT1JF X0FERFIgcGh5c2FkZHI7CiAgCWNoYXIgKnBoeXNuYW1lOwogICAgICAgIH0KLUBAIC0xMTAxLDYg KzExMDMsNyBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1CitAQCAt MTEwMiw2ICsxMTA0LDcgQEAgZXh0ZXJuIHZvaWQgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3Ry dQogICNkZWZpbmUgRklFTERfTE9DX0tJTkQodGhpc2ZsZCkgKCh0aGlzZmxkKS5sb2Nfa2luZCkK ICAjZGVmaW5lIEZJRUxEX0JJVFBPUyh0aGlzZmxkKSAoKHRoaXNmbGQpLmxvYy5iaXRwb3MpCiAg I2RlZmluZSBGSUVMRF9TVEFUSUNfUEhZU05BTUUodGhpc2ZsZCkgKCh0aGlzZmxkKS5sb2MucGh5 c25hbWUpCkBAIC03OSw3ICs3OSw3IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi9n ZGJ0eXBlcy5oCiAgI2RlZmluZSBGSUVMRF9TVEFUSUNfUEhZU0FERFIodGhpc2ZsZCkgKCh0aGlz ZmxkKS5sb2MucGh5c2FkZHIpCiAgI2RlZmluZSBTRVRfRklFTERfQklUUE9TKHRoaXNmbGQsIGJp dHBvcykJCQlcCiAgICAoRklFTERfTE9DX0tJTkQgKHRoaXNmbGQpID0gRklFTERfTE9DX0tJTkRf QklUUE9TLAkJXAotQEAgLTExMDgsNiArMTExMSw3IEBAIGV4dGVybiB2b2lkIGFsbG9jYXRlX2du YXRfYXV4X3R5cGUgKHN0cnUKK0BAIC0xMTA5LDYgKzExMTIsNyBAQCBleHRlcm4gdm9pZCBhbGxv Y2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1CiAgI2RlZmluZSBTRVRfRklFTERfUEhZU05BTUUodGhp c2ZsZCwgbmFtZSkJCQlcCiAgICAoRklFTERfTE9DX0tJTkQgKHRoaXNmbGQpID0gRklFTERfTE9D X0tJTkRfUEhZU05BTUUsCQlcCiAgICAgRklFTERfU1RBVElDX1BIWVNOQU1FICh0aGlzZmxkKSA9 IChuYW1lKSkKQEAgLTg3LDcgKzg3LDcgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMDExMTYvZ2Ri L2dkYnR5cGVzLmgKICAjZGVmaW5lIFNFVF9GSUVMRF9QSFlTQUREUih0aGlzZmxkLCBhZGRyKQkJ CVwKICAgIChGSUVMRF9MT0NfS0lORCAodGhpc2ZsZCkgPSBGSUVMRF9MT0NfS0lORF9QSFlTQURE UiwJCVwKICAgICBGSUVMRF9TVEFUSUNfUEhZU0FERFIgKHRoaXNmbGQpID0gKGFkZHIpKQotQEAg LTExMjAsNiArMTEyNCw3IEBAIGV4dGVybiB2b2lkIGFsbG9jYXRlX2duYXRfYXV4X3R5cGUgKHN0 cnUKK0BAIC0xMTIxLDYgKzExMjUsNyBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90 eXBlIChzdHJ1CiAgI2RlZmluZSBUWVBFX0ZJRUxEX0xPQ19LSU5EKHRoaXN0eXBlLCBuKSBGSUVM RF9MT0NfS0lORCAoVFlQRV9GSUVMRCAodGhpc3R5cGUsIG4pKQogICNkZWZpbmUgVFlQRV9GSUVM RF9CSVRQT1ModGhpc3R5cGUsIG4pIEZJRUxEX0JJVFBPUyAoVFlQRV9GSUVMRCAodGhpc3R5cGUs IG4pKQogICNkZWZpbmUgVFlQRV9GSUVMRF9TVEFUSUNfUEhZU05BTUUodGhpc3R5cGUsIG4pIEZJ RUxEX1NUQVRJQ19QSFlTTkFNRSAoVFlQRV9GSUVMRCAodGhpc3R5cGUsIG4pKQpAQCAtOTUsMjEg Kzk1LDIxIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi9nZGJ0eXBlcy5oCiAgI2Rl ZmluZSBUWVBFX0ZJRUxEX1NUQVRJQ19QSFlTQUREUih0aGlzdHlwZSwgbikgRklFTERfU1RBVElD X1BIWVNBRERSIChUWVBFX0ZJRUxEICh0aGlzdHlwZSwgbikpCiAgI2RlZmluZSBUWVBFX0ZJRUxE X0FSVElGSUNJQUwodGhpc3R5cGUsIG4pIEZJRUxEX0FSVElGSUNJQUwoVFlQRV9GSUVMRCh0aGlz dHlwZSxuKSkKICAjZGVmaW5lIFRZUEVfRklFTERfQklUU0laRSh0aGlzdHlwZSwgbikgRklFTERf QklUU0laRShUWVBFX0ZJRUxEKHRoaXN0eXBlLG4pKQotSW5kZXg6IGdkYi03LjIuNTAuMjAxMDEx MTYvZ2RiL2p2LWxhbmcuYworSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL2p2LWxhbmcu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjIuNTAuMjAxMDExMTYub3JpZy9nZGIvanYtbGFuZy5j CTIwMTAtMDgtMDkgMjE6NDI6NDcuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuMi41MC4yMDEw MTExNi9nZGIvanYtbGFuZy5jCTIwMTAtMTEtMTYgMDg6MjY6MzUuMDAwMDAwMDAwICswMTAwCi1A QCAtNDA5LDcgKzQwOSw4IEBAIGphdmFfbGlua19jbGFzc190eXBlIChzdHJ1Y3QgZ2RiYXJjaCAq Z2QKKy0tLSBnZGItNy4yLjUwLjIwMTEwMTE3Lm9yaWcvZ2RiL2p2LWxhbmcuYwkyMDExLTAxLTA5 IDA0OjA4OjU3LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL2p2 LWxhbmcuYwkyMDExLTAxLTE3IDE2OjAwOjU5LjAwMDAwMDAwMCArMDEwMAorQEAgLTQxNCw3ICs0 MTQsOCBAQCBqYXZhX2xpbmtfY2xhc3NfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkCiAgCiAgICBm aWVsZHMgPSBOVUxMOwotICAgbmZpZWxkcy0tOwkJCS8qIEZpcnN0IHNldCB1cCBkdW1teSAiY2xh c3MiIGZpZWxkLiAqLworICAgbmZpZWxkcy0tOwkJCS8qIEZpcnN0IHNldCB1cCBkdW1teSAiY2xh c3MiIGZpZWxkLiAgKi8KIC0gIFNFVF9GSUVMRF9QSFlTQUREUiAoVFlQRV9GSUVMRCAodHlwZSwg bmZpZWxkcyksIHZhbHVlX2FkZHJlc3MgKGNsYXMpKTsKICsgIFNFVF9GSUVMRF9QSFlTQUREUiAo VFlQRV9GSUVMRCAodHlwZSwgbmZpZWxkcyksIHZhbHVlX2FkZHJlc3MgKGNsYXMpCiArICAgIC0g KFRZUEVfT0JKRklMRSAodHlwZSkgPT0gTlVMTCA/IDAgOiBBTk9GRlNFVCAoVFlQRV9PQkpGSUxF ICh0eXBlKS0+c2VjdGlvbl9vZmZzZXRzLCBTRUNUX09GRl9URVhUIChUWVBFX09CSkZJTEUgKHR5 cGUpKSkpKTsKICAgIFRZUEVfRklFTERfTkFNRSAodHlwZSwgbmZpZWxkcykgPSAiY2xhc3MiOwog ICAgVFlQRV9GSUVMRF9UWVBFICh0eXBlLCBuZmllbGRzKSA9IHZhbHVlX3R5cGUgKGNsYXMpOwog ICAgU0VUX1RZUEVfRklFTERfUFJJVkFURSAodHlwZSwgbmZpZWxkcyk7Ci1AQCAtNDU3LDcgKzQ1 OCw4IEBAIGphdmFfbGlua19jbGFzc190eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKK0BAIC00NjIs NyArNDYzLDggQEAgamF2YV9saW5rX2NsYXNzX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZAogIAkg IFNFVF9UWVBFX0ZJRUxEX1BST1RFQ1RFRCAodHlwZSwgaSk7CiAgCX0KICAgICAgICBpZiAoYWNj ZmxhZ3MgJiAweDAwMDgpCS8qIEFDQ19TVEFUSUMgKi8KQEAgLTExOSwxMSArMTE5LDExIEBAIElu ZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi9qdi1sYW5nLmMKICAgICAgICBlbHNlCiAgCVRZ UEVfRklFTERfQklUUE9TICh0eXBlLCBpKSA9IDggKiBib2Zmc2V0OwogICAgICAgIGlmIChhY2Nm bGFncyAmIDB4ODAwMCkJLyogRklFTERfVU5SRVNPTFZFRF9GTEFHICovCi1JbmRleDogZ2RiLTcu Mi41MC4yMDEwMTExNi9nZGIvdmFsdWUuYworSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMTcvZ2Ri L3ZhbHVlLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4yLjUwLjIwMTAxMTE2Lm9yaWcvZ2RiL3Zh bHVlLmMJMjAxMC0xMS0xNiAwNzo1NDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4yLjUw LjIwMTAxMTE2L2dkYi92YWx1ZS5jCTIwMTAtMTEtMTYgMDg6MjY6MzUuMDAwMDAwMDAwICswMTAw Ci1AQCAtMTk2NSw3ICsxOTY1LDggQEAgdmFsdWVfc3RhdGljX2ZpZWxkIChzdHJ1Y3QgdHlwZSAq dHlwZSwgaQorLS0tIGdkYi03LjIuNTAuMjAxMTAxMTcub3JpZy9nZGIvdmFsdWUuYwkyMDExLTAx LTE3IDE1OjQ3OjM3LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuNTAuMjAxMTAxMTcvZ2Ri L3ZhbHVlLmMJMjAxMS0wMS0xNyAxNjowMDoxNC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xOTk3LDcg KzE5OTcsOCBAQCB2YWx1ZV9zdGF0aWNfZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLCBpCiAgICAg IHsKICAgICAgY2FzZSBGSUVMRF9MT0NfS0lORF9QSFlTQUREUjoKICAgICAgICByZXR2YWwgPSB2 YWx1ZV9hdF9sYXp5IChUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGZpZWxkbm8pLAoKZGlmZiAtLWdp dCBhL2dkYi1hcmNoZXIucGF0Y2ggYi9nZGItYXJjaGVyLnBhdGNoCmluZGV4IDYzMjA0ZDQuLmNh NmRlYjcgMTAwNjQ0Ci0tLSBhL2dkYi1hcmNoZXIucGF0Y2gKKysrIGIvZ2RiLWFyY2hlci5wYXRj aApAQCAtMiw3ICsyLDcgQEAgaHR0cDovL3NvdXJjZXdhcmUub3JnL2dkYi93aWtpL1Byb2plY3RB cmNoZXIKIGh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9nZGIvd2lraS9BcmNoZXJCcmFuY2hNYW5hZ2Vt ZW50CiAKIEdJVCBzbmFwc2hvdDoKLWNvbW1pdCBmMDZhY2ZkZTRjYzZkZjIxZDRmMzQ1NDdlNWRl MWEwMTcwZTdiMjYzCitjb21taXQgY2U4OGZlMzY1MzIyYjBmNzQ3OWM0M2VlZGU2ZDNhMGQzMzdl Yjc4NgogCiBicmFuY2ggYGFyY2hlcicgLSB0aGUgbWVyZ2Ugb2YgYnJhbmNoZXM6CiBhcmNoZXIt amFua3JhdG9jaHZpbC12bGEKQEAgLTE0LDE5ICsxNCwxOSBAQCBhcmNoZXItdHJvbWV5LXB5dGhv bgogCiAKIGRpZmYgLS1naXQgYS9nZGIvTWFrZWZpbGUuaW4gYi9nZGIvTWFrZWZpbGUuaW4KLWlu ZGV4IDk0NTlkZTQuLjk1YzNiNTcgMTAwNjQ0CitpbmRleCAyMjZmYWY2Li4wM2FhYTJjIDEwMDY0 NAogLS0tIGEvZ2RiL01ha2VmaWxlLmluCiArKysgYi9nZGIvTWFrZWZpbGUuaW4KLUBAIC03ODIs NyArNzgyLDggQEAgY29uZmlnL3JzNjAwMC9ubS1yczYwMDAuaCB0b3AuaCBic2Qta3ZtLmggZ2Ri LXN0YWJzLmggcmVnZ3JvdXBzLmggXAotIGFubm90YXRlLmggc2ltLXJlZ25vLmggZGljdGlvbmFy eS5oIGRmcC5oIG1haW4uaCBmcmFtZS11bndpbmQuaAlcCitAQCAtNzgzLDcgKzc4Myw4IEBAIGFu bm90YXRlLmggc2ltLXJlZ25vLmggZGljdGlvbmFyeS5oIGRmcC5oIG1haW4uaCBmcmFtZS11bndp bmQuaAlcCiAgcmVtb3RlLWZpbGVpby5oIGkzODYtbGludXgtdGRlcC5oIHZheC10ZGVwLmggb2Jq Yy1sYW5nLmggXAogIHNlbnRpbmVsLWZyYW1lLmggYmNhY2hlLmggc3ltZmlsZS5oIHdpbmRvd3Mt dGRlcC5oIGxpbnV4LXRkZXAuaCBcCi0tZ2RiX3VzbGVlcC5oIGppdC5oIHhtbC1zeXNjYWxsLmgg YWRhLW9wZXJhdG9yLmluYyBtaWNyb2JsYXplLXRkZXAuaCBcCi0rZ2RiX3VzbGVlcC5oIGppdC5o IHB5dGhvbi9weXRob24uaCBweXRob24vcHl0aG9uLWludGVybmFsLmggXAotK3htbC1zeXNjYWxs LmggYWRhLW9wZXJhdG9yLmluYyBtaWNyb2JsYXplLXRkZXAuaCBcCi0gcHN5bXRhYi5oIHBzeW1w cml2LmggcHJvZ3NwYWNlLmggYmZpbi10ZGVwLmgKKyBnZGJfdXNsZWVwLmggaml0LmggeG1sLXN5 c2NhbGwuaCBhZGEtb3BlcmF0b3IuaW5jIG1pY3JvYmxhemUtdGRlcC5oIFwKKy1wc3ltdGFiLmgg cHN5bXByaXYuaCBwcm9nc3BhY2UuaCBiZmluLXRkZXAuaCBpYTY0LWhwdXgtdGRlcC5oCisrcHN5 bXRhYi5oIHBzeW1wcml2LmggcHJvZ3NwYWNlLmggYmZpbi10ZGVwLmggaWE2NC1ocHV4LXRkZXAu aCBcCisrcHl0aG9uL3B5dGhvbi5oIHB5dGhvbi9weXRob24taW50ZXJuYWwuaAogIAogICMgSGVh ZGVyIGZpbGVzIHRoYXQgYWxyZWFkeSBoYXZlIHNyY2RpciBpbiB0aGVtLCBvciB3aGljaCBhcmUg aW4gb2JqZGlyLgorIAogQEAgLTEyODksNiArMTI5MCwxMiBAQCBzdGFtcC1oOiAkKHNyY2Rpcikv Y29uZmlnLmluIGNvbmZpZy5zdGF0dXMKICAJICBDT05GSUdfTElOS1M9IFwKICAJICAkKFNIRUxM KSBjb25maWcuc3RhdHVzCkBAIC00MSwxMCArNDEsMTAgQEAgaW5kZXggOTQ1OWRlNC4uOTVjM2I1 NyAxMDA2NDQKICAJJChTSEVMTCkgY29uZmlnLnN0YXR1cyAtLXJlY2hlY2sKICAKIGRpZmYgLS1n aXQgYS9nZGIvYWRhLWxhbmcuYyBiL2dkYi9hZGEtbGFuZy5jCi1pbmRleCAzZWZmZjJlLi45OTA5 N2JmIDEwMDY0NAoraW5kZXggODkwZTA5MS4uZDFlMWY4ZiAxMDA2NDQKIC0tLSBhL2dkYi9hZGEt bGFuZy5jCiArKysgYi9nZGIvYWRhLWxhbmcuYwotQEAgLTExMzU2LDYgKzExMzU2LDcgQEAgYWRh X29wZXJhdG9yX2xlbmd0aCAoY29uc3Qgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50IHBjLCBp bnQgKm9wbGVucCwKK0BAIC0xMTM3Miw2ICsxMTM3Miw3IEBAIGFkYV9vcGVyYXRvcl9sZW5ndGgg KGNvbnN0IHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCBwYywgaW50ICpvcGxlbnAsCiAgCiAg c3RhdGljIGludAogIGFkYV9vcGVyYXRvcl9jaGVjayAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwg aW50IHBvcywKQEAgLTUyLDcgKzUyLDcgQEAgaW5kZXggM2VmZmYyZS4uOTkwOTdiZiAxMDA2NDQK ICAJCSAgICBpbnQgKCpvYmpmaWxlX2Z1bmMpIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgdm9p ZCAqZGF0YSksCiAgCQkgICAgdm9pZCAqZGF0YSkKICB7Ci1AQCAtMTEzNzAsMTIgKzExMzcxLDE1 IEBAIGFkYV9vcGVyYXRvcl9jaGVjayAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50IHBvcywK K0BAIC0xMTM4NiwxMiArMTEzODcsMTUgQEAgYWRhX29wZXJhdG9yX2NoZWNrIChzdHJ1Y3QgZXhw cmVzc2lvbiAqZXhwLCBpbnQgcG9zLAogIAlicmVhazsKICAKICAgICAgICBkZWZhdWx0OgpAQCAt NzEsNyArNzEsNyBAQCBpbmRleCAzZWZmZjJlLi45OTA5N2JmIDEwMDY0NAogICAgICByZXR1cm4g MTsKICAKIGRpZmYgLS1naXQgYS9nZGIvYW1kNjQtbGludXgtbmF0LmMgYi9nZGIvYW1kNjQtbGlu dXgtbmF0LmMKLWluZGV4IDg3NzA3MmMuLjIxNTRiNzMgMTAwNjQ0CitpbmRleCBhODY5Zjg1Li5j NTlkYWEwIDEwMDY0NAogLS0tIGEvZ2RiL2FtZDY0LWxpbnV4LW5hdC5jCiArKysgYi9nZGIvYW1k NjQtbGludXgtbmF0LmMKIEBAIC0yNjUsMTggKzI2NSwxMSBAQCBhbWQ2NF9saW51eF9zdG9yZV9p bmZlcmlvcl9yZWdpc3RlcnMgKHN0cnVjdCB0YXJnZXRfb3BzICpvcHMsCkBAIC0zOTIsNyArMzky LDcgQEAgaW5kZXggYjlhYWY1NC4uZTFmMzI0MiAxMDA2NDQKICAKICAvKiBSZXR1cm4gdGhlIGlu bmVybW9zdCBzdGFjayBmcmFtZSBleGVjdXRpbmcgaW5zaWRlIG9mIEJMT0NLLCBvciBOVUxMCiBk aWZmIC0tZ2l0IGEvZ2RiL2JyZWFrcG9pbnQuYyBiL2dkYi9icmVha3BvaW50LmMKLWluZGV4IDk3 ZWZjMGEuLmY2MzNmNTcgMTAwNjQ0CitpbmRleCA4ZDA2OTJiLi4zNzM4MzBmIDEwMDY0NAogLS0t IGEvZ2RiL2JyZWFrcG9pbnQuYwogKysrIGIvZ2RiL2JyZWFrcG9pbnQuYwogQEAgLTYyLDYgKzYy LDcgQEAKQEAgLTQyNCw3ICs0MjQsNyBAQCBpbmRleCA5N2VmYzBhLi5mNjMzZjU3IDEwMDY0NAog IC8qIEFzc3VtaW5nIHdlJ3JlIGNyZWF0aW5nIGEgc3RhdGljIHRyYWNlcG9pbnQsIGRvZXMgUyBs b29rIGxpa2UgYQogICAgIHN0YXRpYyB0cmFjZXBvaW50IG1hcmtlciBzcGVjICgiLW0gTUFSS0VS X0lEIik/ICAqLwogICNkZWZpbmUgaXNfbWFya2VyX3NwZWMocykJCQkJCQlcCi1AQCAtMTI3OCw2 ICsxMjg2LDIyIEBAIHdhdGNocG9pbnRfaW5fdGhyZWFkX3Njb3BlIChzdHJ1Y3QgYnJlYWtwb2lu dCAqYikKK0BAIC0xMjY5LDYgKzEyNzcsMjIgQEAgd2F0Y2hwb2ludF9pbl90aHJlYWRfc2NvcGUg KHN0cnVjdCBicmVha3BvaW50ICpiKQogIAkgICAgICAmJiAhaXNfZXhlY3V0aW5nIChpbmZlcmlv cl9wdGlkKSkpOwogIH0KICAKQEAgLTQ0Nyw3ICs0NDcsNyBAQCBpbmRleCA5N2VmYzBhLi5mNjMz ZjU3IDEwMDY0NAogIC8qIEFzc3VtaW5nIHRoYXQgQiBpcyBhIHdhdGNocG9pbnQ6CiAgICAgLSBS ZXBhcnNlIHdhdGNocG9pbnQgZXhwcmVzc2lvbiwgaWYgUkVQQVJTRSBpcyBub24temVybwogICAg IC0gRXZhbHVhdGUgZXhwcmVzc2lvbiBhbmQgc3RvcmUgdGhlIHJlc3VsdCBpbiBCLT52YWwKLUBA IC0xMzM3LDEyICsxMzYxLDE3IEBAIHVwZGF0ZV93YXRjaHBvaW50IChzdHJ1Y3QgYnJlYWtwb2lu dCAqYiwgaW50IHJlcGFyc2UpCitAQCAtMTMyOCwxMiArMTM1MiwxNyBAQCB1cGRhdGVfd2F0Y2hw b2ludCAoc3RydWN0IGJyZWFrcG9pbnQgKmIsIGludCByZXBhcnNlKQogICAgc3RydWN0IGZyYW1l X2lkIHNhdmVkX2ZyYW1lX2lkOwogICAgaW50IGZyYW1lX3NhdmVkOwogIApAQCAtNDY1LDkgKzQ2 NSw5IEBAIGluZGV4IDk3ZWZjMGEuLmY2MzNmNTcgMTAwNjQ0CiAgICAvKiBXZSBkb24ndCBmcmVl IGxvY2F0aW9ucy4gIFRoZXkgYXJlIHN0b3JlZCBpbiBicF9sb2NhdGlvbiBhcnJheQogICAgICAg YW5kIHVwZGF0ZV9nbG9iYWxfbG9jYXRpb25zIHdpbGwgZXZlbnR1YWxseSBkZWxldGUgdGhlbSBh bmQKICAgICAgIHJlbW92ZSBicmVha3BvaW50cyBpZiBuZWVkZWQuICAqLwotQEAgLTE1NDIsMTMg KzE1NzEsNyBAQCB1cGRhdGVfd2F0Y2hwb2ludCAoc3RydWN0IGJyZWFrcG9pbnQgKmIsIGludCBy ZXBhcnNlKQotIAkJCSAidGhlIHByb2dyYW0gaGFzIGxlZnQgdGhlIGJsb2NrXG4iCi0gCQkJICJp biB3aGljaCBpdHMgZXhwcmVzc2lvbiBpcyB2YWxpZC5cbiIpLAorQEAgLTE1NTUsMTMgKzE1ODQs NyBAQCB1cGRhdGVfd2F0Y2hwb2ludCAoc3RydWN0IGJyZWFrcG9pbnQgKmIsIGludCByZXBhcnNl KQorIFdhdGNocG9pbnQgJWQgZGVsZXRlZCBiZWNhdXNlIHRoZSBwcm9ncmFtIGhhcyBsZWZ0IHRo ZSBibG9ja1xuXAorIGluIHdoaWNoIGl0cyBleHByZXNzaW9uIGlzIHZhbGlkLlxuIiksCiAgCQkg ICAgICAgYi0+bnVtYmVyKTsKIC0gICAgICBpZiAoYi0+cmVsYXRlZF9icmVha3BvaW50KQogLQl7 CkBAIC00ODAsNyArNDgwLDcgQEAgaW5kZXggOTdlZmMwYS4uZjYzM2Y1NyAxMDA2NDQKICAgICAg fQogIAogICAgLyogUmVzdG9yZSB0aGUgc2VsZWN0ZWQgZnJhbWUuICAqLwotQEAgLTE5MzAsNiAr MTk1Myw3IEBAIGluc2VydF9icmVha3BvaW50X2xvY2F0aW9ucyAodm9pZCkKK0BAIC0xOTUyLDYg KzE5NzUsNyBAQCBpbnNlcnRfYnJlYWtwb2ludF9sb2NhdGlvbnMgKHZvaWQpCiAgICBpbnQgdmFs ID0gMDsKICAgIGludCBkaXNhYmxlZF9icmVha3MgPSAwOwogICAgaW50IGh3X2JyZWFrcG9pbnRf ZXJyb3IgPSAwOwpAQCAtNDg4LDcgKzQ4OCw3IEBAIGluZGV4IDk3ZWZjMGEuLmY2MzNmNTcgMTAw NjQ0CiAgCiAgICBzdHJ1Y3QgdWlfZmlsZSAqdG1wX2Vycm9yX3N0cmVhbSA9IG1lbV9maWxlb3Bl biAoKTsKICAgIHN0cnVjdCBjbGVhbnVwICpjbGVhbnVwcyA9IG1ha2VfY2xlYW51cF91aV9maWxl X2RlbGV0ZSAodG1wX2Vycm9yX3N0cmVhbSk7Ci1AQCAtMTk1Nyw5ICsxOTgxLDEzIEBAIGluc2Vy dF9icmVha3BvaW50X2xvY2F0aW9ucyAodm9pZCkKK0BAIC0xOTc5LDkgKzIwMDMsMTMgQEAgaW5z ZXJ0X2JyZWFrcG9pbnRfbG9jYXRpb25zICh2b2lkKQogICAgICAgIC8qIEZvciB0YXJnZXRzIHRo YXQgc3VwcG9ydCBnbG9iYWwgYnJlYWtwb2ludHMsIHRoZXJlJ3Mgbm8gbmVlZAogIAkgdG8gc2Vs ZWN0IGFuIGluZmVyaW9yIHRvIGluc2VydCBicmVha3BvaW50IHRvLiAgSW4gZmFjdCwgZXZlbgog IAkgaWYgd2UgYXJlbid0IGF0dGFjaGVkIHRvIGFueSBwcm9jZXNzIHlldCwgd2Ugc2hvdWxkIHN0 aWxsCkBAIC01MDQsNyArNTA0LDcgQEAgaW5kZXggOTdlZmMwYS4uZjYzM2Y1NyAxMDA2NDQKICAJ Y29udGludWU7CiAgCiAgICAgICAgdmFsID0gaW5zZXJ0X2JwX2xvY2F0aW9uIChibCwgdG1wX2Vy cm9yX3N0cmVhbSwgJmRpc2FibGVkX2JyZWFrcywKLUBAIC0xOTgzLDEzICsyMDExLDE5IEBAIGlu c2VydF9icmVha3BvaW50X2xvY2F0aW9ucyAodm9pZCkKK0BAIC0yMDA1LDEzICsyMDMzLDE5IEBA IGluc2VydF9icmVha3BvaW50X2xvY2F0aW9ucyAodm9pZCkKICAKICAgICAgICBpZiAoYnB0LT5k aXNwb3NpdGlvbiA9PSBkaXNwX2RlbF9hdF9uZXh0X3N0b3ApCiAgCWNvbnRpbnVlOwpAQCAtNTMw LDE3ICs1MzAsNyBAQCBpbmRleCA5N2VmYzBhLi5mNjMzZjU3IDEwMDY0NAogICAgICAgIGlmIChz b21lX2ZhaWxlZCkKICAJewogIAkgIGZvciAobG9jID0gYnB0LT5sb2M7IGxvYzsgbG9jID0gbG9j LT5uZXh0KQotQEAgLTI1MzksOCArMjU3Myw3IEBAIHJlbW92ZV9icmVha3BvaW50XzEgKHN0cnVj dCBicF9sb2NhdGlvbiAqYmwsIGluc2VydGlvbl9zdGF0ZV90IGlzKQotICAgICB7Ci0gICAgICAg YmwtPmluc2VydGVkID0gKGlzID09IG1hcmtfaW5zZXJ0ZWQpOwotICAgICAgIHZhbCA9IHRhcmdl dF9yZW1vdmVfd2F0Y2hwb2ludCAoYmwtPmFkZHJlc3MsIGJsLT5sZW5ndGgsCi0tCQkJCSAgICAg IGJsLT53YXRjaHBvaW50X3R5cGUsIAotLQkJCQkgICAgICBibC0+b3duZXItPmNvbmRfZXhwKTsK LSsJCQkJICAgICAgYmwtPndhdGNocG9pbnRfdHlwZSwgYmwtPm93bmVyLT5jb25kX2V4cCk7Ci0g Ci0gICAgICAgLyogRmFpbHVyZSB0byByZW1vdmUgYW55IG9mIHRoZSBoYXJkd2FyZSB3YXRjaHBv aW50cyBjb21lcyBoZXJlLiAgKi8KLSAgICAgICBpZiAoKGlzID09IG1hcmtfdW5pbnNlcnRlZCkg JiYgKGJsLT5pbnNlcnRlZCkpCi1AQCAtMzQzNiw2ICszNDY5LDggQEAgcHJpbnRfaXRfdHlwaWNh bCAoYnBzdGF0IGJzKQorQEAgLTM0NjEsNiArMzQ5NSw4IEBAIHByaW50X2l0X3R5cGljYWwgKGJw c3RhdCBicykKICAgICAgY2FzZSBicF90cmFjZXBvaW50OgogICAgICBjYXNlIGJwX2Zhc3RfdHJh Y2Vwb2ludDoKICAgICAgY2FzZSBicF9qaXRfZXZlbnQ6CkBAIC01NDksNyArNTM5LDcgQEAgaW5k ZXggOTdlZmMwYS4uZjYzM2Y1NyAxMDA2NDQKICAgICAgZGVmYXVsdDoKICAgICAgICByZXN1bHQg PSBQUklOVF9VTktOT1dOOwogICAgICAgIGJyZWFrOwotQEAgLTM2NTcsNiArMzY5Miw4IEBAIHdh dGNocG9pbnRfY2hlY2sgKHZvaWQgKnApCitAQCAtMzY4Miw2ICszNzE4LDggQEAgd2F0Y2hwb2lu dF9jaGVjayAodm9pZCAqcCkKICAgIGdkYl9hc3NlcnQgKGJzLT5icmVha3BvaW50X2F0ICE9IE5V TEwpOwogICAgYiA9IGJzLT5icmVha3BvaW50X2F0OwogIApAQCAtNTU4LDcgKzU0OCw3IEBAIGlu ZGV4IDk3ZWZjMGEuLmY2MzNmNTcgMTAwNjQ0CiAgICAvKiBJZiB0aGlzIGlzIGEgbG9jYWwgd2F0 Y2hwb2ludCwgd2Ugb25seSB3YW50IHRvIGNoZWNrIGlmIHRoZQogICAgICAgd2F0Y2hwb2ludCBm cmFtZSBpcyBpbiBzY29wZSBpZiB0aGUgY3VycmVudCB0aHJlYWQgaXMgdGhlIHRocmVhZAogICAg ICAgdGhhdCB3YXMgdXNlZCB0byBjcmVhdGUgdGhlIHdhdGNocG9pbnQuICAqLwotQEAgLTM3NjYs MTMgKzM4MDMsNyBAQCB3YXRjaHBvaW50X2NoZWNrICh2b2lkICpwKQorQEAgLTM3OTEsMTMgKzM4 MjksNyBAQCB3YXRjaHBvaW50X2NoZWNrICh2b2lkICpwKQogIAkJICAgIiBkZWxldGVkIGJlY2F1 c2UgdGhlIHByb2dyYW0gaGFzIGxlZnQgdGhlIGJsb2NrIGluXG5cCiAgd2hpY2ggaXRzIGV4cHJl c3Npb24gaXMgdmFsaWQuXG4iKTsgICAgIAogIApAQCAtNTczLDcgKzU2Myw3IEBAIGluZGV4IDk3 ZWZjMGEuLmY2MzNmNTcgMTAwNjQ0CiAgCiAgICAgICAgcmV0dXJuIFdQX0RFTEVURUQ7CiAgICAg IH0KLUBAIC0zOTc3LDkgKzQwMDgsNyBAQCBicHN0YXRfY2hlY2tfd2F0Y2hwb2ludCAoYnBzdGF0 IGJzKQorQEAgLTQwMDIsOSArNDAzNCw3IEBAIGJwc3RhdF9jaGVja193YXRjaHBvaW50IChicHN0 YXQgYnMpCiAgCSAgICBjYXNlIDA6CiAgCSAgICAgIC8qIEVycm9yIGZyb20gY2F0Y2hfZXJyb3Jz LiAgKi8KICAJICAgICAgcHJpbnRmX2ZpbHRlcmVkIChfKCJXYXRjaHBvaW50ICVkIGRlbGV0ZWQu XG4iKSwgYi0+bnVtYmVyKTsKQEAgLTU4NCw3ICs1NzQsNyBAQCBpbmRleCA5N2VmYzBhLi5mNjMz ZjU3IDEwMDY0NAogIAkgICAgICAvKiBXZSd2ZSBhbHJlYWR5IHByaW50ZWQgd2hhdCBuZWVkcyB0 byBiZSBwcmludGVkLiAgKi8KICAJICAgICAgYnMtPnByaW50X2l0ID0gcHJpbnRfaXRfZG9uZTsK ICAJICAgICAgYnJlYWs7Ci1AQCAtNDE4NSw3ICs0MjE0LDcgQEAgYnBzdGF0X3N0b3Bfc3RhdHVz IChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqYXNwYWNlLAorQEAgLTQyMTAsNyArNDI0MCw3IEBAIGJw c3RhdF9zdG9wX3N0YXR1cyAoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKmFzcGFjZSwKICAJICAgICB3 YXRjaHBvaW50IGFzIHRyaWdnZXJlZCBzbyB0aGF0IHdlIHdpbGwgaGFuZGxlIHRoZQogIAkgICAg IG91dC1vZi1zY29wZSBldmVudC4gIFdlJ2xsIGdldCB0byB0aGUgd2F0Y2hwb2ludCBuZXh0CiAg CSAgICAgaXRlcmF0aW9uLiAgKi8KQEAgLTU5Myw3ICs1ODMsNyBAQCBpbmRleCA5N2VmYzBhLi5m NjMzZjU3IDEwMDY0NAogIAkgICAgYi0+cmVsYXRlZF9icmVha3BvaW50LT53YXRjaHBvaW50X3Ry aWdnZXJlZCA9IHdhdGNoX3RyaWdnZXJlZF95ZXM7CiAgCX0KICAgICAgfQotQEAgLTQzMDcsNyAr NDMzNiw3IEBAIGhhbmRsZV9qaXRfZXZlbnQgKHZvaWQpCitAQCAtNDMzMiw3ICs0MzYyLDcgQEAg aGFuZGxlX2ppdF9ldmVudCAodm9pZCkKICAvKiBEZWNpZGUgd2hhdCBpbmZydW4gbmVlZHMgdG8g ZG8gd2l0aCB0aGlzIGJwc3RhdC4gICovCiAgCiAgc3RydWN0IGJwc3RhdF93aGF0CkBAIC02MDIs NyArNTkyLDcgQEAgaW5kZXggOTdlZmMwYS4uZjYzM2Y1NyAxMDA2NDQKICB7CiAgICBzdHJ1Y3Qg YnBzdGF0X3doYXQgcmV0dmFsOwogICAgLyogV2UgbmVlZCB0byBkZWZlciBjYWxsaW5nIGBzb2xp Yl9hZGQnLCBhcyBhZGRpbmcgbmV3IHN5bWJvbHMKLUBAIC00MzE1LDEyICs0MzQ0LDEzIEBAIGJw c3RhdF93aGF0IChicHN0YXQgYnMpCitAQCAtNDM0MCwxMiArNDM3MCwxMyBAQCBicHN0YXRfd2hh dCAoYnBzdGF0IGJzKQogICAgICAgYW5kIGhlbmNlIG1heSBjbGVhciB1bnByb2Nlc3NlZCBlbnRy aWVzIGluIHRoZSBCUyBjaGFpbi4gICovCiAgICBpbnQgc2hsaWJfZXZlbnQgPSAwOwogICAgaW50 IGppdF9ldmVudCA9IDA7CkBAIC02MTcsNyArNjA3LDcgQEAgaW5kZXggOTdlZmMwYS4uZjYzM2Y1 NyAxMDA2NDQKICAgICAgewogICAgICAgIC8qIEV4dHJhY3QgdGhpcyBCUydzIGFjdGlvbi4gIEFm dGVyIHByb2Nlc3NpbmcgZWFjaCBCUywgd2UgY2hlY2sKICAJIGlmIGl0cyBhY3Rpb24gb3ZlcnJp ZGVzIGFsbCB3ZSd2ZSBzZWVtIHNvIGZhci4gICovCi1AQCAtNDQ1MCw2ICs0NDgwLDIwIEBAIGJw c3RhdF93aGF0IChicHN0YXQgYnMpCitAQCAtNDQ3NSw2ICs0NTA2LDIwIEBAIGJwc3RhdF93aGF0 IChicHN0YXQgYnMpCiAgCSAgICAgb3V0IGFscmVhZHkuICAqLwogIAkgIGludGVybmFsX2Vycm9y IChfX0ZJTEVfXywgX19MSU5FX18sCiAgCQkJICBfKCJicHN0YXRfd2hhdDogdHJhY2Vwb2ludCBl bmNvdW50ZXJlZCIpKTsKQEAgLTYzOCw3ICs2MjgsNyBAQCBpbmRleCA5N2VmYzBhLi5mNjMzZjU3 IDEwMDY0NAogIAlkZWZhdWx0OgogIAkgIGludGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5F X18sCiAgCQkJICBfKCJicHN0YXRfd2hhdDogdW5oYW5kbGVkIGJwdHlwZSAlZCIpLCAoaW50KSBi cHR5cGUpOwotQEAgLTQ0ODcsNiArNDUzMSwyMSBAQCBicHN0YXRfd2hhdCAoYnBzdGF0IGJzKQor QEAgLTQ1MTIsNiArNDU1NywyMSBAQCBicHN0YXRfd2hhdCAoYnBzdGF0IGJzKQogICAgICAgIGhh bmRsZV9qaXRfZXZlbnQgKCk7CiAgICAgIH0KICAKQEAgLTY2MCw3ICs2NTAsNyBAQCBpbmRleCA5 N2VmYzBhLi5mNjMzZjU3IDEwMDY0NAogICAgcmV0dXJuIHJldHZhbDsKICB9CiAgCi1AQCAtNDYw OCw2ICs0NjY3LDggQEAgYnB0eXBlX3N0cmluZyAoZW51bSBicHR5cGUgdHlwZSkKK0BAIC00NjMz LDYgKzQ2OTMsOCBAQCBicHR5cGVfc3RyaW5nIChlbnVtIGJwdHlwZSB0eXBlKQogICAgICB7YnBf ZmFzdF90cmFjZXBvaW50LCAiZmFzdCB0cmFjZXBvaW50In0sCiAgICAgIHticF9zdGF0aWNfdHJh Y2Vwb2ludCwgInN0YXRpYyB0cmFjZXBvaW50In0sCiAgICAgIHticF9qaXRfZXZlbnQsICJqaXQg ZXZlbnRzIn0sCkBAIC02NjksNyArNjU5LDcgQEAgaW5kZXggOTdlZmMwYS4uZjYzM2Y1NyAxMDA2 NDQKICAgIH07CiAgCiAgICBpZiAoKChpbnQpIHR5cGUgPj0gKHNpemVvZiAoYnB0eXBlcykgLyBz aXplb2YgKGJwdHlwZXNbMF0pKSkKLUBAIC00NzU1LDYgKzQ4MTYsOCBAQCBwcmludF9vbmVfYnJl YWtwb2ludF9sb2NhdGlvbiAoc3RydWN0IGJyZWFrcG9pbnQgKmIsCitAQCAtNDc4MCw2ICs0ODQy LDggQEAgcHJpbnRfb25lX2JyZWFrcG9pbnRfbG9jYXRpb24gKHN0cnVjdCBicmVha3BvaW50ICpi LAogICAgICAgIGNhc2UgYnBfZmFzdF90cmFjZXBvaW50OgogICAgICAgIGNhc2UgYnBfc3RhdGlj X3RyYWNlcG9pbnQ6CiAgICAgICAgY2FzZSBicF9qaXRfZXZlbnQ6CkBAIC02NzgsNyArNjY4LDcg QEAgaW5kZXggOTdlZmMwYS4uZjYzM2Y1NyAxMDA2NDQKICAJaWYgKG9wdHMuYWRkcmVzc3ByaW50 KQogIAkgIHsKICAJICAgIGFubm90YXRlX2ZpZWxkICg0KTsKLUBAIC01MDM2LDcgKzUwOTksOCBA QCB1c2VyX3NldHRhYmxlX2JyZWFrcG9pbnQgKGNvbnN0IHN0cnVjdCBicmVha3BvaW50ICpiKQor QEAgLTUwNjEsNyArNTEyNSw4IEBAIHVzZXJfc2V0dGFibGVfYnJlYWtwb2ludCAoY29uc3Qgc3Ry dWN0IGJyZWFrcG9pbnQgKmIpCiAgCSAgfHwgYi0+dHlwZSA9PSBicF9jYXRjaHBvaW50CiAgCSAg fHwgYi0+dHlwZSA9PSBicF9oYXJkd2FyZV9icmVha3BvaW50CiAgCSAgfHwgaXNfdHJhY2Vwb2lu dCAoYikKQEAgLTY4OCw3ICs2NzgsNyBAQCBpbmRleCA5N2VmYzBhLi5mNjMzZjU3IDEwMDY0NAog IH0KICAKICAvKiBQcmludCBpbmZvcm1hdGlvbiBvbiB1c2VyIHNldHRhYmxlIGJyZWFrcG9pbnQg KHdhdGNocG9pbnQsIGV0YykKLUBAIC01NTE4LDYgKzU1ODIsOCBAQCBhbGxvY2F0ZV9icF9sb2Nh dGlvbiAoc3RydWN0IGJyZWFrcG9pbnQgKmJwdCkKK0BAIC01NTQzLDYgKzU2MDgsOCBAQCBhbGxv Y2F0ZV9icF9sb2NhdGlvbiAoc3RydWN0IGJyZWFrcG9pbnQgKmJwdCkKICAgICAgY2FzZSBicF9s b25nam1wX21hc3RlcjoKICAgICAgY2FzZSBicF9zdGRfdGVybWluYXRlX21hc3RlcjoKICAgICAg Y2FzZSBicF9leGNlcHRpb25fbWFzdGVyOgpAQCAtNjk3LDcgKzY4Nyw3IEBAIGluZGV4IDk3ZWZj MGEuLmY2MzNmNTcgMTAwNjQ0CiAgICAgICAgbG9jLT5sb2NfdHlwZSA9IGJwX2xvY19zb2Z0d2Fy ZV9icmVha3BvaW50OwogICAgICAgIGJyZWFrOwogICAgICBjYXNlIGJwX2hhcmR3YXJlX2JyZWFr cG9pbnQ6Ci1AQCAtNTYwNyw2ICs1NjczLDcgQEAgc2V0X3Jhd19icmVha3BvaW50X3dpdGhvdXRf bG9jYXRpb24gKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorQEAgLTU2MzIsNiArNTY5OSw3IEBA IHNldF9yYXdfYnJlYWtwb2ludF93aXRob3V0X2xvY2F0aW9uIChzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri YXJjaCwKICAgIGItPm9wcyA9IE5VTEw7CiAgICBiLT5jb25kaXRpb25fbm90X3BhcnNlZCA9IDA7 CiAgICBiLT5weV9icF9vYmplY3QgPSBOVUxMOwpAQCAtNzA1LDcgKzY5NSw3IEBAIGluZGV4IDk3 ZWZjMGEuLmY2MzNmNTcgMTAwNjQ0CiAgCiAgICAvKiBBZGQgdGhpcyBicmVha3BvaW50IHRvIHRo ZSBlbmQgb2YgdGhlIGNoYWluIHNvIHRoYXQgYSBsaXN0IG9mCiAgICAgICBicmVha3BvaW50cyB3 aWxsIGNvbWUgb3V0IGluIG9yZGVyIG9mIGluY3JlYXNpbmcgbnVtYmVycy4gICovCi1AQCAtNTYy NSw3ICs1NjkyLDcgQEAgc2V0X3Jhd19icmVha3BvaW50X3dpdGhvdXRfbG9jYXRpb24gKHN0cnVj dCBnZGJhcmNoICpnZGJhcmNoLAorQEAgLTU2NTAsNyArNTcxOCw3IEBAIHNldF9yYXdfYnJlYWtw b2ludF93aXRob3V0X2xvY2F0aW9uIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKICAKICAvKiBJ bml0aWFsaXplIGxvYy0+ZnVuY3Rpb25fbmFtZS4gICovCiAgc3RhdGljIHZvaWQKQEAgLTcxNCw3 ICs3MDQsNyBAQCBpbmRleCA5N2VmYzBhLi5mNjMzZjU3IDEwMDY0NAogIHsKICAgIGdkYl9hc3Nl cnQgKGxvYy0+b3duZXIgIT0gTlVMTCk7CiAgCi1AQCAtNTYzMyw4ICs1NzAwLDI5IEBAIHNldF9i cmVha3BvaW50X2xvY2F0aW9uX2Z1bmN0aW9uIChzdHJ1Y3QgYnBfbG9jYXRpb24gKmxvYykKK0BA IC01NjU4LDggKzU3MjYsMjkgQEAgc2V0X2JyZWFrcG9pbnRfbG9jYXRpb25fZnVuY3Rpb24gKHN0 cnVjdCBicF9sb2NhdGlvbiAqbG9jKQogICAgICAgIHx8IGxvYy0+b3duZXItPnR5cGUgPT0gYnBf aGFyZHdhcmVfYnJlYWtwb2ludAogICAgICAgIHx8IGlzX3RyYWNlcG9pbnQgKGxvYy0+b3duZXIp KQogICAgICB7CkBAIC03NDYsNyArNzM2LDcgQEAgaW5kZXggOTdlZmMwYS4uZjYzM2Y1NyAxMDA2 NDQKICAgICAgICBpZiAobG9jLT5mdW5jdGlvbl9uYW1lKQogIAlsb2MtPmZ1bmN0aW9uX25hbWUg PSB4c3RyZHVwIChsb2MtPmZ1bmN0aW9uX25hbWUpOwogICAgICB9Ci1AQCAtNTcwOSw3ICs1Nzk3 LDggQEAgc2V0X3Jhd19icmVha3BvaW50IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKK0BAIC01 NzM0LDcgKzU4MjMsOCBAQCBzZXRfcmF3X2JyZWFrcG9pbnQgKHN0cnVjdCBnZGJhcmNoICpnZGJh cmNoLAogICAgYi0+bG9jLT5zZWN0aW9uID0gc2FsLnNlY3Rpb247CiAgICBiLT5saW5lX251bWJl ciA9IHNhbC5saW5lOwogIApAQCAtNzU2LDcgKzc0Niw3IEBAIGluZGV4IDk3ZWZjMGEuLmY2MzNm NTcgMTAwNjQ0CiAgCiAgICBicmVha3BvaW50c19jaGFuZ2VkICgpOwogIAotQEAgLTY3OTksNyAr Njg4OCw3IEBAIGNsb25lX21vbWVudGFyeV9icmVha3BvaW50IChzdHJ1Y3QgYnJlYWtwb2ludCAq b3JpZykKK0BAIC02ODM4LDcgKzY5MjgsNyBAQCBjbG9uZV9tb21lbnRhcnlfYnJlYWtwb2ludCAo c3RydWN0IGJyZWFrcG9pbnQgKm9yaWcpCiAgCiAgICBjb3B5ID0gc2V0X3Jhd19icmVha3BvaW50 X3dpdGhvdXRfbG9jYXRpb24gKG9yaWctPmdkYmFyY2gsIG9yaWctPnR5cGUpOwogICAgY29weS0+ bG9jID0gYWxsb2NhdGVfYnBfbG9jYXRpb24gKGNvcHkpOwpAQCAtNzY1LDcgKzc1NSw3IEBAIGlu ZGV4IDk3ZWZjMGEuLmY2MzNmNTcgMTAwNjQ0CiAgCiAgICBjb3B5LT5sb2MtPmdkYmFyY2ggPSBv cmlnLT5sb2MtPmdkYmFyY2g7CiAgICBjb3B5LT5sb2MtPnJlcXVlc3RlZF9hZGRyZXNzID0gb3Jp Zy0+bG9jLT5yZXF1ZXN0ZWRfYWRkcmVzczsKLUBAIC02ODk5LDYgKzY5ODgsNyBAQCBtZW50aW9u IChzdHJ1Y3QgYnJlYWtwb2ludCAqYikKK0BAIC02OTM4LDYgKzcwMjgsNyBAQCBtZW50aW9uIChz dHJ1Y3QgYnJlYWtwb2ludCAqYikKICAJZG9fY2xlYW51cHMgKHVpX291dF9jaGFpbik7CiAgCWJy ZWFrOwogICAgICAgIGNhc2UgYnBfYnJlYWtwb2ludDoKQEAgLTc3Myw3ICs3NjMsNyBAQCBpbmRl eCA5N2VmYzBhLi5mNjMzZjU3IDEwMDY0NAogIAlpZiAodWlfb3V0X2lzX21pX2xpa2VfcCAodWlv dXQpKQogIAkgIHsKICAJICAgIHNheV93aGVyZSA9IDA7Ci1AQCAtNjkwOSw2ICs2OTk5LDggQEAg bWVudGlvbiAoc3RydWN0IGJyZWFrcG9pbnQgKmIpCitAQCAtNjk0OCw2ICs3MDM5LDggQEAgbWVu dGlvbiAoc3RydWN0IGJyZWFrcG9pbnQgKmIpCiAgCWVsc2UKICAJICBwcmludGZfZmlsdGVyZWQg KF8oIkJyZWFrcG9pbnQiKSk7CiAgCXByaW50Zl9maWx0ZXJlZCAoXygiICVkIiksIGItPm51bWJl cik7CkBAIC03ODIsNyArNzcyLDcgQEAgaW5kZXggOTdlZmMwYS4uZjYzM2Y1NyAxMDA2NDQKICAJ c2F5X3doZXJlID0gMTsKICAJYnJlYWs7CiAgICAgICAgY2FzZSBicF9oYXJkd2FyZV9icmVha3Bv aW50OgotQEAgLTY5NjgsNiArNzA2MCw3IEBAIG1lbnRpb24gKHN0cnVjdCBicmVha3BvaW50ICpi KQorQEAgLTcwMDcsNiArNzEwMCw3IEBAIG1lbnRpb24gKHN0cnVjdCBicmVha3BvaW50ICpiKQog ICAgICAgIGNhc2UgYnBfbG9uZ2ptcF9tYXN0ZXI6CiAgICAgICAgY2FzZSBicF9zdGRfdGVybWlu YXRlX21hc3RlcjoKICAgICAgICBjYXNlIGJwX2V4Y2VwdGlvbl9tYXN0ZXI6CkBAIC03OTAsNyAr NzgwLDcgQEAgaW5kZXggOTdlZmMwYS4uZjYzM2Y1NyAxMDA2NDQKICAJYnJlYWs7CiAgICAgICAg fQogIAotQEAgLTcwMjgsNyArNzEyMSw4IEBAIGFkZF9sb2NhdGlvbl90b19icmVha3BvaW50IChz dHJ1Y3QgYnJlYWtwb2ludCAqYiwKK0BAIC03MDY3LDcgKzcxNjEsOCBAQCBhZGRfbG9jYXRpb25f dG9fYnJlYWtwb2ludCAoc3RydWN0IGJyZWFrcG9pbnQgKmIsCiAgICBnZGJfYXNzZXJ0IChsb2Mt PnBzcGFjZSAhPSBOVUxMKTsKICAgIGxvYy0+c2VjdGlvbiA9IHNhbC0+c2VjdGlvbjsKICAKQEAg LTgwMCw3ICs3OTAsNyBAQCBpbmRleCA5N2VmYzBhLi5mNjMzZjU3IDEwMDY0NAogICAgcmV0dXJu IGxvYzsKICB9CiAgDAotQEAgLTg0MjcsNiArODUyMSw3IEBAIHdhdGNoX2NvbW1hbmRfMSAoY2hh ciAqYXJnLCBpbnQgYWNjZXNzZmxhZywgaW50IGZyb21fdHR5LAorQEAgLTg1MTMsNiArODYwOCw3 IEBAIHdhdGNoX2NvbW1hbmRfMSAoY2hhciAqYXJnLCBpbnQgYWNjZXNzZmxhZywgaW50IGZyb21f dHR5LAogICAgYiA9IHNldF9yYXdfYnJlYWtwb2ludF93aXRob3V0X2xvY2F0aW9uIChOVUxMLCBi cF90eXBlKTsKICAgIHNldF9icmVha3BvaW50X251bWJlciAoaW50ZXJuYWwsIGIpOwogICAgYi0+ dGhyZWFkID0gdGhyZWFkOwpAQCAtODA4LDcgKzc5OCw3IEBAIGluZGV4IDk3ZWZjMGEuLmY2MzNm NTcgMTAwNjQ0CiAgICBiLT5kaXNwb3NpdGlvbiA9IGRpc3BfZG9udHRvdWNoOwogICAgYi0+ZXhw ID0gZXhwOwogICAgYi0+ZXhwX3ZhbGlkX2Jsb2NrID0gZXhwX3ZhbGlkX2Jsb2NrOwotQEAgLTk1 ODIsNiArOTY3Nyw5IEBAIHVwZGF0ZV9nbG9iYWxfbG9jYXRpb25fbGlzdCAoaW50IHNob3VsZF9p bnNlcnQpCitAQCAtOTY4NCw2ICs5NzgwLDkgQEAgdXBkYXRlX2dsb2JhbF9sb2NhdGlvbl9saXN0 IChpbnQgc2hvdWxkX2luc2VydCkKICAgICAgICBpbnQga2VlcF9pbl90YXJnZXQgPSAwOwogICAg ICAgIGludCByZW1vdmVkID0gMDsKICAKQEAgLTgxOCw3ICs4MDgsNyBAQCBpbmRleCA5N2VmYzBh Li5mNjMzZjU3IDEwMDY0NAogICAgICAgIC8qIFNraXAgTE9DUCBlbnRyaWVzIHdoaWNoIHdpbGwg ZGVmaW5pdGVseSBuZXZlciBiZSBuZWVkZWQuCiAgCSBTdG9wIGVpdGhlciBhdCBvciBiZWluZyB0 aGUgb25lIG1hdGNoaW5nIE9MRF9MT0MuICAqLwogICAgICAgIHdoaWxlIChsb2NwIDwgYnBfbG9j YXRpb24gKyBicF9sb2NhdGlvbl9jb3VudAotQEAgLTk4OTgsMTIgKzk5OTYsMjIgQEAgZGVsZXRl X2JyZWFrcG9pbnQgKHN0cnVjdCBicmVha3BvaW50ICpicHQpCitAQCAtMTAwMDAsMTIgKzEwMDk5 LDIyIEBAIGRlbGV0ZV9icmVha3BvaW50IChzdHJ1Y3QgYnJlYWtwb2ludCAqYnB0KQogIAogICAg LyogQXQgbGVhc3QgYXZvaWQgdGhpcyBzdGFsZSByZWZlcmVuY2UgdW50aWwgdGhlIHJlZmVyZW5j ZSBjb3VudGluZwogICAgICAgb2YgYnJlYWtwb2ludHMgZ2V0cyByZXNvbHZlZC4gICovCkBAIC04 NDYsNyArODM2LDcgQEAgaW5kZXggOTdlZmMwYS4uZjYzM2Y1NyAxMDA2NDQKICAgICAgfQogIAog ICAgb2JzZXJ2ZXJfbm90aWZ5X2JyZWFrcG9pbnRfZGVsZXRlZCAoYnB0LT5udW1iZXIpOwotQEAg LTEwMjM0LDYgKzEwMzQyLDkgQEAgdXBkYXRlX2JyZWFrcG9pbnRfbG9jYXRpb25zIChzdHJ1Y3Qg YnJlYWtwb2ludCAqYiwKK0BAIC0xMDMzNiw2ICsxMDQ0NSw5IEBAIHVwZGF0ZV9icmVha3BvaW50 X2xvY2F0aW9ucyAoc3RydWN0IGJyZWFrcG9pbnQgKmIsCiAgICAgIHJldHVybjsKICAKICAgIGIt PmxvYyA9IE5VTEw7CkBAIC04NTYsNyArODQ2LDcgQEAgaW5kZXggOTdlZmMwYS4uZjYzM2Y1NyAx MDA2NDQKICAKICAgIGZvciAoaSA9IDA7IGkgPCBzYWxzLm5lbHRzOyArK2kpCiAgICAgIHsKLUBA IC0xMDI2MSwxMSArMTAzNzIsNyBAQCB1cGRhdGVfYnJlYWtwb2ludF9sb2NhdGlvbnMgKHN0cnVj dCBicmVha3BvaW50ICpiLAorQEAgLTEwMzYzLDExICsxMDQ3NSw3IEBAIHVwZGF0ZV9icmVha3Bv aW50X2xvY2F0aW9ucyAoc3RydWN0IGJyZWFrcG9pbnQgKmIsCiAgCSAgICB9CiAgCX0KICAKQEAg LTg2OSw3ICs4NTksNyBAQCBpbmRleCA5N2VmYzBhLi5mNjMzZjU3IDEwMDY0NAogIAliLT5zb3Vy Y2VfZmlsZSA9IHhzdHJkdXAgKHNhbHMuc2Fsc1tpXS5zeW10YWItPmZpbGVuYW1lKTsKICAKICAg ICAgICBpZiAoYi0+bGluZV9udW1iZXIgPT0gMCkKLUBAIC0xMDM0OCw2ICsxMDQ1NSw3IEBAIGJy ZWFrcG9pbnRfcmVfc2V0X29uZSAodm9pZCAqYmludCkKK0BAIC0xMDQ1MCw2ICsxMDU1OCw3IEBA IGJyZWFrcG9pbnRfcmVfc2V0X29uZSAodm9pZCAqYmludCkKICAgICAgY2FzZSBicF90cmFjZXBv aW50OgogICAgICBjYXNlIGJwX2Zhc3RfdHJhY2Vwb2ludDoKICAgICAgY2FzZSBicF9zdGF0aWNf dHJhY2Vwb2ludDoKQEAgLTg3Nyw3ICs4NjcsNyBAQCBpbmRleCA5N2VmYzBhLi5mNjMzZjU3IDEw MDY0NAogICAgICAgIC8qIERvIG5vdCBhdHRlbXB0IHRvIHJlLXNldCBicmVha3BvaW50cyBkaXNh YmxlZCBkdXJpbmcgc3RhcnR1cC4gICovCiAgICAgICAgaWYgKGItPmVuYWJsZV9zdGF0ZSA9PSBi cF9zdGFydHVwX2Rpc2FibGVkKQogIAlyZXR1cm4gMDsKLUBAIC0xMDUxOCw2ICsxMDYyNiw3IEBA IGJyZWFrcG9pbnRfcmVfc2V0X29uZSAodm9pZCAqYmludCkKK0BAIC0xMDYyMCw2ICsxMDcyOSw3 IEBAIGJyZWFrcG9pbnRfcmVfc2V0X29uZSAodm9pZCAqYmludCkKICAgICAgY2FzZSBicF9leGNl cHRpb246CiAgICAgIGNhc2UgYnBfZXhjZXB0aW9uX3Jlc3VtZToKICAgICAgY2FzZSBicF9qaXRf ZXZlbnQ6CkBAIC04ODUsNyArODc1LDcgQEAgaW5kZXggOTdlZmMwYS4uZjYzM2Y1NyAxMDA2NDQK ICAgICAgICBicmVhazsKICAgICAgfQogIAotQEAgLTEwNjkyLDExICsxMDgwMSwyNSBAQCBtYXBf YnJlYWtwb2ludF9udW1iZXJzIChjaGFyICphcmdzLCB2b2lkICgqZnVuY3Rpb24pIChzdHJ1Y3Qg YnJlYWtwb2ludCAqLAorQEAgLTEwNzk0LDExICsxMDkwNCwyNSBAQCBtYXBfYnJlYWtwb2ludF9u dW1iZXJzIChjaGFyICphcmdzLCB2b2lkICgqZnVuY3Rpb24pIChzdHJ1Y3QgYnJlYWtwb2ludCAq LAogIAkgIEFMTF9CUkVBS1BPSU5UU19TQUZFIChiLCB0bXApCiAgCSAgICBpZiAoYi0+bnVtYmVy ID09IG51bSkKICAJICAgICAgewpAQCAtOTE1LDcgKzkwNSw3IEBAIGluZGV4IDk3ZWZjMGEuLmY2 MzNmNTcgMTAwNjQ0CiAgCQlicmVhazsKICAJICAgICAgfQogIAkgIGlmIChtYXRjaCA9PSAwKQot QEAgLTExODExLDYgKzExOTM0LDIyIEBAIGFsbF90cmFjZXBvaW50cyAoKQorQEAgLTExOTEzLDYg KzEyMDM3LDIyIEBAIGFsbF90cmFjZXBvaW50cyAoKQogICAgcmV0dXJuIHRwX3ZlYzsKICB9CiAg CkBAIC05MzgsNyArOTI4LDcgQEAgaW5kZXggOTdlZmMwYS4uZjYzM2Y1NyAxMDA2NDQKICAMCiAg LyogVGhpcyBoZWxwIHN0cmluZyBpcyB1c2VkIGZvciB0aGUgYnJlYWssIGhicmVhaywgdGJyZWFr IGFuZCB0aGJyZWFrCiAgICAgY29tbWFuZHMuICBJdCBpcyBkZWZpbmVkIGFzIGEgbWFjcm8gdG8g cHJldmVudCBkdXBsaWNhdGlvbi4KLUBAIC0xMTg5Niw2ICsxMjAzNSwxMDcgQEAgaXRlcmF0ZV9v dmVyX2JyZWFrcG9pbnRzIChpbnQgKCpjYWxsYmFjaykgKHN0cnVjdCBicmVha3BvaW50ICosIHZv aWQgKiksCitAQCAtMTE5OTgsNiArMTIxMzgsMTA3IEBAIGl0ZXJhdGVfb3Zlcl9icmVha3BvaW50 cyAoaW50ICgqY2FsbGJhY2spIChzdHJ1Y3QgYnJlYWtwb2ludCAqLCB2b2lkICopLAogICAgcmV0 dXJuIE5VTEw7CiAgfQogIApAQCAtMTA0NiwxNCArMTAzNiwxNCBAQCBpbmRleCA5N2VmYzBhLi5m NjMzZjU3IDEwMDY0NAogIHZvaWQKICBfaW5pdGlhbGl6ZV9icmVha3BvaW50ICh2b2lkKQogIHsK LUBAIC0xMjQzMCw0ICsxMjY3MCw1IEBAIGluZmVyaW9yIGluIGFsbC1zdG9wIG1vZGUsIGdkYiBi ZWhhdmVzIGFzIGlmIGFsd2F5cy1pbnNlcnRlZCBtb2RlIGlzIG9mZi4iKSwKK0BAIC0xMjUzMiw0 ICsxMjc3Myw1IEBAIGluZmVyaW9yIGluIGFsbC1zdG9wIG1vZGUsIGdkYiBiZWhhdmVzIGFzIGlm IGFsd2F5cy1pbnNlcnRlZCBtb2RlIGlzIG9mZi4iKSwKICAgIGF1dG9tYXRpY19oYXJkd2FyZV9i cmVha3BvaW50cyA9IDE7CiAgCiAgICBvYnNlcnZlcl9hdHRhY2hfYWJvdXRfdG9fcHJvY2VlZCAo YnJlYWtwb2ludF9hYm91dF90b19wcm9jZWVkKTsKICsgIG9ic2VydmVyX2F0dGFjaF9tYXJrX3Vz ZWQgKGJyZWFrcG9pbnRfdHlwZXNfbWFya191c2VkKTsKICB9CiBkaWZmIC0tZ2l0IGEvZ2RiL2Jy ZWFrcG9pbnQuaCBiL2dkYi9icmVha3BvaW50LmgKLWluZGV4IDJkODE1YzIuLjY2YjNlY2UgMTAw NjQ0CitpbmRleCA2OTU5OGE3Li4zMzZmYWY3IDEwMDY0NAogLS0tIGEvZ2RiL2JyZWFrcG9pbnQu aAogKysrIGIvZ2RiL2JyZWFrcG9pbnQuaAogQEAgLTE0OCw2ICsxNDgsOSBAQCBlbnVtIGJwdHlw ZQpAQCAtMTA2Nyw3ICsxMDU3LDcgQEAgaW5kZXggMmQ4MTVjMi4uNjZiM2VjZSAxMDA2NDQKICAK ICAvKiBTdGF0ZXMgb2YgZW5hYmxlbWVudCBvZiBicmVha3BvaW50LiAgKi8KIGRpZmYgLS1naXQg YS9nZGIvYy10eXBlcHJpbnQuYyBiL2dkYi9jLXR5cGVwcmludC5jCi1pbmRleCBjODg5MjY0Li4z MTU1YWY3IDEwMDY0NAoraW5kZXggOTkwOWUxMy4uMzBjM2RmZSAxMDA2NDQKIC0tLSBhL2dkYi9j LXR5cGVwcmludC5jCiArKysgYi9nZGIvYy10eXBlcHJpbnQuYwogQEAgLTYwOSw5ICs2MDksMTQg QEAgY190eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChzdHJ1Y3QgdHlwZSAqdHlwZSwKQEAgLTEx MjAsNyArMTExMCw3IEBAIGluZGV4IDU2NWE4MzcuLmM5ZmYwZGUgMTAwNjQ0CiAgRkxBR1NfVE9f UEFTUyA9IFwKICAJInByZWZpeD0kKHByZWZpeCkiIFwKIGRpZmYgLS1naXQgYS9nZGIvZGVmcy5o IGIvZ2RiL2RlZnMuaAotaW5kZXggNmE5MGIwOC4uMzFkNTVkZSAxMDA2NDQKK2luZGV4IDk0MDlk ZGUuLmYwZmE0YzcgMTAwNjQ0CiAtLS0gYS9nZGIvZGVmcy5oCiArKysgYi9nZGIvZGVmcy5oCiBA QCAtMzk4LDYgKzM5OCw4IEBAIGV4dGVybiBzdHJ1Y3QgY2xlYW51cCAqbWFrZV9jbGVhbnVwX3Jl c3RvcmVfcGFnZV9pbmZvICh2b2lkKTsKQEAgLTExMzMsNyArMTEyMyw3IEBAIGluZGV4IDZhOTBi MDguLjMxZDU1ZGUgMTAwNjQ0CiAgZXh0ZXJuIGNoYXIgKnhmdWxscGF0aCAoY29uc3QgY2hhciAq KTsKICAKIGRpZmYgLS1naXQgYS9nZGIvZG9jL2dkYi50ZXhpbmZvIGIvZ2RiL2RvYy9nZGIudGV4 aW5mbwotaW5kZXggZDQ3YTQ4NC4uYzg2MGM4NyAxMDA2NDQKK2luZGV4IGQ0OGQ5NWMuLjRjYWMx YmEgMTAwNjQ0CiAtLS0gYS9nZGIvZG9jL2dkYi50ZXhpbmZvCiArKysgYi9nZGIvZG9jL2dkYi50 ZXhpbmZvCiBAQCAtMTE3Nyw2ICsxMTc3LDE2IEBAIGZvciByZW1vdGUgZGVidWdnaW5nLgpAQCAt MTE1Myw3ICsxMTQzLDcgQEAgaW5kZXggZDQ3YTQ4NC4uYzg2MGM4NyAxMDA2NDQKICBAYyByZXNv bHZlIHRoZSBzaXR1YXRpb24gb2YgdGhlc2UgZXZlbnR1YWxseQogIEBpdGVtIC10dWkKICBAY2lu ZGV4IEBjb2Rley0tdHVpfQotQEAgLTIwNjY1LDggKzIwNjc1LDYgQEAgY29udGFpbmluZyBAY29k ZXtlbmR9LiAgRm9yIGV4YW1wbGU6CitAQCAtMjA2MzAsOCArMjA2NDAsNiBAQCBjb250YWluaW5n IEBjb2Rle2VuZH0uICBGb3IgZXhhbXBsZToKICAKICBAc21hbGxleGFtcGxlCiAgKEB2YWx1ZXtH REJQfSkgcHl0aG9uCkBAIC0xMTYyLDcgKzExNTIsNyBAQCBpbmRleCBkNDdhNDg0Li5jODYwYzg3 IDEwMDY0NAogID5wcmludCAyMwogID5lbmQKICAyMwotQEAgLTIwNjc5LDYgKzIwNjg3LDE0IEBA IGluIGEgUHl0aG9uIHNjcmlwdC4gIFRoaXMgY2FuIGJlIGNvbnRyb2xsZWQgdXNpbmcgQGNvZGV7 bWFpbnQgc2V0CitAQCAtMjA2NDQsNiArMjA2NTIsMTQgQEAgaW4gYSBQeXRob24gc2NyaXB0LiAg VGhpcyBjYW4gYmUgY29udHJvbGxlZCB1c2luZyBAY29kZXttYWludCBzZXQKICBweXRob24gcHJp bnQtc3RhY2t9OiBpZiBAY29kZXtvbn0sIHRoZSBkZWZhdWx0LCB0aGVuIFB5dGhvbiBzdGFjawog IHByaW50aW5nIGlzIGVuYWJsZWQ7IGlmIEBjb2Rle29mZn0sIHRoZW4gUHl0aG9uIHN0YWNrIHBy aW50aW5nIGlzCiAgZGlzYWJsZWQuCkBAIC0xMTc3LDcgKzExNjcsNyBAQCBpbmRleCBkNDdhNDg0 Li5jODYwYzg3IDEwMDY0NAogIEBlbmQgdGFibGUKICAKICBJdCBpcyBhbHNvIHBvc3NpYmxlIHRv IGV4ZWN1dGUgYSBQeXRob24gc2NyaXB0IGZyb20gdGhlIEB2YWx1ZXtHREJOfQotQEAgLTIwNzAw LDYgKzIwNzE2LDE0IEBAIGFuZCB0aHVzIGlzIGFsd2F5cyBhdmFpbGFibGUuCitAQCAtMjA2NjUs NiArMjA2ODEsMTQgQEAgYW5kIHRodXMgaXMgYWx3YXlzIGF2YWlsYWJsZS4KICBAY2luZGV4IHB5 dGhvbiBhcGkKICBAY2luZGV4IHByb2dyYW1taW5nIGluIHB5dGhvbgogIApAQCAtMTE5MiwzNiAr MTE4Miw2IEBAIGluZGV4IGQ0N2E0ODQuLmM4NjBjODcgMTAwNjQ0CiAgQGNpbmRleCBweXRob24g c3Rkb3V0CiAgQGNpbmRleCBweXRob24gcGFnaW5hdGlvbgogIEF0IHN0YXJ0dXAsIEB2YWx1ZXtH REJOfSBvdmVycmlkZXMgUHl0aG9uJ3MgQGNvZGV7c3lzLnN0ZG91dH0gYW5kCi1AQCAtMjA3MTEs NyArMjA3MzUsNyBAQCBzaXR1YXRpb24sIGEgUHl0aG9uIEBjb2Rle0tleWJvYXJkSW50ZXJydXB0 fSBleGNlcHRpb24gaXMgdGhyb3duLgotIEBtZW51Ci0gKiBCYXNpYyBQeXRob246OiAgICAgICAg ICAgICAgICBCYXNpYyBQeXRob24gRnVuY3Rpb25zLgotICogRXhjZXB0aW9uIEhhbmRsaW5nOjoK LS0qIFZhbHVlcyBGcm9tIEluZmVyaW9yOjoKLSsqIFZhbHVlcyBGcm9tIEluZmVyaW9yOjoJUHl0 aG9uIHJlcHJlc2VudGF0aW9uIG9mIHZhbHVlcy4KLSAqIFR5cGVzIEluIFB5dGhvbjo6ICAgICAg ICAgICAgIFB5dGhvbiByZXByZXNlbnRhdGlvbiBvZiB0eXBlcy4KLSAqIFByZXR0eSBQcmludGlu ZyBBUEk6OiAgICAgICAgIFByZXR0eS1wcmludGluZyB2YWx1ZXMuCi0gKiBTZWxlY3RpbmcgUHJl dHR5LVByaW50ZXJzOjogICBIb3cgR0RCIGNob29zZXMgYSBwcmV0dHktcHJpbnRlci4KLUBAIC0y MDc3Miw2ICsyMDc5NiwxMiBAQCBSZXR1cm4gYSBzZXF1ZW5jZSBob2xkaW5nIGFsbCBvZiBAdmFs dWV7R0RCTn0ncyBicmVha3BvaW50cy4KLSBAeHJlZntCcmVha3BvaW50cyBJbiBQeXRob259LCBm b3IgbW9yZSBpbmZvcm1hdGlvbi4KLSBAZW5kIGRlZnVuCi0gCi0rQGZpbmRleCBnZGIuYnJlYWtw b2ludHMKLStAZGVmdW4gYnJlYWtwb2ludHMKLStSZXR1cm4gYSBzZXF1ZW5jZSBob2xkaW5nIGFs bCBvZiBAdmFsdWV7R0RCTn0ncyBicmVha3BvaW50cy4KLStAeHJlZntCcmVha3BvaW50cyBJbiBQ eXRob259LCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KLStAZW5kIGRlZnVuCi0rCi0gQGZpbmRleCBn ZGIucGFyYW1ldGVyCi0gQGRlZnVuIHBhcmFtZXRlciBwYXJhbWV0ZXIKLSBSZXR1cm4gdGhlIHZh bHVlIG9mIGEgQHZhbHVle0dEQk59IHBhcmFtZXRlci4gIEB2YXJ7cGFyYW1ldGVyfSBpcyBhCi1A QCAtMjA3ODksNiArMjA4MTksNyBAQCB0eXBlLCBhbmQgcmV0dXJuZWQuCi0gQGRlZnVuIGhpc3Rv cnkgbnVtYmVyCi0gUmV0dXJuIGEgdmFsdWUgZnJvbSBAdmFsdWV7R0RCTn0ncyB2YWx1ZSBoaXN0 b3J5IChAcHhyZWZ7VmFsdWUKLSBIaXN0b3J5fSkuICBAdmFye251bWJlcn0gaW5kaWNhdGVzIHdo aWNoIGhpc3RvcnkgZWxlbWVudCB0byByZXR1cm4uCi0rCi0gSWYgQHZhcntudW1iZXJ9IGlzIG5l Z2F0aXZlLCB0aGVuIEB2YWx1ZXtHREJOfSB3aWxsIHRha2UgaXRzIGFic29sdXRlIHZhbHVlCi0g YW5kIGNvdW50IGJhY2t3YXJkIGZyb20gdGhlIGxhc3QgZWxlbWVudCAoaS5lLiwgdGhlIG1vc3Qg cmVjZW50IGVsZW1lbnQpIHRvCi0gZmluZCB0aGUgdmFsdWUgdG8gcmV0dXJuLiAgSWYgQHZhcntu dW1iZXJ9IGlzIHplcm8sIHRoZW4gQHZhbHVle0dEQk59IHdpbGwKIGRpZmYgLS1naXQgYS9nZGIv ZG9jL2dkYmludC50ZXhpbmZvIGIvZ2RiL2RvYy9nZGJpbnQudGV4aW5mbwogaW5kZXggODE0OWNi OS4uNDgxMjU1OCAxMDA2NDQKIC0tLSBhL2dkYi9kb2MvZ2RiaW50LnRleGluZm8KQEAgLTEzNjgs MTAgKzEzMjgsMTAgQEAgaW5kZXggZDE2Yzg2NS4uZDhkMjRkOSAxMDA2NDQKICBUaGlzIG9ic2Vy dmVyIGlzIHVzZWQgZm9yIGludGVybmFsIHRlc3RpbmcuICBEbyBub3QgdXNlLiAgCiAgU2VlIHRl c3RzdWl0ZS9nZGIuZ2RiL29ic2VydmVyLmV4cC4KIGRpZmYgLS1naXQgYS9nZGIvZHdhcmYyZXhw ci5jIGIvZ2RiL2R3YXJmMmV4cHIuYwotaW5kZXggYWE4YzhjZi4uNTM3YjY5YiAxMDA2NDQKK2lu ZGV4IGFmZTZkZGUuLmQzNjRiMTQgMTAwNjQ0CiAtLS0gYS9nZGIvZHdhcmYyZXhwci5jCiArKysg Yi9nZGIvZHdhcmYyZXhwci5jCi1AQCAtOTA0LDYgKzkwNCwxMyBAQCBleGVjdXRlX3N0YWNrX29w IChzdHJ1Y3QgZHdhcmZfZXhwcl9jb250ZXh0ICpjdHgsCitAQCAtOTA1LDYgKzkwNSwxMyBAQCBl eGVjdXRlX3N0YWNrX29wIChzdHJ1Y3QgZHdhcmZfZXhwcl9jb250ZXh0ICpjdHgsCiAgCSAgY3R4 LT5kd2FyZl9jYWxsIChjdHgsIHJlc3VsdCk7CiAgCSAgZ290byBub19wdXNoOwogIApAQCAtMTQw Nyw3ICsxMzY3LDcgQEAgaW5kZXggMzg1OGRjOC4uYTE3MjU4NSAxMDA2NDQKICAgIC8qIFRoZSBj dXJyZW50IGRlcHRoIG9mIGR3YXJmIGV4cHJlc3Npb24gcmVjdXJzaW9uLCB2aWEgRFdfT1BfY2Fs bCosCiAgICAgICBEV19PUF9mYnJlZywgRFdfT1BfcHVzaF9vYmplY3RfYWRkcmVzcywgZXRjLiwg YW5kIHRoZSBtYXhpbXVtCiBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMmxvYy5jIGIvZ2RiL2R3YXJm MmxvYy5jCi1pbmRleCA0ZWMyNTQ5Li42MGMzOGU5IDEwMDY0NAoraW5kZXggZDk1ODBjNi4uNTU5 ZTBiNSAxMDA2NDQKIC0tLSBhL2dkYi9kd2FyZjJsb2MuYwogKysrIGIvZ2RiL2R3YXJmMmxvYy5j CiBAQCAtMTM0LDYgKzEzNCw5IEBAIHN0cnVjdCBkd2FyZl9leHByX2JhdG9uCkBAIC0xNjc1LDEw ICsxNjM1LDEwIEBAIGluZGV4IDRlYzI1NDkuLjYwYzM4ZTkgMTAwNjQ0CiArCSAgICAgICBEV19P UF9wdXNoX29iamVjdF9hZGRyZXNzLiAgKi8KICsJICAgIG9iamVjdF9hZGRyZXNzX3NldCAoYWRk cmVzcyk7CiArCi0gCSAgICByZXR2YWwgPSBhbGxvY2F0ZV92YWx1ZSAodHlwZSk7CisgCSAgICBy ZXR2YWwgPSBhbGxvY2F0ZV92YWx1ZV9sYXp5ICh0eXBlKTsKICAJICAgIFZBTFVFX0xWQUwgKHJl dHZhbCkgPSBsdmFsX21lbW9yeTsKLSAJICAgIHNldF92YWx1ZV9sYXp5IChyZXR2YWwsIDEpOwot QEAgLTI4MjIsMTEgKzI5ODAsNTEgQEAgbG9jbGlzdF90cmFjZXBvaW50X3Zhcl9yZWYgKHN0cnVj dCBzeW1ib2wgKnN5bWJvbCwgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCisgCSAgICBpZiAoaW5f c3RhY2tfbWVtb3J5KQorQEAgLTI4MjEsMTEgKzI5NzksNTEgQEAgbG9jbGlzdF90cmFjZXBvaW50 X3Zhcl9yZWYgKHN0cnVjdCBzeW1ib2wgKnN5bWJvbCwgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gs CiAgCQkJIGRsYmF0b24tPnBlcl9jdSk7CiAgfQogIApAQCAtMTc1Miw3ICsxNzEyLDcgQEAgaW5k ZXggZWU1MjUwNi4uNmE3N2MzZiAxMDA2NDQKICAKICAjZW5kaWYgLyogZHdhcmYybG9jLmggKi8K IGRpZmYgLS1naXQgYS9nZGIvZHdhcmYycmVhZC5jIGIvZ2RiL2R3YXJmMnJlYWQuYwotaW5kZXgg MjAxNTEzZC4uZjQ5YTE0OSAxMDA2NDQKK2luZGV4IDAzYmQzMzEuLjBkNGQ0ZjkgMTAwNjQ0CiAt LS0gYS9nZGIvZHdhcmYycmVhZC5jCiArKysgYi9nZGIvZHdhcmYycmVhZC5jCiBAQCAtMTIxMSw2 ICsxMjExLDkgQEAgc3RhdGljIHZvaWQgZmlsbF9pbl9sb2NsaXN0X2JhdG9uIChzdHJ1Y3QgZHdh cmYyX2N1ICpjdSwKQEAgLTE4NDcsNyArMTgwNyw3IEBAIGluZGV4IDIwMTUxM2QuLmY0OWExNDkg MTAwNjQ0CiAgCiAgICAvKiBVbmRlcnN0YW5kIER3YXJmMiBzdXBwb3J0IGZvciB2ZWN0b3IgdHlw ZXMgKGxpa2UgdGhleSBvY2N1ciBvbgogICAgICAgdGhlIFBvd2VyUEMgdy8gQWx0aVZlYykuICBH Y2MganVzdCBhZGRzIGFub3RoZXIgYXR0cmlidXRlIHRvIHRoZQotQEAgLTc4MzUsMjkgKzc4NjEs MTE0IEBAIHJlYWRfdGFnX3N0cmluZ190eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0 IGR3YXJmMl9jdSAqY3UpCitAQCAtNzgzMywyOSArNzg1OSwxMTQgQEAgcmVhZF90YWdfc3RyaW5n X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHN0 cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X29iamZpbGVfYXJjaCAob2JqZmlsZSk7CiAgICBz dHJ1Y3QgdHlwZSAqdHlwZSwgKnJhbmdlX3R5cGUsICppbmRleF90eXBlLCAqY2hhcl90eXBlOwog ICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKQEAgLTE5MzksNyArMTg5OSw3IEBAIGluZGV4IDIw MTUxM2QuLmY0OWExNDkgMTAwNjQ0CiAgICAgIH0KICAgIGVsc2UKICAgICAgewotLSAgICAgIC8q IGNoZWNrIGZvciB0aGUgRFdfQVRfYnl0ZV9zaXplIGF0dHJpYnV0ZSAqLworLSAgICAgIC8qIENo ZWNrIGZvciB0aGUgRFdfQVRfYnl0ZV9zaXplIGF0dHJpYnV0ZS4gICovCiArICAgICAgaWYgKGF0 dHIgJiYgYXR0cl9mb3JtX2lzX2NvbnN0YW50IChhdHRyKSkKICsJewogKwkgIC8qIFdlIGN1cnJl bnRseSBkbyBub3Qgc3VwcG9ydCBhIGNvbnN0YW50IGFkZHJlc3Mgd2hlcmUgdGhlIGxvY2F0aW9u CkBAIC0xOTc2LDcgKzE5MzYsNyBAQCBpbmRleCAyMDE1MTNkLi5mNDlhMTQ5IDEwMDY0NAogICAg Y2hhcl90eXBlID0gbGFuZ3VhZ2Vfc3RyaW5nX2NoYXJfdHlwZSAoY3UtPmxhbmd1YWdlX2RlZm4s IGdkYmFyY2gpOwogICAgdHlwZSA9IGNyZWF0ZV9zdHJpbmdfdHlwZSAoTlVMTCwgY2hhcl90eXBl LCByYW5nZV90eXBlKTsKICAKLUBAIC04MTM5LDggKzgyNTAsNyBAQCByZWFkX3N1YnJhbmdlX3R5 cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC04MTM2 LDggKzgyNDcsNyBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBz dHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHN0cnVjdCB0eXBlICpiYXNlX3R5cGU7CiAgICBzdHJ1 Y3QgdHlwZSAqcmFuZ2VfdHlwZTsKICAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHI7CkBAIC0xOTg2 LDcgKzE5NDYsNyBAQCBpbmRleCAyMDE1MTNkLi5mNDlhMTQ5IDEwMDY0NAogICAgY2hhciAqbmFt ZTsKICAgIExPTkdFU1QgbmVnYXRpdmVfbWFzazsKICAKLUBAIC04MTUzLDQ4ICs4MjYzLDEyNSBA QCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYy X2N1ICpjdSkKK0BAIC04MTUwLDUzICs4MjYwLDEyNiBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0 cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIGlmIChyYW5nZV90 eXBlKQogICAgICByZXR1cm4gcmFuZ2VfdHlwZTsKICAKQEAgLTE5OTcsMjEgKzE5NTcsMjUgQEAg aW5kZXggMjAxNTEzZC4uZjQ5YTE0OSAxMDA2NDQKIC0gICAgfQogKyAgLyogTE9XX0JPVU5EIGFu ZCBISUdIX0JPVU5EIGFyZSBzZXQgZm9yIHJlYWwgYmVsb3cuICAqLwogKyAgcmFuZ2VfdHlwZSA9 IGNyZWF0ZV9yYW5nZV90eXBlIChOVUxMLCBiYXNlX3R5cGUsIDAsIC0xKTsKLSsKLSsgIG5lZ2F0 aXZlX21hc2sgPSAKLSsgICAgKExPTkdFU1QpIC0xIDw8IChUWVBFX0xFTkdUSCAoYmFzZV90eXBl KSAqIFRBUkdFVF9DSEFSX0JJVCAtIDEpOwotKwotKyAgLyogRXhjbHVkZSBsYW5ndWFnZV9hZGEg ZnJvbSBhbnkgVFlQRV9EWU5BTUlDIGNvbnN0cnVjdHMgYmVsb3cuICBHREIgQWRhCi0rICAgICBz dXBwb3J0cyBpbXBsZW1lbnRzIHRoZSBkeW5hbWljIGJvdW5kcyBpbiBhIG5vbi1EV0FSRiB3YXkg YW5kIHRoZQotKyAgICAgZXhpc3RpbmcgRFdBUkYgZHluYW1pYyBib3VuZHMgYXJlIGludmFsaWQs IGxlYWRpbmcgdG8gbWVtb3J5IGFjY2VzcwotKyAgICAgZXJyb3JzLiAgKi8KKysgIFRZUEVfVU5T SUdORUQgKHJhbmdlX3R5cGUpID0gMDsKICAKIC0gIC8qIEZJWE1FOiBGb3IgdmFyaWFibGUgc2l6 ZWQgYXJyYXlzIGVpdGhlciBvZiB0aGVzZSBjb3VsZCBiZQogLSAgICAgYSB2YXJpYWJsZSByYXRo ZXIgdGhhbiBhIGNvbnN0YW50IHZhbHVlLiAgV2UnbGwgYWxsb3cgaXQsCiAtICAgICBidXQgd2Ug ZG9uJ3Qga25vdyBob3cgdG8gaGFuZGxlIGl0LiAgKi8KLSAgIGF0dHIgPSBkd2FyZjJfYXR0ciAo ZGllLCBEV19BVF9sb3dlcl9ib3VuZCwgY3UpOworLSAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUs IERXX0FUX2xvd2VyX2JvdW5kLCBjdSk7CiAtICBpZiAoYXR0cikKIC0gICAgbG93ID0gZHdhcmYy X2dldF9hdHRyX2NvbnN0YW50X3ZhbHVlIChhdHRyLCAwKTsKKysgIG5lZ2F0aXZlX21hc2sgPSAK KysgICAgKExPTkdFU1QpIC0xIDw8IChUWVBFX0xFTkdUSCAoYmFzZV90eXBlKSAqIFRBUkdFVF9D SEFSX0JJVCAtIDEpOworIAorLSAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX3VwcGVy X2JvdW5kLCBjdSk7CistICBpZiAoYXR0cikKKysgIC8qIEV4Y2x1ZGUgbGFuZ3VhZ2VfYWRhIGZy b20gYW55IFRZUEVfRFlOQU1JQyBjb25zdHJ1Y3RzIGJlbG93LiAgR0RCIEFkYQorKyAgICAgc3Vw cG9ydHMgaW1wbGVtZW50cyB0aGUgZHluYW1pYyBib3VuZHMgaW4gYSBub24tRFdBUkYgd2F5IGFu ZCB0aGUKKysgICAgIGV4aXN0aW5nIERXQVJGIGR5bmFtaWMgYm91bmRzIGFyZSBpbnZhbGlkLCBs ZWFkaW5nIHRvIG1lbW9yeSBhY2Nlc3MKKysgICAgIGVycm9ycy4gICovCisrCisrICBhdHRyID0g ZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfbG93ZXJfYm91bmQsIGN1KTsKICsgIGlmIChhdHRyICYm IGF0dHJfZm9ybV9pc19ibG9jayAoYXR0cikgJiYgY3UtPmxhbmd1YWdlICE9IGxhbmd1YWdlX2Fk YSkKICsgICAgewogKyAgICAgIFRZUEVfUkFOR0VfREFUQSAocmFuZ2VfdHlwZSktPmxvdy5raW5k ID0gUkFOR0VfQk9VTkRfS0lORF9EV0FSRl9CTE9DSzsKQEAgLTIwNDEsMTAgKzIwMDUsMjYgQEAg aW5kZXggMjAxNTEzZC4uZjQ5YTE0OSAxMDA2NDQKICsgICAgICBsb3cgPSAwOwogKyAgICB9CiAr ICBlbHNlCi0rICAgIHsKKyAgICAgeworLSAgICAgIGlmIChhdHRyLT5mb3JtID09IERXX0ZPUk1f YmxvY2sxIHx8IGlzX3JlZl9hdHRyIChhdHRyKSkKKy0gICAgICAgIHsKKy0gICAgICAgICAgLyog R0NDIGVuY29kZXMgYXJyYXlzIHdpdGggdW5zcGVjaWZpZWQgb3IgZHluYW1pYyBsZW5ndGgKKy0g ICAgICAgICAgICAgd2l0aCBhIERXX0ZPUk1fYmxvY2sxIGF0dHJpYnV0ZSBvciBhIHJlZmVyZW5j ZSBhdHRyaWJ1dGUuCistICAgICAgICAgICAgIEZJWE1FOiBHREIgZG9lcyBub3QgeWV0IGtub3cg aG93IHRvIGhhbmRsZSBkeW5hbWljCistICAgICAgICAgICAgIGFycmF5cyBwcm9wZXJseSwgdHJl YXQgdGhlbSBhcyBhcnJheXMgd2l0aCB1bnNwZWNpZmllZAorLSAgICAgICAgICAgICBsZW5ndGgg Zm9yIG5vdy4KKy0KKy0gICAgICAgICAgICAgRklYTUU6IGppbWIvMjAwMy0wOS0yMjogR0RCIGRv ZXMgbm90IHJlYWxseSBrbm93CistICAgICAgICAgICAgIGhvdyB0byBoYW5kbGUgYXJyYXlzIG9m IHVuc3BlY2lmaWVkIGxlbmd0aAorLSAgICAgICAgICAgICBlaXRoZXI7IHdlIGp1c3QgcmVwcmVz ZW50IHRoZW0gYXMgemVyby1sZW5ndGgKKy0gICAgICAgICAgICAgYXJyYXlzLiAgQ2hvb3NlIGFu IGFwcHJvcHJpYXRlIHVwcGVyIGJvdW5kIGdpdmVuCistICAgICAgICAgICAgIHRoZSBsb3dlciBi b3VuZCB3ZSd2ZSBjb21wdXRlZCBhYm92ZS4gICovCistICAgICAgICAgIGhpZ2ggPSBsb3cgLSAx OworLSAgICAgICAgfQogKyAgICAgIGlmIChhdHRyICYmIGF0dHJfZm9ybV9pc19jb25zdGFudCAo YXR0cikpCiArCWxvdyA9IGR3YXJmMl9nZXRfYXR0cl9jb25zdGFudF92YWx1ZSAoYXR0ciwgMCk7 Ci0rICAgICAgZWxzZQorICAgICAgIGVsc2UKKy0gICAgICAgIGhpZ2ggPSBkd2FyZjJfZ2V0X2F0 dHJfY29uc3RhbnRfdmFsdWUgKGF0dHIsIDEpOwogKwl7CiArCSAgaWYgKGN1LT5sYW5ndWFnZSA9 PSBsYW5ndWFnZV9mb3J0cmFuKQogKwkgICAgewpAQCAtMjA2MywzNyArMjA0MywyNCBAQCBpbmRl eCAyMDE1MTNkLi5mNDlhMTQ5IDEwMDY0NAogKyAgICAgIFRZUEVfTE9XX0JPVU5EIChyYW5nZV90 eXBlKSA9IGxvdzsKICsgICAgICBpZiAobG93ID49IDApCiArCVRZUEVfVU5TSUdORUQgKHJhbmdl X3R5cGUpID0gMTsKLSsgICAgfQotIAotICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FU X3VwcGVyX2JvdW5kLCBjdSk7Ci0tICBpZiAoYXR0cikKKyAgICAgfQorLSAgZWxzZQorKworKyAg YXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX3VwcGVyX2JvdW5kLCBjdSk7CiArICBpZiAo IWF0dHIgfHwgKCFhdHRyX2Zvcm1faXNfYmxvY2sgKGF0dHIpICYmICFhdHRyX2Zvcm1faXNfY29u c3RhbnQgKGF0dHIpCiArCQkmJiAhaXNfcmVmX2F0dHIgKGF0dHIpKSkKICAgICAgewotLSAgICAg IGlmIChhdHRyLT5mb3JtID09IERXX0ZPUk1fYmxvY2sxIHx8IGlzX3JlZl9hdHRyIChhdHRyKSkK LS0gICAgICAgIHsKLS0gICAgICAgICAgLyogR0NDIGVuY29kZXMgYXJyYXlzIHdpdGggdW5zcGVj aWZpZWQgb3IgZHluYW1pYyBsZW5ndGgKLS0gICAgICAgICAgICAgd2l0aCBhIERXX0ZPUk1fYmxv Y2sxIGF0dHJpYnV0ZSBvciBhIHJlZmVyZW5jZSBhdHRyaWJ1dGUuCi0tICAgICAgICAgICAgIEZJ WE1FOiBHREIgZG9lcyBub3QgeWV0IGtub3cgaG93IHRvIGhhbmRsZSBkeW5hbWljCi0tICAgICAg ICAgICAgIGFycmF5cyBwcm9wZXJseSwgdHJlYXQgdGhlbSBhcyBhcnJheXMgd2l0aCB1bnNwZWNp ZmllZAotLSAgICAgICAgICAgICBsZW5ndGggZm9yIG5vdy4KLS0KLS0gICAgICAgICAgICAgRklY TUU6IGppbWIvMjAwMy0wOS0yMjogR0RCIGRvZXMgbm90IHJlYWxseSBrbm93Ci0tICAgICAgICAg ICAgIGhvdyB0byBoYW5kbGUgYXJyYXlzIG9mIHVuc3BlY2lmaWVkIGxlbmd0aAotLSAgICAgICAg ICAgICBlaXRoZXI7IHdlIGp1c3QgcmVwcmVzZW50IHRoZW0gYXMgemVyby1sZW5ndGgKLS0gICAg ICAgICAgICAgYXJyYXlzLiAgQ2hvb3NlIGFuIGFwcHJvcHJpYXRlIHVwcGVyIGJvdW5kIGdpdmVu Ci0tICAgICAgICAgICAgIHRoZSBsb3dlciBib3VuZCB3ZSd2ZSBjb21wdXRlZCBhYm92ZS4gICov Ci0tICAgICAgICAgIGhpZ2ggPSBsb3cgLSAxOwotLSAgICAgICAgfQotLSAgICAgIGVsc2UKLS0g ICAgICAgIGhpZ2ggPSBkd2FyZjJfZ2V0X2F0dHJfY29uc3RhbnRfdmFsdWUgKGF0dHIsIDEpOwot KyAgICAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9jb3VudCwgY3UpOworICAgICAg IGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9jb3VudCwgY3UpOworLSAgICAgIGlmIChh dHRyKQorLQl7CistCSAgaW50IGNvdW50ID0gZHdhcmYyX2dldF9hdHRyX2NvbnN0YW50X3ZhbHVl IChhdHRyLCAxKTsKKy0JICBoaWdoID0gbG93ICsgY291bnQgLSAxOwogKyAgICAgIC8qIEl0IGRv ZXMgbm90IGh1cnQgYnV0IGl0IGlzIG5lZWRsZXNzbHkgaW5lZmZlY3RpdmUgaW4gY2hlY2tfdHlw ZWRlZi4gICovCiArICAgICAgaWYgKGF0dHIgJiYgKGF0dHJfZm9ybV9pc19ibG9jayAoYXR0cikg fHwgYXR0cl9mb3JtX2lzX2NvbnN0YW50IChhdHRyKSkpCiArICAgICAgCXsKICsJICBUWVBFX1JB TkdFX0hJR0hfQk9VTkRfSVNfQ09VTlQgKHJhbmdlX3R5cGUpID0gMTsKICsJICBUWVBFX0RZTkFN SUMgKHJhbmdlX3R5cGUpID0gMTsKLSsJfQorIAl9CiArICAgICAgLyogUGFzcyBpdCBub3cgYXMg dGhlIHJlZ3VsYXIgRFdfQVRfdXBwZXJfYm91bmQuICAqLwogKyAgICB9CiArCkBAIC0yMTIwLDIz ICsyMDg3LDIwIEBAIGluZGV4IDIwMTUxM2QuLmY0OWExNDkgMTAwNjQ0CiArICAgICAgVFlQRV9S QU5HRV9EQVRBIChyYW5nZV90eXBlKS0+aGlnaC51LmR3YXJmX2xvY2xpc3QudHlwZQogKyAgICAg ICAgPSBkaWVfdHlwZSAodGFyZ2V0X2RpZSwgdGFyZ2V0X2N1KTsKICsgICAgICBUWVBFX0RZTkFN SUMgKHJhbmdlX3R5cGUpID0gMTsKLSAgICAgfQotICAgZWxzZQotICAgICB7Ci0tICAgICAgYXR0 ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2NvdW50LCBjdSk7Ci0tICAgICAgaWYgKGF0dHIp CisrICAgIH0KKysgIGVsc2UKKysgICAgewogKyAgICAgIExPTkdFU1QgaGlnaDsKICsKICsgICAg ICBpZiAoYXR0ciAmJiBhdHRyX2Zvcm1faXNfY29uc3RhbnQgKGF0dHIpKQogKwloaWdoID0gZHdh cmYyX2dldF9hdHRyX2NvbnN0YW50X3ZhbHVlIChhdHRyLCAwKTsKLSsgICAgICBlbHNlCisgICAg ICAgZWxzZQogIAl7Ci0tCSAgaW50IGNvdW50ID0gZHdhcmYyX2dldF9hdHRyX2NvbnN0YW50X3Zh bHVlIChhdHRyLCAxKTsKLS0JICBoaWdoID0gbG93ICsgY291bnQgLSAxOworLQkgIC8qIFVuc3Bl Y2lmaWVkIGFycmF5IGxlbmd0aC4gICovCiArCSAgLyogQWRhIGV4cGVjdHMgYW4gZW1wdHkgYXJy YXkgb24gbm8gYm91bmRhcnkgYXR0cmlidXRlcy4gICovCiArCSAgaWYgKGN1LT5sYW5ndWFnZSAh PSBsYW5ndWFnZV9hZGEpCiArCSAgICBUWVBFX0hJR0hfQk9VTkRfVU5ERUZJTkVEIChyYW5nZV90 eXBlKSA9IDE7Ci0rCSAgaGlnaCA9IGxvdyAtIDE7CisgCSAgaGlnaCA9IGxvdyAtIDE7CiAgCX0K ICsgICAgICBpZiAoIVRZUEVfVU5TSUdORUQgKGJhc2VfdHlwZSkgJiYgKGhpZ2ggJiBuZWdhdGl2 ZV9tYXNrKSkKICsJaGlnaCB8PSBuZWdhdGl2ZV9tYXNrOwpAQCAtMjE0NCw3ICsyMTA4LDcgQEAg aW5kZXggMjAxNTEzZC4uZjQ5YTE0OSAxMDA2NDQKICAgICAgfQogIAogICAgLyogRHdhcmYtMiBz cGVjaWZpY2F0aW9ucyBleHBsaWNpdGx5IGFsbG93cyB0byBjcmVhdGUgc3VicmFuZ2UgdHlwZXMK LUBAIC04MjM2LDIwICs4NDIzLDQxIEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9p bmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTgyMzcsMjQgKzg0MjAsNDEgQEAg cmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9j dSAqY3UpCiAgCX0KICAgICAgfQogIApAQCAtMjE1NCw2ICsyMTE4LDggQEAgaW5kZXggMjAxNTEz ZC4uZjQ5YTE0OSAxMDA2NDQKIC0gICAgbG93IHw9IG5lZ2F0aXZlX21hc2s7CiAtICBpZiAoIVRZ UEVfVU5TSUdORUQgKGJhc2VfdHlwZSkgJiYgKGhpZ2ggJiBuZWdhdGl2ZV9tYXNrKSkKIC0gICAg aGlnaCB8PSBuZWdhdGl2ZV9tYXNrOworLQorLSAgcmFuZ2VfdHlwZSA9IGNyZWF0ZV9yYW5nZV90 eXBlIChOVUxMLCBiYXNlX3R5cGUsIGxvdywgaGlnaCk7CiArICAvKiBEV19BVF9iaXRfc3RyaWRl IGlzIGN1cnJlbnRseSB1bnN1cHBvcnRlZCBhcyB3ZSBjb3VudCBpbiBieXRlcy4gICovCiArICBh dHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfYnl0ZV9zdHJpZGUsIGN1KTsKICsgIGlmIChh dHRyICYmIGF0dHJfZm9ybV9pc19ibG9jayAoYXR0cikgJiYgY3UtPmxhbmd1YWdlICE9IGxhbmd1 YWdlX2FkYSkKQEAgLTIxNzAsMTYgKzIxMzYsMTggQEAgaW5kZXggMjAxNTEzZC4uZjQ5YTE0OSAx MDA2NDQKICsgICAgICBzdHJ1Y3QgZHdhcmYyX2N1ICp0YXJnZXRfY3UgPSBjdTsKICsgICAgICBz dHJ1Y3QgYXR0cmlidXRlICp0YXJnZXRfbG9jX2F0dHI7CiAgCi0tICByYW5nZV90eXBlID0gY3Jl YXRlX3JhbmdlX3R5cGUgKE5VTEwsIGJhc2VfdHlwZSwgbG93LCBoaWdoKTsKLSsgICAgICB0YXJn ZXRfZGllID0gZm9sbG93X2RpZV9yZWZfb3Jfc2lnIChkaWUsIGF0dHIsICZ0YXJnZXRfY3UpOwot KyAgICAgIGdkYl9hc3NlcnQgKHRhcmdldF9jdS0+b2JqZmlsZSA9PSBjdS0+b2JqZmlsZSk7Ci0r ICAgICAgdGFyZ2V0X2xvY19hdHRyID0gZHdhcmYyX2F0dHIgKHRhcmdldF9kaWUsIERXX0FUX2xv Y2F0aW9uLCB0YXJnZXRfY3UpOwotIAogLSAgLyogTWFyayBhcnJheXMgd2l0aCBkeW5hbWljIGxl bmd0aCBhdCBsZWFzdCBhcyBhbiBhcnJheSBvZiB1bnNwZWNpZmllZAogLSAgICAgbGVuZ3RoLiAg R0RCIGNvdWxkIGNoZWNrIHRoZSBib3VuZGFyeSBidXQgYmVmb3JlIGl0IGdldHMgaW1wbGVtZW50 ZWQgYXQKIC0gICAgIGxlYXN0IGFsbG93IGFjY2Vzc2luZyB0aGUgYXJyYXkgZWxlbWVudHMuICAq LwogLSAgaWYgKGF0dHIgJiYgYXR0ci0+Zm9ybSA9PSBEV19GT1JNX2Jsb2NrMSkKIC0gICAgVFlQ RV9ISUdIX0JPVU5EX1VOREVGSU5FRCAocmFuZ2VfdHlwZSkgPSAxOworKyAgICAgIHRhcmdldF9k aWUgPSBmb2xsb3dfZGllX3JlZl9vcl9zaWcgKGRpZSwgYXR0ciwgJnRhcmdldF9jdSk7CisrICAg ICAgZ2RiX2Fzc2VydCAodGFyZ2V0X2N1LT5vYmpmaWxlID09IGN1LT5vYmpmaWxlKTsKKysgICAg ICB0YXJnZXRfbG9jX2F0dHIgPSBkd2FyZjJfYXR0ciAodGFyZ2V0X2RpZSwgRFdfQVRfbG9jYXRp b24sIHRhcmdldF9jdSk7CisgCistICAvKiBBZGEgZXhwZWN0cyBhbiBlbXB0eSBhcnJheSBvbiBu byBib3VuZGFyeSBhdHRyaWJ1dGVzLiAgKi8KKy0gIGlmIChhdHRyID09IE5VTEwgJiYgY3UtPmxh bmd1YWdlICE9IGxhbmd1YWdlX2FkYSkKKy0gICAgVFlQRV9ISUdIX0JPVU5EX1VOREVGSU5FRCAo cmFuZ2VfdHlwZSkgPSAxOwogKyAgICAgIFRZUEVfUkFOR0VfREFUQSAocmFuZ2VfdHlwZSktPmJ5 dGVfc3RyaWRlLmtpbmQKICsgICAgICAgID0gUkFOR0VfQk9VTkRfS0lORF9EV0FSRl9MT0NMSVNU OwogKyAgICAgIFRZUEVfUkFOR0VfREFUQSAocmFuZ2VfdHlwZSktPmJ5dGVfc3RyaWRlLnUuZHdh cmZfbG9jbGlzdC5sb2NsaXN0CkBAIC0yMTk4LDcgKzIxNjYsNyBAQCBpbmRleCAyMDE1MTNkLi5m NDlhMTQ5IDEwMDY0NAogIAogICAgbmFtZSA9IGR3YXJmMl9uYW1lIChkaWUsIGN1KTsKICAgIGlm IChuYW1lKQotQEAgLTEwNzI1LDEwICsxMDkzMywxMiBAQCB2YXJfZGVjb2RlX2xvY2F0aW9uIChz dHJ1Y3QgYXR0cmlidXRlICphdHRyLCBzdHJ1Y3Qgc3ltYm9sICpzeW0sCitAQCAtMTA3MzEsMTAg KzEwOTMxLDEyIEBAIHZhcl9kZWNvZGVfbG9jYXRpb24gKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIs IHN0cnVjdCBzeW1ib2wgKnN5bSwKICAgICAgIChpLmUuIHdoZW4gdGhlIHZhbHVlIG9mIGEgcmVn aXN0ZXIgb3IgbWVtb3J5IGxvY2F0aW9uIGlzCiAgICAgICByZWZlcmVuY2VkLCBvciBhIHRocmVh ZC1sb2NhbCBibG9jaywgZXRjLikuICBUaGVuIGFnYWluLCBpdCBtaWdodAogICAgICAgbm90IGJl IHdvcnRod2hpbGUuICBJJ20gYXNzdW1pbmcgdGhhdCBpdCBpc24ndCB1bmxlc3MgcGVyZm9ybWFu Y2UKQEAgLTIyMTMsNyArMjE4MSw3IEBAIGluZGV4IDIwMTUxM2QuLmY0OWExNDkgMTAwNjQ0CiAg fQogIAogIC8qIEdpdmVuIGEgcG9pbnRlciB0byBhIERXQVJGIGluZm9ybWF0aW9uIGVudHJ5LCBm aWd1cmUgb3V0IGlmIHdlIG5lZWQKLUBAIC0xMDc2Niw2ICsxMDk3Niw4IEBAIG5ld19zeW1ib2xf ZnVsbCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdh cmYyX2N1ICpjdSwKK0BAIC0xMDc3Miw2ICsxMDk3NCw4IEBAIG5ld19zeW1ib2xfZnVsbCAoc3Ry dWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSwKICAgICAgICBlbHNlCiAgCXN5bSA9IE9CU1RBQ0tfWkFMTE9DICgmb2JqZmlsZS0+b2JqZmls ZV9vYnN0YWNrLCBzdHJ1Y3Qgc3ltYm9sKTsKICAgICAgICBPQkpTVEFUIChvYmpmaWxlLCBuX3N5 bXMrKyk7CkBAIC0yMjIyLDcgKzIxOTAsNyBAQCBpbmRleCAyMDE1MTNkLi5mNDlhMTQ5IDEwMDY0 NAogIAogICAgICAgIC8qIENhY2hlIHRoaXMgc3ltYm9sJ3MgbmFtZSBhbmQgdGhlIG5hbWUncyBk ZW1hbmdsZWQgZm9ybSAoaWYgYW55KS4gICovCiAgICAgICAgU1lNQk9MX1NFVF9MQU5HVUFHRSAo c3ltLCBjdS0+bGFuZ3VhZ2UpOwotQEAgLTExNTM4LDYgKzExNzUwLDkgQEAgcmVhZF90eXBlX2Rp ZV8xIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMTE1 NDQsNiArMTE3NDgsOSBAQCByZWFkX3R5cGVfZGllXzEgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBz dHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgICAgICBicmVhazsKICAgICAgfQogIApAQCAtMjIzMiw3 ICsyMjAwLDcgQEAgaW5kZXggMjAxNTEzZC4uZjQ5YTE0OSAxMDA2NDQKICAgIHJldHVybiB0aGlz X3R5cGU7CiAgfQogIAotQEAgLTE0MzUwLDYwICsxNDU2NSw5OCBAQCBmaWxsX2luX2xvY2xpc3Rf YmF0b24gKHN0cnVjdCBkd2FyZjJfY3UgKmN1LAorQEAgLTE0MzU2LDYwICsxNDU2Myw5OCBAQCBm aWxsX2luX2xvY2xpc3RfYmF0b24gKHN0cnVjdCBkd2FyZjJfY3UgKmN1LAogICAgYmF0b24tPmJh c2VfYWRkcmVzcyA9IGN1LT5iYXNlX2FkZHJlc3M7CiAgfQogIApAQCAtMjI1NSwxMyArMjIyMywx NCBAQCBpbmRleCAyMDE1MTNkLi5mNDlhMTQ5IDEwMDY0NAogKyAgc3RydWN0IGR3YXJmMl9sb2Nl eHByX2JhdG9uICpiYXRvbjsKICsKICsgIGdkYl9hc3NlcnQgKGF0dHJfZm9ybV9pc19ibG9jayAo YXR0cikpOwotKworIAorLSAgICAgIGJhdG9uID0gb2JzdGFja19hbGxvYyAoJmN1LT5vYmpmaWxl LT5vYmpmaWxlX29ic3RhY2ssCistCQkJICAgICBzaXplb2YgKHN0cnVjdCBkd2FyZjJfbG9jbGlz dF9iYXRvbikpOwogKyAgYmF0b24gPSBvYnN0YWNrX2FsbG9jICgmY3UtPm9iamZpbGUtPm9iamZp bGVfb2JzdGFjaywgc2l6ZW9mICgqYmF0b24pKTsKICsgIGJhdG9uLT5wZXJfY3UgPSBjdS0+cGVy X2N1OwogKyAgZ2RiX2Fzc2VydCAoYmF0b24tPnBlcl9jdSk7CiAgCi0tICAgICAgYmF0b24gPSBv YnN0YWNrX2FsbG9jICgmY3UtPm9iamZpbGUtPm9iamZpbGVfb2JzdGFjaywKLS0JCQkgICAgIHNp emVvZiAoc3RydWN0IGR3YXJmMl9sb2NsaXN0X2JhdG9uKSk7CistICAgICAgZmlsbF9pbl9sb2Ns aXN0X2JhdG9uIChjdSwgYmF0b24sIGF0dHIpOwogKyAgLyogTm90ZSB0aGF0IHdlJ3JlIGp1c3Qg Y29weWluZyB0aGUgYmxvY2sncyBkYXRhIHBvaW50ZXIKICsgICAgIGhlcmUsIG5vdCB0aGUgYWN0 dWFsIGRhdGEuICBXZSdyZSBzdGlsbCBwb2ludGluZyBpbnRvIHRoZQogKyAgICAgaW5mb19idWZm ZXIgZm9yIFNZTSdzIG9iamZpbGU7IHJpZ2h0IG5vdyB3ZSBuZXZlciByZWxlYXNlCkBAIC0yMjcx LDE5ICsyMjQwLDE4IEBAIGluZGV4IDIwMTUxM2QuLmY0OWExNDkgMTAwNjQ0CiArICBiYXRvbi0+ ZGF0YSA9IERXX0JMT0NLIChhdHRyKS0+ZGF0YTsKICsgIGdkYl9hc3NlcnQgKGJhdG9uLT5zaXpl ID09IDAgfHwgYmF0b24tPmRhdGEgIT0gTlVMTCk7CiAgCi0tICAgICAgZmlsbF9pbl9sb2NsaXN0 X2JhdG9uIChjdSwgYmF0b24sIGF0dHIpOwotKyAgcmV0dXJuIGJhdG9uOwotK30KLSAKIC0gICAg ICBpZiAoY3UtPmJhc2Vfa25vd24gPT0gMCkKIC0JY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFp bnRzLAogLQkJICAgXygiTG9jYXRpb24gbGlzdCB1c2VkIHdpdGhvdXQgIgogLQkJICAgICAic3Bl Y2lmeWluZyB0aGUgQ1UgYmFzZSBhZGRyZXNzLiIpKTsKKysgIHJldHVybiBiYXRvbjsKKyt9Cisr CiArc3RhdGljIHN0cnVjdCBkd2FyZjJfbG9jbGlzdF9iYXRvbiAqCiArZHdhcmYyX2F0dHJfdG9f bG9jbGlzdF9iYXRvbiAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgc3RydWN0IGR3YXJmMl9jdSAq Y3UpCiArewogKyAgc3RydWN0IGR3YXJmMl9sb2NsaXN0X2JhdG9uICpiYXRvbjsKLSAKKysKICsg IC8qIERXX0FUX2xvY2F0aW9uIG9mIHRoZSByZWZlcmVuY2VkIERJRSBtYXkgYmUgbWlzc2luZyBp ZiB0aGUgcmVmZXJlbmNlZAogKyAgICAgdmFyaWFibGUgaGFzIGJlZW4gb3B0aW1pemVkIG91dC4g ICovCiArICBpZiAoIWF0dHIpCkBAIC0yMzExLDcgKzIyNzksNyBAQCBpbmRleCAyMDE1MTNkLi5m NDlhMTQ5IDEwMDY0NAogKwogKyAgcmV0dXJuIGJhdG9uOwogK30KLSsKKyAKICsvKiBTWU0gbWF5 IGdldCBpdHMgU1lNQk9MX0NMQVNTIG92ZXJyaWRlbiBvbiBpbnZhbGlkIEFUVFIgY29udGVudC4g ICovCiArCiArc3RhdGljIHZvaWQKQEAgLTIzNzMsNyArMjM0MSw3IEBAIGluZGV4IDIwMTUxM2Qu LmY0OWExNDkgMTAwNjQ0CiAgICAgIH0KICB9CiAgCi1AQCAtMTQ3NDksNiArMTUwMDIsMzEgQEAg b2Zmc2V0X2FuZF90eXBlX2VxIChjb25zdCB2b2lkICppdGVtX2xocywgY29uc3Qgdm9pZCAqaXRl bV9yaHMpCitAQCAtMTQ3NTUsNiArMTUwMDAsMzEgQEAgb2Zmc2V0X2FuZF90eXBlX2VxIChjb25z dCB2b2lkICppdGVtX2xocywgY29uc3Qgdm9pZCAqaXRlbV9yaHMpCiAgICByZXR1cm4gb2ZzX2xo cy0+b2Zmc2V0ID09IG9mc19yaHMtPm9mZnNldDsKICB9CiAgCkBAIC0yNDA1LDcgKzIzNzMsNyBA QCBpbmRleCAyMDE1MTNkLi5mNDlhMTQ5IDEwMDY0NAogIC8qIFNldCB0aGUgdHlwZSBhc3NvY2lh dGVkIHdpdGggRElFIHRvIFRZUEUuICBTYXZlIGl0IGluIENVJ3MgaGFzaAogICAgIHRhYmxlIGlm IG5lY2Vzc2FyeS4gIEZvciBjb252ZW5pZW5jZSwgcmV0dXJuIFRZUEUuCiAgCi1AQCAtMTQ3NzQs NiArMTUwNTIsOCBAQCBzZXRfZGllX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3Qg dHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMTQ3ODAsNiArMTUwNTAsOCBA QCBzZXRfZGllX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwg c3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSA9IGN1LT5v YmpmaWxlOwogICAgaHRhYl90ICp0eXBlX2hhc2hfcHRyOwogIApAQCAtMjQxNSw3ICsyMzgzLDcg QEAgaW5kZXggMjAxNTEzZC4uZjQ5YTE0OSAxMDA2NDQKICAgICAgIGluaXRpYWxpemVkIChpZiBu b3QgYWxyZWFkeSBzZXQpLiAgVGhlcmUgYXJlIGEgZmV3IHR5cGVzIHdoZXJlCiAgICAgICB3ZSBz aG91bGQgbm90IGJlIGRvaW5nIHNvLCBiZWNhdXNlIHRoZSB0eXBlLXNwZWNpZmljIGFyZWEgaXMK IGRpZmYgLS1naXQgYS9nZGIvZWxmcmVhZC5jIGIvZ2RiL2VsZnJlYWQuYwotaW5kZXggOGQ5YjBm Ny4uY2RiMzI5MCAxMDA2NDQKK2luZGV4IGM1OTEzNGIuLmMyYzgyMjkgMTAwNjQ0CiAtLS0gYS9n ZGIvZWxmcmVhZC5jCiArKysgYi9nZGIvZWxmcmVhZC5jCiBAQCAtMzcsNiArMzcsNyBAQApAQCAt MjcwOSw3ICsyNjc3LDcgQEAgaW5kZXggOGQ5YjBmNy4uY2RiMzI5MCAxMDA2NDQKICAKICAgIC8q IEFkZCBzeW50aGV0aWMgc3ltYm9scyAtIGZvciBpbnN0YW5jZSwgbmFtZXMgZm9yIGFueSBQTFQg ZW50cmllcy4gICovCiBkaWZmIC0tZ2l0IGEvZ2RiL2V2YWwuYyBiL2dkYi9ldmFsLmMKLWluZGV4 IDgzOTQ2MjMuLjNkM2EzMWUgMTAwNjQ0CitpbmRleCBkZTI1YjM5Li5jY2VkMTNjIDEwMDY0NAog LS0tIGEvZ2RiL2V2YWwuYwogKysrIGIvZ2RiL2V2YWwuYwogQEAgLTQ0LDYgKzQ0LDcgQEAKQEAg LTI3MjAsNyArMjY4OCwyMjIgQEAgaW5kZXggODM5NDYyMy4uM2QzYTMxZSAxMDA2NDQKICAKICAj aW5jbHVkZSAiZ2RiX2Fzc2VydC5oIgogIAotQEAgLTgwNiw2ICs4MDcsNyBAQCBldmFsdWF0ZV9z dWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKK0BAIC01MDUsMjcgKzUw NiwxOTggQEAgaW5pdF9hcnJheV9lbGVtZW50IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3Qg dmFsdWUgKmVsZW1lbnQsCisgfQorIAorIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgorLXZhbHVlX2Y5 MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwKKy0JCSAgICBzdHJ1Y3QgZXhwcmVzc2lv biAqZXhwLCBpbnQgKnBvcywgZW51bSBub3NpZGUgbm9zaWRlKQorK3ZhbHVlX2Y5MF9zdWJhcnJh eSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50ICpwb3Ms CisrCQkgICAgaW50IG5hcmdzLCBlbnVtIG5vc2lkZSBub3NpZGUpCisgeworLSAgaW50IHBjID0g KCpwb3MpICsgMTsKKy0gIExPTkdFU1QgbG93X2JvdW5kLCBoaWdoX2JvdW5kOworLSAgc3RydWN0 IHR5cGUgKnJhbmdlID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9JTkRFWF9UWVBFICh2YWx1ZV90eXBl IChhcnJheSkpKTsKKy0gIGVudW0gZjkwX3JhbmdlX3R5cGUgcmFuZ2VfdHlwZSA9IGxvbmdlc3Rf dG9faW50IChleHAtPmVsdHNbcGNdLmxvbmdjb25zdCk7CistIAorLSAgKnBvcyArPSAzOworLQor LSAgaWYgKHJhbmdlX3R5cGUgPT0gTE9XX0JPVU5EX0RFRkFVTFQgfHwgcmFuZ2VfdHlwZSA9PSBC T1RIX0JPVU5EX0RFRkFVTFQpCistICAgIGxvd19ib3VuZCA9IFRZUEVfTE9XX0JPVU5EIChyYW5n ZSk7CisrICAvKiBUeXBlIHRvIHVzZSBmb3IgdGhlIG5ld2x5IGFsbG9jYXRlZCB2YWx1ZSBBUlJB WS4gICovCisrICBzdHJ1Y3QgdHlwZSAqbmV3X2FycmF5X3R5cGU7CisrCisrICAvKiBUeXBlIGJl aW5nIGl0ZXJhdGVkIGZvciBlYWNoIGRpbWVuc2lvbi4gICovCisrICBzdHJ1Y3QgdHlwZSAqdHlw ZTsKKysKKysgIC8qIFBvaW50ZXIgaW4gdGhlIGxhc3QgaG9sZGVyIHRvIHRoZSB0eXBlIG9mIGN1 cnJlbnQgZGltZW5zaW9uLiAgKi8KKysgIHN0cnVjdCB0eXBlICoqdHlwZXAgPSAmbmV3X2FycmF5 X3R5cGU7CisrCisrICBzdHJ1Y3Qgc3Vic2NyaXB0X2luZGV4CisrICAgIHsKKysgICAgICBlbnVt IHsgU1VCU0NSSVBUX1JBTkdFLCBTVUJTQ1JJUFRfTlVNQkVSIH0ga2luZDsKKysgICAgICB1bmlv bgorKwl7CisrCSAgc3RydWN0IHN1YnNjcmlwdF9yYW5nZQorKwkgICAgeworKwkgICAgICBlbnVt IGY5MF9yYW5nZV90eXBlIGY5MF9yYW5nZV90eXBlOworKwkgICAgICBMT05HRVNUIGxvd19ib3Vu ZCwgaGlnaF9ib3VuZDsKKysJICAgIH0KKysJICByYW5nZTsKKysJICBMT05HRVNUIG51bWJlcjsK KysJfTsKKysgICAgfQorKyAgKnN1YnNjcmlwdF9hcnJheTsKKysgIGludCBpOworKyAgc3RydWN0 IGNsZWFudXAgKm9sZF9jaGFpbjsKKysgIENPUkVfQUREUiB2YWx1ZV9ieXRlX2FkZHJlc3MsIHZh bHVlX2J5dGVfb2Zmc2V0ID0gMDsKKysgIGh0YWJfdCBjb3BpZWRfdHlwZXM7CisrICBzdHJ1Y3Qg dmFsdWUgKnNhdmVkX2FycmF5OworKworKyAgb2xkX2NoYWluID0gbWFrZV9jbGVhbnVwIChudWxs X2NsZWFudXAsIDApOworKyAgb2JqZWN0X2FkZHJlc3Nfc2V0ICh2YWx1ZV9yYXdfYWRkcmVzcyAo YXJyYXkpKTsKKysKKysgIGlmICh2YWx1ZV9vcHRpbWl6ZWRfb3V0IChhcnJheSkKKysgICAgICB8 fCAoVkFMVUVfTFZBTCAoYXJyYXkpICE9IG5vdF9sdmFsCisrICAgICAgICAgICYmIFZBTFVFX0xW QUwgKGFycmF5KSAhPSBsdmFsX21lbW9yeQorKwkgICYmIFZBTFVFX0xWQUwgKGFycmF5KSAhPSBs dmFsX2ludGVybmFsdmFyX2NvbXBvbmVudAorKwkgICYmIFZBTFVFX0xWQUwgKGFycmF5KSAhPSBs dmFsX2ludGVybmFsdmFyKSkKKysgICAgZXJyb3IgKF8oInZhbHVlIGJlaW5nIHN1YnJhbmdlZCBt dXN0IGJlIGluIG1lbW9yeSIpKTsKKysgIHR5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBl IChhcnJheSkpOworKyAgZl9vYmplY3RfYWRkcmVzc19kYXRhX3ZhbGlkX29yX2Vycm9yICh0eXBl KTsKKysKKysgIGNvcGllZF90eXBlcyA9IGNyZWF0ZV9jb3BpZWRfdHlwZXNfaGFzaCAoTlVMTCk7 CisrICB0eXBlID0gY29weV90eXBlX3JlY3Vyc2l2ZSAodHlwZSwgY29waWVkX3R5cGVzKTsKKysg IGh0YWJfZGVsZXRlIChjb3BpZWRfdHlwZXMpOworKworKyAgaWYgKG5hcmdzICE9IGNhbGNfZjc3 X2FycmF5X2RpbXMgKHR5cGUpKQorKyAgICBlcnJvciAoXygiV3JvbmcgbnVtYmVyIG9mIHN1YnNj cmlwdHMiKSk7CisrCisrICBpZiAoVFlQRV9EQVRBX0xPQ0FUSU9OX0lTX0FERFIgKHR5cGUpKQor KyAgICB7CisrICAgICAgdmFsdWVfYnl0ZV9hZGRyZXNzID0gKFRZUEVfREFUQV9MT0NBVElPTl9B RERSICh0eXBlKQorKwkJCSAgICArIHZhbHVlX29mZnNldCAoYXJyYXkpKTsKKysgICAgICBUWVBF X0RBVEFfTE9DQVRJT05fSVNfQUREUiAodHlwZSkgPSAwOworKyAgICB9CisgICBlbHNlCistICAg IGxvd19ib3VuZCA9IHZhbHVlX2FzX2xvbmcgKGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBFLCBl eHAsIHBvcywgbm9zaWRlKSk7CisrICAgIHZhbHVlX2J5dGVfYWRkcmVzcyA9IHZhbHVlX2FkZHJl c3MgKGFycmF5KTsKKysKKysgIG5ld19hcnJheV90eXBlID0gdHlwZTsKKysKKysgIHN1YnNjcmlw dF9hcnJheSA9IGFsbG9jYSAoc2l6ZW9mICgqc3Vic2NyaXB0X2FycmF5KSAqIG5hcmdzKTsKKysK KysgIGdkYl9hc3NlcnQgKG5hcmdzID4gMCk7CisrCisrICAvKiBOb3cgdGhhdCB3ZSBrbm93IHdl IGhhdmUgYSBsZWdhbCBhcnJheSBzdWJzY3JpcHQgZXhwcmVzc2lvbiAKKysgICAgIGxldCB1cyBh Y3R1YWxseSBmaW5kIG91dCB3aGVyZSB0aGlzIGVsZW1lbnQgZXhpc3RzIGluIHRoZSBhcnJheS4g ICovCisrCisrICAvKiBUYWtlIGFycmF5IGluZGljZXMgbGVmdCB0byByaWdodC4gICovCisrICBm b3IgKGkgPSAwOyBpIDwgbmFyZ3M7IGkrKykKKysgICAgeworKyAgICAgIHN0cnVjdCBzdWJzY3Jp cHRfaW5kZXggKmluZGV4ID0gJnN1YnNjcmlwdF9hcnJheVtpXTsKKysKKysgICAgICBpZiAoZXhw LT5lbHRzWypwb3NdLm9wY29kZSA9PSBPUF9GOTBfUkFOR0UpCisrCXsKKysJICBpbnQgcGMgPSAo KnBvcykgKyAxOworKwkgIHN0cnVjdCBzdWJzY3JpcHRfcmFuZ2UgKnJhbmdlOworKworKwkgIGlu ZGV4LT5raW5kID0gU1VCU0NSSVBUX1JBTkdFOworKwkgIHJhbmdlID0gJmluZGV4LT5yYW5nZTsK KysKKysJICAqcG9zICs9IDM7CisrCSAgcmFuZ2UtPmY5MF9yYW5nZV90eXBlID0gbG9uZ2VzdF90 b19pbnQgKGV4cC0+ZWx0c1twY10ubG9uZ2NvbnN0KTsKKysKKysJICBpZiAocmFuZ2UtPmY5MF9y YW5nZV90eXBlID09IEhJR0hfQk9VTkRfREVGQVVMVAorKwkgICAgICB8fCByYW5nZS0+ZjkwX3Jh bmdlX3R5cGUgPT0gTk9ORV9CT1VORF9ERUZBVUxUKQorKwkgICAgcmFuZ2UtPmxvd19ib3VuZCA9 IHZhbHVlX2FzX2xvbmcgKGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBFLCBleHAsCisrCQkJCQkJ CSAgICAgICBwb3MsIG5vc2lkZSkpOworKworKwkgIGlmIChyYW5nZS0+ZjkwX3JhbmdlX3R5cGUg PT0gTE9XX0JPVU5EX0RFRkFVTFQKKysJICAgICAgfHwgcmFuZ2UtPmY5MF9yYW5nZV90eXBlID09 IE5PTkVfQk9VTkRfREVGQVVMVCkKKysJICAgIHJhbmdlLT5oaWdoX2JvdW5kID0gdmFsdWVfYXNf bG9uZyAoZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4cCwKKysJCQkJCQkJCXBvcywgbm9z aWRlKSk7CisrCX0KKysgICAgICBlbHNlCisrCXsKKysJICBzdHJ1Y3QgdmFsdWUgKnZhbDsKKysK KysJICBpbmRleC0+a2luZCA9IFNVQlNDUklQVF9OVU1CRVI7CisgCistICBpZiAocmFuZ2VfdHlw ZSA9PSBISUdIX0JPVU5EX0RFRkFVTFQgfHwgcmFuZ2VfdHlwZSA9PSBCT1RIX0JPVU5EX0RFRkFV TFQpCistICAgIGhpZ2hfYm91bmQgPSBUWVBFX0hJR0hfQk9VTkQgKHJhbmdlKTsKKysJICAvKiBF dmFsdWF0ZSBlYWNoIHN1YnNjcmlwdDsgaXQgbXVzdCBiZSBhIGxlZ2FsIGludGVnZXIgaW4gRjc3 LiAgKi8KKysJICB2YWwgPSBldmFsdWF0ZV9zdWJleHBfd2l0aF9jb2VyY2lvbiAoZXhwLCBwb3Ms IG5vc2lkZSk7CisrCSAgaW5kZXgtPm51bWJlciA9IHZhbHVlX2FzX2xvbmcgKHZhbCk7CisrCX0K KysgICAgfQorKworKyAgLyogSW50ZXJuYWwgdHlwZSBvZiBhcnJheSBpcyBhcnJhbmdlZCByaWdo dCB0byBsZWZ0LiAgKi8KKysgIGZvciAoaSA9IG5hcmdzIC0gMTsgaSA+PSAwOyBpLS0pCisrICAg IHsKKysgICAgICBzdHJ1Y3Qgc3Vic2NyaXB0X2luZGV4ICppbmRleCA9ICZzdWJzY3JpcHRfYXJy YXlbaV07CisrICAgICAgc3RydWN0IHR5cGUgKnJhbmdlX3R5cGUgPSBUWVBFX0lOREVYX1RZUEUg KHR5cGUpOworKworKyAgICAgIHN3aXRjaCAoaW5kZXgtPmtpbmQpCisrCXsKKysJY2FzZSBTVUJT Q1JJUFRfUkFOR0U6CisrCSAgeworKwkgICAgc3RydWN0IHN1YnNjcmlwdF9yYW5nZSAqcmFuZ2Ug PSAmaW5kZXgtPnJhbmdlOworKwkgICAgQ09SRV9BRERSIGJ5dGVfb2Zmc2V0OworKworKwkgICAg aWYgKHJhbmdlLT5mOTBfcmFuZ2VfdHlwZSA9PSBMT1dfQk9VTkRfREVGQVVMVAorKwkJfHwgcmFu Z2UtPmY5MF9yYW5nZV90eXBlID09IEJPVEhfQk9VTkRfREVGQVVMVCkKKysJICAgICAgcmFuZ2Ut Pmxvd19ib3VuZCA9IFRZUEVfTE9XX0JPVU5EIChyYW5nZV90eXBlKTsKKysKKysJICAgIGlmIChy YW5nZS0+ZjkwX3JhbmdlX3R5cGUgPT0gSElHSF9CT1VORF9ERUZBVUxUCisrCQl8fCByYW5nZS0+ ZjkwX3JhbmdlX3R5cGUgPT0gQk9USF9CT1VORF9ERUZBVUxUKQorKwkgICAgICByYW5nZS0+aGln aF9ib3VuZCA9IFRZUEVfSElHSF9CT1VORCAocmFuZ2VfdHlwZSk7CisrCisrCSAgICBpZiAocmFu Z2UtPmxvd19ib3VuZCA8IFRZUEVfTE9XX0JPVU5EIChyYW5nZV90eXBlKQorKwkJfHwgKCFUWVBF X0hJR0hfQk9VTkRfVU5ERUZJTkVEIChyYW5nZV90eXBlKQorKwkJICAgICYmIHJhbmdlLT5oaWdo X2JvdW5kID4gVFlQRV9ISUdIX0JPVU5EIChyYW5nZV90eXBlKSkpCisrCSAgICAgIGVycm9yIChf KCJzbGljZSBvdXQgb2YgcmFuZ2UiKSk7CisrCisrCSAgICBieXRlX29mZnNldCA9ICgocmFuZ2Ut Pmxvd19ib3VuZCAtIFRZUEVfTE9XX0JPVU5EIChyYW5nZV90eXBlKSkKKysJCQkgICAqIFRZUEVf QVJSQVlfQllURV9TVFJJREVfVkFMVUUgKHR5cGUpKTsKKysJICAgIFRZUEVfTE9XX0JPVU5EIChy YW5nZV90eXBlKSA9IHJhbmdlLT5sb3dfYm91bmQ7CisrCSAgICBUWVBFX0hJR0hfQk9VTkQgKHJh bmdlX3R5cGUpID0gcmFuZ2UtPmhpZ2hfYm91bmQ7CisrCSAgICBpZiAocmFuZ2UtPmY5MF9yYW5n ZV90eXBlID09IExPV19CT1VORF9ERUZBVUxUCisrCQl8fCByYW5nZS0+ZjkwX3JhbmdlX3R5cGUg PT0gTk9ORV9CT1VORF9ERUZBVUxUKQorKwkgICAgICBUWVBFX0hJR0hfQk9VTkRfVU5ERUZJTkVE IChyYW5nZV90eXBlKSA9IDA7CisrCisrCSAgICB0eXBlcCA9ICZUWVBFX1RBUkdFVF9UWVBFICh0 eXBlKTsKKysJICAgIHZhbHVlX2J5dGVfb2Zmc2V0ICs9IGJ5dGVfb2Zmc2V0OworKwkgICAgdHlw ZSA9IFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpOworKwkgIH0KKysJICBicmVhazsKKysKKysJY2Fz ZSBTVUJTQ1JJUFRfTlVNQkVSOgorKwkgIHsKKysJICAgIENPUkVfQUREUiBieXRlX29mZnNldDsK KysKKysJICAgIGlmIChpbmRleC0+bnVtYmVyIDwgVFlQRV9MT1dfQk9VTkQgKHJhbmdlX3R5cGUp CisrCQl8fCAoIVRZUEVfSElHSF9CT1VORF9VTkRFRklORUQgKHJhbmdlX3R5cGUpCisrCQkgICAg JiYgaW5kZXgtPm51bWJlciA+IFRZUEVfSElHSF9CT1VORCAocmFuZ2VfdHlwZSkpKQorKwkgICAg ICBlcnJvciAoXygibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCIpKTsKKysKKysJICAgIGJ5dGVfb2Zm c2V0ID0gKChpbmRleC0+bnVtYmVyIC0gVFlQRV9MT1dfQk9VTkQgKHJhbmdlX3R5cGUpKQorKwkJ CSAgICogVFlQRV9BUlJBWV9CWVRFX1NUUklERV9WQUxVRSAodHlwZSkpOworKworKwkgICAgdHlw ZSA9IFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpOworKwkgICAgKnR5cGVwID0gdHlwZTsKKysJICAg IHZhbHVlX2J5dGVfb2Zmc2V0ICs9IGJ5dGVfb2Zmc2V0OworKwkgIH0KKysJICBicmVhazsKKysJ fQorKyAgICB9CisrCisrICBjaGVja190eXBlZGVmIChuZXdfYXJyYXlfdHlwZSk7CisrICBzYXZl ZF9hcnJheSA9IGFycmF5OworKyAgYXJyYXkgPSBhbGxvY2F0ZV92YWx1ZV9sYXp5IChuZXdfYXJy YXlfdHlwZSk7CisrICBWQUxVRV9MVkFMIChhcnJheSkgPSBWQUxVRV9MVkFMIChzYXZlZF9hcnJh eSk7CisrICBpZiAoVkFMVUVfTFZBTCAoc2F2ZWRfYXJyYXkpID09IGx2YWxfaW50ZXJuYWx2YXJf Y29tcG9uZW50KQorKyAgICBWQUxVRV9MVkFMIChhcnJheSkgPSBsdmFsX2ludGVybmFsdmFyOwor ICAgZWxzZQorLSAgICBoaWdoX2JvdW5kID0gdmFsdWVfYXNfbG9uZyAoZXZhbHVhdGVfc3ViZXhw IChOVUxMX1RZUEUsIGV4cCwgcG9zLCBub3NpZGUpKTsKKysgICAgVkFMVUVfTFZBTCAoYXJyYXkp ID0gVkFMVUVfTFZBTCAoc2F2ZWRfYXJyYXkpOworKyAgVkFMVUVfRlJBTUVfSUQgKGFycmF5KSA9 IFZBTFVFX0ZSQU1FX0lEIChzYXZlZF9hcnJheSk7CisrICBpZiAoVkFMVUVfTFZBTCAoYXJyYXkp ICE9IGx2YWxfaW50ZXJuYWx2YXIpCisrICAgIHNldF92YWx1ZV9hZGRyZXNzIChhcnJheSwgdmFs dWVfYnl0ZV9hZGRyZXNzICsgdmFsdWVfYnl0ZV9vZmZzZXQpOworKworKyAgaWYgKCF2YWx1ZV9s YXp5IChzYXZlZF9hcnJheSkpCisrICAgIHsKKysgICAgICBhbGxvY2F0ZV92YWx1ZV9jb250ZW50 cyAoYXJyYXkpOworKyAgICAgIHNldF92YWx1ZV9sYXp5IChhcnJheSwgMCk7CisgCistICByZXR1 cm4gdmFsdWVfc2xpY2UgKGFycmF5LCBsb3dfYm91bmQsIGhpZ2hfYm91bmQgLSBsb3dfYm91bmQg KyAxKTsKKysgICAgICBtZW1jcHkgKHZhbHVlX2NvbnRlbnRzX3dyaXRlYWJsZSAoYXJyYXkpLAor KwkgICAgICB2YWx1ZV9jb250ZW50cyAoc2F2ZWRfYXJyYXkpICsgdmFsdWVfYnl0ZV9vZmZzZXQs CisrCSAgICAgIFRZUEVfTEVOR1RIIChuZXdfYXJyYXlfdHlwZSkpOworKyAgICB9CisrCisrICBk b19jbGVhbnVwcyAob2xkX2NoYWluKTsKKysgIHJldHVybiBhcnJheTsKKyB9CisgCisgCitAQCAt ODA2LDYgKzk3OCw3IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4 cGVjdF90eXBlLAogICAgaW50IHNhdmVfcG9zMTsKICAgIHN0cnVjdCBzeW1ib2wgKmZ1bmN0aW9u ID0gTlVMTDsKICAgIGNoYXIgKmZ1bmN0aW9uX25hbWUgPSBOVUxMOwpAQCAtMjcyOCw3ICsyOTEx LDcgQEAgaW5kZXggODM5NDYyMy4uM2QzYTMxZSAxMDA2NDQKICAKICAgIHBjID0gKCpwb3MpKys7 CiAgICBvcCA9IGV4cC0+ZWx0c1twY10ub3Bjb2RlOwotQEAgLTE4NDcsNiArMTg0OSw4IEBAIGV2 YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAorQEAgLTE4 NDksNiArMjAyMiw4IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4 cGVjdF90eXBlLAogIAkgICAgICByZXR1cm4gdmFsdWVfemVybyAoYnVpbHRpbl90eXBlIChleHAt PmdkYmFyY2gpLT5idWlsdGluX2ludCwKICAJCQkJIG5vdF9sdmFsKTsKICAJICAgIH0KQEAgLTI3 MzcsNyArMjkyMCw3IEBAIGluZGV4IDgzOTQ2MjMuLjNkM2EzMWUgMTAwNjQ0CiAgCSAgZWxzZSBp ZiAoVFlQRV9UQVJHRVRfVFlQRSAoZnR5cGUpKQogIAkgICAgcmV0dXJuIGFsbG9jYXRlX3ZhbHVl IChUWVBFX1RBUkdFVF9UWVBFIChmdHlwZSkpOwogIAkgIGVsc2UKLUBAIC0xODc1LDYgKzE4Nzks OCBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwK K0BAIC0xODc3LDYgKzIwNTIsOCBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0 eXBlICpleHBlY3RfdHlwZSwKICAKICAgICAgICAvKiBGaXJzdCBkZXRlcm1pbmUgdGhlIHR5cGUg Y29kZSB3ZSBhcmUgZGVhbGluZyB3aXRoLiAgKi8KICAgICAgICBhcmcxID0gZXZhbHVhdGVfc3Vi ZXhwIChOVUxMX1RZUEUsIGV4cCwgcG9zLCBub3NpZGUpOwpAQCAtMjc0Niw3ICsyOTI5LDcgQEAg aW5kZXggODM5NDYyMy4uM2QzYTMxZSAxMDA2NDQKICAgICAgICB0eXBlID0gY2hlY2tfdHlwZWRl ZiAodmFsdWVfdHlwZSAoYXJnMSkpOwogICAgICAgIGNvZGUgPSBUWVBFX0NPREUgKHR5cGUpOwog IAotQEAgLTE4OTUsNiArMTkwMSw3IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0 IHR5cGUgKmV4cGVjdF90eXBlLAorQEAgLTE4OTcsMjMgKzIwNzQsMTMgQEAgZXZhbHVhdGVfc3Vi ZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAgCSAgICAgIGNvZGUgPSBU WVBFX0NPREUgKHR5cGUpOwogIAkgICAgfQogIAl9IApAQCAtMjc1NCw3NiArMjkzNyw3NSBAQCBp bmRleCA4Mzk0NjIzLi4zZDNhMzFlIDEwMDY0NAogIAogICAgICAgIHN3aXRjaCAoY29kZSkKICAJ ewotQEAgLTIzNTQsMTMgKzIzNjEsMTkgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1 Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCi0gICAgICAgewotIAlpbnQgc3Vic2NyaXB0X2FycmF5W01B WF9GT1JUUkFOX0RJTVNdOwotIAlpbnQgYXJyYXlfc2l6ZV9hcnJheVtNQVhfRk9SVFJBTl9ESU1T XTsKLSsJaW50IGJ5dGVfc3RyaWRlX2FycmF5W01BWF9GT1JUUkFOX0RJTVNdOwotIAlpbnQgbmRp bWVuc2lvbnMgPSAxLCBpOwotIAlzdHJ1Y3QgdHlwZSAqdG1wX3R5cGU7Ci0gCWludCBvZmZzZXRf aXRlbTsJLyogVGhlIGFycmF5IG9mZnNldCB3aGVyZSB0aGUgaXRlbSBsaXZlcyAqLwotKwlDT1JF X0FERFIgb2Zmc2V0X2J5dGU7CS8qIGJ5dGVfc3RyaWRlIGJhc2VkIG9mZnNldCAgKi8KLSsJdW5z aWduZWQgZWxlbWVudF9zaXplOwotIAotIAlpZiAobmFyZ3MgPiBNQVhfRk9SVFJBTl9ESU1TKQot IAkgIGVycm9yIChfKCJUb28gbWFueSBzdWJzY3JpcHRzIGZvciBGNzcgKCVkIE1heCkiKSwgTUFY X0ZPUlRSQU5fRElNUyk7Ci0gCi0rCW9sZF9jaGFpbiA9IG1ha2VfY2xlYW51cCAobnVsbF9jbGVh bnVwLCAwKTsKLSsJb2JqZWN0X2FkZHJlc3Nfc2V0ICh2YWx1ZV9yYXdfYWRkcmVzcyAoYXJnMSkp OwotKwotIAl0bXBfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFyZzEpKTsKLSAJ bmRpbWVuc2lvbnMgPSBjYWxjX2Y3N19hcnJheV9kaW1zICh0eXBlKTsKLSAKLUBAIC0yMzkwLDYg KzI0MDMsOSBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3Rf dHlwZSwKLSAJICAgIHVwcGVyID0gZjc3X2dldF91cHBlcmJvdW5kICh0bXBfdHlwZSk7Ci0gCSAg ICBsb3dlciA9IGY3N19nZXRfbG93ZXJib3VuZCAodG1wX3R5cGUpOwotIAotKwkgICAgYnl0ZV9z dHJpZGVfYXJyYXlbbmFyZ3MgLSBpIC0gMV0gPQotKwkJCQkJVFlQRV9BUlJBWV9CWVRFX1NUUklE RV9WQUxVRSAodG1wX3R5cGUpOwotKwotIAkgICAgYXJyYXlfc2l6ZV9hcnJheVtuYXJncyAtIGkg LSAxXSA9IHVwcGVyIC0gbG93ZXIgKyAxOwotIAotIAkgICAgLyogWmVyby1ub3JtYWxpemUgc3Vi c2NyaXB0cyBzbyB0aGF0IG9mZnNldHRpbmcgd2lsbCB3b3JrLiAqLwotQEAgLTI0MDgsMTMgKzI0 MjQsMjUgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5 cGUsCi0gCSAgICAgIHRtcF90eXBlID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9UQVJHRVRfVFlQRSAo dG1wX3R5cGUpKTsKLSAJICB9Ci0gCi0rCS8qIEtlcHQgZm9yIHRoZSBmNzdfZ2V0X3VwcGVyYm91 bmQgLyBmNzdfZ2V0X2xvd2VyYm91bmQgY2FsbHMgYWJvdmUuICAqLwotKwlkb19jbGVhbnVwcyAo b2xkX2NoYWluKTsKLSsKLSAJLyogTm93IGxldCB1cyBjYWxjdWxhdGUgdGhlIG9mZnNldCBmb3Ig dGhpcyBpdGVtICovCi0gCi0tCW9mZnNldF9pdGVtID0gc3Vic2NyaXB0X2FycmF5W25kaW1lbnNp b25zIC0gMV07Ci0rCW9mZnNldF9pdGVtID0gMDsKLSsJb2Zmc2V0X2J5dGUgPSAwOwotKwotKwlm b3IgKGkgPSBuZGltZW5zaW9ucyAtIDE7IGkgPj0gMDsgLS1pKQotKwkgIHsKLSsJICAgIG9mZnNl dF9pdGVtICo9IGFycmF5X3NpemVfYXJyYXlbaV07Ci0rCSAgICBpZiAoYnl0ZV9zdHJpZGVfYXJy YXlbaV0gPT0gMCkKLSsJICAgICAgb2Zmc2V0X2l0ZW0gKz0gc3Vic2NyaXB0X2FycmF5W2ldOwot KwkgICAgZWxzZQotKwkgICAgICBvZmZzZXRfYnl0ZSArPSBzdWJzY3JpcHRfYXJyYXlbaV0gKiBi eXRlX3N0cmlkZV9hcnJheVtpXTsKLSsJICB9Ci0gCi0tCWZvciAoaSA9IG5kaW1lbnNpb25zIC0g MTsgaSA+IDA7IC0taSkKLS0JICBvZmZzZXRfaXRlbSA9Ci0tCSAgICBhcnJheV9zaXplX2FycmF5 W2kgLSAxXSAqIG9mZnNldF9pdGVtICsgc3Vic2NyaXB0X2FycmF5W2kgLSAxXTsKLSsJZWxlbWVu dF9zaXplID0gVFlQRV9MRU5HVEggKFRZUEVfVEFSR0VUX1RZUEUgKHRtcF90eXBlKSk7Ci0rCW9m ZnNldF9ieXRlICs9IG9mZnNldF9pdGVtICogZWxlbWVudF9zaXplOwotIAotIAkvKiBMZXQgdXMg bm93IHBsYXkgYSBkaXJ0eSB0cmljazogd2Ugd2lsbCB0YWtlIGFyZzEgCi0gCSAgIHdoaWNoIGlz IGEgdmFsdWUgbm9kZSBwb2ludGluZyB0byB0aGUgdG9wbW9zdCBsZXZlbAotQEAgLTI0MjQsNyAr MjQ1Miw3IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90 eXBlLAotIAkgICByZXR1cm5zIHRoZSBjb3JyZWN0IHR5cGUgdmFsdWUgKi8KKyAJY2FzZSBUWVBF X0NPREVfQVJSQVk6CistCSAgaWYgKGV4cC0+ZWx0c1sqcG9zXS5vcGNvZGUgPT0gT1BfRjkwX1JB TkdFKQorLQkgICAgcmV0dXJuIHZhbHVlX2Y5MF9zdWJhcnJheSAoYXJnMSwgZXhwLCBwb3MsIG5v c2lkZSk7CistCSAgZWxzZQorLQkgICAgZ290byBtdWx0aV9mNzdfc3Vic2NyaXB0OworLQorIAlj YXNlIFRZUEVfQ09ERV9TVFJJTkc6CistCSAgaWYgKGV4cC0+ZWx0c1sqcG9zXS5vcGNvZGUgPT0g T1BfRjkwX1JBTkdFKQorLQkgICAgcmV0dXJuIHZhbHVlX2Y5MF9zdWJhcnJheSAoYXJnMSwgZXhw LCBwb3MsIG5vc2lkZSk7CistCSAgZWxzZQorLQkgICAgeworLQkgICAgICBhcmcyID0gZXZhbHVh dGVfc3ViZXhwX3dpdGhfY29lcmNpb24gKGV4cCwgcG9zLCBub3NpZGUpOworLQkgICAgICByZXR1 cm4gdmFsdWVfc3Vic2NyaXB0IChhcmcxLCB2YWx1ZV9hc19sb25nIChhcmcyKSk7CistCSAgICB9 CisrCSAgcmV0dXJuIHZhbHVlX2Y5MF9zdWJhcnJheSAoYXJnMSwgZXhwLCBwb3MsIG5hcmdzLCBu b3NpZGUpOwogIAotIAlkZXByZWNhdGVkX3NldF92YWx1ZV90eXBlIChhcmcxLCB0bXBfdHlwZSk7 Ci0tCXJldHVybiB2YWx1ZV9zdWJzY3JpcHRlZF9ydmFsdWUgKGFyZzEsIG9mZnNldF9pdGVtLCAw KTsKLSsJcmV0dXJuIHZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAoYXJnMSwgb2Zmc2V0X2J5dGUp OwotICAgICAgIH0KKyAJY2FzZSBUWVBFX0NPREVfUFRSOgorIAljYXNlIFRZUEVfQ09ERV9GVU5D OgorQEAgLTIzNTIsNDkgKzI1MTksNiBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVj dCB0eXBlICpleHBlY3RfdHlwZSwKKyAJfQorICAgICAgIHJldHVybiAoYXJnMSk7CiAgCistICAg IG11bHRpX2Y3N19zdWJzY3JpcHQ6CistICAgICAgeworLQlMT05HRVNUIHN1YnNjcmlwdF9hcnJh eVtNQVhfRk9SVFJBTl9ESU1TXTsKKy0JaW50IG5kaW1lbnNpb25zID0gMSwgaTsKKy0Jc3RydWN0 IHZhbHVlICphcnJheSA9IGFyZzE7CistCistCWlmIChuYXJncyA+IE1BWF9GT1JUUkFOX0RJTVMp CistCSAgZXJyb3IgKF8oIlRvbyBtYW55IHN1YnNjcmlwdHMgZm9yIEY3NyAoJWQgTWF4KSIpLCBN QVhfRk9SVFJBTl9ESU1TKTsKKy0KKy0JbmRpbWVuc2lvbnMgPSBjYWxjX2Y3N19hcnJheV9kaW1z ICh0eXBlKTsKKy0KKy0JaWYgKG5hcmdzICE9IG5kaW1lbnNpb25zKQorLQkgIGVycm9yIChfKCJX cm9uZyBudW1iZXIgb2Ygc3Vic2NyaXB0cyIpKTsKKy0KKy0JZ2RiX2Fzc2VydCAobmFyZ3MgPiAw KTsKKy0KKy0JLyogTm93IHRoYXQgd2Uga25vdyB3ZSBoYXZlIGEgbGVnYWwgYXJyYXkgc3Vic2Ny aXB0IGV4cHJlc3Npb24gCistCSAgIGxldCB1cyBhY3R1YWxseSBmaW5kIG91dCB3aGVyZSB0aGlz IGVsZW1lbnQgZXhpc3RzIGluIHRoZSBhcnJheS4gICovCistCistCS8qIFRha2UgYXJyYXkgaW5k aWNlcyBsZWZ0IHRvIHJpZ2h0LiAgKi8KKy0JZm9yIChpID0gMDsgaSA8IG5hcmdzOyBpKyspCist CSAgeworLQkgICAgLyogRXZhbHVhdGUgZWFjaCBzdWJzY3JpcHQ7IGl0IG11c3QgYmUgYSBsZWdh bCBpbnRlZ2VyIGluIEY3Ny4gICovCistCSAgICBhcmcyID0gZXZhbHVhdGVfc3ViZXhwX3dpdGhf Y29lcmNpb24gKGV4cCwgcG9zLCBub3NpZGUpOworLQorLQkgICAgLyogRmlsbCBpbiB0aGUgc3Vi c2NyaXB0IGFycmF5LiAgKi8KKy0KKy0JICAgIHN1YnNjcmlwdF9hcnJheVtpXSA9IHZhbHVlX2Fz X2xvbmcgKGFyZzIpOworLQkgIH0KKy0KKy0JLyogSW50ZXJuYWwgdHlwZSBvZiBhcnJheSBpcyBh cnJhbmdlZCByaWdodCB0byBsZWZ0LiAgKi8KKy0JZm9yIChpID0gbmFyZ3M7IGkgPiAwOyBpLS0p CistCSAgeworLQkgICAgc3RydWN0IHR5cGUgKmFycmF5X3R5cGUgPSBjaGVja190eXBlZGVmICh2 YWx1ZV90eXBlIChhcnJheSkpOworLQkgICAgTE9OR0VTVCBpbmRleCA9IHN1YnNjcmlwdF9hcnJh eVtpIC0gMV07CistCistCSAgICBsb3dlciA9IGY3N19nZXRfbG93ZXJib3VuZCAoYXJyYXlfdHlw ZSk7CistCSAgICBhcnJheSA9IHZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAoYXJyYXksIGluZGV4 LCBsb3dlcik7CistCSAgfQorLQorLQlyZXR1cm4gYXJyYXk7CistICAgICAgfQorLQogICAgICBj YXNlIEJJTk9QX0xPR0lDQUxfQU5EOgotQEAgLTI2NTgsMTUgKzI2ODYsMjMgQEAgZXZhbHVhdGVf c3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCisgICAgICAgYXJnMSA9 IGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBFLCBleHAsIHBvcywgbm9zaWRlKTsKKyAgICAgICBp ZiAobm9zaWRlID09IEVWQUxfU0tJUCkKK0BAIC0yNjI2LDE1ICsyNzUwLDIzIEBAIGV2YWx1YXRl X3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAogICAgICAgIGlmIChl eHBlY3RfdHlwZSAmJiBUWVBFX0NPREUgKGV4cGVjdF90eXBlKSA9PSBUWVBFX0NPREVfUFRSKQog IAlleHBlY3RfdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKGNoZWNrX3R5cGVkZWYgKGV4cGVjdF90 eXBlKSk7CiAgICAgICAgYXJnMSA9IGV2YWx1YXRlX3N1YmV4cCAoZXhwZWN0X3R5cGUsIGV4cCwg cG9zLCBub3NpZGUpOwpAQCAtMjg0OSw3ICszMDMxLDcgQEAgaW5kZXggODM5NDYyMy4uM2QzYTMx ZSAxMDA2NDQKICAgICAgICBlbHNlIGlmIChub3NpZGUgPT0gRVZBTF9BVk9JRF9TSURFX0VGRkVD VFMpCiAgCXsKICAJICB0eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnMSkpOwot QEAgLTI2NzUsMTIgKzI3MTEsMTggQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3Qg dHlwZSAqZXhwZWN0X3R5cGUsCitAQCAtMjY0MywxMiArMjc3NSwxOCBAQCBldmFsdWF0ZV9zdWJl eHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKICAJICAvKiBJbiBDIHlvdSBj YW4gZGVyZWZlcmVuY2UgYW4gYXJyYXkgdG8gZ2V0IHRoZSAxc3QgZWx0LiAgKi8KICAJICAgICAg fHwgVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfQVJSQVkKICAJICAgICkKQEAgLTI4NzMs NyArMzA1NSw3IEBAIGluZGV4IDgzOTQ2MjMuLjNkM2EzMWUgMTAwNjQ0CiAgCSAgZWxzZQogIAkg ICAgZXJyb3IgKF8oIkF0dGVtcHQgdG8gdGFrZSBjb250ZW50cyBvZiBhIG5vbi1wb2ludGVyIHZh bHVlLiIpKTsKICAJfQotQEAgLTI2OTAsOSArMjczMiwxNCBAQCBldmFsdWF0ZV9zdWJleHBfc3Rh bmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKK0BAIC0yNjU4LDkgKzI3OTYsMTQgQEAg ZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAgCSBk by4gICJsb25nIGxvbmciIHZhcmlhYmxlcyBhcmUgcmFyZSBlbm91Z2ggdGhhdAogIAkgQlVJTFRJ Tl9UWVBFX0xPTkdFU1Qgd291bGQgc2VlbSB0byBiZSBhIG1pc3Rha2UuICAqLwogICAgICAgIGlm IChUWVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9JTlQpCkBAIC0yODkxLDcgKzMwNzMsNyBA QCBpbmRleCA4Mzk0NjIzLi4zZDNhMzFlIDEwMDY0NAogIAogICAgICBjYXNlIFVOT1BfQUREUjoK ICAgICAgICAvKiBDKys6IGNoZWNrIGZvciBhbmQgaGFuZGxlIHBvaW50ZXIgdG8gbWVtYmVycy4g ICovCi1AQCAtMzA0MCw3ICszMDg3LDcgQEAgZXZhbHVhdGVfc3ViZXhwX3dpdGhfY29lcmNpb24g KHN0cnVjdCBleHByZXNzaW9uICpleHAsCitAQCAtMzAwNiw3ICszMTQ5LDcgQEAgZXZhbHVhdGVf c3ViZXhwX3dpdGhfY29lcmNpb24gKHN0cnVjdCBleHByZXNzaW9uICpleHAsCiAgewogICAgZW51 bSBleHBfb3Bjb2RlIG9wOwogICAgaW50IHBjOwpAQCAtMjkwMCw3ICszMDgyLDcgQEAgaW5kZXgg ODM5NDYyMy4uM2QzYTMxZSAxMDA2NDQKICAgIHN0cnVjdCBzeW1ib2wgKnZhcjsKICAgIHN0cnVj dCB0eXBlICp0eXBlOwogIAotQEAgLTMwNTEsMTMgKzMwOTgsMTggQEAgZXZhbHVhdGVfc3ViZXhw X3dpdGhfY29lcmNpb24gKHN0cnVjdCBleHByZXNzaW9uICpleHAsCitAQCAtMzAxNywxMyArMzE2 MCwxOCBAQCBldmFsdWF0ZV9zdWJleHBfd2l0aF9jb2VyY2lvbiAoc3RydWN0IGV4cHJlc3Npb24g KmV4cCwKICAgICAgewogICAgICBjYXNlIE9QX1ZBUl9WQUxVRToKICAgICAgICB2YXIgPSBleHAt PmVsdHNbcGMgKyAyXS5zeW1ib2w7CkBAIC0yOTIwLDcgKzMxMDIsNyBAQCBpbmRleCA4Mzk0NjIz Li4zZDNhMzFlIDEwMDY0NAogIAkgIHJldHVybiB2YWx1ZV9jYXN0IChsb29rdXBfcG9pbnRlcl90 eXBlIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSksCiAgCQkJICAgICB2YWwpOwogIAl9Ci1AQCAt MzEwOSw5ICszMTYxLDEzIEBAIGV2YWx1YXRlX3N1YmV4cF9mb3Jfc2l6ZW9mIChzdHJ1Y3QgZXhw cmVzc2lvbiAqZXhwLCBpbnQgKnBvcykKK0BAIC0zMDc1LDkgKzMyMjMsMTMgQEAgZXZhbHVhdGVf c3ViZXhwX2Zvcl9zaXplb2YgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCAqcG9zKQogIAog ICAgICBjYXNlIE9QX1ZBUl9WQUxVRToKICAgICAgICAoKnBvcykgKz0gNDsKQEAgLTI5MzcsOCAr MzExOSw1OSBAQCBpbmRleCA4Mzk0NjIzLi4zZDNhMzFlIDEwMDY0NAogIAogICAgICBkZWZhdWx0 OgogICAgICAgIHZhbCA9IGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBFLCBleHAsIHBvcywgRVZB TF9BVk9JRF9TSURFX0VGRkVDVFMpOworQEAgLTMxMDgsMTggKzMyNjAsMjUgQEAgcGFyc2VfYW5k X2V2YWxfdHlwZSAoY2hhciAqcCwgaW50IGxlbmd0aCkKKyBpbnQKKyBjYWxjX2Y3N19hcnJheV9k aW1zIChzdHJ1Y3QgdHlwZSAqYXJyYXlfdHlwZSkKKyB7CistICBpbnQgbmRpbWVuID0gMTsKKy0g IHN0cnVjdCB0eXBlICp0bXBfdHlwZTsKKysgIHN3aXRjaCAoVFlQRV9DT0RFIChhcnJheV90eXBl KSkKKysgICAgeworKyAgICBjYXNlIFRZUEVfQ09ERV9TVFJJTkc6CisrICAgICAgcmV0dXJuIDE7 CisgCistICBpZiAoKFRZUEVfQ09ERSAoYXJyYXlfdHlwZSkgIT0gVFlQRV9DT0RFX0FSUkFZKSkK Ky0gICAgZXJyb3IgKF8oIkNhbid0IGdldCBkaW1lbnNpb25zIGZvciBhIG5vbi1hcnJheSB0eXBl IikpOworKyAgICBjYXNlIFRZUEVfQ09ERV9BUlJBWToKKysgICAgICB7CisrCWludCBuZGltZW4g PSAxOworIAorLSAgdG1wX3R5cGUgPSBhcnJheV90eXBlOworKwl3aGlsZSAoKGFycmF5X3R5cGUg PSBUWVBFX1RBUkdFVF9UWVBFIChhcnJheV90eXBlKSkpCisrCSAgeworKwkgICAgaWYgKFRZUEVf Q09ERSAoYXJyYXlfdHlwZSkgPT0gVFlQRV9DT0RFX0FSUkFZKQorKwkgICAgICArK25kaW1lbjsK KysJICB9CisrCXJldHVybiBuZGltZW47CisrICAgICAgfQorIAorLSAgd2hpbGUgKCh0bXBfdHlw ZSA9IFRZUEVfVEFSR0VUX1RZUEUgKHRtcF90eXBlKSkpCistICAgIHsKKy0gICAgICBpZiAoVFlQ RV9DT0RFICh0bXBfdHlwZSkgPT0gVFlQRV9DT0RFX0FSUkFZKQorLQkrK25kaW1lbjsKKysgICAg ZGVmYXVsdDoKKysgICAgICBlcnJvciAoXygiQ2FuJ3QgZ2V0IGRpbWVuc2lvbnMgZm9yIGEgbm9u LWFycmF5L25vbi1zdHJpbmcgdHlwZSIpKTsKKyAgICAgfQorLSAgcmV0dXJuIG5kaW1lbjsKKysK KyB9CitkaWZmIC0tZ2l0IGEvZ2RiL2YtZXhwLnkgYi9nZGIvZi1leHAueQoraW5kZXggMDI3NDVj OC4uM2E3MzBlNyAxMDA2NDQKKy0tLSBhL2dkYi9mLWV4cC55CisrKysgYi9nZGIvZi1leHAueQor QEAgLTI5Myw3ICsyOTMsOSBAQCBhcmdsaXN0IDoJc3VicmFuZ2UKKyAJCQl7IGFyZ2xpc3RfbGVu ID0gMTsgfQorIAk7CisgICAgCistYXJnbGlzdAk6CWFyZ2xpc3QgJywnIGV4cCAgICVwcmVjIEFC T1ZFX0NPTU1BCisrYXJnbGlzdAk6CWFyZ2xpc3QgJywnIGV4cCAgICAgICAlcHJlYyBBQk9WRV9D T01NQQorKwkJCXsgYXJnbGlzdF9sZW4rKzsgfQorKwl8CWFyZ2xpc3QgJywnIHN1YnJhbmdlICAl cHJlYyBBQk9WRV9DT01NQQorIAkJCXsgYXJnbGlzdF9sZW4rKzsgfQorIAk7CisgCiBkaWZmIC0t Z2l0IGEvZ2RiL2YtbGFuZy5oIGIvZ2RiL2YtbGFuZy5oCi1pbmRleCA1YzI2OTJkLi5iNTJhZTc0 IDEwMDY0NAoraW5kZXggODA0MzU3Ny4uOTRhNWYzMSAxMDA2NDQKIC0tLSBhL2dkYi9mLWxhbmcu aAogKysrIGIvZ2RiL2YtbGFuZy5oCiBAQCAtMjgsNiArMjgsMTAgQEAgZXh0ZXJuIHZvaWQgZl9l cnJvciAoY2hhciAqKTsJLyogRGVmaW5lZCBpbiBmLWV4cC55ICovCkBAIC0yOTUzLDcgKzMxODYs NyBAQCBpbmRleCA1YzI2OTJkLi5iNTJhZTc0IDEwMDY0NAogIAkJCXN0cnVjdCB1aV9maWxlICos IGludCwKICAJCQljb25zdCBzdHJ1Y3QgdmFsdWUgKiwKIGRpZmYgLS1naXQgYS9nZGIvZi10eXBl cHJpbnQuYyBiL2dkYi9mLXR5cGVwcmludC5jCi1pbmRleCA2NjE4MTg4Li45NjhkZTdhIDEwMDY0 NAoraW5kZXggYWQ5ODhkMi4uOTg1ZmVmNiAxMDA2NDQKIC0tLSBhL2dkYi9mLXR5cGVwcmludC5j CiArKysgYi9nZGIvZi10eXBlcHJpbnQuYwogQEAgLTMyLDcgKzMyLDcgQEAKQEAgLTMwMjEsMTgg KzMyNTQsMTggQEAgaW5kZXggNjYxODE4OC4uOTY4ZGU3YSAxMDA2NDQKICAgICAgewogICAgICBj YXNlIFRZUEVfQ09ERV9BUlJBWToKIGRpZmYgLS1naXQgYS9nZGIvZi12YWxwcmludC5jIGIvZ2Ri L2YtdmFscHJpbnQuYwotaW5kZXggNjRjMDk4OS4uNzg3YjRhYSAxMDA2NDQKK2luZGV4IDRkMjZh ZGUuLjIwNmE2MmIgMTAwNjQ0CiAtLS0gYS9nZGIvZi12YWxwcmludC5jCiArKysgYi9nZGIvZi12 YWxwcmludC5jCiBAQCAtNTQsMTUgKzU0LDE3IEBAIGludCBmNzdfYXJyYXlfb2Zmc2V0X3RibFtN QVhfRk9SVFJBTl9ESU1TICsgMV1bMl07CiAgLyogVGhlIGZvbGxvd2luZyBtYWNybyBnaXZlcyB1 cyB0aGUgc2l6ZSBvZiB0aGUgbnRoIGRpbWVuc2lvbiwgV2hlcmUgCi0gICAgbiBpcyAxIGJhc2Vk LiAqLworICAgIG4gaXMgMSBiYXNlZC4gICovCiAgCiAtI2RlZmluZSBGNzdfRElNX1NJWkUobikg KGY3N19hcnJheV9vZmZzZXRfdGJsW25dWzFdKQogKyNkZWZpbmUgRjc3X0RJTV9DT1VOVChuKSAo Zjc3X2FycmF5X29mZnNldF90Ymxbbl1bMV0pCiAgCi0tLyogVGhlIGZvbGxvd2luZyBnaXZlcyB1 cyB0aGUgb2Zmc2V0IGZvciByb3cgbiB3aGVyZSBuIGlzIDEtYmFzZWQuICovCi0rLyogVGhlIGZv bGxvd2luZyBnaXZlcyB1cyB0aGUgZWxlbWVudCBzaXplIGZvciByb3cgbiB3aGVyZSBuIGlzIDEt YmFzZWQuICovCistLyogVGhlIGZvbGxvd2luZyBnaXZlcyB1cyB0aGUgb2Zmc2V0IGZvciByb3cg biB3aGVyZSBuIGlzIDEtYmFzZWQuICAqLworKy8qIFRoZSBmb2xsb3dpbmcgZ2l2ZXMgdXMgdGhl IGVsZW1lbnQgc2l6ZSBmb3Igcm93IG4gd2hlcmUgbiBpcyAxLWJhc2VkLiAgKi8KICAKIC0jZGVm aW5lIEY3N19ESU1fT0ZGU0VUKG4pIChmNzdfYXJyYXlfb2Zmc2V0X3RibFtuXVswXSkKICsjZGVm aW5lIEY3N19ESU1fQllURV9TVFJJREUobikgKGY3N19hcnJheV9vZmZzZXRfdGJsW25dWzBdKQpA QCAtMzA4Niw4ICszMzE5LDggQEAgaW5kZXggNjRjMDk4OS4uNzg3YjRhYSAxMDA2NDQKICsgIC8q IE5vdyB3ZSBtdWx0aXBseSBlbHRsZW4gYnkgYWxsIHRoZSBCWVRFX1NUUklERXMsIHNvIHRoYXQg bGF0ZXIgd2UKICAgICAgIGNhbiBwcmludCBvdXQgYXJyYXkgZWxlbWVudHMgY29ycmVjdGx5LiAg VXAgdGlsbCBub3cgd2UgCiAtICAgICBrbm93IGFuIG9mZnNldCB0byBhcHBseSB0byBnZXQgdGhl IGl0ZW0gYnV0IHdlIGFsc28gCi0rICAgICBrbm93IGFuIGVsdGxlbiB0byBhcHBseSB0byBnZXQg dGhlIGl0ZW0gYnV0IHdlIGFsc28KLSAgICAgIGhhdmUgdG8ga25vdyBob3cgbXVjaCB0byBhZGQg dG8gZ2V0IHRvIHRoZSBuZXh0IGl0ZW0gKi8KKysgICAgIGtub3cgYW4gZWx0bGVuIHRvIGFwcGx5 IHRvIGdldCB0aGUgaXRlbSBidXQgd2UgYWxzbyAKKyAgICAgIGhhdmUgdG8ga25vdyBob3cgbXVj aCB0byBhZGQgdG8gZ2V0IHRvIHRoZSBuZXh0IGl0ZW0uICAqLwogIAogICAgbmRpbWVuLS07CiAg ICBlbHRsZW4gPSBUWVBFX0xFTkdUSCAodG1wX3R5cGUpOwpAQCAtMzE2MCwxNzMgKzMzOTMsOCBA QCBpbmRleCA2NGMwOTg5Li43ODdiNGFhIDEwMDY0NAogICAgQ0hFQ0tfVFlQRURFRiAodHlwZSk7 CiAgICBzd2l0Y2ggKFRZUEVfQ09ERSAodHlwZSkpCiAgICAgIHsKLWRpZmYgLS1naXQgYS9nZGIv ZmluZGNtZC5jIGIvZ2RiL2ZpbmRjbWQuYwotaW5kZXggYzIxYzAyOC4uNGZmOTE3NyAxMDA2NDQK LS0tLSBhL2dkYi9maW5kY21kLmMKLSsrKyBiL2dkYi9maW5kY21kLmMKLUBAIC00NSw2ICs0NSw0 MSBAQCBwdXRfYml0cyAoYmZkX3VpbnQ2NF90IGRhdGEsIGNoYXIgKmJ1ZiwgaW50IGJpdHMsIGJm ZF9ib29sZWFuIGJpZ19wKQotICAgICB9Ci0gfQotIAotKy8qIEFsbG9jYXRlcyBhIGJ1ZmZlciBp biAqUEFUVEVSTl9CVUYsIHdpdGggYSBoYXJkLWNvZGVkIGluaXRpYWwgc2l6ZSB3aGljaAotKyAg IHdpbGwgYmUgcmV0dXJuZWQgaW4gKlBBVFRFUk5fQlVGX1NJWkUuICpQQVRURVJOX0JVRl9FTkQg cG9pbnRzIHRvIHRoZSBzYW1lCi0rICAgcGxhY2UgYXMgKlBBVFRFUk5fQlVGLCBpbmRpY2F0aW5n IHRoYXQgdGhlIGJ1ZmZlciBpcyBpbml0aWFsbHkgZW1wdHkuICAqLwotKwotK3ZvaWQKLSthbGxv Y2F0ZV9wYXR0ZXJuX2J1ZmZlciAoY2hhciAqKnBhdHRlcm5fYnVmLCBjaGFyICoqcGF0dGVybl9i dWZfZW5kLAotKwkJCSBVTE9OR0VTVCAqcGF0dGVybl9idWZfc2l6ZSkKLSt7Ci0rI2RlZmluZSBJ TklUSUFMX1BBVFRFUk5fQlVGX1NJWkUgMTAwCi0rICAqcGF0dGVybl9idWZfc2l6ZSA9IElOSVRJ QUxfUEFUVEVSTl9CVUZfU0laRTsKLSsgICpwYXR0ZXJuX2J1ZiA9IHhtYWxsb2MgKCpwYXR0ZXJu X2J1Zl9zaXplKTsKLSsgICpwYXR0ZXJuX2J1Zl9lbmQgPSAqcGF0dGVybl9idWY7Ci0rfQotKwot Ky8qIEdyb3dzICpQQVRURVJOX0JVRiBieSBhIGZhY3RvciBvZiB0d28gaWYgaXQncyBub3QgbGFy Z2UgZW5vdWdoIHRvIGhvbGQKLSsgICBWQUxfQllURVMgbW9yZSBieXRlcyAgb3IgYSA2NC1iaXQg dmFsdWUsIHdoaWNoZXZlciBpcyBsYXJnZXIuCi0rICAgKlBBVFRFUk5fQlVGX0VORCBpcyB1cGRh dGVkIGFzIG5lY2Vzc2FyeS4gICovCi0rCi0rdm9pZAotK2luY3JlYXNlX3BhdHRlcm5fYnVmZmVy IChjaGFyICoqcGF0dGVybl9idWYsIGNoYXIgKipwYXR0ZXJuX2J1Zl9lbmQsCi0rCQkJIFVMT05H RVNUICpwYXR0ZXJuX2J1Zl9zaXplLCBpbnQgdmFsX2J5dGVzKQotK3sKLSsgICAgLyogS2VlcCBp dCBzaW1wbGUgYW5kIGFzc3VtZSBzaXplID09ICdnJyB3aGVuIHdhdGNoaW5nIGZvciB3aGVuIHdl Ci0rICAgICAgIG5lZWQgdG8gZ3JvdyB0aGUgcGF0dGVybiBidWYuICAqLwotKyAgICBpZiAoKCpw YXR0ZXJuX2J1Zl9lbmQgLSAqcGF0dGVybl9idWYgKyBtYXggKHZhbF9ieXRlcywgc2l6ZW9mIChp bnQ2NF90KSkpCi0rCT4gKnBhdHRlcm5fYnVmX3NpemUpCi0rICAgICAgewotKwlzaXplX3QgY3Vy cmVudF9vZmZzZXQgPSAqcGF0dGVybl9idWZfZW5kIC0gKnBhdHRlcm5fYnVmOwotKwotKwkqcGF0 dGVybl9idWZfc2l6ZSAqPSAyOwotKwkqcGF0dGVybl9idWYgPSB4cmVhbGxvYyAoKnBhdHRlcm5f YnVmLCAqcGF0dGVybl9idWZfc2l6ZSk7Ci0rCSpwYXR0ZXJuX2J1Zl9lbmQgPSAqcGF0dGVybl9i dWYgKyBjdXJyZW50X29mZnNldDsKLSsgICAgICB9Ci0rfQotKwotIC8qIFN1YnJvdXRpbmUgb2Yg ZmluZF9jb21tYW5kIHRvIHNpbXBsaWZ5IGl0LgotICAgIFBhcnNlIHRoZSBhcmd1bWVudHMgb2Yg dGhlICJmaW5kIiBjb21tYW5kLiAgKi8KLSAKLUBAIC02MSw4ICs5Niw3IEBAIHBhcnNlX2ZpbmRf YXJncyAoY2hhciAqYXJncywgVUxPTkdFU1QgKm1heF9jb3VudHAsCi0gICBjaGFyICpwYXR0ZXJu X2J1ZjsKLSAgIC8qIEN1cnJlbnQgc2l6ZSBvZiBzZWFyY2ggcGF0dGVybiBidWZmZXIuCi0gICAg ICBXZSByZWFsbG9jIHNwYWNlIGFzIG5lZWRlZC4gICovCi0tI2RlZmluZSBJTklUSUFMX1BBVFRF Uk5fQlVGX1NJWkUgMTAwCi0tICBVTE9OR0VTVCBwYXR0ZXJuX2J1Zl9zaXplID0gSU5JVElBTF9Q QVRURVJOX0JVRl9TSVpFOwotKyAgVUxPTkdFU1QgcGF0dGVybl9idWZfc2l6ZTsKLSAgIC8qIFBv aW50ZXIgdG8gb25lIHBhc3QgdGhlIGxhc3QgaW4tdXNlIHBhcnQgb2YgcGF0dGVybl9idWYuICAq LwotICAgY2hhciAqcGF0dGVybl9idWZfZW5kOwotICAgVUxPTkdFU1QgcGF0dGVybl9sZW47Ci1A QCAtNzUsOCArMTA5LDcgQEAgcGFyc2VfZmluZF9hcmdzIChjaGFyICphcmdzLCBVTE9OR0VTVCAq bWF4X2NvdW50cCwKLSAgIGlmIChhcmdzID09IE5VTEwpCi0gICAgIGVycm9yIChfKCJNaXNzaW5n IHNlYXJjaCBwYXJhbWV0ZXJzLiIpKTsKLSAKLS0gIHBhdHRlcm5fYnVmID0geG1hbGxvYyAocGF0 dGVybl9idWZfc2l6ZSk7Ci0tICBwYXR0ZXJuX2J1Zl9lbmQgPSBwYXR0ZXJuX2J1ZjsKLSsgIGFs bG9jYXRlX3BhdHRlcm5fYnVmZmVyICgmcGF0dGVybl9idWYsICZwYXR0ZXJuX2J1Zl9lbmQsICZw YXR0ZXJuX2J1Zl9zaXplKTsKLSAgIG9sZF9jbGVhbnVwcyA9IG1ha2VfY2xlYW51cCAoZnJlZV9j dXJyZW50X2NvbnRlbnRzLCAmcGF0dGVybl9idWYpOwotIAotICAgLyogR2V0IHNlYXJjaCBncmFu dWxhcml0eSBhbmQvb3IgbWF4IGNvdW50IGlmIHNwZWNpZmllZC4KLUBAIC0xNzYsMTcgKzIwOSw5 IEBAIHBhcnNlX2ZpbmRfYXJncyAoY2hhciAqYXJncywgVUxPTkdFU1QgKm1heF9jb3VudHAsCi0g ICAgICAgdiA9IHBhcnNlX3RvX2NvbW1hX2FuZF9ldmFsICgmcyk7Ci0gICAgICAgdmFsX2J5dGVz ID0gVFlQRV9MRU5HVEggKHZhbHVlX3R5cGUgKHYpKTsKLSAKLS0gICAgICAvKiBLZWVwIGl0IHNp bXBsZSBhbmQgYXNzdW1lIHNpemUgPT0gJ2cnIHdoZW4gd2F0Y2hpbmcgZm9yIHdoZW4gd2UKLS0J IG5lZWQgdG8gZ3JvdyB0aGUgcGF0dGVybiBidWYuICAqLwotLSAgICAgIGlmICgocGF0dGVybl9i dWZfZW5kIC0gcGF0dGVybl9idWYgKyBtYXggKHZhbF9ieXRlcywgc2l6ZW9mIChpbnQ2NF90KSkp Ci0tCSAgPiBwYXR0ZXJuX2J1Zl9zaXplKQotLQl7Ci0tCSAgc2l6ZV90IGN1cnJlbnRfb2Zmc2V0 ID0gcGF0dGVybl9idWZfZW5kIC0gcGF0dGVybl9idWY7Ci0rICAgICAgaW5jcmVhc2VfcGF0dGVy bl9idWZmZXIgKCZwYXR0ZXJuX2J1ZiwgJnBhdHRlcm5fYnVmX2VuZCwKLSsJCQkgICAgICAgJnBh dHRlcm5fYnVmX3NpemUsIHZhbF9ieXRlcyk7Ci0gCi0tCSAgcGF0dGVybl9idWZfc2l6ZSAqPSAy OwotLQkgIHBhdHRlcm5fYnVmID0geHJlYWxsb2MgKHBhdHRlcm5fYnVmLCBwYXR0ZXJuX2J1Zl9z aXplKTsKLS0JICBwYXR0ZXJuX2J1Zl9lbmQgPSBwYXR0ZXJuX2J1ZiArIGN1cnJlbnRfb2Zmc2V0 OwotLQl9Ci0gCi0gICAgICAgaWYgKHNpemUgIT0gJ1wwJykKLSAJewotQEAgLTI0MSw2ICsyNjYs NDUgQEAgcGFyc2VfZmluZF9hcmdzIChjaGFyICphcmdzLCBVTE9OR0VTVCAqbWF4X2NvdW50cCwK LSAgIGRpc2NhcmRfY2xlYW51cHMgKG9sZF9jbGVhbnVwcyk7Ci0gfQotIAotKy8qIERyaXZlcyB0 YXJnZXRfc2VhcmNoX21lbW9yeSB0byBzd2VlcCB0aHJvdWdoIHRoZSBzcGVjaWZpZWQgc2VhcmNo IHNwYWNlLAotKyAgIHBvc3NpYmx5IGluIHNldmVyYWwgaXRlcmF0aW9ucyAod2l0aCBvbmUgY2Fs bCB0byB0aGlzIGZ1bmN0aW9uIGZvciBlYWNoCi0rICAgaXRlcmF0aW9uKS4gICpTVEFSVF9BRERS IGlzIHRoZSBhZGRyZXNzIHdoZXJlIHRoZSBzZWFyY2ggc3RhcnRzLCBhbmQgaXMKLSsgICB1cGRh dGVkIHRvIHRoZSBuZXh0IHN0YXJ0aW5nIGFkZHJlc3MgdG8gY29udGludWUgdGhlIHNlYXJjaC4K LSsgICAqU0VBUkNIX1NQQUNFX0xFTiBpcyB0aGUgYW1vdW50IG9mIGJ5dGVzIHdoaWNoIHdpbGwg YmUgc2VhcmNoZWQsIGFuZCBpcwotKyAgIHVwZGF0ZWQgZm9yIHRoZSBuZXh0IGl0ZXJhdGlvbi4g UEFUVEVSTl9CVUYgaG9sZHMgdGhlIHBhdHRlcm4gdG8gYmUgc2VhcmNoZWQKLSsgICBmb3IsIFBB VFRFUk5fTEVOIGlzIHRoZSBzaXplIG9mIHRoZSBwYXR0ZXJuIGluIGJ5dGVzLiAgSWYgYSBtYXRj aCBpcyBmb3VuZCwKLSsgICBpdCdzIGFkZHJlc3MgaXMgcHV0IGluICpGT1VORF9BRERSLgotKwot KyAgIFJldHVybnMgMSBpZiBmb3VuZCwgMCBpZiBub3QgZm91bmQsIGFuZCAtMSBpZiB0aGVyZSB3 YXMgYW4gZXJyb3IgcmVxdWlyaW5nCi0rICAgaGFsdGluZyBvZiB0aGUgc2VhcmNoIChlLmcuIG1l bW9yeSByZWFkIGVycm9yKS4gICovCi0rCi0raW50Ci0rc2VhcmNoX21lbW9yeSAoQ09SRV9BRERS ICpzdGFydF9hZGRyLCBVTE9OR0VTVCAqc2VhcmNoX3NwYWNlX2xlbiwKLSsJICAgICAgIGNvbnN0 IGNoYXIgKnBhdHRlcm5fYnVmLCBVTE9OR0VTVCBwYXR0ZXJuX2xlbiwKLSsJICAgICAgIENPUkVf QUREUiAqZm91bmRfYWRkcikKLSt7Ci0rICAvKiBPZmZzZXQgZnJvbSBzdGFydCBvZiB0aGlzIGl0 ZXJhdGlvbiB0byB0aGUgbmV4dCBpdGVyYXRpb24uICAqLwotKyAgVUxPTkdFU1QgbmV4dF9pdGVy X2luY3I7Ci0rICBpbnQgZm91bmQ7Ci0rICAgIAotKyAgZm91bmQgPSB0YXJnZXRfc2VhcmNoX21l bW9yeSAoKnN0YXJ0X2FkZHIsICpzZWFyY2hfc3BhY2VfbGVuLAotKwkJCQlwYXR0ZXJuX2J1Ziwg cGF0dGVybl9sZW4sIGZvdW5kX2FkZHIpOwotKyAgaWYgKGZvdW5kIDw9IDApCi0rICAgIHJldHVy biBmb3VuZDsKLSsKLSsgIC8qIEJlZ2luIG5leHQgaXRlcmF0aW9uIGF0IG9uZSBieXRlIHBhc3Qg dGhpcyBtYXRjaC4gICovCi0rICBuZXh0X2l0ZXJfaW5jciA9ICgqZm91bmRfYWRkciAtICpzdGFy dF9hZGRyKSArIDE7Ci0rCi0rICAvKiBGb3Igcm9idXN0bmVzcywgd2UgZG9uJ3QgbGV0IHNlYXJj aF9zcGFjZV9sZW4gZ28gLXZlIGhlcmUuICAqLwotKyAgaWYgKCpzZWFyY2hfc3BhY2VfbGVuID49 IG5leHRfaXRlcl9pbmNyKQotKyAgICAqc2VhcmNoX3NwYWNlX2xlbiAtPSBuZXh0X2l0ZXJfaW5j cjsKLSsgIGVsc2UKLSsgICAgKnNlYXJjaF9zcGFjZV9sZW4gPSAwOwotKyAgKnN0YXJ0X2FkZHIg Kz0gbmV4dF9pdGVyX2luY3I7Ci0rCi0rICByZXR1cm4gZm91bmQ7Ci0rfQotKwotIHN0YXRpYyB2 b2lkCi0gZmluZF9jb21tYW5kIChjaGFyICphcmdzLCBpbnQgZnJvbV90dHkpCi0gewotQEAgLTI3 MSwxMiArMzM1LDExIEBAIGZpbmRfY29tbWFuZCAoY2hhciAqYXJncywgaW50IGZyb21fdHR5KQot ICAgd2hpbGUgKHNlYXJjaF9zcGFjZV9sZW4gPj0gcGF0dGVybl9sZW4KLSAJICYmIGZvdW5kX2Nv dW50IDwgbWF4X2NvdW50KQotICAgICB7Ci0tICAgICAgLyogT2Zmc2V0IGZyb20gc3RhcnQgb2Yg dGhpcyBpdGVyYXRpb24gdG8gdGhlIG5leHQgaXRlcmF0aW9uLiAgKi8KLS0gICAgICBVTE9OR0VT VCBuZXh0X2l0ZXJfaW5jcjsKLSAgICAgICBDT1JFX0FERFIgZm91bmRfYWRkcjsKLS0gICAgICBp bnQgZm91bmQgPSB0YXJnZXRfc2VhcmNoX21lbW9yeSAoc3RhcnRfYWRkciwgc2VhcmNoX3NwYWNl X2xlbiwKLS0JCQkJCXBhdHRlcm5fYnVmLCBwYXR0ZXJuX2xlbiwgJmZvdW5kX2FkZHIpOwotKyAg ICAgIGludCBmb3VuZDsKLSAKLSsgICAgICBmb3VuZCA9IHNlYXJjaF9tZW1vcnkgKCZzdGFydF9h ZGRyLCAmc2VhcmNoX3NwYWNlX2xlbiwgcGF0dGVybl9idWYsCi0rCQkJICAgICBwYXR0ZXJuX2xl biwgJmZvdW5kX2FkZHIpOwotICAgICAgIGlmIChmb3VuZCA8PSAwKQotIAlicmVhazsKLSAKLUBA IC0yODQsMTYgKzM0Nyw2IEBAIGZpbmRfY29tbWFuZCAoY2hhciAqYXJncywgaW50IGZyb21fdHR5 KQotICAgICAgIHByaW50Zl9maWx0ZXJlZCAoIlxuIik7Ci0gICAgICAgKytmb3VuZF9jb3VudDsK LSAgICAgICBsYXN0X2ZvdW5kX2FkZHIgPSBmb3VuZF9hZGRyOwotLQotLSAgICAgIC8qIEJlZ2lu IG5leHQgaXRlcmF0aW9uIGF0IG9uZSBieXRlIHBhc3QgdGhpcyBtYXRjaC4gICovCi0tICAgICAg bmV4dF9pdGVyX2luY3IgPSAoZm91bmRfYWRkciAtIHN0YXJ0X2FkZHIpICsgMTsKLS0KLS0gICAg ICAvKiBGb3Igcm9idXN0bmVzcywgd2UgZG9uJ3QgbGV0IHNlYXJjaF9zcGFjZV9sZW4gZ28gLXZl IGhlcmUuICAqLwotLSAgICAgIGlmIChzZWFyY2hfc3BhY2VfbGVuID49IG5leHRfaXRlcl9pbmNy KQotLQlzZWFyY2hfc3BhY2VfbGVuIC09IG5leHRfaXRlcl9pbmNyOwotLSAgICAgIGVsc2UKLS0J c2VhcmNoX3NwYWNlX2xlbiA9IDA7Ci0tICAgICAgc3RhcnRfYWRkciArPSBuZXh0X2l0ZXJfaW5j cjsKLSAgICAgfQotIAotICAgLyogUmVjb3JkIGFuZCBwcmludCB0aGUgcmVzdWx0cy4gICovCiBk aWZmIC0tZ2l0IGEvZ2RiL2ZpbmR2YXIuYyBiL2dkYi9maW5kdmFyLmMKLWluZGV4IDVmOTc0MjIu LjJjMjY3MGUgMTAwNjQ0CitpbmRleCA2NDYzMzQyLi45NTFjMmZlIDEwMDY0NAogLS0tIGEvZ2Ri L2ZpbmR2YXIuYwogKysrIGIvZ2RiL2ZpbmR2YXIuYwogQEAgLTM1LDYgKzM1LDcgQEAKQEAgLTMz MzcsMTEgKzM0MDUsMTMgQEAgaW5kZXggNWY5NzQyMi4uMmMyNjcwZSAxMDA2NDQKICAKICAvKiBC YXNpYyBieXRlLXN3YXBwaW5nIHJvdXRpbmVzLiAgQWxsICdleHRyYWN0JyBmdW5jdGlvbnMgcmV0 dXJuIGEKICAgICBob3N0LWZvcm1hdCBpbnRlZ2VyIGZyb20gYSB0YXJnZXQtZm9ybWF0IGludGVn ZXIgYXQgQUREUiB3aGljaCBpcwotQEAgLTQwMSwyNyArNDAyLDE2IEBAIHN5bWJvbF9yZWFkX25l ZWRzX2ZyYW1lIChzdHJ1Y3Qgc3ltYm9sICpzeW0pCitAQCAtMzk5LDggKzQwMCwxMSBAQCBzeW1i b2xfcmVhZF9uZWVkc19mcmFtZSAoc3RydWN0IHN5bWJvbCAqc3ltKQorIAogIC8qIEdpdmVuIGEg c3RydWN0IHN5bWJvbCBmb3IgYSB2YXJpYWJsZSwKICAgICBhbmQgYSBzdGFjayBmcmFtZSBpZCwg cmVhZCB0aGUgdmFsdWUgb2YgdGhlIHZhcmlhYmxlCi0gICAgYW5kIHJldHVybiBhIChwb2ludGVy IHRvIGEpIHN0cnVjdCB2YWx1ZSBjb250YWluaW5nIHRoZSB2YWx1ZS4gCistICAgYW5kIHJldHVy biBhIChwb2ludGVyIHRvIGEpIHN0cnVjdCB2YWx1ZSBjb250YWluaW5nIHRoZSB2YWx1ZS4KIC0g ICBJZiB0aGUgdmFyaWFibGUgY2Fubm90IGJlIGZvdW5kLCByZXR1cm4gYSB6ZXJvIHBvaW50ZXIu ICAqLworKyAgIGFuZCByZXR1cm4gYSAocG9pbnRlciB0byBhKSBzdHJ1Y3QgdmFsdWUgY29udGFp bmluZyB0aGUgdmFsdWUuIAogKyAgIElmIHRoZSB2YXJpYWJsZSBjYW5ub3QgYmUgZm91bmQsIHJl dHVybiBhIHplcm8gcG9pbnRlci4KICsgICBXZSBoYXZlIHRvIGZpcnN0IGZpbmQgdGhlIGFkZHJl c3Mgb2YgdGhlIHZhcmlhYmxlIGJlZm9yZSBhbGxvY2F0aW5nIHN0cnVjdAogKyAgIHZhbHVlIHRv IHJldHVybiBhcyBpdHMgc2l6ZSBtYXkgZGVwZW5kIG9uIERXX09QX1BVU0hfT0JKRUNUX0FERFJF U1MgcG9zc2libHkKQEAgLTMzNDksMTcxICszNDE5LDEwNiBAQCBpbmRleCA1Zjk3NDIyLi4yYzI2 NzBlIDEwMDY0NAogIAogIHN0cnVjdCB2YWx1ZSAqCiAgcmVhZF92YXJfdmFsdWUgKHN0cnVjdCBz eW1ib2wgKnZhciwgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lKQotIHsKLS0gIHN0cnVjdCB2YWx1 ZSAqdjsKK0BAIC00MDgsMTYgKzQxMiw2IEBAIHJlYWRfdmFyX3ZhbHVlIChzdHJ1Y3Qgc3ltYm9s ICp2YXIsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkKKyAgIHN0cnVjdCB2YWx1ZSAqdjsKICAg IHN0cnVjdCB0eXBlICp0eXBlID0gU1lNQk9MX1RZUEUgKHZhcik7CiAgICBDT1JFX0FERFIgYWRk cjsKIC0gIGludCBsZW47CiAtCi0tICBpZiAoU1lNQk9MX0NMQVNTICh2YXIpID09IExPQ19DT01Q VVRFRAotLSAgICAgIHx8IFNZTUJPTF9DTEFTUyAodmFyKSA9PSBMT0NfUkVHSVNURVIpCi0tICAg IC8qIFRoZXNlIGNhc2VzIGRvIG5vdCB1c2UgVi4gICovCi0tICAgIHYgPSBOVUxMOwotLSAgZWxz ZQotLSAgICB7Ci0tICAgICAgdiA9IGFsbG9jYXRlX3ZhbHVlICh0eXBlKTsKLS0gICAgICBWQUxV RV9MVkFMICh2KSA9IGx2YWxfbWVtb3J5OwkvKiBUaGUgbW9zdCBsaWtlbHkgcG9zc2liaWxpdHku ICAqLwotLSAgICB9CistICAvKiBDYWxsIGNoZWNrX3R5cGVkZWYgb24gb3VyIHR5cGUgdG8gbWFr ZSBzdXJlIHRoYXQsIGlmIFRZUEUgaXMKKy0gICAgIGEgVFlQRV9DT0RFX1RZUEVERUYsIGl0cyBs ZW5ndGggaXMgc2V0IHRvIHRoZSBsZW5ndGggb2YgdGhlIHRhcmdldCB0eXBlCistICAgICBpbnN0 ZWFkIG9mIHplcm8uICBIb3dldmVyLCB3ZSBkbyBub3QgcmVwbGFjZSB0aGUgdHlwZWRlZiB0eXBl IGJ5IHRoZQorLSAgICAgdGFyZ2V0IHR5cGUsIGJlY2F1c2Ugd2Ugd2FudCB0byBrZWVwIHRoZSB0 eXBlZGVmIGluIG9yZGVyIHRvIGJlIGFibGUgdG8KKy0gICAgIHNldCB0aGUgcmV0dXJuZWQgdmFs dWUgdHlwZSBkZXNjcmlwdGlvbiBjb3JyZWN0bHkuICAqLworLSAgY2hlY2tfdHlwZWRlZiAodHlw ZSk7CiAtCiAtICBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CiAgCiAgICBpZiAoc3ltYm9sX3Jl YWRfbmVlZHNfZnJhbWUgKHZhcikpCiAgICAgIGdkYl9hc3NlcnQgKGZyYW1lKTsKLUBAIC00Mjks MzMgKzQxOSw0MyBAQCByZWFkX3Zhcl92YWx1ZSAoc3RydWN0IHN5bWJvbCAqdmFyLCBzdHJ1Y3Qg ZnJhbWVfaW5mbyAqZnJhbWUpCi0gICBzd2l0Y2ggKFNZTUJPTF9DTEFTUyAodmFyKSkKLSAgICAg eworQEAgLTQyNyw3ICs0MjEsNyBAQCByZWFkX3Zhcl92YWx1ZSAoc3RydWN0IHN5bWJvbCAqdmFy LCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUpCiAgICAgIGNhc2UgTE9DX0NPTlNUOgotLSAgICAg IC8qIFB1dCB0aGUgY29uc3RhbnQgYmFjayBpbiB0YXJnZXQgZm9ybWF0LiAgKi8KKyAgICAgICAv KiBQdXQgdGhlIGNvbnN0YW50IGJhY2sgaW4gdGFyZ2V0IGZvcm1hdC4gICovCisgICAgICAgdiA9 IGFsbG9jYXRlX3ZhbHVlICh0eXBlKTsKIC0gICAgICBzdG9yZV9zaWduZWRfaW50ZWdlciAodmFs dWVfY29udGVudHNfcmF3ICh2KSwgbGVuLAotLQkJCSAgICBnZGJhcmNoX2J5dGVfb3JkZXIgKGdl dF90eXBlX2FyY2ggKHR5cGUpKSwKLS0JCQkgICAgKExPTkdFU1QpIFNZTUJPTF9WQUxVRSAodmFy KSk7Ci0tICAgICAgVkFMVUVfTFZBTCAodikgPSBub3RfbHZhbDsKLS0gICAgICByZXR1cm4gdjsK LSsgICAgICB7Ci0rCS8qIFB1dCB0aGUgY29uc3RhbnQgYmFjayBpbiB0YXJnZXQgZm9ybWF0LiAg Ki8KLSsJc3RydWN0IHZhbHVlICp2ID0gYWxsb2NhdGVfdmFsdWUgKHR5cGUpOwotKwlWQUxVRV9M VkFMICh2KSA9IG5vdF9sdmFsOwotKwlzdG9yZV9zaWduZWRfaW50ZWdlciAodmFsdWVfY29udGVu dHNfcmF3ICh2KSwgVFlQRV9MRU5HVEggKHR5cGUpLAotKwkJCSAgICAgIGdkYmFyY2hfYnl0ZV9v cmRlciAoZ2V0X3R5cGVfYXJjaCAodHlwZSkpLAotKwkJCSAgICAgIChMT05HRVNUKSBTWU1CT0xf VkFMVUUgKHZhcikpOwotKwlyZXR1cm4gdjsKLSsgICAgICB9Ci0gCi0gICAgIGNhc2UgTE9DX0xB QkVMOgotLSAgICAgIC8qIFB1dCB0aGUgY29uc3RhbnQgYmFjayBpbiB0YXJnZXQgZm9ybWF0LiAg Ki8KLS0gICAgICBpZiAob3ZlcmxheV9kZWJ1Z2dpbmcpCi0tCXsKLS0JICBDT1JFX0FERFIgYWRk cgotLQkgICAgPSBzeW1ib2xfb3ZlcmxheWVkX2FkZHJlc3MgKFNZTUJPTF9WQUxVRV9BRERSRVNT ICh2YXIpLAotLQkJCQkJU1lNQk9MX09CSl9TRUNUSU9OICh2YXIpKTsKLSsgICAgICB7Ci0rCS8q IFB1dCB0aGUgY29uc3RhbnQgYmFjayBpbiB0YXJnZXQgZm9ybWF0LiAgKi8KLSsJc3RydWN0IHZh bHVlICp2ID0gYWxsb2NhdGVfdmFsdWUgKHR5cGUpOwotKwlWQUxVRV9MVkFMICh2KSA9IG5vdF9s dmFsOwotKwlpZiAob3ZlcmxheV9kZWJ1Z2dpbmcpCi0rCSAgewotKwkgICAgQ09SRV9BRERSIGFk ZHIKLSsJICAgICAgPSBzeW1ib2xfb3ZlcmxheWVkX2FkZHJlc3MgKFNZTUJPTF9WQUxVRV9BRERS RVNTICh2YXIpLAotKwkJCQkJICBTWU1CT0xfT0JKX1NFQ1RJT04gKHZhcikpOwotIAotLQkgIHN0 b3JlX3R5cGVkX2FkZHJlc3MgKHZhbHVlX2NvbnRlbnRzX3JhdyAodiksIHR5cGUsIGFkZHIpOwot LQl9Ci0tICAgICAgZWxzZQotLQlzdG9yZV90eXBlZF9hZGRyZXNzICh2YWx1ZV9jb250ZW50c19y YXcgKHYpLCB0eXBlLAotLQkJCSAgICAgIFNZTUJPTF9WQUxVRV9BRERSRVNTICh2YXIpKTsKLS0g ICAgICBWQUxVRV9MVkFMICh2KSA9IG5vdF9sdmFsOwotLSAgICAgIHJldHVybiB2OwotKwkgICAg c3RvcmVfdHlwZWRfYWRkcmVzcyAodmFsdWVfY29udGVudHNfcmF3ICh2KSwgdHlwZSwgYWRkcik7 Ci0rCSAgfQotKwllbHNlCi0rCSAgc3RvcmVfdHlwZWRfYWRkcmVzcyAodmFsdWVfY29udGVudHNf cmF3ICh2KSwgdHlwZSwKLSsJCQkJU1lNQk9MX1ZBTFVFX0FERFJFU1MgKHZhcikpOwotKwlyZXR1 cm4gdjsKLSsgICAgICB9CisrICAgICAgc3RvcmVfc2lnbmVkX2ludGVnZXIgKHZhbHVlX2NvbnRl bnRzX3JhdyAodiksIFRZUEVfTEVOR1RIICh0eXBlKSwKKyAJCQkgICAgZ2RiYXJjaF9ieXRlX29y ZGVyIChnZXRfdHlwZV9hcmNoICh0eXBlKSksCisgCQkJICAgIChMT05HRVNUKSBTWU1CT0xfVkFM VUUgKHZhcikpOworICAgICAgIFZBTFVFX0xWQUwgKHYpID0gbm90X2x2YWw7CitAQCAtNDUyLDEy ICs0NDYsMTIgQEAgcmVhZF92YXJfdmFsdWUgKHN0cnVjdCBzeW1ib2wgKnZhciwgc3RydWN0IGZy YW1lX2luZm8gKmZyYW1lKQogIAogICAgICBjYXNlIExPQ19DT05TVF9CWVRFUzoKKyAgICAgICB2 ID0gYWxsb2NhdGVfdmFsdWUgKHR5cGUpOwogLSAgICAgIG1lbWNweSAodmFsdWVfY29udGVudHNf cmF3ICh2KSwgU1lNQk9MX1ZBTFVFX0JZVEVTICh2YXIpLCBsZW4pOwotLSAgICAgIFZBTFVFX0xW QUwgKHYpID0gbm90X2x2YWw7Ci0tICAgICAgcmV0dXJuIHY7Ci0rICAgICAgewotKwlzdHJ1Y3Qg dmFsdWUgKnYgPSBhbGxvY2F0ZV92YWx1ZSAodHlwZSk7Ci0rCVZBTFVFX0xWQUwgKHYpID0gbm90 X2x2YWw7Ci0rCW1lbWNweSAodmFsdWVfY29udGVudHNfcmF3ICh2KSwgU1lNQk9MX1ZBTFVFX0JZ VEVTICh2YXIpLAotKwkJVFlQRV9MRU5HVEggKHR5cGUpKTsKLSsJcmV0dXJuIHY7Ci0rICAgICAg fQorKyAgICAgIG1lbWNweSAodmFsdWVfY29udGVudHNfcmF3ICh2KSwgU1lNQk9MX1ZBTFVFX0JZ VEVTICh2YXIpLAorKwkgICAgICBUWVBFX0xFTkdUSCAodHlwZSkpOworICAgICAgIFZBTFVFX0xW QUwgKHYpID0gbm90X2x2YWw7CisgICAgICAgcmV0dXJuIHY7CiAgCiAgICAgIGNhc2UgTE9DX1NU QVRJQzoKKy0gICAgICB2ID0gYWxsb2NhdGVfdmFsdWVfbGF6eSAodHlwZSk7CiAgICAgICAgaWYg KG92ZXJsYXlfZGVidWdnaW5nKQotQEAgLTQ5NiwxMiArNDk2LDIzIEBAIHJlYWRfdmFyX3ZhbHVl IChzdHJ1Y3Qgc3ltYm9sICp2YXIsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkKKyAJYWRkciA9 IHN5bWJvbF9vdmVybGF5ZWRfYWRkcmVzcyAoU1lNQk9MX1ZBTFVFX0FERFJFU1MgKHZhciksCisg CQkJCQkgU1lNQk9MX09CSl9TRUNUSU9OICh2YXIpKTsKK0BAIC00NzAsNyArNDY0LDYgQEAgcmVh ZF92YXJfdmFsdWUgKHN0cnVjdCBzeW1ib2wgKnZhciwgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1l KQorICAgICAgIGlmICghYWRkcikKKyAJcmV0dXJuIDA7CisgICAgICAgYWRkciArPSBTWU1CT0xf VkFMVUUgKHZhcik7CistICAgICAgdiA9IGFsbG9jYXRlX3ZhbHVlX2xhenkgKHR5cGUpOwogICAg ICAgIGJyZWFrOwogIAotICAgICBjYXNlIExPQ19CTE9DSzoKLS0gICAgICBpZiAob3ZlcmxheV9k ZWJ1Z2dpbmcpCi0tCXNldF92YWx1ZV9hZGRyZXNzICh2LCBzeW1ib2xfb3ZlcmxheWVkX2FkZHJl c3MKLS0JICAoQkxPQ0tfU1RBUlQgKFNZTUJPTF9CTE9DS19WQUxVRSAodmFyKSksIFNZTUJPTF9P QkpfU0VDVElPTiAodmFyKSkpOwotLSAgICAgIGVsc2UKLS0Jc2V0X3ZhbHVlX2FkZHJlc3MgKHYs IEJMT0NLX1NUQVJUIChTWU1CT0xfQkxPQ0tfVkFMVUUgKHZhcikpKTsKLS0gICAgICByZXR1cm4g djsKLSsgICAgICB7Ci0rICAgICAgICBDT1JFX0FERFIgYWRkcjsKLSsJc3RydWN0IHZhbHVlICp2 OwotKwotKwlpZiAob3ZlcmxheV9kZWJ1Z2dpbmcpCi0rCSAgYWRkciA9IHN5bWJvbF9vdmVybGF5 ZWRfYWRkcmVzcwotKwkgICAgKEJMT0NLX1NUQVJUIChTWU1CT0xfQkxPQ0tfVkFMVUUgKHZhcikp LCBTWU1CT0xfT0JKX1NFQ1RJT04gKHZhcikpOwotKwllbHNlCi0rCSAgYWRkciA9IEJMT0NLX1NU QVJUIChTWU1CT0xfQkxPQ0tfVkFMVUUgKHZhcikpOwotKwkvKiBBRERSIGlzIHNldCBoZXJlIGZv ciBBTExPQ0FURV9WQUxVRSdzIENIRUNLX1RZUEVERUYgZm9yCi0rCSAgIERXX09QX3B1c2hfb2Jq ZWN0X2FkZHJlc3MuICAqLwotKwlvYmplY3RfYWRkcmVzc19zZXQgKGFkZHIpOwotKwl2ID0gYWxs b2NhdGVfdmFsdWUgKHR5cGUpOwotKwlWQUxVRV9MVkFMICh2KSA9IGx2YWxfbWVtb3J5OwotKwlz ZXRfdmFsdWVfYWRkcmVzcyAodiwgYWRkcik7Ci0rCXJldHVybiB2OwotKyAgICAgIH0KKyAgICAg Y2FzZSBMT0NfUkVGX0FSRzoKK0BAIC00ODQsMTQgKzQ3NywxMiBAQCByZWFkX3Zhcl92YWx1ZSAo c3RydWN0IHN5bWJvbCAqdmFyLCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUpCisgCWFyZ3JlZiAr PSBTWU1CT0xfVkFMVUUgKHZhcik7CisgCXJlZiA9IHZhbHVlX2F0IChsb29rdXBfcG9pbnRlcl90 eXBlICh0eXBlKSwgYXJncmVmKTsKKyAJYWRkciA9IHZhbHVlX2FzX2FkZHJlc3MgKHJlZik7Cist CXYgPSBhbGxvY2F0ZV92YWx1ZV9sYXp5ICh0eXBlKTsKKyAJYnJlYWs7CisgICAgICAgfQorIAor ICAgICBjYXNlIExPQ19MT0NBTDoKKyAgICAgICBhZGRyID0gZ2V0X2ZyYW1lX2xvY2Fsc19hZGRy ZXNzIChmcmFtZSk7CisgICAgICAgYWRkciArPSBTWU1CT0xfVkFMVUUgKHZhcik7CistICAgICAg diA9IGFsbG9jYXRlX3ZhbHVlX2xhenkgKHR5cGUpOworICAgICAgIGJyZWFrOworIAorICAgICBj YXNlIExPQ19UWVBFREVGOgorQEAgLTQ5OSw3ICs0OTAsNiBAQCByZWFkX3Zhcl92YWx1ZSAoc3Ry dWN0IHN5bWJvbCAqdmFyLCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUpCisgICAgICAgYnJlYWs7 CiAgCi0gICAgIGNhc2UgTE9DX1JFR0lTVEVSOgotICAgICBjYXNlIExPQ19SRUdQQVJNX0FERFI6 Ci1AQCAtNTIwLDcgKzUzMSw2IEBAIHJlYWRfdmFyX3ZhbHVlIChzdHJ1Y3Qgc3ltYm9sICp2YXIs IHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkKKyAgICAgY2FzZSBMT0NfQkxPQ0s6CistICAgICAg diA9IGFsbG9jYXRlX3ZhbHVlX2xhenkgKHR5cGUpOworICAgICAgIGlmIChvdmVybGF5X2RlYnVn Z2luZykKKyAJYWRkciA9IHN5bWJvbF9vdmVybGF5ZWRfYWRkcmVzcworIAkgIChCTE9DS19TVEFS VCAoU1lNQk9MX0JMT0NLX1ZBTFVFICh2YXIpKSwgU1lNQk9MX09CSl9TRUNUSU9OICh2YXIpKTsK K0BAIC01MjQsNyArNTE0LDYgQEAgcmVhZF92YXJfdmFsdWUgKHN0cnVjdCBzeW1ib2wgKnZhciwg c3RydWN0IGZyYW1lX2luZm8gKmZyYW1lKQogIAkgICAgICBlcnJvciAoXygiVmFsdWUgb2YgcmVn aXN0ZXIgdmFyaWFibGUgbm90IGF2YWlsYWJsZS4iKSk7CiAgCiAgCSAgICBhZGRyID0gdmFsdWVf YXNfYWRkcmVzcyAocmVndmFsKTsKLS0JICAgIFZBTFVFX0xWQUwgKHYpID0gbHZhbF9tZW1vcnk7 CistCSAgICB2ID0gYWxsb2NhdGVfdmFsdWVfbGF6eSAodHlwZSk7CiAgCSAgfQogIAllbHNlCiAg CSAgewotQEAgLTU2MywxOCArNTczLDMzIEBAIHJlYWRfdmFyX3ZhbHVlIChzdHJ1Y3Qgc3ltYm9s ICp2YXIsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkKK0BAIC01NjMsNyArNTUyLDYgQEAgcmVh ZF92YXJfdmFsdWUgKHN0cnVjdCBzeW1ib2wgKnZhciwgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1l KQorIAlpZiAob2JqX3NlY3Rpb24KKyAJICAgICYmIChvYmpfc2VjdGlvbi0+dGhlX2JmZF9zZWN0 aW9uLT5mbGFncyAmIFNFQ19USFJFQURfTE9DQUwpICE9IDApCisgCSAgYWRkciA9IHRhcmdldF90 cmFuc2xhdGVfdGxzX2FkZHJlc3MgKG9ial9zZWN0aW9uLT5vYmpmaWxlLCBhZGRyKTsKKy0JdiA9 IGFsbG9jYXRlX3ZhbHVlX2xhenkgKHR5cGUpOworICAgICAgIH0KICAgICAgICBicmVhazsKICAK LSAgICAgY2FzZSBMT0NfT1BUSU1JWkVEX09VVDoKLS0gICAgICBWQUxVRV9MVkFMICh2KSA9IG5v dF9sdmFsOwotLSAgICAgIHNldF92YWx1ZV9vcHRpbWl6ZWRfb3V0ICh2LCAxKTsKLS0gICAgICBy ZXR1cm4gdjsKLSsgICAgICB7Ci0rICAgICAgICBzdHJ1Y3QgdmFsdWUgKnYgPSBhbGxvY2F0ZV92 YWx1ZSAodHlwZSk7Ci0rCi0rCVZBTFVFX0xWQUwgKHYpID0gbm90X2x2YWw7Ci0rCXNldF92YWx1 ZV9vcHRpbWl6ZWRfb3V0ICh2LCAxKTsKLSsJcmV0dXJuIHY7Ci0rICAgICAgfQotIAotICAgICBk ZWZhdWx0OgotICAgICAgIGVycm9yIChfKCJDYW5ub3QgbG9vayB1cCB2YWx1ZSBvZiBhIGJvdGNo ZWQgc3ltYm9sLiIpKTsKK0BAIC01NzgsNiArNTY2LDEwIEBAIHJlYWRfdmFyX3ZhbHVlIChzdHJ1 Y3Qgc3ltYm9sICp2YXIsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkKICAgICAgICBicmVhazsK ICAgICAgfQogIAotLSAgc2V0X3ZhbHVlX2FkZHJlc3MgKHYsIGFkZHIpOwotLSAgc2V0X3ZhbHVl X2xhenkgKHYsIDEpOwotLSAgcmV0dXJuIHY7Ci0rICB7Ci0rICAgIHN0cnVjdCB2YWx1ZSAqdjsK LSsKLSsgICAgLyogQUREUiBpcyBzZXQgaGVyZSBmb3IgQUxMT0NBVEVfVkFMVUUncyBDSEVDS19U WVBFREVGIGZvcgotKyAgICAgICBEV19PUF9QVVNIX09CSkVDVF9BRERSRVNTLiAgKi8KLSsgICAg b2JqZWN0X2FkZHJlc3Nfc2V0IChhZGRyKTsKLSsgICAgdiA9IGFsbG9jYXRlX3ZhbHVlICh0eXBl KTsKLSsgICAgVkFMVUVfTFZBTCAodikgPSBsdmFsX21lbW9yeTsKLSsgICAgc2V0X3ZhbHVlX2Fk ZHJlc3MgKHYsIGFkZHIpOwotKwotKyAgICBzZXRfdmFsdWVfbGF6eSAodiwgMSk7Ci0rCi0rICAg IHJldHVybiB2OwotKyAgfQotIH0KLSAKLSAvKiBJbnN0YWxsIGRlZmF1bHQgYXR0cmlidXRlcyBm b3IgcmVnaXN0ZXIgdmFsdWVzLiAgKi8KLUBAIC02MTEsMTAgKzYzNiwxMSBAQCBzdHJ1Y3QgdmFs dWUgKgorKyAgLyogQUREUiBpcyBzZXQgaGVyZSBmb3IgQUxMT0NBVEVfVkFMVUUncyBDSEVDS19U WVBFREVGIGZvcgorKyAgICAgRFdfT1BfUFVTSF9PQkpFQ1RfQUREUkVTUy4gICovCisrICBvYmpl Y3RfYWRkcmVzc19zZXQgKGFkZHIpOworKyAgdiA9IGFsbG9jYXRlX3ZhbHVlX2xhenkgKHR5cGUp OworICAgVkFMVUVfTFZBTCAodikgPSBsdmFsX21lbW9yeTsKKyAgIHNldF92YWx1ZV9hZGRyZXNz ICh2LCBhZGRyKTsKKyAgIHJldHVybiB2OworQEAgLTYxNywxMCArNjA5LDExIEBAIHN0cnVjdCB2 YWx1ZSAqCiAgdmFsdWVfZnJvbV9yZWdpc3RlciAoc3RydWN0IHR5cGUgKnR5cGUsIGludCByZWdu dW0sIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri YXJjaCA9IGdldF9mcmFtZV9hcmNoIChmcmFtZSk7CkBAIC0zNTI3LDcgKzM1MzIsNyBAQCBpbmRl eCA1Zjk3NDIyLi4yYzI2NzBlIDEwMDY0NAogICAgICB7CiAgICAgICAgLyogVGhlIElTQS9BQkkg bmVlZCB0byBzb21ldGhpbmcgd2VpcmQgd2hlbiBvYnRhaW5pbmcgdGhlCiAgICAgICAgICAgc3Bl Y2lmaWVkIHZhbHVlIGZyb20gdGhpcyByZWdpc3Rlci4gIEl0IG1pZ2h0IG5lZWQgdG8KLUBAIC02 MjgsNyArNjU0LDcgQEAgdmFsdWVfZnJvbV9yZWdpc3RlciAoc3RydWN0IHR5cGUgKnR5cGUsIGlu dCByZWdudW0sIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkKK0BAIC02MzQsNyArNjI3LDcgQEAg dmFsdWVfZnJvbV9yZWdpc3RlciAoc3RydWN0IHR5cGUgKnR5cGUsIGludCByZWdudW0sIHN0cnVj dCBmcmFtZV9pbmZvICpmcmFtZSkKICAgICAgICBWQUxVRV9GUkFNRV9JRCAodikgPSBnZXRfZnJh bWVfaWQgKGZyYW1lKTsKICAgICAgICBWQUxVRV9SRUdOVU0gKHYpID0gcmVnbnVtOwogICAgICAg IGdkYmFyY2hfcmVnaXN0ZXJfdG9fdmFsdWUgKGdkYmFyY2gsCkBAIC0zNTU3LDcgKzM1NjIsNyBA QCBpbmRleCBmZmI3ZjUzLi5hMmU3ZTk0IDEwMDY0NAogIAogIGIgaW50ZXJuYWxfZXJyb3IKIGRp ZmYgLS1naXQgYS9nZGIvZ2RidHlwZXMuYyBiL2dkYi9nZGJ0eXBlcy5jCi1pbmRleCAwMGE3MDc1 Li5lYWFkYWMwIDEwMDY0NAoraW5kZXggMmNmMWI0ZC4uZDE0NWZkOSAxMDA2NDQKIC0tLSBhL2dk Yi9nZGJ0eXBlcy5jCiArKysgYi9nZGIvZ2RidHlwZXMuYwogQEAgLTM5LDYgKzM5LDkgQEAKQEAg LTM1NzAsOSArMzU3NSwxMiBAQCBpbmRleCAwMGE3MDc1Li5lYWFkYWMwIDEwMDY0NAogIAogIAog IC8qIEluaXRpYWxpemUgQkFETkVTUyBjb25zdGFudHMuICAqLwotQEAgLTE0NSw2ICsxNDgsMTEg QEAgc3RhdGljIHZvaWQgcHJpbnRfYXJnX3R5cGVzIChzdHJ1Y3QgZmllbGQgKiwgaW50LCBpbnQp OworQEAgLTE0NCw3ICsxNDcsMTQgQEAgc3RhdGljIHZvaWQgcHJpbnRfYml0X3ZlY3RvciAoQl9U WVBFICosIGludCk7Cisgc3RhdGljIHZvaWQgcHJpbnRfYXJnX3R5cGVzIChzdHJ1Y3QgZmllbGQg KiwgaW50LCBpbnQpOwogIHN0YXRpYyB2b2lkIGR1bXBfZm5fZmllbGRsaXN0cyAoc3RydWN0IHR5 cGUgKiwgaW50KTsKICBzdGF0aWMgdm9pZCBwcmludF9jcGx1c19zdHVmZiAoc3RydWN0IHR5cGUg KiwgaW50KTsKKytzdGF0aWMgTE9OR0VTVCB0eXBlX2xlbmd0aF9nZXQgKHN0cnVjdCB0eXBlICp0 eXBlLCBzdHJ1Y3QgdHlwZSAqdGFyZ2V0X3R5cGUsCisrCQkJCWludCBmdWxsX3NwYW4pOwogIAog Ky8qIFRoZSBoYXNoIHRhYmxlIGhvbGRpbmcgYWxsIGRpc2NhcmRhYmxlIGBzdHJ1Y3QgdHlwZSAq JyByZWZlcmVuY2VzLiAgKi8KICtzdGF0aWMgaHRhYl90IHR5cGVfZGlzY2FyZGFibGVfdGFibGU7 CkBAIC0zNTgyLDcgKzM1OTAsNyBAQCBpbmRleCAwMGE3MDc1Li5lYWFkYWMwIDEwMDY0NAogIAog IC8qIEFsbG9jYXRlIGEgbmV3IE9CSkZJTEUtYXNzb2NpYXRlZCB0eXBlIHN0cnVjdHVyZSBhbmQg ZmlsbCBpdAogICAgIHdpdGggc29tZSBkZWZhdWx0cy4gIFNwYWNlIGZvciB0aGUgdHlwZSBzdHJ1 Y3R1cmUgaXMgYWxsb2NhdGVkCi1AQCAtMTc1LDYgKzE4MywzOSBAQCBhbGxvY190eXBlIChzdHJ1 Y3Qgb2JqZmlsZSAqb2JqZmlsZSkKK0BAIC0xNzUsNiArMTg1LDM5IEBAIGFsbG9jX3R5cGUgKHN0 cnVjdCBvYmpmaWxlICpvYmpmaWxlKQogICAgcmV0dXJuIHR5cGU7CiAgfQogIApAQCAtMzYyMiw3 ICszNjMwLDcgQEAgaW5kZXggMDBhNzA3NS4uZWFhZGFjMCAxMDA2NDQKICAvKiBBbGxvY2F0ZSBh IG5ldyBHREJBUkNILWFzc29jaWF0ZWQgdHlwZSBzdHJ1Y3R1cmUgYW5kIGZpbGwgaXQKICAgICB3 aXRoIHNvbWUgZGVmYXVsdHMuICBTcGFjZSBmb3IgdGhlIHR5cGUgc3RydWN0dXJlIGlzIGFsbG9j YXRlZAogICAgIG9uIHRoZSBoZWFwLiAgKi8KLUBAIC0zMDAsNyArMzQxLDcgQEAgbWFrZV9wb2lu dGVyX3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdHlwZSAqKnR5cGVwdHIpCitAQCAt MzAwLDcgKzM0Myw3IEBAIG1ha2VfcG9pbnRlcl90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3Ry dWN0IHR5cGUgKip0eXBlcHRyKQogIAogICAgaWYgKHR5cGVwdHIgPT0gMCB8fCAqdHlwZXB0ciA9 PSAwKQkvKiBXZSdsbCBuZWVkIHRvIGFsbG9jYXRlIG9uZS4gICovCiAgICAgIHsKQEAgLTM2MzEs NyArMzYzOSw3IEBAIGluZGV4IDAwYTcwNzUuLmVhYWRhYzAgMTAwNjQ0CiAgICAgICAgaWYgKHR5 cGVwdHIpCiAgCSp0eXBlcHRyID0gbnR5cGU7CiAgICAgIH0KLUBAIC0zNzcsNyArNDE4LDcgQEAg bWFrZV9yZWZlcmVuY2VfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB0eXBlICoqdHlw ZXB0cikKK0BAIC0zNzcsNyArNDIwLDcgQEAgbWFrZV9yZWZlcmVuY2VfdHlwZSAoc3RydWN0IHR5 cGUgKnR5cGUsIHN0cnVjdCB0eXBlICoqdHlwZXB0cikKICAKICAgIGlmICh0eXBlcHRyID09IDAg fHwgKnR5cGVwdHIgPT0gMCkJLyogV2UnbGwgbmVlZCB0byBhbGxvY2F0ZSBvbmUuICAqLwogICAg ICB7CkBAIC0zNjQwLDcgKzM2NDgsNyBAQCBpbmRleCAwMGE3MDc1Li5lYWFkYWMwIDEwMDY0NAog ICAgICAgIGlmICh0eXBlcHRyKQogIAkqdHlwZXB0ciA9IG50eXBlOwogICAgICB9Ci1AQCAtNzQ4 LDYgKzc4OSw3IEBAIGNyZWF0ZV9yYW5nZV90eXBlIChzdHJ1Y3QgdHlwZSAqcmVzdWx0X3R5cGUs IHN0cnVjdCB0eXBlICppbmRleF90eXBlLAorQEAgLTc0OCw2ICs3OTEsNyBAQCBjcmVhdGVfcmFu Z2VfdHlwZSAoc3RydWN0IHR5cGUgKnJlc3VsdF90eXBlLCBzdHJ1Y3QgdHlwZSAqaW5kZXhfdHlw ZSwKICAgICAgVFlQRV9aQUxMT0MgKHJlc3VsdF90eXBlLCBzaXplb2YgKHN0cnVjdCByYW5nZV9i b3VuZHMpKTsKICAgIFRZUEVfTE9XX0JPVU5EIChyZXN1bHRfdHlwZSkgPSBsb3dfYm91bmQ7CiAg ICBUWVBFX0hJR0hfQk9VTkQgKHJlc3VsdF90eXBlKSA9IGhpZ2hfYm91bmQ7CkBAIC0zNjQ4LDcg KzM2NTYsNyBAQCBpbmRleCAwMGE3MDc1Li5lYWFkYWMwIDEwMDY0NAogIAogICAgaWYgKGxvd19i b3VuZCA+PSAwKQogICAgICBUWVBFX1VOU0lHTkVEIChyZXN1bHRfdHlwZSkgPSAxOwotQEAgLTg5 MSwyNiArOTMzLDQ1IEBAIGNyZWF0ZV9hcnJheV90eXBlIChzdHJ1Y3QgdHlwZSAqcmVzdWx0X3R5 cGUsCitAQCAtODkxLDI2ICs5MzUsMzEgQEAgY3JlYXRlX2FycmF5X3R5cGUgKHN0cnVjdCB0eXBl ICpyZXN1bHRfdHlwZSwKICAKICAgIFRZUEVfQ09ERSAocmVzdWx0X3R5cGUpID0gVFlQRV9DT0RF X0FSUkFZOwogICAgVFlQRV9UQVJHRVRfVFlQRSAocmVzdWx0X3R5cGUpID0gZWxlbWVudF90eXBl OwpAQCAtMzY2OSwzNCArMzY3NywyMCBAQCBpbmRleCAwMGE3MDc1Li5lYWFkYWMwIDEwMDY0NAog ICAgVFlQRV9JTkRFWF9UWVBFIChyZXN1bHRfdHlwZSkgPSByYW5nZV90eXBlOwogICAgVFlQRV9W UFRSX0ZJRUxETk8gKHJlc3VsdF90eXBlKSA9IC0xOwogIAotLSAgLyogVFlQRV9GTEFHX1RBUkdF VF9TVFVCIHdpbGwgdGFrZSBjYXJlIG9mIHplcm8gbGVuZ3RoIGFycmF5cyAqLworLSAgLyogVFlQ RV9GTEFHX1RBUkdFVF9TVFVCIHdpbGwgdGFrZSBjYXJlIG9mIHplcm8gbGVuZ3RoIGFycmF5cy4g ICovCiArICAvKiBEV0FSRiBibG9ja3MgbWF5IGRlcGVuZCBvbiBydW50aW1lIGluZm9ybWF0aW9u IGxpa2UKICsgICAgIERXX09QX1BVU0hfT0JKRUNUX0FERFJFU1Mgbm90IGJlaW5nIGF2YWlsYWJs ZSBkdXJpbmcgdGhlCiArICAgICBDUkVBVEVfQVJSQVlfVFlQRSB0aW1lLiAgKi8KICsgIGlmIChU WVBFX1JBTkdFX0RBVEEgKHJhbmdlX3R5cGUpLT5sb3cua2luZCAhPSBSQU5HRV9CT1VORF9LSU5E X0NPTlNUQU5UCi0rICAgICAgfHwgVFlQRV9SQU5HRV9EQVRBIChyYW5nZV90eXBlKS0+aGlnaC5r aW5kICE9IFJBTkdFX0JPVU5EX0tJTkRfQ09OU1RBTlQKLSsgICAgICB8fCBUWVBFX0xPV19CT1VO RF9VTkRFRklORUQgKHJhbmdlX3R5cGUpIAotKyAgICAgIHx8IFRZUEVfSElHSF9CT1VORF9VTkRF RklORUQgKHJhbmdlX3R5cGUpIAotKyAgICAgIHx8IGdldF9kaXNjcmV0ZV9ib3VuZHMgKHJhbmdl X3R5cGUsICZsb3dfYm91bmQsICZoaWdoX2JvdW5kKSA8IDApCi0rICAgIHsKLSsgICAgICBsb3df Ym91bmQgPSAwOwotKyAgICAgIGhpZ2hfYm91bmQgPSAtMTsKLSsgICAgfQotKwotKyAgLyogQmUg Y2FyZWZ1bCB3aGVuIHNldHRpbmcgdGhlIGFycmF5IGxlbmd0aC4gIEFkYSBhcnJheXMgY2FuIGJl Ci0rICAgICBlbXB0eSBhcnJheXMgd2l0aCB0aGUgaGlnaF9ib3VuZCBiZWluZyBzbWFsbGVyIHRo YW4gdGhlIGxvd19ib3VuZC4KLSsgICAgIEluIHN1Y2ggY2FzZXMsIHRoZSBhcnJheSBsZW5ndGgg c2hvdWxkIGJlIHplcm8uICBUWVBFX1RBUkdFVF9TVFVCIG5lZWRzIHRvCi0rICAgICBiZSBjaGVj a2VkIGFzIGl0IG1heSBoYXZlIGRlcGVuZGVuY2llcyBvbiBEV0FSRiBibG9ja3MgZGVwZW5kaW5n IG9uCi0rICAgICBydW50aW1lIGluZm9ybWF0aW9uIG5vdCBhdmFpbGFibGUgZHVyaW5nIHRoZSBD UkVBVEVfQVJSQVlfVFlQRSB0aW1lLiAgKi8KLSsgIGlmIChoaWdoX2JvdW5kIDwgbG93X2JvdW5k IHx8IFRZUEVfVEFSR0VUX1NUVUIgKGVsZW1lbnRfdHlwZSkpCisrICAgICAgfHwgVFlQRV9SQU5H RV9EQVRBIChyYW5nZV90eXBlKS0+aGlnaC5raW5kICE9IFJBTkdFX0JPVU5EX0tJTkRfQ09OU1RB TlQKKysgICAgICB8fCBUWVBFX0RZTkFNSUMgKGVsZW1lbnRfdHlwZSkpCiArICAgIFRZUEVfTEVO R1RIIChyZXN1bHRfdHlwZSkgPSAwOwogKyAgZWxzZQogKyAgICB7CiArICAgICAgQ0hFQ0tfVFlQ RURFRiAoZWxlbWVudF90eXBlKTsKLSsgICAgICBUWVBFX0xFTkdUSCAocmVzdWx0X3R5cGUpID0K LSsJVFlQRV9MRU5HVEggKGVsZW1lbnRfdHlwZSkgKiAoaGlnaF9ib3VuZCAtIGxvd19ib3VuZCAr IDEpOworKyAgICAgIFRZUEVfTEVOR1RIIChyZXN1bHRfdHlwZSkgPSB0eXBlX2xlbmd0aF9nZXQg KHJlc3VsdF90eXBlLCBlbGVtZW50X3R5cGUsCisrCQkJCQkJICAgMCk7CiArICAgIH0KLSsKICAg IGlmIChUWVBFX0xFTkdUSCAocmVzdWx0X3R5cGUpID09IDApCiAtICAgIFRZUEVfVEFSR0VUX1NU VUIgKHJlc3VsdF90eXBlKSA9IDE7CiArICAgIHsKQEAgLTM3MDcsNyArMzcwMSw3IEBAIGluZGV4 IDAwYTcwNzUuLmVhYWRhYzAgMTAwNjQ0CiAgCiAgICByZXR1cm4gcmVzdWx0X3R5cGU7CiAgfQot QEAgLTE0MTMsNiArMTQ3NCwxMDUgQEAgc3R1Yl9ub25hbWVfY29tcGxhaW50ICh2b2lkKQorQEAg LTE0MTMsNiArMTQ2MiwxMDUgQEAgc3R1Yl9ub25hbWVfY29tcGxhaW50ICh2b2lkKQogICAgY29t cGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLCBfKCJzdHViIHR5cGUgaGFzIE5VTEwgbmFtZSIp KTsKICB9CiAgCkBAIC0zODEzLDcgKzM4MDcsNyBAQCBpbmRleCAwMGE3MDc1Li5lYWFkYWMwIDEw MDY0NAogIC8qIEZpbmQgdGhlIHJlYWwgdHlwZSBvZiBUWVBFLiAgVGhpcyBmdW5jdGlvbiByZXR1 cm5zIHRoZSByZWFsIHR5cGUsCiAgICAgYWZ0ZXIgcmVtb3ZpbmcgYWxsIGxheWVycyBvZiB0eXBl ZGVmcywgYW5kIGNvbXBsZXRpbmcgb3BhcXVlIG9yIHN0dWIKICAgICB0eXBlcy4gIENvbXBsZXRp b24gY2hhbmdlcyB0aGUgVFlQRSBhcmd1bWVudCwgYnV0IHN0cmlwcGluZyBvZgotQEAgLTE1NzUs NTIgKzE3MzUsMzYgQEAgY2hlY2tfdHlwZWRlZiAoc3RydWN0IHR5cGUgKnR5cGUpCitAQCAtMTU3 NSw1MiArMTcyMywzNSBAQCBjaGVja190eXBlZGVmIChzdHJ1Y3QgdHlwZSAqdHlwZSkKICAgICAg ICAgIH0KICAgICAgfQogIApAQCAtMzgyMyw3ICszODE3LDYgQEAgaW5kZXggMDBhNzA3NS4uZWFh ZGFjMCAxMDA2NDQKICsgIGlmIChUWVBFX0RZTkFNSUMgKHR5cGUpKQogKyAgICB7CiArICAgICAg aHRhYl90IGNvcGllZF90eXBlczsKLSsgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZV9vbGQgPSB0eXBl OwogKwogKyAgICAgIGNvcGllZF90eXBlcyA9IGNyZWF0ZV9jb3BpZWRfdHlwZXNfaGFzaCAoTlVM TCk7CiArICAgICAgdHlwZSA9IGNvcHlfdHlwZV9yZWN1cnNpdmUgKHR5cGUsIGNvcGllZF90eXBl cyk7CkBAIC0zODUyLDcgKzM4NDUsNyBAQCBpbmRleCAwMGE3MDc1Li5lYWFkYWMwIDEwMDY0NAog IAkgIC8qIE5vdyByZWNvbXB1dGUgdGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkgdHlwZSwgYmFzZWQg b24gaXRzCiAtCSAgICAgbnVtYmVyIG9mIGVsZW1lbnRzIGFuZCB0aGUgdGFyZ2V0IHR5cGUncyBs ZW5ndGguCiAtCSAgICAgV2F0Y2ggb3V0IGZvciBBZGEgbnVsbCBBZGEgYXJyYXlzIHdoZXJlIHRo ZSBoaWdoIGJvdW5kCi0tCSAgICAgaXMgc21hbGxlciB0aGFuIHRoZSBsb3cgYm91bmQuICovCist CSAgICAgaXMgc21hbGxlciB0aGFuIHRoZSBsb3cgYm91bmQuICAqLwogLQkgIGNvbnN0IExPTkdF U1QgbG93X2JvdW5kID0gVFlQRV9MT1dfQk9VTkQgKHJhbmdlX3R5cGUpOwogLQkgIGNvbnN0IExP TkdFU1QgaGlnaF9ib3VuZCA9IFRZUEVfSElHSF9CT1VORCAocmFuZ2VfdHlwZSk7CiAtCSAgVUxP TkdFU1QgbGVuOwpAQCAtMzg2NiwxMiArMzg1OSwxMiBAQCBpbmRleCAwMGE3MDc1Li5lYWFkYWMw IDEwMDY0NAogLQkJIHRoYXQgZm9yIHggPCAwLCAoVUxPTkdFU1QpIHggPT0gLXggKyBVTE9OR0VT VF9NQVggKyAxLAogLQkJIHdoaWNoIGlzIHRlY2huaWNhbGx5IG5vdCBndWFyYW50ZWVkIGJ5IEMs IGJ1dCBpcyB1c3VhbGx5IHRydWUKIC0JCSAoYmVjYXVzZSBpdCB3b3VsZCBiZSB0cnVlIGlmIHgg d2VyZSB1bnNpZ25lZCB3aXRoIGl0cwotLQkJIGhpZ2gtb3JkZXIgYml0IG9uKS4gSXQgdXNlcyB0 aGUgZmFjdCB0aGF0CistCQkgaGlnaC1vcmRlciBiaXQgb24pLiAgSXQgdXNlcyB0aGUgZmFjdCB0 aGF0CiAtCQkgaGlnaF9ib3VuZC1sb3dfYm91bmQgaXMgYWx3YXlzIHJlcHJlc2VudGFibGUgaW4K IC0JCSBVTE9OR0VTVCBhbmQgdGhhdCBpZiBoaWdoX2JvdW5kLWxvd19ib3VuZCsxIG92ZXJmbG93 cywKIC0JCSBpdCBvdmVyZmxvd3MgdG8gMC4gIFdlIG11c3QgY2hhbmdlIHRoZXNlIHRlc3RzIGlm IHdlIAogLQkJIGRlY2lkZSB0byBpbmNyZWFzZSB0aGUgcmVwcmVzZW50YXRpb24gb2YgVFlQRV9M RU5HVEgKLS0JCSBmcm9tIHVuc2lnbmVkIGludCB0byBVTE9OR0VTVC4gKi8KKy0JCSBmcm9tIHVu c2lnbmVkIGludCB0byBVTE9OR0VTVC4gICovCiAtCSAgICAgIFVMT05HRVNUIHVsb3cgPSBsb3df Ym91bmQsIHVoaWdoID0gaGlnaF9ib3VuZDsKIC0JICAgICAgVUxPTkdFU1QgdGxlbiA9IFRZUEVf TEVOR1RIICh0YXJnZXRfdHlwZSk7CiAtCkBAIC0zODg2LDcgKzM4NzksNyBAQCBpbmRleCAwMGE3 MDc1Li5lYWFkYWMwIDEwMDY0NAogIAkgIFRZUEVfVEFSR0VUX1NUVUIgKHR5cGUpID0gMDsKICAJ fQogICAgICAgIGVsc2UgaWYgKFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX1JBTkdFKQot QEAgLTE2MjgsNiArMTc3Miw3IEBAIGNoZWNrX3R5cGVkZWYgKHN0cnVjdCB0eXBlICp0eXBlKQor QEAgLTE2MjgsNiArMTc1OSw3IEBAIGNoZWNrX3R5cGVkZWYgKHN0cnVjdCB0eXBlICp0eXBlKQog IAkgIFRZUEVfTEVOR1RIICh0eXBlKSA9IFRZUEVfTEVOR1RIICh0YXJnZXRfdHlwZSk7CiAgCSAg VFlQRV9UQVJHRVRfU1RVQiAodHlwZSkgPSAwOwogIAl9CkBAIC0zODk0LDcgKzM4ODcsNyBAQCBp bmRleCAwMGE3MDc1Li5lYWFkYWMwIDEwMDY0NAogICAgICB9CiAgCiAgICB0eXBlID0gbWFrZV9x dWFsaWZpZWRfdHlwZSAodHlwZSwgaW5zdGFuY2VfZmxhZ3MsIE5VTEwpOwotQEAgLTE5MDIsNiAr MjA0Nyw4IEBAIGluaXRfdHlwZSAoZW51bSB0eXBlX2NvZGUgY29kZSwgaW50IGxlbmd0aCwgaW50 IGZsYWdzLAorQEAgLTE5MDIsNiArMjAzNCw4IEBAIGluaXRfdHlwZSAoZW51bSB0eXBlX2NvZGUg Y29kZSwgaW50IGxlbmd0aCwgaW50IGZsYWdzLAogICAgICBUWVBFX1NUVUJfU1VQUE9SVEVEICh0 eXBlKSA9IDE7CiAgICBpZiAoZmxhZ3MgJiBUWVBFX0ZMQUdfRklYRURfSU5TVEFOQ0UpCiAgICAg IFRZUEVfRklYRURfSU5TVEFOQ0UgKHR5cGUpID0gMTsKQEAgLTM5MDMsNyArMzg5Niw3IEBAIGlu ZGV4IDAwYTcwNzUuLmVhYWRhYzAgMTAwNjQ0CiAgCiAgICBpZiAobmFtZSkKICAgICAgVFlQRV9O QU1FICh0eXBlKSA9IG9ic2F2ZXN0cmluZyAobmFtZSwgc3RybGVuIChuYW1lKSwKLUBAIC0zMTk5 LDMzICszMzQ2LDQyIEBAIHR5cGVfcGFpcl9lcSAoY29uc3Qgdm9pZCAqaXRlbV9saHMsIGNvbnN0 IHZvaWQgKml0ZW1fcmhzKQorQEAgLTMyNTksMzMgKzMzOTMsNDIgQEAgdHlwZV9wYWlyX2VxIChj b25zdCB2b2lkICppdGVtX2xocywgY29uc3Qgdm9pZCAqaXRlbV9yaHMpCiAgfQogIAogIC8qIEFs bG9jYXRlIHRoZSBoYXNoIHRhYmxlIHVzZWQgYnkgY29weV90eXBlX3JlY3Vyc2l2ZSB0byB3YWxr CkBAIC0zOTYxLDcgKzM5NTQsNyBAQCBpbmRleCAwMGE3MDc1Li5lYWFkYWMwIDEwMDY0NAogICAg ICByZXR1cm4gdHlwZTsKICAKICAgIC8qIFRoaXMgdHlwZSBzaG91bGRuJ3QgYmUgcG9pbnRpbmcg dG8gYW55IHR5cGVzIGluIG90aGVyIG9iamZpbGVzOwotQEAgLTMyNDAsOSArMzM5NiwxMCBAQCBj b3B5X3R5cGVfcmVjdXJzaXZlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKK0BAIC0zMzAwLDkg KzM0NDMsMTAgQEAgY29weV90eXBlX3JlY3Vyc2l2ZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUs CiAgICBuZXdfdHlwZSA9IGFsbG9jX3R5cGVfYXJjaCAoZ2V0X3R5cGVfYXJjaCAodHlwZSkpOwog IAogICAgLyogV2UgbXVzdCBhZGQgdGhlIG5ldyB0eXBlIHRvIHRoZSBoYXNoIHRhYmxlIGltbWVk aWF0ZWx5LCBpbiBjYXNlCkBAIC0zOTc1LDcgKzM5NjgsNyBAQCBpbmRleCAwMGE3MDc1Li5lYWFk YWMwIDEwMDY0NAogICAgc3RvcmVkLT5vbGQgPSB0eXBlOwogICAgc3RvcmVkLT5uZXcgPSBuZXdf dHlwZTsKICAgICpzbG90ID0gc3RvcmVkOwotQEAgLTMyNTMsNiArMzQxMCwxOSBAQCBjb3B5X3R5 cGVfcmVjdXJzaXZlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKK0BAIC0zMzEzLDYgKzM0NTcs MTkgQEAgY29weV90eXBlX3JlY3Vyc2l2ZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCiAgICBU WVBFX09CSkZJTEVfT1dORUQgKG5ld190eXBlKSA9IDA7CiAgICBUWVBFX09XTkVSIChuZXdfdHlw ZSkuZ2RiYXJjaCA9IGdldF90eXBlX2FyY2ggKHR5cGUpOwogIApAQCAtMzk5NSw3ICszOTg4LDcg QEAgaW5kZXggMDBhNzA3NS4uZWFhZGFjMCAxMDA2NDQKICAgIGlmIChUWVBFX05BTUUgKHR5cGUp KQogICAgICBUWVBFX05BTUUgKG5ld190eXBlKSA9IHhzdHJkdXAgKFRZUEVfTkFNRSAodHlwZSkp OwogICAgaWYgKFRZUEVfVEFHX05BTUUgKHR5cGUpKQotQEAgLTMyNjEsMTIgKzM0MzEsNDggQEAg Y29weV90eXBlX3JlY3Vyc2l2ZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCitAQCAtMzMyMSwx MiArMzQ3OCw0OCBAQCBjb3B5X3R5cGVfcmVjdXJzaXZlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmls ZSwKICAgIFRZUEVfSU5TVEFOQ0VfRkxBR1MgKG5ld190eXBlKSA9IFRZUEVfSU5TVEFOQ0VfRkxB R1MgKHR5cGUpOwogICAgVFlQRV9MRU5HVEggKG5ld190eXBlKSA9IFRZUEVfTEVOR1RIICh0eXBl KTsKICAKQEAgLTQwNDQsNyArNDAzNyw3IEBAIGluZGV4IDAwYTcwNzUuLmVhYWRhYzAgMTAwNjQ0 CiAgICAgICAgVFlQRV9GSUVMRFMgKG5ld190eXBlKSA9IFhDQUxMT0MgKG5maWVsZHMsIHN0cnVj dCBmaWVsZCk7CiAgICAgICAgZm9yIChpID0gMDsgaSA8IG5maWVsZHM7IGkrKykKICAJewotQEAg LTMyNzUsOCArMzQ4MSw4IEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxlICpv YmpmaWxlLAorQEAgLTMzMzUsOCArMzUyOCw4IEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVj dCBvYmpmaWxlICpvYmpmaWxlLAogIAkgIFRZUEVfRklFTERfQklUU0laRSAobmV3X3R5cGUsIGkp ID0gVFlQRV9GSUVMRF9CSVRTSVpFICh0eXBlLCBpKTsKICAJICBpZiAoVFlQRV9GSUVMRF9UWVBF ICh0eXBlLCBpKSkKICAJICAgIFRZUEVfRklFTERfVFlQRSAobmV3X3R5cGUsIGkpCkBAIC00MDU1 LDcgKzQwNDgsNyBAQCBpbmRleCAwMGE3MDc1Li5lYWFkYWMwIDEwMDY0NAogIAkgIGlmIChUWVBF X0ZJRUxEX05BTUUgKHR5cGUsIGkpKQogIAkgICAgVFlQRV9GSUVMRF9OQU1FIChuZXdfdHlwZSwg aSkgPSAKICAJICAgICAgeHN0cmR1cCAoVFlQRV9GSUVMRF9OQU1FICh0eXBlLCBpKSk7Ci1AQCAt MzMwMywyNCArMzUwOSwxNjYgQEAgY29weV90eXBlX3JlY3Vyc2l2ZSAoc3RydWN0IG9iamZpbGUg Km9iamZpbGUsCitAQCAtMzM2MywyNCArMzU1NiwxODQgQEAgY29weV90eXBlX3JlY3Vyc2l2ZSAo c3RydWN0IG9iamZpbGUgKm9iamZpbGUsCiAgCX0KICAgICAgfQogIApAQCAtNDA2Myw3ICs0MDU2 LDcgQEAgaW5kZXggMDBhNzA3NS4uZWFhZGFjMCAxMDA2NDQKICsgICAgIHBvc3NpYmx5IGNvbnZl cnRlZC4gICovCiArICBUWVBFX0RZTkFNSUMgKG5ld190eXBlKSA9IDA7CiArCi0gICAvKiBGb3Ig cmFuZ2UgdHlwZXMsIGNvcHkgdGhlIGJvdW5kcyBpbmZvcm1hdGlvbi4gKi8KKyAgIC8qIEZvciBy YW5nZSB0eXBlcywgY29weSB0aGUgYm91bmRzIGluZm9ybWF0aW9uLiAgKi8KIC0gIGlmIChUWVBF X0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9SQU5HRSkKICsgIGlmIChUWVBFX0NPREUgKG5ld190 eXBlKSA9PSBUWVBFX0NPREVfUkFOR0UpCiAgICAgIHsKQEAgLTQwODcsOCArNDA4MCwxMiBAQCBp bmRleCAwMGE3MDc1Li5lYWFkYWMwIDEwMDY0NAogKwkgICAgICBUWVBFX0xPV19CT1VORF9VTkRF RklORUQgKG5ld190eXBlKSA9IDE7CiArCSAgICB9CiArCSAgZWxzZQotKwkgICAgVFlQRV9MT1df Qk9VTkQgKG5ld190eXBlKSA9IGR3YXJmX2xvY2V4cHJfYmF0b25fZXZhbAorKwkgICAgeworKwkg ICAgICBUWVBFX0xPV19CT1VORCAobmV3X3R5cGUpID0gZHdhcmZfbG9jZXhwcl9iYXRvbl9ldmFs CiArCQkJCShUWVBFX1JBTkdFX0RBVEEgKG5ld190eXBlKS0+bG93LnUuZHdhcmZfYmxvY2spOwor KwkgICAgICBpZiAoVFlQRV9MT1dfQk9VTkQgKG5ld190eXBlKSA+PSAwKQorKwkJVFlQRV9VTlNJ R05FRCAobmV3X3R5cGUpID0gMTsKKysJICAgIH0KICsJICBUWVBFX1JBTkdFX0RBVEEgKG5ld190 eXBlKS0+bG93LmtpbmQgPSBSQU5HRV9CT1VORF9LSU5EX0NPTlNUQU5UOwogKwkgIGJyZWFrOwog KwljYXNlIFJBTkdFX0JPVU5EX0tJTkRfRFdBUkZfTE9DTElTVDoKQEAgLTQxMDQsNyArNDEwMSwx MSBAQCBpbmRleCAwMGE3MDc1Li5lYWFkYWMwIDEwMDY0NAogKwkgICAgICAgICYmIGR3YXJmX2xv Y2xpc3RfYmF0b25fZXZhbAogKwkJICAoVFlQRV9SQU5HRV9EQVRBIChuZXdfdHlwZSktPmxvdy51 LmR3YXJmX2xvY2xpc3QubG9jbGlzdCwKICsJCSAgIFRZUEVfUkFOR0VfREFUQSAobmV3X3R5cGUp LT5sb3cudS5kd2FyZl9sb2NsaXN0LnR5cGUsICZhZGRyKSkKLSsJICAgICAgVFlQRV9MT1dfQk9V TkQgKG5ld190eXBlKSA9IGFkZHI7CisrCSAgICAgIHsKKysJCVRZUEVfTE9XX0JPVU5EIChuZXdf dHlwZSkgPSBhZGRyOworKwkJaWYgKFRZUEVfTE9XX0JPVU5EIChuZXdfdHlwZSkgPj0gMCkKKysJ CSAgVFlQRV9VTlNJR05FRCAobmV3X3R5cGUpID0gMTsKKysJICAgICAgfQogKwkgICAgZWxzZQog KwkgICAgICB7CiArCQkvKiBXZSBzaG91bGQgc2V0IDEgZm9yIEZvcnRyYW4gYnV0IGhvdyB0byBm aW5kIHRoZSBsYW5ndWFnZT8gICovCkBAIC00MjI2LDEwICs0MjI3LDIwIEBAIGluZGV4IDAwYTcw NzUuLmVhYWRhYzAgMTAwNjQ0CiArICAgICAgY29weV90eXBlX3JlY3Vyc2l2ZV8xIChvYmpmaWxl LAogKwkJCSAgICAgVFlQRV9WUFRSX0JBU0VUWVBFICh0eXBlKSwKICsJCQkgICAgIGNvcGllZF90 eXBlcyk7CisrCisrICBpZiAoVFlQRV9DT0RFIChuZXdfdHlwZSkgPT0gVFlQRV9DT0RFX0FSUkFZ KQorKyAgICB7CisrICAgICAgc3RydWN0IHR5cGUgKm5ld19pbmRleF90eXBlID0gVFlQRV9JTkRF WF9UWVBFIChuZXdfdHlwZSk7CisrCisrICAgICAgaWYgKFRZUEVfQllURV9TVFJJREUgKG5ld19p bmRleF90eXBlKSA9PSAwKQorKwlUWVBFX0JZVEVfU1RSSURFIChuZXdfaW5kZXhfdHlwZSkKKysJ ICA9IFRZUEVfTEVOR1RIIChUWVBFX1RBUkdFVF9UWVBFIChuZXdfdHlwZSkpOworKyAgICB9Cisr CiAgICAvKiBNYXliZSBjb3B5IHRoZSB0eXBlX3NwZWNpZmljIGJpdHMuCiAgCiAgICAgICBOT1RF IGRyb3cvMjAwNS0xMi0wOTogV2UgZG8gbm90IGNvcHkgdGhlIEMrKy1zcGVjaWZpYyBiaXRzIGxp a2UKLUBAIC0zMzM3LDYgKzM2ODUsMTcgQEAgY29weV90eXBlX3JlY3Vyc2l2ZSAoc3RydWN0IG9i amZpbGUgKm9iamZpbGUsCitAQCAtMzM5Nyw2ICszNzUwLDE3IEBAIGNvcHlfdHlwZV9yZWN1cnNp dmUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAogICAgcmV0dXJuIG5ld190eXBlOwogIH0KICAK QEAgLTQyNDcsNyArNDI1OCw3IEBAIGluZGV4IDAwYTcwNzUuLmVhYWRhYzAgMTAwNjQ0CiAgLyog TWFrZSBhIGNvcHkgb2YgdGhlIGdpdmVuIFRZUEUsIGV4Y2VwdCB0aGF0IHRoZSBwb2ludGVyICYg cmVmZXJlbmNlCiAgICAgdHlwZXMgYXJlIG5vdCBwcmVzZXJ2ZWQuCiAgICAgCi1AQCAtMzM1OSw2 ICszNzE4LDE5OSBAQCBjb3B5X3R5cGUgKGNvbnN0IHN0cnVjdCB0eXBlICp0eXBlKQorQEAgLTM0 MTksNiArMzc4MywxOTkgQEAgY29weV90eXBlIChjb25zdCBzdHJ1Y3QgdHlwZSAqdHlwZSkKICAg IHJldHVybiBuZXdfdHlwZTsKICB9CiAgCkBAIC00NDQ3LDcgKzQ0NTgsNyBAQCBpbmRleCAwMGE3 MDc1Li5lYWFkYWMwIDEwMDY0NAogIAogIC8qIEhlbHBlciBmdW5jdGlvbnMgdG8gaW5pdGlhbGl6 ZSBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgdHlwZXMuICAqLwogIAotQEAgLTM3MDcsNiArNDI1OSw4 IEBAIGdkYnR5cGVzX3Bvc3RfaW5pdCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gpCitAQCAtMzc2 Nyw2ICs0MzI0LDggQEAgZ2RidHlwZXNfcG9zdF9pbml0IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJj aCkKICAgICAgPSBsb29rdXBfcG9pbnRlcl90eXBlIChidWlsdGluX3R5cGUtPmJ1aWx0aW5fdm9p ZCk7CiAgICBidWlsdGluX3R5cGUtPmJ1aWx0aW5fZnVuY19wdHIKICAgICAgPSBsb29rdXBfcG9p bnRlcl90eXBlIChsb29rdXBfZnVuY3Rpb25fdHlwZSAoYnVpbHRpbl90eXBlLT5idWlsdGluX3Zv aWQpKTsKQEAgLTQ0NTYsNyArNDQ2Nyw3IEBAIGluZGV4IDAwYTcwNzUuLmVhYWRhYzAgMTAwNjQ0 CiAgCiAgICAvKiBUaGlzIHR5cGUgcmVwcmVzZW50cyBhIEdEQiBpbnRlcm5hbCBmdW5jdGlvbi4g ICovCiAgICBidWlsdGluX3R5cGUtPmludGVybmFsX2ZuCi1AQCAtMzgyMCw2ICs0Mzc0LDE4IEBA IG9iamZpbGVfdHlwZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCitAQCAtMzg4MCw2ICs0NDM5 LDE4IEBAIG9iamZpbGVfdHlwZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCiAgCQkgIjx0ZXh0 IHZhcmlhYmxlLCBubyBkZWJ1ZyBpbmZvPiIsIG9iamZpbGUpOwogICAgVFlQRV9UQVJHRVRfVFlQ RSAob2JqZmlsZV90eXBlLT5ub2RlYnVnX3RleHRfc3ltYm9sKQogICAgICA9IG9iamZpbGVfdHlw ZS0+YnVpbHRpbl9pbnQ7CkBAIC00NDc1LDcgKzQ0ODYsNyBAQCBpbmRleCAwMGE3MDc1Li5lYWFk YWMwIDEwMDY0NAogICAgb2JqZmlsZV90eXBlLT5ub2RlYnVnX2RhdGFfc3ltYm9sCiAgICAgID0g aW5pdF90eXBlIChUWVBFX0NPREVfSU5ULAogIAkJIGdkYmFyY2hfaW50X2JpdCAoZ2RiYXJjaCkg LyBIT1NUX0NIQVJfQklULCAwLAotQEAgLTM4NzQsNiArNDQ0MCwxMSBAQCB2b2lkCitAQCAtMzkz NCw2ICs0NTA1LDExIEBAIHZvaWQKICBfaW5pdGlhbGl6ZV9nZGJ0eXBlcyAodm9pZCkKICB7CiAg ICBnZGJ0eXBlc19kYXRhID0gZ2RiYXJjaF9kYXRhX3JlZ2lzdGVyX3Bvc3RfaW5pdCAoZ2RidHlw ZXNfcG9zdF9pbml0KTsKQEAgLTQ0ODgsNyArNDQ5OSw3IEBAIGluZGV4IDAwYTcwNzUuLmVhYWRh YzAgMTAwNjQ0CiAgCiAgICBhZGRfc2V0c2hvd196aW50ZWdlcl9jbWQgKCJvdmVybG9hZCIsIG5v X2NsYXNzLCAmb3ZlcmxvYWRfZGVidWcsCiBkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmggYi9n ZGIvZ2RidHlwZXMuaAotaW5kZXggMDM1M2Y5Ni4uYTAzNWJhZCAxMDA2NDQKK2luZGV4IGRlYmI0 MWMuLmMzMWM5YjggMTAwNjQ0CiAtLS0gYS9nZGIvZ2RidHlwZXMuaAogKysrIGIvZ2RiL2dkYnR5 cGVzLmgKIEBAIC0xNzAsNiArMTcwLDcgQEAgZW51bSB0eXBlX2ZsYWdfdmFsdWUKQEAgLTQ1MDks OCArNDUyMCw4IEBAIGluZGV4IDAzNTNmOTYuLmEwMzViYWQgMTAwNjQ0CiArI2RlZmluZSBUWVBF X0RZTkFNSUModCkJCShUWVBFX01BSU5fVFlQRSAodCktPmZsYWdfZHluYW1pYykKICsKICAvKiBT dGF0aWMgdHlwZS4gIElmIHRoaXMgaXMgc2V0LCB0aGUgY29ycmVzcG9uZGluZyB0eXBlIGhhZCAK LSAgKiBhIHN0YXRpYyBtb2RpZmllci4KLSAgKiBOb3RlOiBUaGlzIG1heSBiZSB1bm5lY2Vzc2Fy eSwgc2luY2Ugc3RhdGljIGRhdGEgbWVtYmVycworICAgIGEgc3RhdGljIG1vZGlmaWVyLgorICAg IE5vdGU6IFRoaXMgbWF5IGJlIHVubmVjZXNzYXJ5LCBzaW5jZSBzdGF0aWMgZGF0YSBtZW1iZXJz CiBAQCAtMjcxLDYgKzI3NywxMiBAQCBlbnVtIHR5cGVfaW5zdGFuY2VfZmxhZ192YWx1ZQogIAog ICNkZWZpbmUgVFlQRV9OT1RURVhUKHQpCShUWVBFX0lOU1RBTkNFX0ZMQUdTICh0KSAmIFRZUEVf SU5TVEFOQ0VfRkxBR19OT1RURVhUKQpAQCAtNDU3MSw5ICs0NTgyLDkgQEAgaW5kZXggMDM1M2Y5 Ni4uYTAzNWJhZCAxMDA2NDQKICsgIChUWVBFX01BSU5fVFlQRSAodCktPmZsYWdfZGF0YV9sb2Nh dGlvbl9pc19hZGRyKQogKwogIC8qIENvbnN0YW50IHR5cGUuICBJZiB0aGlzIGlzIHNldCwgdGhl IGNvcnJlc3BvbmRpbmcgdHlwZSBoYXMgYQotICAqIGNvbnN0IG1vZGlmaWVyLgotICAqLwotQEAg LTM4OSwxMSArNDQzLDE5IEBAIHN0cnVjdCBtYWluX3R5cGUKKyAgICBjb25zdCBtb2RpZmllci4g ICovCisgCitAQCAtMzg3LDExICs0NDEsMTkgQEAgc3RydWN0IG1haW5fdHlwZQogICAgdW5zaWdu ZWQgaW50IGZsYWdfdmFyYXJncyA6IDE7CiAgICB1bnNpZ25lZCBpbnQgZmxhZ192ZWN0b3IgOiAx OwogICAgdW5zaWduZWQgaW50IGZsYWdfc3R1Yl9zdXBwb3J0ZWQgOiAxOwpAQCAtNDU5Myw3ICs0 NjA0LDcgQEAgaW5kZXggMDM1M2Y5Ni4uYTAzNWJhZCAxMDA2NDQKICAKICAgIC8qIEEgZGlzY3Jp bWluYW50IHRlbGxpbmcgdXMgd2hpY2ggZmllbGQgb2YgdGhlIHR5cGVfc3BlY2lmaWMgdW5pb24K ICAgICAgIGlzIGJlaW5nIHVzZWQgZm9yIHRoaXMgdHlwZSwgaWYgYW55LiAgKi8KLUBAIC00Njcs NiArNTI5LDIwIEBAIHN0cnVjdCBtYWluX3R5cGUKK0BAIC00NjUsNiArNTI3LDIwIEBAIHN0cnVj dCBtYWluX3R5cGUKICAKICAgIHN0cnVjdCB0eXBlICp0YXJnZXRfdHlwZTsKICAKQEAgLTQ2MTQs NyArNDYyNSw3IEBAIGluZGV4IDAzNTNmOTYuLmEwMzViYWQgMTAwNjQ0CiAgICAvKiBGb3Igc3Ry dWN0dXJlIGFuZCB1bmlvbiB0eXBlcywgYSBkZXNjcmlwdGlvbiBvZiBlYWNoIGZpZWxkLgogICAg ICAgRm9yIHNldCBhbmQgcGFzY2FsIGFycmF5IHR5cGVzLCB0aGVyZSBpcyBvbmUgImZpZWxkIiwK ICAgICAgIHdob3NlIHR5cGUgaXMgdGhlIGRvbWFpbiB0eXBlIG9mIHRoZSBzZXQgb3IgYXJyYXku Ci1AQCAtNTQxLDEzICs2MTcsMzQgQEAgc3RydWN0IG1haW5fdHlwZQorQEAgLTUzOSwxMyArNjE1 LDM0IEBAIHN0cnVjdCBtYWluX3R5cGUKICAKICAgICAgc3RydWN0IHJhbmdlX2JvdW5kcwogICAg ICB7CkBAIC00NjQwLDIxICs0NjUxLDIxIEBAIGluZGV4IDAzNTNmOTYuLmEwMzViYWQgMTAwNjQ0 CiArCSAgICB9CiArCSAga2luZDsKICsJfQotICAgICAgIC8qIExvdyBib3VuZCBvZiByYW5nZS4g Ki8KKyAgICAgICAvKiBMb3cgYm91bmQgb2YgcmFuZ2UuICAqLwogLQogLSAgICAgIExPTkdFU1Qg bG93OwogLQogKyAgICAgIGxvdywKLSAgICAgICAvKiBIaWdoIGJvdW5kIG9mIHJhbmdlLiAqLwor ICAgICAgIC8qIEhpZ2ggYm91bmQgb2YgcmFuZ2UuICAqLwogLQogLSAgICAgIExPTkdFU1QgaGln aDsKICsgICAgICBoaWdoLAotKyAgICAgIC8qIEJ5dGUgc3RyaWRlIG9mIHJhbmdlLiAqLworKyAg ICAgIC8qIEJ5dGUgc3RyaWRlIG9mIHJhbmdlLiAgKi8KICsgICAgICBieXRlX3N0cmlkZTsKICAK ICAgICAgICAvKiBGbGFncyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHZhbHVlcyBvZiBsb3cgYW5k IGhpZ2ggYXJlCiAgICAgICAgICAgdmFsaWQuICBXaGVuIHRydWUsIHRoZSByZXNwZWN0aXZlIHJh bmdlIHZhbHVlIGlzCi1AQCAtOTIxLDkgKzEwMTgsOSBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9n bmF0X2F1eF90eXBlIChzdHJ1Y3QgdHlwZSAqKTsKK0BAIC05MTgsOSArMTAxNSw5IEBAIGV4dGVy biB2b2lkIGFsbG9jYXRlX2duYXRfYXV4X3R5cGUgKHN0cnVjdCB0eXBlICopOwogICNkZWZpbmUg VFlQRV9QT0lOVEVSX1RZUEUodGhpc3R5cGUpICh0aGlzdHlwZSktPnBvaW50ZXJfdHlwZQogICNk ZWZpbmUgVFlQRV9SRUZFUkVOQ0VfVFlQRSh0aGlzdHlwZSkgKHRoaXN0eXBlKS0+cmVmZXJlbmNl X3R5cGUKICAjZGVmaW5lIFRZUEVfQ0hBSU4odGhpc3R5cGUpICh0aGlzdHlwZSktPmNoYWluCkBA IC00NjY3LDcgKzQ2NzgsNyBAQCBpbmRleCAwMzUzZjk2Li5hMDM1YmFkIDEwMDY0NAogICAgIGNh bGxzIGNoZWNrX3R5cGVkZWYsIFRZUEVfTEVOR1RIIChWQUxVRV9UWVBFIChYKSkgaXMgc2FmZS4g ICovCiAgI2RlZmluZSBUWVBFX0xFTkdUSCh0aGlzdHlwZSkgKHRoaXN0eXBlKS0+bGVuZ3RoCiAg LyogTm90ZSB0aGF0IFRZUEVfQ09ERSBjYW4gYmUgVFlQRV9DT0RFX1RZUEVERUYsIHNvIGlmIHlv dSB3YW50IHRoZSByZWFsCi1AQCAtOTMxLDExICsxMDI4LDE2IEBAIGV4dGVybiB2b2lkIGFsbG9j YXRlX2duYXRfYXV4X3R5cGUgKHN0cnVjdCB0eXBlICopOworQEAgLTkyOCwxMSArMTAyNSwxNiBA QCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1Y3QgdHlwZSAqKTsKICAj ZGVmaW5lIFRZUEVfQ09ERSh0aGlzdHlwZSkgVFlQRV9NQUlOX1RZUEUodGhpc3R5cGUpLT5jb2Rl CiAgI2RlZmluZSBUWVBFX05GSUVMRFModGhpc3R5cGUpIFRZUEVfTUFJTl9UWVBFKHRoaXN0eXBl KS0+bmZpZWxkcwogICNkZWZpbmUgVFlQRV9GSUVMRFModGhpc3R5cGUpIFRZUEVfTUFJTl9UWVBF KHRoaXN0eXBlKS0+Zmxkc19ibmRzLmZpZWxkcwpAQCAtNDY4Niw3ICs0Njk3LDcgQEAgaW5kZXgg MDM1M2Y5Ni4uYTAzNWJhZCAxMDA2NDQKICAjZGVmaW5lIFRZUEVfTE9XX0JPVU5EX1VOREVGSU5F RChyYW5nZV90eXBlKSBcCiAgICAgVFlQRV9SQU5HRV9EQVRBKHJhbmdlX3R5cGUpLT5sb3dfdW5k ZWZpbmVkCiAgI2RlZmluZSBUWVBFX0hJR0hfQk9VTkRfVU5ERUZJTkVEKHJhbmdlX3R5cGUpIFwK LUBAIC05NTIsNyArMTA1NCwxNCBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBl IChzdHJ1Y3QgdHlwZSAqKTsKK0BAIC05NDksNyArMTA1MSwxNCBAQCBleHRlcm4gdm9pZCBhbGxv Y2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1Y3QgdHlwZSAqKTsKICAgICAoVFlQRV9ISUdIX0JPVU5E KFRZUEVfSU5ERVhfVFlQRSgoYXJyYXl0eXBlKSkpKQogIAogICNkZWZpbmUgVFlQRV9BUlJBWV9M T1dFUl9CT1VORF9WQUxVRShhcnJheXR5cGUpIFwKQEAgLTQ3MDIsNyArNDcxMyw3IEBAIGluZGV4 IDAzNTNmOTYuLmEwMzViYWQgMTAwNjQ0CiAgCiAgLyogQysrICovCiAgCi1AQCAtMTE4MSw2ICsx MjkwLDEwIEBAIHN0cnVjdCBidWlsdGluX3R5cGUKK0BAIC0xMTc4LDYgKzEyODcsMTAgQEAgc3Ry dWN0IGJ1aWx0aW5fdHlwZQogICAgICAgKCopICgpIGNhbiBzZXJ2ZXIgYXMgYSBnZW5lcmljIGZ1 bmN0aW9uIHBvaW50ZXIuICAqLwogICAgc3RydWN0IHR5cGUgKmJ1aWx0aW5fZnVuY19wdHI7CiAg CkBAIC00NzEzLDcgKzQ3MjQsNyBAQCBpbmRleCAwMzUzZjk2Li5hMDM1YmFkIDEwMDY0NAogIAog ICAgLyogU3BlY2lhbC1wdXJwb3NlIHR5cGVzLiAgKi8KICAKLUBAIC0xMjIxLDYgKzEzMzQsOCBA QCBzdHJ1Y3Qgb2JqZmlsZV90eXBlCitAQCAtMTIxOCw2ICsxMzMxLDggQEAgc3RydWN0IG9iamZp bGVfdHlwZQogIAogICAgLyogVHlwZXMgdXNlZCBmb3Igc3ltYm9scyB3aXRoIG5vIGRlYnVnIGlu Zm9ybWF0aW9uLiAgKi8KICAgIHN0cnVjdCB0eXBlICpub2RlYnVnX3RleHRfc3ltYm9sOwpAQCAt NDcyMiw3ICs0NzMzLDcgQEAgaW5kZXggMDM1M2Y5Ni4uYTAzNWJhZCAxMDA2NDQKICAgIHN0cnVj dCB0eXBlICpub2RlYnVnX2RhdGFfc3ltYm9sOwogICAgc3RydWN0IHR5cGUgKm5vZGVidWdfdW5r bm93bl9zeW1ib2w7CiAgICBzdHJ1Y3QgdHlwZSAqbm9kZWJ1Z190bHNfc3ltYm9sOwotQEAgLTEz NjgsNiArMTQ4MywxOCBAQCBleHRlcm4gc3RydWN0IHR5cGUgKmNyZWF0ZV9hcnJheV90eXBlIChz dHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdHlwZSAqLAorQEAgLTEzNjUsNiArMTQ4MCwxOCBAQCBleHRl cm4gc3RydWN0IHR5cGUgKmNyZWF0ZV9hcnJheV90eXBlIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3Qg dHlwZSAqLAogIAkJCQkgICAgICAgc3RydWN0IHR5cGUgKik7CiAgZXh0ZXJuIHN0cnVjdCB0eXBl ICpsb29rdXBfYXJyYXlfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKiwgaW50LCBpbnQpOwogIApA QCAtNDc0MSw3ICs0NzUyLDcgQEAgaW5kZXggMDM1M2Y5Ni4uYTAzNWJhZCAxMDA2NDQKICBleHRl cm4gc3RydWN0IHR5cGUgKmNyZWF0ZV9zdHJpbmdfdHlwZSAoc3RydWN0IHR5cGUgKiwgc3RydWN0 IHR5cGUgKiwKICAJCQkJCXN0cnVjdCB0eXBlICopOwogIGV4dGVybiBzdHJ1Y3QgdHlwZSAqbG9v a3VwX3N0cmluZ19yYW5nZV90eXBlIChzdHJ1Y3QgdHlwZSAqLCBpbnQsIGludCk7Ci1AQCAtMTQx Myw2ICsxNTQwLDggQEAgZXh0ZXJuIGludCBpc19wdWJsaWNfYW5jZXN0b3IgKHN0cnVjdCB0eXBl ICosIHN0cnVjdCB0eXBlICopOworQEAgLTE0MTAsNiArMTUzNyw4IEBAIGV4dGVybiBpbnQgaXNf cHVibGljX2FuY2VzdG9yIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdHlwZSAqKTsKICAKICBleHRl cm4gaW50IGlzX3VuaXF1ZV9hbmNlc3RvciAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHZhbHVlICop OwogIApAQCAtNDc1MCw3ICs0NzYxLDcgQEAgaW5kZXggMDM1M2Y5Ni4uYTAzNWJhZCAxMDA2NDQK ICAvKiBPdmVybG9hZCByZXNvbHV0aW9uICovCiAgCiAgI2RlZmluZSBMRU5HVEhfTUFUQ0goYnYp ICgoYnYpLT5yYW5rWzBdKQotQEAgLTE0ODMsMTAgKzE2MTIsMTEgQEAgZXh0ZXJuIHZvaWQgbWFp bnRlbmFuY2VfcHJpbnRfdHlwZSAoY2hhciAqLCBpbnQpOworQEAgLTE0ODIsMTAgKzE2MTEsMTEg QEAgZXh0ZXJuIHZvaWQgbWFpbnRlbmFuY2VfcHJpbnRfdHlwZSAoY2hhciAqLCBpbnQpOwogIAog IGV4dGVybiBodGFiX3QgY3JlYXRlX2NvcGllZF90eXBlc19oYXNoIChzdHJ1Y3Qgb2JqZmlsZSAq b2JqZmlsZSk7CiAgCkBAIC00NzY1LDEwICs0Nzc2LDEwIEBAIGluZGV4IDAzNTNmOTYuLmEwMzVi YWQgMTAwNjQ0CiArCiAgI2VuZGlmIC8qIEdEQlRZUEVTX0ggKi8KIGRpZmYgLS1naXQgYS9nZGIv aTM4Ni1saW51eC1uYXQuYyBiL2dkYi9pMzg2LWxpbnV4LW5hdC5jCi1pbmRleCBlZDU1NWVmLi42 YjVjNDU4IDEwMDY0NAoraW5kZXggYzNjYmJjYy4uN2Y4NmMyOSAxMDA2NDQKIC0tLSBhL2dkYi9p Mzg2LWxpbnV4LW5hdC5jCiArKysgYi9nZGIvaTM4Ni1saW51eC1uYXQuYwotQEAgLTYzMywyMiAr NjMzLDEzIEBAIGkzODZfbGludXhfc3RvcmVfaW5mZXJpb3JfcmVnaXN0ZXJzIChzdHJ1Y3QgdGFy Z2V0X29wcyAqb3BzLAorQEAgLTY0OSwyMiArNjQ5LDEzIEBAIGkzODZfbGludXhfc3RvcmVfaW5m ZXJpb3JfcmVnaXN0ZXJzIChzdHJ1Y3QgdGFyZ2V0X29wcyAqb3BzLAogIH0KICAMCiAgCkBAIC00 NzkyLDcgKzQ4MDMsNyBAQCBpbmRleCBlZDU1NWVmLi42YjVjNDU4IDEwMDY0NAogICAgLyogRklY TUU6IGtldHRlbmlzLzIwMDEtMDMtMjc6IENhbGxpbmcgcGVycm9yX3dpdGhfbmFtZSBpZiB0aGUK ICAgICAgIHB0cmFjZSBjYWxsIGZhaWxzIGJyZWFrcyBkZWJ1Z2dpbmcgcmVtb3RlIHRhcmdldHMu ICBUaGUgY29ycmVjdAogICAgICAgd2F5IHRvIGZpeCB0aGlzIGlzIHRvIGFkZCB0aGUgaGFyZHdh cmUgYnJlYWtwb2ludCBhbmQgd2F0Y2hwb2ludAotQEAgLTY3MCwxNCArNjYxLDggQEAgaTM4Nl9s aW51eF9kcl9nZXQgKHB0aWRfdCBwdGlkLCBpbnQgcmVnbnVtKQorQEAgLTY4NiwxNCArNjc3LDgg QEAgaTM4Nl9saW51eF9kcl9nZXQgKHB0aWRfdCBwdGlkLCBpbnQgcmVnbnVtKQogIC8qIFNldCBk ZWJ1ZyByZWdpc3RlciBSRUdOVU0gdG8gVkFMVUUgaW4gb25seSB0aGUgb25lIExXUCBvZiBQVElE LiAgKi8KICAKICBzdGF0aWMgdm9pZApAQCAtNDgwOCw3ICs0ODE5LDcgQEAgaW5kZXggZWQ1NTVl Zi4uNmI1YzQ1OCAxMDA2NDQKICAgIGVycm5vID0gMDsKICAgIHB0cmFjZSAoUFRSQUNFX1BPS0VV U0VSLCB0aWQsCiAgCSAgb2Zmc2V0b2YgKHN0cnVjdCB1c2VyLCB1X2RlYnVncmVnW3JlZ251bV0p LCB2YWx1ZSk7Ci1AQCAtNjg1LDM1ICs2NzAsNzggQEAgaTM4Nl9saW51eF9kcl9zZXQgKHB0aWRf dCBwdGlkLCBpbnQgcmVnbnVtLCB1bnNpZ25lZCBsb25nIHZhbHVlKQorQEAgLTcwMSwzNSArNjg2 LDc4IEBAIGkzODZfbGludXhfZHJfc2V0IChwdGlkX3QgcHRpZCwgaW50IHJlZ251bSwgdW5zaWdu ZWQgbG9uZyB2YWx1ZSkKICAgICAgcGVycm9yX3dpdGhfbmFtZSAoXygiQ291bGRuJ3Qgd3JpdGUg ZGVidWcgcmVnaXN0ZXIiKSk7CiAgfQogIApAQCAtNDkwMCw3ICs0OTExLDcgQEAgaW5kZXggZWQ1 NTVlZi4uNmI1YzQ1OCAxMDA2NDQKICAKICBzdGF0aWMgdm9pZAogIGkzODZfbGludXhfZHJfcmVz ZXRfYWRkciAoaW50IHJlZ251bSkKLUBAIC03MjYsMzYgKzc1NCw1NCBAQCBpMzg2X2xpbnV4X2Ry X3Jlc2V0X2FkZHIgKGludCByZWdudW0pCitAQCAtNzQyLDM2ICs3NzAsNTQgQEAgaTM4Nl9saW51 eF9kcl9yZXNldF9hZGRyIChpbnQgcmVnbnVtKQogIHN0YXRpYyB1bnNpZ25lZCBsb25nCiAgaTM4 Nl9saW51eF9kcl9nZXRfc3RhdHVzICh2b2lkKQogIHsKQEAgLTQ5NzMsNyArNDk4NCw3IEBAIGlu ZGV4IGVkNTU1ZWYuLjZiNWM0NTggMTAwNjQ0CiAgDAogIAogZGlmZiAtLWdpdCBhL2dkYi9pMzg2 LW5hdC5jIGIvZ2RiL2kzODYtbmF0LmMKLWluZGV4IDkwMGZiNDAuLmYyOGM0NWIgMTAwNjQ0Citp bmRleCAwNjA2Y2UxLi4xYWQwZTM5IDEwMDY0NAogLS0tIGEvZ2RiL2kzODYtbmF0LmMKICsrKyBi L2dkYi9pMzg2LW5hdC5jCiBAQCAtMjUsNiArMjUsNyBAQApAQCAtNDk5MCw3ICs1MDAxLDcgQEAg aW5kZXggOTAwZmI0MC4uZjI4YzQ1YiAxMDA2NDQKICAvKiBEZWJ1ZyByZWdpc3RlcnMnIGluZGlj ZXMuICAqLwogLSNkZWZpbmUgRFJfTkFERFIJNAkvKiBUaGUgbnVtYmVyIG9mIGRlYnVnIGFkZHJl c3MgcmVnaXN0ZXJzLiAgKi8KICAjZGVmaW5lIERSX1NUQVRVUwk2CS8qIEluZGV4IG9mIGRlYnVn IHN0YXR1cyByZWdpc3RlciAoRFI2KS4gICovCi0gI2RlZmluZSBEUl9DT05UUk9MCTcJLyogSW5k ZXggb2YgZGVidWcgY29udHJvbCByZWdpc3RlciAoRFI3KS4gKi8KKyAjZGVmaW5lIERSX0NPTlRS T0wJNwkvKiBJbmRleCBvZiBkZWJ1ZyBjb250cm9sIHJlZ2lzdGVyIChEUjcpLiAgKi8KICAKIEBA IC0xMTEsNDkgKzExMSw2MCBAQCBzdHJ1Y3QgaTM4Nl9kcl9sb3dfdHlwZSBpMzg2X2RyX2xvdzsK ICAKQEAgLTUxOTEsNyArNTIwMiw3IEBAIGluZGV4IDkwMGZiNDAuLmYyOGM0NWIgMTAwNjQ0CiAg ICAgICAgaSsrOwogICAgICB9CiAgfQotQEAgLTMxMSw2ICszODUsNyBAQCBJbnZhbGlkIGhhcmR3 YXJlIGJyZWFrcG9pbnQgbGVuZ3RoICVkIGluIGkzODZfbGVuZ3RoX2FuZF9yd19iaXRzLlxuIiks IGxlbik7CitAQCAtMzEyLDYgKzM4Niw3IEBAIEludmFsaWQgaGFyZHdhcmUgYnJlYWtwb2ludCBs ZW5ndGggJWQgaW4gaTM4Nl9sZW5ndGhfYW5kX3J3X2JpdHMuXG4iKSwgbGVuKTsKICBzdGF0aWMg aW50CiAgaTM4Nl9pbnNlcnRfYWxpZ25lZF93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgdW5z aWduZWQgbGVuX3J3X2JpdHMpCiAgewpAQCAtNTE5OSw3ICs1MjEwLDcgQEAgaW5kZXggOTAwZmI0 MC4uZjI4YzQ1YiAxMDA2NDQKICAgIGludCBpOwogIAogICAgaWYgKCFpMzg2X2RyX2xvdy5zZXRf YWRkciB8fCAhaTM4Nl9kcl9sb3cuc2V0X2NvbnRyb2wpCi1AQCAtMzIxLDExICszOTYsMTAgQEAg aTM4Nl9pbnNlcnRfYWxpZ25lZF93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgdW5zaWduZWQg bGVuX3J3X2JpdHMpCitAQCAtMzIyLDExICszOTcsMTAgQEAgaTM4Nl9pbnNlcnRfYWxpZ25lZF93 YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgdW5zaWduZWQgbGVuX3J3X2JpdHMpCiAgICAgICBy ZXVzZSBpdCBmb3IgdGhpcyB3YXRjaHBvaW50IGFzIHdlbGwgKGFuZCBzYXZlIGEgcmVnaXN0ZXIp LiAgKi8KICAgIEFMTF9ERUJVR19SRUdJU1RFUlMoaSkKICAgICAgewpAQCAtNTIxNCw3ICs1MjI1 LDcgQEAgaW5kZXggOTAwZmI0MC4uZjI4YzQ1YiAxMDA2NDQKICAJICByZXR1cm4gMDsKICAJfQog ICAgICB9Ci1AQCAtMzMzLDcgKzQwNyw3IEBAIGkzODZfaW5zZXJ0X2FsaWduZWRfd2F0Y2hwb2lu dCAoQ09SRV9BRERSIGFkZHIsIHVuc2lnbmVkIGxlbl9yd19iaXRzKQorQEAgLTMzNCw3ICs0MDgs NyBAQCBpMzg2X2luc2VydF9hbGlnbmVkX3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCB1bnNp Z25lZCBsZW5fcndfYml0cykKICAgIC8qIE5leHQsIGxvb2sgZm9yIGEgdmFjYW50IGRlYnVnIHJl Z2lzdGVyLiAgKi8KICAgIEFMTF9ERUJVR19SRUdJU1RFUlMoaSkKICAgICAgewpAQCAtNTIyMyw3 ICs1MjM0LDcgQEAgaW5kZXggOTAwZmI0MC4uZjI4YzQ1YiAxMDA2NDQKICAJYnJlYWs7CiAgICAg IH0KICAKLUBAIC0zNDQsOSArNDE4LDkgQEAgaTM4Nl9pbnNlcnRfYWxpZ25lZF93YXRjaHBvaW50 IChDT1JFX0FERFIgYWRkciwgdW5zaWduZWQgbGVuX3J3X2JpdHMpCitAQCAtMzQ1LDkgKzQxOSw5 IEBAIGkzODZfaW5zZXJ0X2FsaWduZWRfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIHVuc2ln bmVkIGxlbl9yd19iaXRzKQogICAgLyogTm93IHNldCB1cCB0aGUgcmVnaXN0ZXIgSSB0byB3YXRj aCBvdXIgcmVnaW9uLiAgKi8KICAKICAgIC8qIFJlY29yZCB0aGUgaW5mbyBpbiBvdXIgbG9jYWwg bWlycm9yZWQgYXJyYXkuICAqLwpAQCAtNTIzNiw3ICs1MjQ3LDcgQEAgaW5kZXggOTAwZmI0MC4u ZjI4YzQ1YiAxMDA2NDQKICAgIC8qIE5vdGU6IHdlIG9ubHkgZW5hYmxlIHRoZSB3YXRjaHBvaW50 IGxvY2FsbHksIGkuZS4gaW4gdGhlIGN1cnJlbnQKICAgICAgIHRhc2suICBDdXJyZW50bHksIG5v IGkzODYgdGFyZ2V0IGFsbG93cyBvciBzdXBwb3J0cyBnbG9iYWwKICAgICAgIHdhdGNocG9pbnRz OyBob3dldmVyLCBpZiBhbnkgdGFyZ2V0IHdvdWxkIHdhbnQgdGhhdCBpbiB0aGUKLUBAIC0zNTQs MTMgKzQyOCwxMyBAQCBpMzg2X2luc2VydF9hbGlnbmVkX3dhdGNocG9pbnQgKENPUkVfQUREUiBh ZGRyLCB1bnNpZ25lZCBsZW5fcndfYml0cykKK0BAIC0zNTUsMTMgKzQyOSwxMyBAQCBpMzg2X2lu c2VydF9hbGlnbmVkX3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCB1bnNpZ25lZCBsZW5fcndf Yml0cykKICAgICAgIHRvIGVuYWJsZSB3YXRjaHBvaW50cyBnbG9iYWxseSBvciBsb2NhbGx5LCBh bmQgdGhlIGNvZGUgYmVsb3cKICAgICAgIHNob3VsZCB1c2UgZ2xvYmFsIG9yIGxvY2FsIGVuYWJs ZSBhbmQgc2xvdy1kb3duIGZsYWdzIGFzCiAgICAgICBhcHByb3ByaWF0ZS4gICovCkBAIC01MjU0 LDcgKzUyNjUsNyBAQCBpbmRleCA5MDBmYjQwLi5mMjhjNDViIDEwMDY0NAogIAogICAgLyogT25s eSBhIHNhbml0eSBjaGVjayBmb3IgbGVmdG92ZXIgYml0cyAoc2V0IHBvc3NpYmx5IG9ubHkgYnkg aW5mZXJpb3IpLiAgKi8KICAgIGlmIChpMzg2X2RyX2xvdy51bnNldF9zdGF0dXMpCi1AQCAtMzc4 LDIxICs0NTIsMjEgQEAgaTM4Nl9pbnNlcnRfYWxpZ25lZF93YXRjaHBvaW50IChDT1JFX0FERFIg YWRkciwgdW5zaWduZWQgbGVuX3J3X2JpdHMpCitAQCAtMzc5LDIxICs0NTMsMjEgQEAgaTM4Nl9p bnNlcnRfYWxpZ25lZF93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgdW5zaWduZWQgbGVuX3J3 X2JpdHMpCiAgc3RhdGljIGludAogIGkzODZfcmVtb3ZlX2FsaWduZWRfd2F0Y2hwb2ludCAoQ09S RV9BRERSIGFkZHIsIHVuc2lnbmVkIGxlbl9yd19iaXRzKQogIHsKQEAgLTUyNjksOCArNTI4MCw4 IEBAIGluZGV4IDkwMGZiNDAuLmYyOGM0NWIgMTAwNjQ0CiArICAgICAgaWYgKCFpMzg2X2RyX3Zh Y2FudCAoZHJfbWlycm9yLCBpKSAmJiBkcl9taXJyb3ItPmFkZHJbaV0gPT0gYWRkcgogKwkgICYm IGkzODZfZHJfZ2V0X3J3X2xlbiAoZHJfbWlycm9yLCBpKSA9PSBsZW5fcndfYml0cykKICAJewot LQkgIGlmICgtLWRyX3JlZl9jb3VudFtpXSA9PSAwKSAvKiBubyBsb25nZXIgaW4gdXNlPyAqLwot KwkgIGlmICgtLWRyX21pcnJvci0+cmVmX2NvdW50W2ldID09IDApIC8qIG5vIGxvbmdlciBpbiB1 c2U/ICovCistCSAgaWYgKC0tZHJfcmVmX2NvdW50W2ldID09IDApIC8qIG5vIGxvbmdlciBpbiB1 c2U/ICAqLworKwkgIGlmICgtLWRyX21pcnJvci0+cmVmX2NvdW50W2ldID09IDApIC8qIG5vIGxv bmdlciBpbiB1c2U/ICAqLwogIAkgICAgewogIAkgICAgICAvKiBSZXNldCBvdXIgbWlycm9yLiAg Ki8KIC0JICAgICAgZHJfbWlycm9yW2ldID0gMDsKQEAgLTUyODMsNyArNTI5NCw3IEBAIGluZGV4 IDkwMGZiNDAuLmYyOGM0NWIgMTAwNjQ0CiAgCSAgICAgIGlmIChpMzg2X2RyX2xvdy5yZXNldF9h ZGRyKQogIAkJaTM4Nl9kcl9sb3cucmVzZXRfYWRkciAoaSk7CiAgCSAgICB9Ci1AQCAtNTU0LDI2 ICs2MjgsMjcgQEAgaTM4Nl9yZWdpb25fb2tfZm9yX3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRy LCBpbnQgbGVuKQorQEAgLTU1NSwyNiArNjI5LDI3IEBAIGkzODZfcmVnaW9uX29rX2Zvcl93YXRj aHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbikKICBzdGF0aWMgaW50CiAgaTM4Nl9zdG9w cGVkX2RhdGFfYWRkcmVzcyAoc3RydWN0IHRhcmdldF9vcHMgKm9wcywgQ09SRV9BRERSICphZGRy X3ApCiAgewpAQCAtNTMxNiw3ICs1MzI3LDcgQEAgaW5kZXggOTAwZmI0MC4uZjI4YzQ1YiAxMDA2 NDQKICAJICByYyA9IDE7CiAgCSAgaWYgKG1haW50X3Nob3dfZHIpCiAgCSAgICBpMzg2X3Nob3df ZHIgKCJ3YXRjaHBvaW50X2hpdCIsIGFkZHIsIC0xLCBod193cml0ZSk7Ci1AQCAtNjg3LDYgKzc2 MiwxMCBAQCBpMzg2X3VzZV93YXRjaHBvaW50cyAoc3RydWN0IHRhcmdldF9vcHMgKnQpCitAQCAt Njg4LDYgKzc2MywxMCBAQCBpMzg2X3VzZV93YXRjaHBvaW50cyAoc3RydWN0IHRhcmdldF9vcHMg KnQpCiAgICB0LT50b19yZW1vdmVfd2F0Y2hwb2ludCA9IGkzODZfcmVtb3ZlX3dhdGNocG9pbnQ7 CiAgICB0LT50b19pbnNlcnRfaHdfYnJlYWtwb2ludCA9IGkzODZfaW5zZXJ0X2h3X2JyZWFrcG9p bnQ7CiAgICB0LT50b19yZW1vdmVfaHdfYnJlYWtwb2ludCA9IGkzODZfcmVtb3ZlX2h3X2JyZWFr cG9pbnQ7CkBAIC01MzI4LDcgKzUzMzksNyBAQCBpbmRleCA5MDBmYjQwLi5mMjhjNDViIDEwMDY0 NAogIAogIHZvaWQKIGRpZmYgLS1naXQgYS9nZGIvaTM4Ni1uYXQuaCBiL2dkYi9pMzg2LW5hdC5o Ci1pbmRleCAxMGZkYzNiLi5lZDZkZTU2IDEwMDY0NAoraW5kZXggODE5YzZiOC4uYmVmOGEzNSAx MDA2NDQKIC0tLSBhL2dkYi9pMzg2LW5hdC5oCiArKysgYi9nZGIvaTM4Ni1uYXQuaAogQEAgLTc4 LDYgKzc4LDI4IEBAIHN0cnVjdCBpMzg2X2RyX2xvd190eXBlCkBAIC01MzYxLDcgKzUzNzIsNyBA QCBpbmRleCAxMGZkYzNiLi5lZDZkZTU2IDEwMDY0NAogICAgIHJhdGhlciB0aGFuIHNldHRpbmcg aXQgZGlyZWN0bHkgdG8gY2hlY2sgdGhhdCB0aGUgbGVuZ3RoIGlzIG9ubHkKICAgICBzZXQgb25j ZS4gIEl0IGFsc28gZW5hYmxlcyB0aGUgJ21haW50IHNldC9zaG93IHNob3ctZGVidWctcmVncycg CiBkaWZmIC0tZ2l0IGEvZ2RiL2luZmNhbGwuYyBiL2dkYi9pbmZjYWxsLmMKLWluZGV4IDQ4YzE4 M2UuLjcxNmZiNjggMTAwNjQ0CitpbmRleCA3NWRlNTZjLi4yYTY0YTBlIDEwMDY0NAogLS0tIGEv Z2RiL2luZmNhbGwuYwogKysrIGIvZ2RiL2luZmNhbGwuYwogQEAgLTIyOCw2ICsyMjgsNTYgQEAg dmFsdWVfYXJnX2NvZXJjZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCB2YWx1ZSAq YXJnLApAQCAtNTQ3MywxMiArNTQ4NCwxMiBAQCBpbmRleCA0OGMxODNlLi43MTZmYjY4IDEwMDY0 NAogKyAgZWxzZSBpZiAoVFlQRV9DT0RFIChmdHlwZSkgPT0gVFlQRV9DT0RFX0lOVCkKICAgICAg ewogICAgICAgIC8qIEhhbmRsZSB0aGUgY2FzZSBvZiBmdW5jdGlvbnMgbGFja2luZyBkZWJ1Z2dp bmcgaW5mby4KLSAgICAgICAgICBUaGVpciB2YWx1ZXMgYXJlIGNoYXJhY3RlcnMgc2luY2UgdGhl aXIgYWRkcmVzc2VzIGFyZSBjaGFyICovCisgICAgICAgICAgVGhlaXIgdmFsdWVzIGFyZSBjaGFy YWN0ZXJzIHNpbmNlIHRoZWlyIGFkZHJlc3NlcyBhcmUgY2hhci4gICovCiBkaWZmIC0tZ2l0IGEv Z2RiL2xpbnV4LW5hdC5jIGIvZ2RiL2xpbnV4LW5hdC5jCi1pbmRleCBlNDY3ZTlhLi5kN2I1Mzk2 IDEwMDY0NAoraW5kZXggNjJhNDUzOC4uOGQxNGZjZCAxMDA2NDQKIC0tLSBhL2dkYi9saW51eC1u YXQuYwogKysrIGIvZ2RiL2xpbnV4LW5hdC5jCi1AQCAtMTI1Nyw2ICsxMjU3LDY0IEBAIGl0ZXJh dGVfb3Zlcl9sd3BzIChwdGlkX3QgZmlsdGVyLAorQEAgLTEyNTQsNiArMTI1NCw2NCBAQCBpdGVy YXRlX292ZXJfbHdwcyAocHRpZF90IGZpbHRlciwKICAgIHJldHVybiBOVUxMOwogIH0KICAKQEAg LTU1NjAsNyArNTU3MSw3IEBAIGluZGV4IDQyY2IyZmMuLjA1YWMxMWQgMTAwNjQ0CiAgICAgb3Zl cnJpZGUgaXQgd2l0aCBsb2NhbCBtZXRob2RzLiAgKi8KICBzdHJ1Y3QgdGFyZ2V0X29wcyAqIGxp bnV4X3RhcmdldCAodm9pZCk7CiBkaWZmIC0tZ2l0IGEvZ2RiL21haW4uYyBiL2dkYi9tYWluLmMK LWluZGV4IDY5ZjIyOTguLjZiMjUzMGIgMTAwNjQ0CitpbmRleCA2YmU0ODA1Li4xYjAwNzU5IDEw MDY0NAogLS0tIGEvZ2RiL21haW4uYwogKysrIGIvZ2RiL21haW4uYwogQEAgLTM5LDYgKzM5LDcg QEAKQEAgLTU2MDYsNyArNTYxNyw3IEBAIGluZGV4IDY5ZjIyOTguLjZiMjUzMGIgMTAwNjQ0CiAg CSAgY2FzZSBPUFRfU0U6CiAgCSAgICBzeW1hcmcgPSBvcHRhcmc7CiAgCSAgICBleGVjYXJnID0g b3B0YXJnOwotQEAgLTY2Myw3ICs2NzMsMzEgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkK K0BAIC02NjQsNyArNjc0LDMxIEBAIGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCiAgCiAgICAv KiBOb3cgdGhhdCBnZGJfaW5pdCBoYXMgY3JlYXRlZCB0aGUgaW5pdGlhbCBpbmZlcmlvciwgd2Un cmUgaW4KICAgICAgIHBvc2l0aW9uIHRvIHNldCBhcmdzIGZvciB0aGF0IGluZmVyaW9yLiAgKi8K QEAgLTU2MzksNyArNTY1MCw3IEBAIGluZGV4IDY5ZjIyOTguLjZiMjUzMGIgMTAwNjQ0CiAgICAg IHsKICAgICAgICAvKiBUaGUgcmVtYWluaW5nIG9wdGlvbnMgYXJlIHRoZSBjb21tYW5kLWxpbmUg b3B0aW9ucyBmb3IgdGhlCiAgCSBpbmZlcmlvci4gIFRoZSBmaXJzdCBvbmUgaXMgdGhlIHN5bS9l eGVjIGZpbGUsIGFuZCB0aGUgcmVzdAotQEAgLTkxMiw3ICs5NDYsOCBAQCBjYXB0dXJlZF9tYWlu ICh2b2lkICpkYXRhKQorQEAgLTkxMyw3ICs5NDcsOCBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpk YXRhKQogIAogICAgLyogUmVhZCBpbiB0aGUgb2xkIGhpc3RvcnkgYWZ0ZXIgYWxsIHRoZSBjb21t YW5kIGZpbGVzIGhhdmUgYmVlbgogICAgICAgcmVhZC4gICovCkBAIC01NjQ5LDcgKzU2NjAsNyBA QCBpbmRleCA2OWYyMjk4Li42YjI1MzBiIDEwMDY0NAogIAogICAgaWYgKGJhdGNoX2ZsYWcpCiAg ICAgIHsKLUBAIC05MjMsMTMgKzk1OCwyNSBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQor QEAgLTkyNCwxMyArOTU5LDI1IEBAIGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCiAgICAvKiBT aG93IHRpbWUgYW5kL29yIHNwYWNlIHVzYWdlLiAgKi8KICAgIGRvX2NsZWFudXBzIChwcmVfc3Rh dF9jaGFpbik7CiAgCkBAIC01NjgxLDcgKzU2OTIsNyBAQCBpbmRleCA2OWYyMjk4Li42YjI1MzBi IDEwMDY0NAogICAgICB9CiAgICAvKiBObyBleGl0IC0tIGV4aXQgaXMgdGhyb3VnaCBxdWl0X2Nv bW1hbmQuICAqLwogIH0KLUBAIC05NjEsNyArMTAwOCwxMiBAQCBwcmludF9nZGJfaGVscCAoc3Ry dWN0IHVpX2ZpbGUgKnN0cmVhbSkKK0BAIC05NjIsNyArMTAwOSwxMiBAQCBwcmludF9nZGJfaGVs cCAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSkKICAgIGZwdXRzX3VuZmlsdGVyZWQgKF8oIlwKICBU aGlzIGlzIHRoZSBHTlUgZGVidWdnZXIuICBVc2FnZTpcblxuXAogICAgICBnZGIgW29wdGlvbnNd IFtleGVjdXRhYmxlLWZpbGUgW2NvcmUtZmlsZSBvciBwcm9jZXNzLWlkXV1cblwKQEAgLTU2OTUs NyArNTcwNiw3IEBAIGluZGV4IDY5ZjIyOTguLjZiMjUzMGIgMTAwNjQ0CiAgT3B0aW9uczpcblxu XAogICIpLCBzdHJlYW0pOwogICAgZnB1dHNfdW5maWx0ZXJlZCAoXygiXAotQEAgLTk5OSw3ICsx MDUxLDEzIEBAIE9wdGlvbnM6XG5cblwKK0BAIC0xMDAwLDcgKzEwNTIsMTMgQEAgT3B0aW9uczpc blxuXAogICAgLS1udwkJICAgICBEbyBub3QgdXNlIGEgd2luZG93IGludGVyZmFjZS5cblwKICAg IC0tbnggICAgICAgICAgICAgICBEbyBub3QgcmVhZCAiKSwgc3RyZWFtKTsKICAgIGZwdXRzX3Vu ZmlsdGVyZWQgKGdkYmluaXQsIHN0cmVhbSk7CkBAIC01NzExLDcgKzU3MjIsNyBAQCBpbmRleCA2 OWYyMjk4Li42YjI1MzBiIDEwMDY0NAogICAgLS1yZWFkbm93ICAgICAgICAgIEZ1bGx5IHJlYWQg c3ltYm9sIGZpbGVzIG9uIGZpcnN0IGFjY2Vzcy5cblwKICAiKSwgc3RyZWFtKTsKIGRpZmYgLS1n aXQgYS9nZGIvbWkvbWktY21kLXZhci5jIGIvZ2RiL21pL21pLWNtZC12YXIuYwotaW5kZXggOGUw ZjQxMC4uZTIzZjQ4MiAxMDA2NDQKK2luZGV4IGE0MDE4NDYuLjI2ZGNhOGMgMTAwNjQ0CiAtLS0g YS9nZGIvbWkvbWktY21kLXZhci5jCiArKysgYi9nZGIvbWkvbWktY21kLXZhci5jCiBAQCAtNzA3 LDcgKzcwNyw2IEBAIG1pX2NtZF92YXJfdXBkYXRlIChjaGFyICpjb21tYW5kLCBjaGFyICoqYXJn diwgaW50IGFyZ2MpCkBAIC01NzIzLDcgKzU3MzQsNyBAQCBpbmRleCA4ZTBmNDEwLi5lMjNmNDgy IDEwMDY0NAogIAogICAgICAgIHZhcm9ial91cGRhdGVfb25lICh2YXIsIHByaW50X3ZhbHVlcywg MSAvKiBleHBsaWNpdCAqLyk7CiBkaWZmIC0tZ2l0IGEvZ2RiL21pbnN5bXMuYyBiL2dkYi9taW5z eW1zLmMKLWluZGV4IDc3MTU5YTUuLmVhOTRjMTMgMTAwNjQ0CitpbmRleCA4NDk3OTkxLi40NjM1 ODUzIDEwMDY0NAogLS0tIGEvZ2RiL21pbnN5bXMuYwogKysrIGIvZ2RiL21pbnN5bXMuYwogQEAg LTMzOCw4ICszMzgsOSBAQCBsb29rdXBfbWluaW1hbF9zeW1ib2xfdGV4dCAoY29uc3QgY2hhciAq bmFtZSwgc3RydWN0IG9iamZpbGUgKm9iamYpCkBAIC01Nzc0LDcgKzU3ODUsNyBAQCBpbmRleCA3 NzE1OWE1Li5lYTk0YzEzIDEwMDY0NAogIAkJICAgICAgIFNZTUJPTF9MSU5LQUdFX05BTUUgKHRz eW1ib2wpKSA9PSAwKQogIAkgIHJldHVybiBTWU1CT0xfVkFMVUVfQUREUkVTUyAobXN5bWJvbCk7 CiBkaWZmIC0tZ2l0IGEvZ2RiL3AtdmFscHJpbnQuYyBiL2dkYi9wLXZhbHByaW50LmMKLWluZGV4 IDUzOTBkZDkuLmMwYTBiMmEgMTAwNjQ0CitpbmRleCBlOTkzYzA1Li5hZmZiZTQ1IDEwMDY0NAog LS0tIGEvZ2RiL3AtdmFscHJpbnQuYwogKysrIGIvZ2RiL3AtdmFscHJpbnQuYwogQEAgLTM4LDYg KzM4LDcgQEAKQEAgLTU4NTAsNyArNTg2MSw3IEBAIGluZGV4IDUzOTBkZDkuLmMwYTBiMmEgMTAw NjQ0CiAgfQogIAwKIGRpZmYgLS1naXQgYS9nZGIvcGFyc2UuYyBiL2dkYi9wYXJzZS5jCi1pbmRl eCA0ZjBjMTExLi4yNDNhOTRhIDEwMDY0NAoraW5kZXggODU2YzI0ZC4uZGJiMzhjNSAxMDA2NDQK IC0tLSBhL2dkYi9wYXJzZS5jCiArKysgYi9nZGIvcGFyc2UuYwogQEAgLTQ4Nyw5ICs0ODcsMjEg QEAgd3JpdGVfZXhwX21zeW1ib2wgKHN0cnVjdCBtaW5pbWFsX3N5bWJvbCAqbXN5bWJvbCkKQEAg LTU4OTksNyArNTkxMCw3IEBAIGluZGV4IDRmMGMxMTEuLjI0M2E5NGEgMTAwNjQ0CiAgICAgIGRl ZmF1bHQ6CiAgICAgICAgd3JpdGVfZXhwX2VsdF90eXBlIChvYmpmaWxlX3R5cGUgKG9iamZpbGUp LT5ub2RlYnVnX3Vua25vd25fc3ltYm9sKTsKICAgICAgICBicmVhazsKLUBAIC0xNDgyLDYgKzE1 MDMsNyBAQCBwYXJzZXJfZnByaW50ZiAoRklMRSAqeCwgY29uc3QgY2hhciAqeSwgLi4uKQorQEAg LTE0ODAsNiArMTUwMSw3IEBAIHBhcnNlcl9mcHJpbnRmIChGSUxFICp4LCBjb25zdCBjaGFyICp5 LCAuLi4pCiAgCiAgaW50CiAgb3BlcmF0b3JfY2hlY2tfc3RhbmRhcmQgKHN0cnVjdCBleHByZXNz aW9uICpleHAsIGludCBwb3MsCkBAIC01OTA3LDcgKzU5MTgsNyBAQCBpbmRleCA0ZjBjMTExLi4y NDNhOTRhIDEwMDY0NAogIAkJCSBpbnQgKCpvYmpmaWxlX2Z1bmMpIChzdHJ1Y3Qgb2JqZmlsZSAq b2JqZmlsZSwKICAJCQkJCSAgICAgIHZvaWQgKmRhdGEpLAogIAkJCSB2b2lkICpkYXRhKQotQEAg LTE1MjMsNyArMTU0NSw3IEBAIG9wZXJhdG9yX2NoZWNrX3N0YW5kYXJkIChzdHJ1Y3QgZXhwcmVz c2lvbiAqZXhwLCBpbnQgcG9zLAorQEAgLTE1MjEsNyArMTU0Myw3IEBAIG9wZXJhdG9yX2NoZWNr X3N0YW5kYXJkIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgcG9zLAogIAkgICAgc3RydWN0 IHR5cGUgKnR5cGUgPSBlbHRzW3BvcyArIDIgKyBhcmddLnR5cGU7CiAgCSAgICBzdHJ1Y3Qgb2Jq ZmlsZSAqb2JqZmlsZSA9IFRZUEVfT0JKRklMRSAodHlwZSk7CiAgCkBAIC01OTE2LDcgKzU5Mjcs NyBAQCBpbmRleCA0ZjBjMTExLi4yNDNhOTRhIDEwMDY0NAogIAkgICAgICByZXR1cm4gMTsKICAJ ICB9CiAgICAgICAgfQotQEAgLTE1NDEsNyArMTU2Myw4IEBAIG9wZXJhdG9yX2NoZWNrX3N0YW5k YXJkIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgcG9zLAorQEAgLTE1MzksNyArMTU2MSw4 IEBAIG9wZXJhdG9yX2NoZWNrX3N0YW5kYXJkIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQg cG9zLAogIAogIAkvKiBDaGVjayBvYmpmaWxlIHdoZXJlIHRoZSB2YXJpYWJsZSBpdHNlbGYgaXMg cGxhY2VkLgogIAkgICBTWU1CT0xfT0JKX1NFQ1RJT04gKHN5bWJvbCkgbWF5IGJlIE5VTEwuICAq LwpAQCAtNTkyNiw3ICs1OTM3LDcgQEAgaW5kZXggNGYwYzExMS4uMjQzYTk0YSAxMDA2NDQKICAJ ICByZXR1cm4gMTsKICAKICAJLyogQ2hlY2sgb2JqZmlsZSB3aGVyZSBpcyBwbGFjZWQgdGhlIGNv ZGUgdG91Y2hpbmcgdGhlIHZhcmlhYmxlLiAgKi8KLUBAIC0xNTU0LDI0ICsxNTc3LDI3IEBAIG9w ZXJhdG9yX2NoZWNrX3N0YW5kYXJkIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgcG9zLAor QEAgLTE1NTIsMjQgKzE1NzUsMjcgQEAgb3BlcmF0b3JfY2hlY2tfc3RhbmRhcmQgKHN0cnVjdCBl eHByZXNzaW9uICpleHAsIGludCBwb3MsCiAgCiAgICAvKiBJbnZva2UgY2FsbGJhY2tzIGZvciBU WVBFIGFuZCBPQkpGSUxFIGlmIHRoZXkgd2VyZSBzZXQgYXMgbm9uLU5VTEwuICAqLwogIApAQCAt NTk2Miw3ICs1OTczLDcgQEAgaW5kZXggNGYwYzExMS4uMjQzYTk0YSAxMDA2NDQKICAJICAgICBp bnQgKCpvYmpmaWxlX2Z1bmMpIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgdm9pZCAqZGF0YSks CiAgCSAgICAgdm9pZCAqZGF0YSkKICB7Ci1AQCAtMTU4Niw3ICsxNjEyLDkgQEAgZXhwX2l0ZXJh dGUgKHN0cnVjdCBleHByZXNzaW9uICpleHAsCitAQCAtMTU4NCw3ICsxNjEwLDkgQEAgZXhwX2l0 ZXJhdGUgKHN0cnVjdCBleHByZXNzaW9uICpleHAsCiAgCiAgICAgICAgcG9zID0gZW5kcG9zIC0g b3BsZW47CiAgICAgICAgaWYgKGV4cC0+bGFuZ3VhZ2VfZGVmbi0+bGFfZXhwX2Rlc2MtPm9wZXJh dG9yX2NoZWNrIChleHAsIHBvcywKQEAgLTU5NzMsNyArNTk4NCw3IEBAIGluZGV4IDRmMGMxMTEu LjI0M2E5NGEgMTAwNjQ0CiAgCXJldHVybiAxOwogIAogICAgICAgIGVuZHBvcyA9IHBvczsKLUBA IC0xNjE3LDcgKzE2NDUsMjYgQEAgZXhwX3VzZXNfb2JqZmlsZSAoc3RydWN0IGV4cHJlc3Npb24g KmV4cCwgc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCitAQCAtMTYxNSw3ICsxNjQzLDI2IEBAIGV4 cF91c2VzX29iamZpbGUgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIHN0cnVjdCBvYmpmaWxlICpv YmpmaWxlKQogIHsKICAgIGdkYl9hc3NlcnQgKG9iamZpbGUtPnNlcGFyYXRlX2RlYnVnX29iamZp bGVfYmFja2xpbmsgPT0gTlVMTCk7CiAgCkBAIC02MDAyLDcgKzYwMTMsNyBAQCBpbmRleCA0ZjBj MTExLi4yNDNhOTRhIDEwMDY0NAogIAogIHZvaWQKIGRpZmYgLS1naXQgYS9nZGIvcGFyc2VyLWRl ZnMuaCBiL2dkYi9wYXJzZXItZGVmcy5oCi1pbmRleCA5NWRkNzk5Li40MjI2NmRmIDEwMDY0NAor aW5kZXggM2Y3NDNkMS4uMGVlMTlmNSAxMDA2NDQKIC0tLSBhL2dkYi9wYXJzZXItZGVmcy5oCiAr KysgYi9nZGIvcGFyc2VyLWRlZnMuaAogQEAgLTE5NCw2ICsxOTQsOCBAQCBleHRlcm4gdm9pZCBv cGVyYXRvcl9sZW5ndGhfc3RhbmRhcmQgKGNvbnN0IHN0cnVjdCBleHByZXNzaW9uICosIGludCwg aW50ICosCkBAIC02MDMyLDEwICs2MDQzLDEwIEBAIGluZGV4IDk1ZGQ3OTkuLjQyMjY2ZGYgMTAw NjQ0CiArCiAgI2VuZGlmIC8qIFBBUlNFUl9ERUZTX0ggKi8KIGRpZmYgLS1naXQgYS9nZGIvcHBj LWxpbnV4LW5hdC5jIGIvZ2RiL3BwYy1saW51eC1uYXQuYwotaW5kZXggY2E3MzEyYi4uNTg2OTZk MyAxMDA2NDQKK2luZGV4IDBjNTU2M2UuLmU0ZjBiMjUgMTAwNjQ0CiAtLS0gYS9nZGIvcHBjLWxp bnV4LW5hdC5jCiArKysgYi9nZGIvcHBjLWxpbnV4LW5hdC5jCi1AQCAtMTYyMSwxMiArMTYyMSwx OCBAQCBib29rZV9yZW1vdmVfcG9pbnQgKHN0cnVjdCBwcGNfaHdfYnJlYWtwb2ludCAqYiwgaW50 IHRpZCkKK0BAIC0xNjM3LDEyICsxNjM3LDE4IEBAIGJvb2tlX3JlbW92ZV9wb2ludCAoc3RydWN0 IHBwY19od19icmVha3BvaW50ICpiLCBpbnQgdGlkKQogICAgaHdfYnJlYWtzW2ldLmh3X2JyZWFr ID0gTlVMTDsKICB9CiAgCkBAIC02MDU2LDggKzYwNjcsOCBAQCBpbmRleCBjYTczMTJiLi41ODY5 NmQzIDEwMDY0NAogICAgc3RydWN0IHBwY19od19icmVha3BvaW50IHA7CiAgCiAgICBpZiAoIWhh dmVfcHRyYWNlX2Jvb2tlX2ludGVyZmFjZSAoKSkKLUBAIC0xNjQwLDE4ICsxNjQ2LDIzIEBAIHBw Y19saW51eF9pbnNlcnRfaHdfYnJlYWtwb2ludCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCi0g ICBwLmFkZHIyICAgICAgICAgICA9IDA7CitAQCAtMTY1NiwxOCArMTY2MiwyMyBAQCBwcGNfbGlu dXhfaW5zZXJ0X2h3X2JyZWFrcG9pbnQgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorICAgcC5h ZGRyMiA9IDA7CiAgICBwLmNvbmRpdGlvbl92YWx1ZSA9IDA7CiAgCiAtICBBTExfTFdQUyAobHAs IHB0aWQpCkBAIC02MDg0LDggKzYwOTUsOCBAQCBpbmRleCBjYTczMTJiLi41ODY5NmQzIDEwMDY0 NAogICAgc3RydWN0IHBwY19od19icmVha3BvaW50IHA7CiAgCiAgICBpZiAoIWhhdmVfcHRyYWNl X2Jvb2tlX2ludGVyZmFjZSAoKSkKLUBAIC0xNjY1LDggKzE2NzYsNyBAQCBwcGNfbGludXhfcmVt b3ZlX2h3X2JyZWFrcG9pbnQgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAotICAgcC5hZGRyMiAg ICAgICAgICAgPSAwOworQEAgLTE2ODEsOCArMTY5Miw3IEBAIHBwY19saW51eF9yZW1vdmVfaHdf YnJlYWtwb2ludCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCisgICBwLmFkZHIyID0gMDsKICAg IHAuY29uZGl0aW9uX3ZhbHVlID0gMDsKICAKIC0gIEFMTF9MV1BTIChscCwgcHRpZCkKQEAgLTYw OTQsNyArNjEwNSw3IEBAIGluZGV4IGNhNzMxMmIuLjU4Njk2ZDMgMTAwNjQ0CiAgCiAgICByZXR1 cm4gMDsKICB9Ci1AQCAtMTg3OSwxMiArMTg4OSwxOSBAQCBwcGNfbGludXhfY2FuX2FjY2VsX3dh dGNocG9pbnRfY29uZGl0aW9uIChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwgaW50IHJ3LAorQEAg LTE4OTYsNiArMTkwNiwxNSBAQCBwcGNfbGludXhfY2FuX2FjY2VsX3dhdGNocG9pbnRfY29uZGl0 aW9uIChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwgaW50IHJ3LAogIAkgICYmIGNoZWNrX2NvbmRp dGlvbiAoYWRkciwgY29uZCwgJmRhdGFfdmFsdWUpKTsKICB9CiAgCkBAIC02MTA3LDcgKzYxMTgs MTAgQEAgaW5kZXggY2E3MzEyYi4uNTg2OTZkMyAxMDA2NDQKICsgICAgKnJldHAgPSAtMTsKICt9 CiArCi0gc3RhdGljIGludAorIC8qIFNldCB1cCBQIHdpdGggdGhlIHBhcmFtZXRlcnMgbmVjZXNz YXJ5IHRvIHJlcXVlc3QgYSB3YXRjaHBvaW50IGNvdmVyaW5nCisgICAgTEVOIGJ5dGVzIHN0YXJ0 aW5nIGF0IEFERFIgYW5kIGlmIHBvc3NpYmxlIHdpdGggY29uZGl0aW9uIGV4cHJlc3Npb24gQ09O RAorICAgIGV2YWx1YXRlZCBieSBoYXJkd2FyZS4gIElOU0VSVCB0ZWxscyBpZiB3ZSBhcmUgY3Jl YXRpbmcgYSByZXF1ZXN0IGZvcgorQEAgLTE5NDksOCArMTk2OCw2IEBAIHN0YXRpYyBpbnQKICBw cGNfbGludXhfaW5zZXJ0X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLCBpbnQg cncsCiAgCQkJICAgICBzdHJ1Y3QgZXhwcmVzc2lvbiAqY29uZCkKICB7CkBAIC02MTE2LDkgKzYx MzAsOSBAQCBpbmRleCBjYTczMTJiLi41ODY5NmQzIDEwMDY0NAogICAgaW50IHJldCA9IC0xOwog IAogICAgaWYgKGhhdmVfcHRyYWNlX2Jvb2tlX2ludGVyZmFjZSAoKSkKLUBAIC0xOTA4LDggKzE5 MjUsNyBAQCBwcGNfbGludXhfaW5zZXJ0X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQg bGVuLCBpbnQgcncsCi0gICAgICAgcC5hZGRyICAgICAgICAgICAgPSAodWludDY0X3QpIGFkZHI7 Ci0gICAgICAgcC5hZGRyMiAgICAgICAgICAgPSAwOworQEAgLTE5NTksOCArMTk3Niw3IEBAIHBw Y19saW51eF9pbnNlcnRfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4sIGludCBy dywKKyAKKyAgICAgICBjcmVhdGVfd2F0Y2hwb2ludF9yZXF1ZXN0ICgmcCwgYWRkciwgbGVuLCBy dywgY29uZCwgMSk7CiAgCiAtICAgICAgQUxMX0xXUFMgKGxwLCBwdGlkKQogLQlib29rZV9pbnNl cnRfcG9pbnQgKCZwLCBUSURHRVQgKHB0aWQpKTsKQEAgLTYxMjYsNyArNjE0MCw3IEBAIGluZGV4 IGNhNzMxMmIuLjU4Njk2ZDMgMTAwNjQ0CiAgCiAgICAgICAgcmV0ID0gMDsKICAgICAgfQotQEAg LTE5NTIsMTIgKzE5NjgsOCBAQCBwcGNfbGludXhfaW5zZXJ0X3dhdGNocG9pbnQgKENPUkVfQURE UiBhZGRyLCBpbnQgbGVuLCBpbnQgcncsCitAQCAtMjAwMywxMiArMjAxOSw4IEBAIHBwY19saW51 eF9pbnNlcnRfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4sIGludCBydywKICAK ICAgICAgICBzYXZlZF9kYWJyX3ZhbHVlID0gZGFicl92YWx1ZTsKICAKQEAgLTYxNDAsNyArNjE1 NCw3IEBAIGluZGV4IGNhNzMxMmIuLjU4Njk2ZDMgMTAwNjQ0CiAgICAgIH0KICAKICAgIHJldHVy biByZXQ7Ci1AQCAtMTk2Nyw4ICsxOTc5LDYgQEAgc3RhdGljIGludAorQEAgLTIwMTgsOCArMjAz MCw2IEBAIHN0YXRpYyBpbnQKICBwcGNfbGludXhfcmVtb3ZlX3dhdGNocG9pbnQgKENPUkVfQURE UiBhZGRyLCBpbnQgbGVuLCBpbnQgcncsCiAgCQkJICAgICBzdHJ1Y3QgZXhwcmVzc2lvbiAqY29u ZCkKICB7CkBAIC02MTQ5LDkgKzYxNjMsOSBAQCBpbmRleCBjYTczMTJiLi41ODY5NmQzIDEwMDY0 NAogICAgaW50IHJldCA9IC0xOwogIAogICAgaWYgKGhhdmVfcHRyYWNlX2Jvb2tlX2ludGVyZmFj ZSAoKSkKLUBAIC0xOTkyLDIwICsyMDAyLDE2IEBAIHBwY19saW51eF9yZW1vdmVfd2F0Y2hwb2lu dCAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4sIGludCBydywKLSAgICAgICBwLmFkZHIgICAgICAg ICAgICA9ICh1aW50NjRfdCkgYWRkcjsKLSAgICAgICBwLmFkZHIyICAgICAgICAgICA9IDA7CitA QCAtMjAyOCwyMCArMjAzOCwxNiBAQCBwcGNfbGludXhfcmVtb3ZlX3dhdGNocG9pbnQgKENPUkVf QUREUiBhZGRyLCBpbnQgbGVuLCBpbnQgcncsCisgCisgICAgICAgY3JlYXRlX3dhdGNocG9pbnRf cmVxdWVzdCAoJnAsIGFkZHIsIGxlbiwgcncsIGNvbmQsIDApOwogIAogLSAgICAgIEFMTF9MV1BT IChscCwgcHRpZCkKIC0JYm9va2VfcmVtb3ZlX3BvaW50ICgmcCwgVElER0VUIChwdGlkKSk7CkBA IC02MTczLDEwICs2MTg3LDEwIEBAIGluZGV4IGNhNzMxMmIuLjU4Njk2ZDMgMTAwNjQ0CiAgCiAg ICByZXR1cm4gcmV0OwogZGlmZiAtLWdpdCBhL2dkYi9wcmludGNtZC5jIGIvZ2RiL3ByaW50Y21k LmMKLWluZGV4IGI3ZDNhZGUuLmE2ZmE4NmEgMTAwNjQ0CitpbmRleCBmNDM1ZjZkLi43YmNiNjY3 IDEwMDY0NAogLS0tIGEvZ2RiL3ByaW50Y21kLmMKICsrKyBiL2dkYi9wcmludGNtZC5jCi1AQCAt OTczLDYgKzk3MywxMSBAQCBwcmludF9jb21tYW5kXzEgKGNoYXIgKmV4cCwgaW50IGluc3BlY3Qs IGludCB2b2lkcHJpbnQpCitAQCAtOTc0LDYgKzk3NCwxMSBAQCBwcmludF9jb21tYW5kXzEgKGNo YXIgKmV4cCwgaW50IGluc3BlY3QsIGludCB2b2lkcHJpbnQpCiAgICBlbHNlCiAgICAgIHZhbCA9 IGFjY2Vzc192YWx1ZV9oaXN0b3J5ICgwKTsKICAKQEAgLTYxODgsNyArNjIwMiw3IEBAIGluZGV4 IGI3ZDNhZGUuLmE2ZmE4NmEgMTAwNjQ0CiAgICBpZiAodm9pZHByaW50IHx8ICh2YWwgJiYgdmFs dWVfdHlwZSAodmFsKSAmJgogIAkJICAgIFRZUEVfQ09ERSAodmFsdWVfdHlwZSAodmFsKSkgIT0g VFlQRV9DT0RFX1ZPSUQpKQogICAgICB7Ci1AQCAtMTQ3NCw2ICsxNDc5LDIyIEBAIHhfY29tbWFu ZCAoY2hhciAqZXhwLCBpbnQgZnJvbV90dHkpCitAQCAtMTQ3NSw2ICsxNDgwLDIyIEBAIHhfY29t bWFuZCAoY2hhciAqZXhwLCBpbnQgZnJvbV90dHkpCiAgCXNldF9pbnRlcm5hbHZhciAobG9va3Vw X2ludGVybmFsdmFyICgiX18iKSwgbGFzdF9leGFtaW5lX3ZhbHVlKTsKICAgICAgfQogIH0KQEAg LTYyMTEsNyArNjIyNSw3IEBAIGluZGV4IGI3ZDNhZGUuLmE2ZmE4NmEgMTAwNjQ0CiAgDAogIAog IC8qIEFkZCBhbiBleHByZXNzaW9uIHRvIHRoZSBhdXRvLWRpc3BsYXkgY2hhaW4uCi1AQCAtMjg3 NCw0ICsyODk1LDYgQEAgU2hvdyBwcmludGluZyBvZiBzb3VyY2UgZmlsZW5hbWUgYW5kIGxpbmUg bnVtYmVyIHdpdGggPHN5bWJvbD4uIiksIE5VTEwsCitAQCAtMjg3NSw0ICsyODk2LDYgQEAgU2hv dyBwcmludGluZyBvZiBzb3VyY2UgZmlsZW5hbWUgYW5kIGxpbmUgbnVtYmVyIHdpdGggPHN5bWJv bD4uIiksIE5VTEwsCiAgICBhZGRfY29tICgiZXZhbCIsIG5vX2NsYXNzLCBldmFsX2NvbW1hbmQs IF8oIlwKICBDb252ZXJ0IFwicHJpbnRmIGZvcm1hdCBzdHJpbmdcIiwgYXJnMSwgYXJnMiwgYXJn MywgLi4uLCBhcmduIHRvXG5cCiAgYSBjb21tYW5kIGxpbmUsIGFuZCBjYWxsIGl0LiIpKTsKQEAg LTYzNzcsMTMgKzYzOTEsMTMgQEAgaW5kZXggMDAwMDAwMC4uYjc5MGE1NAogKyAgICAgICAgcmV0 dXJuIGdldGF0dHIgKHNlbGYuZnJhbWUsIG5hbWUpCiBkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9s aWIvZ2RiL2JhY2t0cmFjZS5weSBiL2dkYi9weXRob24vbGliL2dkYi9iYWNrdHJhY2UucHkKIG5l dyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi4yYmFhYjVmCitpbmRleCAwMDAwMDAw Li42YmI0ZmIxCiAtLS0gL2Rldi9udWxsCiArKysgYi9nZGIvcHl0aG9uL2xpYi9nZGIvYmFja3Ry YWNlLnB5CiBAQCAtMCwwICsxLDQyIEBACiArIyBGaWx0ZXJpbmcgYmFja3RyYWNlLgogKwotKyMg Q29weXJpZ2h0IChDKSAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMgQ29w eXJpZ2h0IChDKSAyMDA4LCAyMDExIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwog KyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vciBtb2RpZnkKICsjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CkBAIC02NDE1LDcgKzY0MjksNyBAQCBpbmRl eCAwMDAwMDAwLi4yYmFhYjVmCiArICAgIGlmIGZyYW1lX2ZpbHRlciA9PSBOb25lOgogKyAgICAg ICAgZnJhbWVfZmlsdGVyID0gY29uc3RydWN0b3IKICsgICAgZWxzZToKLSsgICAgICAgIGZyYW1l X2ZpbHRlciA9IGxhbWJkYSBpdGVyYXRvcjogY29uc3RydWN0b3IgKGZyYW1lX2ZpbHRlciAoaXRl cmF0b3IpKQorKyAgICAgICAgZnJhbWVfZmlsdGVyID0gbGFtYmRhIGl0ZXJhdG9yLCBmaWx0ZXIg PSBmcmFtZV9maWx0ZXI6IGNvbnN0cnVjdG9yIChmaWx0ZXIgKGl0ZXJhdG9yKSkKICsKICtkZWYg Y3JlYXRlX2ZyYW1lX2ZpbHRlciAoaXRlcik6CiArICAgIGdsb2JhbCBmcmFtZV9maWx0ZXIKQEAg LTY0OTAsMTMgKzY1MDQsMTMgQEAgaW5kZXggMDAwMDAwMC4uOTZiNjYxOAogK0FsaWFzQ29tbWFu ZCgpCiBkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1hbmQvYmFja3RyYWNlLnB5 IGIvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1hbmQvYmFja3RyYWNlLnB5CiBuZXcgZmlsZSBtb2Rl IDEwMDY0NAotaW5kZXggMDAwMDAwMC4uZWM5YTUyNworaW5kZXggMDAwMDAwMC4uMmFhNWI5MAog LS0tIC9kZXYvbnVsbAogKysrIGIvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1hbmQvYmFja3RyYWNl LnB5CiBAQCAtMCwwICsxLDEwNiBAQAogKyMgTmV3IGJhY2t0cmFjZSBjb21tYW5kLgogKwotKyMg Q29weXJpZ2h0IChDKSAyMDA4LCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgor KyMgQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDExIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgogKwogKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICsjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CkBAIC02NTc2LDcgKzY1 OTAsNyBAQCBpbmRleCAwMDAwMDAwLi5lYzlhNTI3CiArCiArICAgICAgICAjIEZJWE1FOiBwcm92 aWRlIG9wdGlvbiB0byBzdGFydCBhdCBzZWxlY3RlZCBmcmFtZQogKyAgICAgICAgIyBIb3dldmVy LCBzaG91bGQgc3RpbGwgbnVtYmVyIGFzIGlmIHN0YXJ0aW5nIGZyb20gbmV3ZXN0Ci0rCW5ld2Vz dF9mcmFtZSA9IGdkYi5zZWxlY3RlZF90aHJlYWQgKCkubmV3ZXN0X2ZyYW1lICgpCisrICAgICAg ICBuZXdlc3RfZnJhbWUgPSBnZGIuc2VsZWN0ZWRfdGhyZWFkICgpLm5ld2VzdF9mcmFtZSAoKQog KyAgICAgICAgaXRlciA9IGl0ZXJ0b29scy5pbWFwIChGcmFtZVdyYXBwZXIsCiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEZyYW1lSXRlcmF0b3IgKG5ld2VzdF9mcmFtZSkpCiArICAg ICAgICBpZiBmaWx0ZXI6CkBAIC03MDQ2LDMyOCArNzA2MCw2IEBAIGluZGV4IDAwMDAwMDAuLmRl YmIzYmIKICsJcmV0dXJuIHdhbnRlZCA9PSBmb3VuZAogKwogK0luU2NvcGUgKCkKLWRpZmYgLS1n aXQgYS9nZGIvcHl0aG9uL3B5LWNtZC5jIGIvZ2RiL3B5dGhvbi9weS1jbWQuYwotaW5kZXggM2Rl M2FmMi4uNmE3YTIwYiAxMDA2NDQKLS0tLSBhL2dkYi9weXRob24vcHktY21kLmMKLSsrKyBiL2dk Yi9weXRob24vcHktY21kLmMKLUBAIC00OSw4ICs0OSw3IEBAIHN0YXRpYyBzdHJ1Y3QgY21kcHlf Y29tcGxldGVyIGNvbXBsZXRlcnNbXSA9Ci0gCi0gI2RlZmluZSBOX0NPTVBMRVRFUlMgKHNpemVv ZiAoY29tcGxldGVycykgLyBzaXplb2YgKGNvbXBsZXRlcnNbMF0pKQotIAotLS8qIEEgZ2RiIGNv bW1hbmQuICBGb3IgdGhlIHRpbWUgYmVpbmcgb25seSBvcmRpbmFyeSBjb21tYW5kcyAobm90Ci0t ICAgc2V0L3Nob3cgY29tbWFuZHMpIGFyZSBhbGxvd2VkLiAgKi8KLSsvKiBBIGdkYiBjb21tYW5k LiAgKi8KLSBzdHJ1Y3QgY21kcHlfb2JqZWN0Ci0gewotICAgUHlPYmplY3RfSEVBRAotZGlmZiAt LWdpdCBhL2dkYi9weXRob24vcHktbWVtYnVmLmMgYi9nZGIvcHl0aG9uL3B5LW1lbWJ1Zi5jCi1u ZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uN2JjMjk0YwotLS0tIC9kZXYvbnVs bAotKysrIGIvZ2RiL3B5dGhvbi9weS1tZW1idWYuYwotQEAgLTAsMCArMSwyNjggQEAKLSsvKiBQ eXRob24gaW50ZXJmYWNlIHRvIHRoZSBpbmZlcmlvciBtZW1vcnkuCi0rCi0rICAgQ29weXJpZ2h0 IChDKSAyMDA4LCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyAgIFRo aXMgZmlsZSBpcyBwYXJ0IG9mIEdEQi4KLSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyAgIGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5Ci0rICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBv ZiB0aGUgTGljZW5zZSwgb3IKLSsgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u LgotKwotKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAotKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyAgIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rCi0rICAgWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsgICBhbG9u ZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvPi4gICovCi0rCi0rI2luY2x1ZGUgImRlZnMuaCIKLSsjaW5jbHVkZSAiZXhjZXB0aW9u cy5oIgotKyNpbmNsdWRlICJnZGJjb3JlLmgiCi0rI2luY2x1ZGUgInB5dGhvbi1pbnRlcm5hbC5o IgotKwotK3R5cGVkZWYgc3RydWN0IHsKLSsgIFB5T2JqZWN0X0hFQUQKLSsgIHZvaWQgKmJ1ZmZl cjsKLSsKLSsgIC8qIFRoZXNlIGFyZSBrZXB0IGp1c3QgZm9yIG1icHlfc3RyLiAgKi8KLSsgIENP UkVfQUREUiBhZGRyOwotKyAgQ09SRV9BRERSIGxlbmd0aDsKLSt9IG1lbWJ1Zl9vYmplY3Q7Ci0r Ci0rc3RhdGljIFB5VHlwZU9iamVjdCBtZW1idWZfb2JqZWN0X3R5cGU7Ci0rCi0rLyogSW1wbGVt ZW50YXRpb24gb2YgZ2RiLnJlYWRfbWVtb3J5IChhZGRyZXNzLCBsZW5ndGgpLgotKyAgIFJldHVy bnMgYSBQeXRob24gYnVmZmVyIG9iamVjdCB3aXRoIExFTkdUSCBieXRlcyBvZiB0aGUgaW5mZXJp b3IncyBtZW1vcnkKLSsgICBhdCBBRERSRVNTLiBCb3RoIGFyZ3VtZW50cyBhcmUgaW50ZWdlcnMu ICAqLwotKwotK1B5T2JqZWN0ICoKLStnZGJweV9yZWFkX21lbW9yeSAoUHlPYmplY3QgKnNlbGYs IFB5T2JqZWN0ICphcmdzKQotK3sKLSsgIGludCBlcnJvciA9IDA7Ci0rICBDT1JFX0FERFIgYWRk ciwgbGVuZ3RoOwotKyAgdm9pZCAqYnVmZmVyID0gTlVMTDsKLSsgIG1lbWJ1Zl9vYmplY3QgKm1l bWJ1Zl9vYmo7Ci0rICBQeU9iamVjdCAqYWRkcl9vYmosICpsZW5ndGhfb2JqOwotKyAgc3RydWN0 IGNsZWFudXAgKmNsZWFudXBzID0gTlVMTDsKLSsgIHZvbGF0aWxlIHN0cnVjdCBnZGJfZXhjZXB0 aW9uIGV4Y2VwdDsKLSsKLSsgIGlmICghIFB5QXJnX1BhcnNlVHVwbGUgKGFyZ3MsICJPTyIsICZh ZGRyX29iaiwgJmxlbmd0aF9vYmopKQotKyAgICByZXR1cm4gTlVMTDsKLSsKLSsgIFRSWV9DQVRD SCAoZXhjZXB0LCBSRVRVUk5fTUFTS19BTEwpCi0rICAgIHsKLSsgICAgICBpZiAoIWdldF9hZGRy X2Zyb21fcHl0aG9uIChhZGRyX29iaiwgJmFkZHIpCi0rCSAgfHwgIWdldF9hZGRyX2Zyb21fcHl0 aG9uIChsZW5ndGhfb2JqLCAmbGVuZ3RoKSkKLSsJewotKwkgIGVycm9yID0gMTsKLSsJICBicmVh azsKLSsJfQotKwotKyAgICAgIGJ1ZmZlciA9IHhtYWxsb2MgKGxlbmd0aCk7Ci0rICAgICAgY2xl YW51cHMgPSBtYWtlX2NsZWFudXAgKHhmcmVlLCBidWZmZXIpOwotKwotKyAgICAgIHJlYWRfbWVt b3J5IChhZGRyLCBidWZmZXIsIGxlbmd0aCk7Ci0rICAgIH0KLSsgIEdEQl9QWV9IQU5ETEVfRVhD RVBUSU9OIChleGNlcHQpOwotKwotKyAgaWYgKGVycm9yKQotKyAgICByZXR1cm4gTlVMTDsKLSsK LSsgIGRpc2NhcmRfY2xlYW51cHMgKGNsZWFudXBzKTsKLSsKLSsgIG1lbWJ1Zl9vYmogPSBQeU9i amVjdF9OZXcgKG1lbWJ1Zl9vYmplY3QsICZtZW1idWZfb2JqZWN0X3R5cGUpOwotKyAgaWYgKG1l bWJ1Zl9vYmogPT0gTlVMTCkKLSsgICAgewotKyAgICAgIHhmcmVlIChidWZmZXIpOwotKyAgICAg IFB5RXJyX1NldFN0cmluZyAoUHlFeGNfTWVtb3J5RXJyb3IsCi0rCQkgICAgICAgIkNvdWxkIG5v dCBhbGxvY2F0ZSBtZW1vcnkgYnVmZmVyIG9iamVjdC4iKTsKLSsgICAgICByZXR1cm4gTlVMTDsK LSsgICAgfQotKwotKyAgbWVtYnVmX29iai0+YnVmZmVyID0gYnVmZmVyOwotKyAgbWVtYnVmX29i ai0+YWRkciA9IGFkZHI7Ci0rICBtZW1idWZfb2JqLT5sZW5ndGggPSBsZW5ndGg7Ci0rCi0rICBy ZXR1cm4gUHlCdWZmZXJfRnJvbVJlYWRXcml0ZU9iamVjdCAoKFB5T2JqZWN0ICopIG1lbWJ1Zl9v YmosIDAsCi0rCQkJCSAgICAgICBQeV9FTkRfT0ZfQlVGRkVSKTsKLSt9Ci0rCi0rLyogSW1wbGVt ZW50YXRpb24gb2YgZ2RiLndyaXRlX21lbW9yeSAoYWRkcmVzcywgYnVmZmVyIFssIGxlbmd0aF0p LgotKyAgIFdyaXRlcyB0aGUgY29udGVudHMgb2YgQlVGRkVSIChhIFB5dGhvbiBvYmplY3Qgc3Vw cG9ydGluZyB0aGUgcmVhZCBidWZmZXIKLSsgICBwcm90b2NvbCkgYXQgQUREUkVTUyBpbiB0aGUg aW5mZXJpb3IncyBtZW1vcnkuICBXcml0ZSBMRU5HVEggYnl0ZXMgZnJvbQotKyAgIEJVRkZFUiwg b3IgaXRzIGVudGlyZSBjb250ZW50cyBpZiB0aGUgYXJndW1lbnQgaXMgbm90IHByb3ZpZGVkLiAg VGhlCi0rICAgZnVuY3Rpb24gcmV0dXJucyBub3RoaW5nLiAgKi8KLSsKLStQeU9iamVjdCAqCi0r Z2RicHlfd3JpdGVfbWVtb3J5IChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCi0rewot KyAgaW50IGJ1Zl9sZW4sIGVycm9yID0gMDsKLSsgIGNvbnN0IGNoYXIgKmJ1ZmZlcjsKLSsgIENP UkVfQUREUiBhZGRyLCBsZW5ndGg7Ci0rICBQeU9iamVjdCAqYWRkcl9vYmosICpsZW5ndGhfb2Jq ID0gTlVMTDsKLSsgIHZvbGF0aWxlIHN0cnVjdCBnZGJfZXhjZXB0aW9uIGV4Y2VwdDsKLSsKLSsg IGlmICghIFB5QXJnX1BhcnNlVHVwbGUgKGFyZ3MsICJPcyN8TyIsICZhZGRyX29iaiwgJmJ1ZmZl ciwgJmJ1Zl9sZW4sCi0rCQkJICAmbGVuZ3RoX29iaikpCi0rICAgIHJldHVybiBOVUxMOwotKwot KyAgVFJZX0NBVENIIChleGNlcHQsIFJFVFVSTl9NQVNLX0FMTCkKLSsgICAgewotKyAgICAgIGlm ICghZ2V0X2FkZHJfZnJvbV9weXRob24gKGFkZHJfb2JqLCAmYWRkcikpCi0rCXsKLSsJICBlcnJv ciA9IDE7Ci0rCSAgYnJlYWs7Ci0rCX0KLSsgICAgICAKLSsgICAgICBpZiAoIWxlbmd0aF9vYmop Ci0rCWxlbmd0aCA9IGJ1Zl9sZW47Ci0rICAgICAgZWxzZSBpZiAoIWdldF9hZGRyX2Zyb21fcHl0 aG9uIChsZW5ndGhfb2JqLCAmbGVuZ3RoKSkKLSsJewotKwkgIGVycm9yID0gMTsKLSsJICBicmVh azsKLSsJfQotKwotKyAgICAgIHdyaXRlX21lbW9yeSAoYWRkciwgYnVmZmVyLCBsZW5ndGgpOwot KyAgICB9Ci0rICBHREJfUFlfSEFORExFX0VYQ0VQVElPTiAoZXhjZXB0KTsKLSsKLSsgIGlmIChl cnJvcikKLSsgICAgcmV0dXJuIE5VTEw7Ci0rCi0rICBQeV9SRVRVUk5fTk9ORTsKLSt9Ci0rCi0r LyogRGVzdHJ1Y3RvciBvZiBNZW1idWYgb2JqZWN0cy4gICovCi0rCi0rc3RhdGljIHZvaWQKLStt YnB5X2RlYWxsb2MgKFB5T2JqZWN0ICpzZWxmKQotK3sKLSsgIHhmcmVlICgoKG1lbWJ1Zl9vYmpl Y3QgKikgc2VsZiktPmJ1ZmZlcik7Ci0rICBzZWxmLT5vYl90eXBlLT50cF9mcmVlIChzZWxmKTsK LSt9Ci0rCi0rLyogUmV0dXJuIGEgZGVzY3JpcHRpb24gb2YgdGhlIE1lbWJ1ZiBvYmplY3QuICAq LwotKwotK3N0YXRpYyBQeU9iamVjdCAqCi0rbWJweV9zdHIgKFB5T2JqZWN0ICpzZWxmKQotK3sK LSsgIG1lbWJ1Zl9vYmplY3QgKm1lbWJ1Zl9vYmogPSAobWVtYnVmX29iamVjdCAqKSBzZWxmOwot KwotKyAgcmV0dXJuIFB5U3RyaW5nX0Zyb21Gb3JtYXQgKCJtZW1vcnkgYnVmZmVyIGZvciBhZGRy ZXNzICVzLCAlcyBieXRlcyBsb25nIiwKLSsJCQkgICAgICBwYWRkcmVzcyAobWVtYnVmX29iai0+ YWRkciksCi0rCQkJICAgICAgcHVsb25nZXN0IChtZW1idWZfb2JqLT5sZW5ndGgpKTsKLSt9Ci0r Ci0rc3RhdGljIFB5X3NzaXplX3QKLStnZXRfcmVhZF9idWZmZXIgKFB5T2JqZWN0ICpzZWxmLCBQ eV9zc2l6ZV90IHNlZ21lbnQsIHZvaWQgKipwdHJwdHIpCi0rewotKyAgbWVtYnVmX29iamVjdCAq bWVtYnVmX29iaiA9IChtZW1idWZfb2JqZWN0ICopIHNlbGY7Ci0rCi0rICBpZiAoc2VnbWVudCkK LSsgICAgewotKyAgICAgIFB5RXJyX1NldFN0cmluZyAoUHlFeGNfU3lzdGVtRXJyb3IsCi0rCQkg ICAgICAgIlRoZSBtZW1vcnkgYnVmZmVyIHN1cHBvcnRzIG9ubHkgb25lIHNlZ21lbnQuIik7Ci0r ICAgICAgcmV0dXJuIC0xOwotKyAgICB9Ci0rCi0rICAqcHRycHRyID0gbWVtYnVmX29iai0+YnVm ZmVyOwotKwotKyAgcmV0dXJuIG1lbWJ1Zl9vYmotPmxlbmd0aDsKLSt9Ci0rCi0rc3RhdGljIFB5 X3NzaXplX3QKLStnZXRfd3JpdGVfYnVmZmVyIChQeU9iamVjdCAqc2VsZiwgUHlfc3NpemVfdCBz ZWdtZW50LCB2b2lkICoqcHRycHRyKQotK3sKLSsgIHJldHVybiBnZXRfcmVhZF9idWZmZXIgKHNl bGYsIHNlZ21lbnQsIHB0cnB0cik7Ci0rfQotKwotK3N0YXRpYyBQeV9zc2l6ZV90Ci0rZ2V0X3Nl Z19jb3VudCAoUHlPYmplY3QgKnNlbGYsIFB5X3NzaXplX3QgKmxlbnApCi0rewotKyAgaWYgKGxl bnApCi0rICAgICpsZW5wID0gKChtZW1idWZfb2JqZWN0ICopIHNlbGYpLT5sZW5ndGg7Ci0rCi0r ICByZXR1cm4gMTsKLSt9Ci0rCi0rc3RhdGljIFB5X3NzaXplX3QKLStnZXRfY2hhcl9idWZmZXIg KFB5T2JqZWN0ICpzZWxmLCBQeV9zc2l6ZV90IHNlZ21lbnQsIGNoYXIgKipwdHJwdHIpCi0rewot KyAgdm9pZCAqcHRyID0gTlVMTDsKLSsgIFB5X3NzaXplX3QgcmV0OwotKwotKyAgcmV0ID0gZ2V0 X3JlYWRfYnVmZmVyIChzZWxmLCBzZWdtZW50LCAmcHRyKTsKLSsgICpwdHJwdHIgPSAoY2hhciAq KSBwdHI7Ci0rCi0rICByZXR1cm4gcmV0OwotK30KLSsKLSsvKiBQeXRob24gZG9lc24ndCBwcm92 aWRlIGEgZGVjZW50IHdheSB0byBnZXQgY29tcGF0aWJpbGl0eSBoZXJlLiAgKi8KLSsjaWYgSEFW RV9MSUJQWVRIT04yXzQKLSsjZGVmaW5lIENIQVJCVUZGRVJQUk9DX05BTUUgZ2V0Y2hhcmJ1ZmZl cnByb2MKLSsjZWxzZQotKyNkZWZpbmUgQ0hBUkJVRkZFUlBST0NfTkFNRSBjaGFyYnVmZmVycHJv YwotKyNlbmRpZgotKwotK3N0YXRpYyBQeUJ1ZmZlclByb2NzIGJ1ZmZlcl9wcm9jcyA9IHsKLSsg IGdldF9yZWFkX2J1ZmZlciwKLSsgIGdldF93cml0ZV9idWZmZXIsCi0rICBnZXRfc2VnX2NvdW50 LAotKyAgLyogVGhlIGNhc3QgaGVyZSB3b3JrcyBhcm91bmQgYSBkaWZmZXJlbmNlIGJldHdlZW4g UHl0aG9uIDIuNCBhbmQKLSsgICAgIFB5dGhvbiAyLjUuICAqLwotKyAgKENIQVJCVUZGRVJQUk9D X05BTUUpIGdldF9jaGFyX2J1ZmZlcgotK307Ci0rCi0rc3RhdGljIFB5VHlwZU9iamVjdCBtZW1i dWZfb2JqZWN0X3R5cGUgPSB7Ci0rICBQeU9iamVjdF9IRUFEX0lOSVQgKE5VTEwpCi0rICAwLAkJ CQkgIC8qb2Jfc2l6ZSovCi0rICAiZ2RiLk1lbWJ1ZiIsCQkJICAvKnRwX25hbWUqLwotKyAgc2l6 ZW9mIChtZW1idWZfb2JqZWN0KSwJICAvKnRwX2Jhc2ljc2l6ZSovCi0rICAwLAkJCQkgIC8qdHBf aXRlbXNpemUqLwotKyAgbWJweV9kZWFsbG9jLAkJCSAgLyp0cF9kZWFsbG9jKi8KLSsgIDAsCQkJ CSAgLyp0cF9wcmludCovCi0rICAwLAkJCQkgIC8qdHBfZ2V0YXR0ciovCi0rICAwLAkJCQkgIC8q dHBfc2V0YXR0ciovCi0rICAwLAkJCQkgIC8qdHBfY29tcGFyZSovCi0rICAwLAkJCQkgIC8qdHBf cmVwciovCi0rICAwLAkJCQkgIC8qdHBfYXNfbnVtYmVyKi8KLSsgIDAsCQkJCSAgLyp0cF9hc19z ZXF1ZW5jZSovCi0rICAwLAkJCQkgIC8qdHBfYXNfbWFwcGluZyovCi0rICAwLAkJCQkgIC8qdHBf aGFzaCAqLwotKyAgMCwJCQkJICAvKnRwX2NhbGwqLwotKyAgbWJweV9zdHIsCQkJICAvKnRwX3N0 ciovCi0rICAwLAkJCQkgIC8qdHBfZ2V0YXR0cm8qLwotKyAgMCwJCQkJICAvKnRwX3NldGF0dHJv Ki8KLSsgICZidWZmZXJfcHJvY3MsCQkgIC8qdHBfYXNfYnVmZmVyKi8KLSsgIFB5X1RQRkxBR1Nf REVGQVVMVCwJCSAgLyp0cF9mbGFncyovCi0rICAiR0RCIG1lbW9yeSBidWZmZXIgb2JqZWN0Iiwg CSAgLyp0cF9kb2MqLwotKyAgMCwJCQkJICAvKiB0cF90cmF2ZXJzZSAqLwotKyAgMCwJCQkJICAv KiB0cF9jbGVhciAqLwotKyAgMCwJCQkJICAvKiB0cF9yaWNoY29tcGFyZSAqLwotKyAgMCwJCQkJ ICAvKiB0cF93ZWFrbGlzdG9mZnNldCAqLwotKyAgMCwJCQkJICAvKiB0cF9pdGVyICovCi0rICAw LAkJCQkgIC8qIHRwX2l0ZXJuZXh0ICovCi0rICAwLAkJCQkgIC8qIHRwX21ldGhvZHMgKi8KLSsg IDAsCQkJCSAgLyogdHBfbWVtYmVycyAqLwotKyAgMCwJCQkJICAvKiB0cF9nZXRzZXQgKi8KLSsg IDAsCQkJCSAgLyogdHBfYmFzZSAqLwotKyAgMCwJCQkJICAvKiB0cF9kaWN0ICovCi0rICAwLAkJ CQkgIC8qIHRwX2Rlc2NyX2dldCAqLwotKyAgMCwJCQkJICAvKiB0cF9kZXNjcl9zZXQgKi8KLSsg IDAsCQkJCSAgLyogdHBfZGljdG9mZnNldCAqLwotKyAgMCwJCQkJICAvKiB0cF9pbml0ICovCi0r ICAwLAkJCQkgIC8qIHRwX2FsbG9jICovCi0rICBQeVR5cGVfR2VuZXJpY05ldwkJICAvKiB0cF9u ZXcgKi8KLSt9OwotKwotK3ZvaWQKLStnZGJweV9pbml0aWFsaXplX21lbWJ1ZiAodm9pZCkKLSt7 Ci0rICBpZiAoUHlUeXBlX1JlYWR5ICgmbWVtYnVmX29iamVjdF90eXBlKSA8IDApCi0rICAgIHJl dHVybjsKLSsKLSsgIFB5X0lOQ1JFRiAoJm1lbWJ1Zl9vYmplY3RfdHlwZSk7Ci0rICBQeU1vZHVs ZV9BZGRPYmplY3QgKGdkYl9tb2R1bGUsICJNZW1idWYiLCAoUHlPYmplY3QgKikgJm1lbWJ1Zl9v YmplY3RfdHlwZSk7Ci0rfQotZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHktcHJldHR5cHJpbnQu YyBiL2dkYi9weXRob24vcHktcHJldHR5cHJpbnQuYwotaW5kZXggNzUzMmFhNS4uODVmMzk0MCAx MDA2NDQKLS0tLSBhL2dkYi9weXRob24vcHktcHJldHR5cHJpbnQuYwotKysrIGIvZ2RiL3B5dGhv bi9weS1wcmV0dHlwcmludC5jCi1AQCAtMjI3LDEwICsyMjcsMTAgQEAgcHJldHR5X3ByaW50X29u ZV92YWx1ZSAoUHlPYmplY3QgKnByaW50ZXIsIHN0cnVjdCB2YWx1ZSAqKm91dF92YWx1ZSkKLSAJ ICAgICAgJiYgcmVzdWx0ICE9IFB5X05vbmUpCi0gCSAgICB7Ci0gCSAgICAgICpvdXRfdmFsdWUg PSBjb252ZXJ0X3ZhbHVlX2Zyb21fcHl0aG9uIChyZXN1bHQpOwotLQkgICAgICBpZiAoUHlFcnJf T2NjdXJyZWQgKCkpCi0tCQkqb3V0X3ZhbHVlID0gTlVMTDsKLS0JICAgICAgUHlfREVDUkVGIChy ZXN1bHQpOwotLQkgICAgICByZXN1bHQgPSBOVUxMOwotKyAJICAgICAgaWYgKFB5RXJyX09jY3Vy cmVkICgpKQotKyAJCSpvdXRfdmFsdWUgPSBOVUxMOwotKyAJICAgICAgUHlfREVDUkVGIChyZXN1 bHQpOwotKyAJICAgICAgcmVzdWx0ID0gTlVMTDsKLSAJICAgIH0KLSAJfQotICAgICB9Ci1AQCAt NzYzLDE0ICs3NjMsNyBAQCBnZGJweV9nZXRfdmFyb2JqX3ByZXR0eV9wcmludGVyIChzdHJ1Y3Qg dmFsdWUgKnZhbHVlKQotIHsKLSAgIFB5T2JqZWN0ICp2YWxfb2JqOwotICAgUHlPYmplY3QgKnBy ZXR0eV9wcmludGVyID0gTlVMTDsKLS0gIHZvbGF0aWxlIHN0cnVjdCBnZGJfZXhjZXB0aW9uIGV4 Y2VwdDsKLSAKLS0gIFRSWV9DQVRDSCAoZXhjZXB0LCBSRVRVUk5fTUFTS19BTEwpCi0tICAgIHsK LS0gICAgICB2YWx1ZSA9IHZhbHVlX2NvcHkgKHZhbHVlKTsKLS0gICAgfQotLSAgR0RCX1BZX0hB TkRMRV9FWENFUFRJT04gKGV4Y2VwdCk7Ci0tICAKLSAgIHZhbF9vYmogPSB2YWx1ZV90b192YWx1 ZV9vYmplY3QgKHZhbHVlKTsKLSAgIGlmICghIHZhbF9vYmopCi0gICAgIHJldHVybiBOVUxMOwog ZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHktdHlwZS5jIGIvZ2RiL3B5dGhvbi9weS10eXBlLmMK IGluZGV4IDlhNmIwNzcuLjY1NmQzYTEgMTAwNjQ0CiAtLS0gYS9nZGIvcHl0aG9uL3B5LXR5cGUu YwpAQCAtNzU5Myw4MSArNzI4NSw2IEBAIGluZGV4IDFhYTk0NDMuLjc4NmM0NWEgMTAwNjQ0CiAg fQogIAogIAwKLWRpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oIGIvZ2Ri L3B5dGhvbi9weXRob24taW50ZXJuYWwuaAotaW5kZXggODBkMDc2My4uMDA0MDQwMyAxMDA2NDQK LS0tLSBhL2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgKLSsrKyBiL2dkYi9weXRob24vcHl0 aG9uLWludGVybmFsLmgKLUBAIC04OCwxMCArODgsMTEgQEAgc3RydWN0IGxhbmd1YWdlX2RlZm47 Ci0gc3RydWN0IHByb2dyYW1fc3BhY2U7Ci0gCi0gZXh0ZXJuIFB5T2JqZWN0ICpnZGJfbW9kdWxl OwotLWV4dGVybiBQeVR5cGVPYmplY3QgdmFsdWVfb2JqZWN0X3R5cGU7Ci0gZXh0ZXJuIFB5VHlw ZU9iamVjdCBibG9ja19vYmplY3RfdHlwZTsKLStleHRlcm4gUHlUeXBlT2JqZWN0IHZhbHVlX29i amVjdF90eXBlOwotIGV4dGVybiBQeVR5cGVPYmplY3Qgc3ltYm9sX29iamVjdF90eXBlOwotIAot Ky8qIFVzZWQgaW4gcHl0aG9uLWluZmVyaW9yLmMuICAqLwotIHR5cGVkZWYgc3RydWN0Ci0gewot ICAgUHlPYmplY3RfSEVBRAotQEAgLTEzMyw2ICsxMzQsMTAgQEAgUHlPYmplY3QgKmJsb2NrX3Rv X2Jsb2NrX29iamVjdCAoc3RydWN0IGJsb2NrICpibG9jaywgc3RydWN0IG9iamZpbGUgKm9iamZp bGUpOwotIFB5T2JqZWN0ICp2YWx1ZV90b192YWx1ZV9vYmplY3QgKHN0cnVjdCB2YWx1ZSAqdik7 Ci0gUHlPYmplY3QgKnR5cGVfdG9fdHlwZV9vYmplY3QgKHN0cnVjdCB0eXBlICopOwotIFB5T2Jq ZWN0ICpmcmFtZV9pbmZvX3RvX2ZyYW1lX29iamVjdCAoc3RydWN0IGZyYW1lX2luZm8gKmZyYW1l KTsKLStQeU9iamVjdCAqZnJhbWVfaW5mb190b19mcmFtZV9vYmplY3QgKHN0cnVjdCBmcmFtZV9p bmZvICpmcmFtZSk7Ci0rdGhyZWFkX29iamVjdCAqY3JlYXRlX3RocmVhZF9vYmplY3QgKHN0cnVj dCB0aHJlYWRfaW5mbyAqdHApOwotK3RocmVhZF9vYmplY3QgKmZpbmRfdGhyZWFkX29iamVjdCAo cHRpZF90IHB0aWQpOwotK1B5T2JqZWN0ICpmaW5kX2luZmVyaW9yX29iamVjdCAoaW50IHBpZCk7 Ci0gCi0gUHlPYmplY3QgKnBzcGFjZV90b19wc3BhY2Vfb2JqZWN0IChzdHJ1Y3QgcHJvZ3JhbV9z cGFjZSAqKTsKLSBQeU9iamVjdCAqcHNweV9nZXRfcHJpbnRlcnMgKFB5T2JqZWN0ICosIHZvaWQg Kik7Ci1AQCAtMTUzLDcgKzE1OCw5IEBAIHN0cnVjdCBzeW10YWIgKnN5bXRhYl9vYmplY3RfdG9f c3ltdGFiIChQeU9iamVjdCAqb2JqKTsKLSBzdHJ1Y3Qgc3ltdGFiX2FuZF9saW5lICpzYWxfb2Jq ZWN0X3RvX3N5bXRhYl9hbmRfbGluZSAoUHlPYmplY3QgKm9iaik7Ci0gCi0gdm9pZCBnZGJweV9p bml0aWFsaXplX2F1dG9fbG9hZCAodm9pZCk7Ci0rCi0gdm9pZCBnZGJweV9pbml0aWFsaXplX3Zh bHVlcyAodm9pZCk7Ci0rdm9pZCBnZGJweV9pbml0aWFsaXplX2JyZWFrcG9pbnRzICh2b2lkKTsK LSB2b2lkIGdkYnB5X2luaXRpYWxpemVfZnJhbWVzICh2b2lkKTsKLSB2b2lkIGdkYnB5X2luaXRp YWxpemVfc3ltdGFicyAodm9pZCk7Ci0gdm9pZCBnZGJweV9pbml0aWFsaXplX2NvbW1hbmRzICh2 b2lkKTsKLUBAIC0xNjEsNiArMTY4LDcgQEAgdm9pZCBnZGJweV9pbml0aWFsaXplX3N5bWJvbHMg KHZvaWQpOwotIHZvaWQgZ2RicHlfaW5pdGlhbGl6ZV9zeW10YWJzICh2b2lkKTsKLSB2b2lkIGdk YnB5X2luaXRpYWxpemVfYmxvY2tzICh2b2lkKTsKLSB2b2lkIGdkYnB5X2luaXRpYWxpemVfdHlw ZXMgKHZvaWQpOwotK3ZvaWQgZ2RicHlfaW5pdGlhbGl6ZV9ibG9ja3MgKHZvaWQpOwotIHZvaWQg Z2RicHlfaW5pdGlhbGl6ZV9mdW5jdGlvbnMgKHZvaWQpOwotIHZvaWQgZ2RicHlfaW5pdGlhbGl6 ZV9wc3BhY2UgKHZvaWQpOwotIHZvaWQgZ2RicHlfaW5pdGlhbGl6ZV9vYmpmaWxlICh2b2lkKTsK LUBAIC0xNzgsNiArMTg2LDEyIEBAIHN0cnVjdCBjbGVhbnVwICplbnN1cmVfcHl0aG9uX2VudiAo c3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCi0gZXh0ZXJuIHN0cnVjdCBnZGJhcmNoICpweXRob25f Z2RiYXJjaDsKLSBleHRlcm4gY29uc3Qgc3RydWN0IGxhbmd1YWdlX2RlZm4gKnB5dGhvbl9sYW5n dWFnZTsKLSAKLStjaGFyICpnZGJweV9wYXJzZV9jb21tYW5kX25hbWUgKGNoYXIgKnRleHQsCi0r CQkJCXN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICoqKmJhc2VfbGlzdCwKLSsJCQkJc3RydWN0IGNt ZF9saXN0X2VsZW1lbnQgKipzdGFydF9saXN0KTsKLSsKLStQeU9iamVjdCAqZ2RicHlfcGFyYW1l dGVyX3ZhbHVlIChlbnVtIHZhcl90eXBlcywgdm9pZCAqKTsKLSsKLSAvKiBVc2UgdGhpcyBhZnRl ciBhIFRSWV9FWENFUFQgdG8gdGhyb3cgdGhlIGFwcHJvcHJpYXRlIFB5dGhvbgotICAgIGV4Y2Vw dGlvbi4gICovCi0gI2RlZmluZSBHREJfUFlfSEFORExFX0VYQ0VQVElPTihFeGNlcHRpb24pCQkJ CVwKLUBAIC0yMjUsMTMgKzIzOSwxNCBAQCBQeU9iamVjdCAqYXBwbHlfdmFyb2JqX3ByZXR0eV9w cmludGVyIChQeU9iamVjdCAqcHJpbnRfb2JqLAotIAkJCQkgICAgICAgc3RydWN0IHZhbHVlICoq cmVwbGFjZW1lbnQsCi0gCQkJCSAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKTsKLSBQeU9i amVjdCAqZ2RicHlfZ2V0X3Zhcm9ial9wcmV0dHlfcHJpbnRlciAoc3RydWN0IHZhbHVlICp2YWx1 ZSk7Ci0rUHlPYmplY3QgKmdkYnB5X2luc3RhbnRpYXRlX3ByaW50ZXIgKFB5T2JqZWN0ICpjb25z LCBQeU9iamVjdCAqdmFsdWUpOwotIGNoYXIgKmdkYnB5X2dldF9kaXNwbGF5X2hpbnQgKFB5T2Jq ZWN0ICpwcmludGVyKTsKLSBQeU9iamVjdCAqZ2RicHlfZGVmYXVsdF92aXN1YWxpemVyIChQeU9i amVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpOwotIAotLWV4dGVybiBQeU9iamVjdCAqZ2RicHlf ZG9jX2NzdDsKLSBleHRlcm4gUHlPYmplY3QgKmdkYnB5X2NoaWxkcmVuX2NzdDsKLSBleHRlcm4g UHlPYmplY3QgKmdkYnB5X3RvX3N0cmluZ19jc3Q7Ci0gZXh0ZXJuIFB5T2JqZWN0ICpnZGJweV9k aXNwbGF5X2hpbnRfY3N0OwotK2V4dGVybiBQeU9iamVjdCAqZ2RicHlfZG9jX2NzdDsKLSBleHRl cm4gUHlPYmplY3QgKmdkYnB5X2VuYWJsZWRfY3N0OwotIAotIC8qIEV4Y2VwdGlvbiB0eXBlcy4g ICovCiBkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRob24uYyBiL2dkYi9weXRob24vcHl0aG9u LmMKIGluZGV4IDM3NTA0MmMuLmI2YWY2NDUgMTAwNjQ0CiAtLS0gYS9nZGIvcHl0aG9uL3B5dGhv bi5jCkBAIC03NzYxLDcgKzczNzgsNyBAQCBpbmRleCA1OGQ5N2ZjLi45M2Q1NmVmIDEwMDY0NAog IAkJCSAgICAgIGludCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAogIAkJCSAg ICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogZGlmZiAtLWdpdCBhL2dk Yi9zb2xpYi1zdnI0LmMgYi9nZGIvc29saWItc3ZyNC5jCi1pbmRleCBkNDVjZDkyLi5mNjk1NWU5 IDEwMDY0NAoraW5kZXggNDMyZGE5OS4uNzhjNmIxYyAxMDA2NDQKIC0tLSBhL2dkYi9zb2xpYi1z dnI0LmMKICsrKyBiL2dkYi9zb2xpYi1zdnI0LmMKIEBAIC0xMjc2LDcgKzEyNzYsOCBAQCBzdnI0 X2luX2R5bnN5bV9yZXNvbHZlX2NvZGUgKENPUkVfQUREUiBwYykKQEAgLTc3NzUsNyArNzM5Miw3 IEBAIGluZGV4IGQ0NWNkOTIuLmY2OTU1ZTkgMTAwNjQ0CiAgCiAgLyogR2l2ZW4gYW4gZXhlY3V0 YWJsZSdzIEFCRkQgYW5kIHRhcmdldCwgY29tcHV0ZSB0aGUgZW50cnktcG9pbnQKIGRpZmYgLS1n aXQgYS9nZGIvc3RhY2suYyBiL2dkYi9zdGFjay5jCi1pbmRleCA0ZmM2MzRmLi5mNmRmN2VlIDEw MDY0NAoraW5kZXggNmU1OWNkMC4uMGVhY2FjOSAxMDA2NDQKIC0tLSBhL2dkYi9zdGFjay5jCiAr KysgYi9nZGIvc3RhY2suYwogQEAgLTM2Niw2ICszNjYsNyBAQCBwcmludF9mcmFtZV9hcmdzIChz dHJ1Y3Qgc3ltYm9sICpmdW5jLCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsCkBAIC03ODAxLDcg Kzc0MTgsNyBAQCBpbmRleCA0ZmM2MzRmLi5mNmRmN2VlIDEwMDY0NAogIAkgICAgICAgIH0KICAJ ICAgICAgZWxzZQogZGlmZiAtLWdpdCBhL2dkYi9zeW1taXNjLmMgYi9nZGIvc3ltbWlzYy5jCi1p bmRleCA3ZjJkMzhhLi43ZDM1ODllIDEwMDY0NAoraW5kZXggNGJlODEwNi4uMDgxYjUzMiAxMDA2 NDQKIC0tLSBhL2dkYi9zeW1taXNjLmMKICsrKyBiL2dkYi9zeW1taXNjLmMKIEBAIC0yNjQsNiAr MjY0LDkgQEAgZHVtcF9tc3ltYm9scyAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIHN0cnVjdCB1 aV9maWxlICpvdXRmaWxlKQpAQCAtNzgxNSwxMCArNzQzMiwxMCBAQCBpbmRleCA3ZjJkMzhhLi43 ZDM1ODllIDEwMDY0NAogIAkgIG1zX3R5cGUgPSAnUyc7CiAgCSAgYnJlYWs7CiBkaWZmIC0tZ2l0 IGEvZ2RiL3N5bXRhYi5jIGIvZ2RiL3N5bXRhYi5jCi1pbmRleCBiZGYzNGQ2Li5mZTJkYzRjIDEw MDY0NAoraW5kZXggNjg2NjZkYS4uYWE0NTA0MiAxMDA2NDQKIC0tLSBhL2dkYi9zeW10YWIuYwog KysrIGIvZ2RiL3N5bXRhYi5jCi1AQCAtMzAwMCw3ICszMDAwLDcgQEAgc2VhcmNoX3N5bWJvbHMg KGNoYXIgKnJlZ2V4cCwgZG9tYWluX2VudW0ga2luZCwgaW50IG5maWxlcywgY2hhciAqZmlsZXNb XSwKK0BAIC0zMDAxLDcgKzMwMDEsNyBAQCBzZWFyY2hfc3ltYm9scyAoY2hhciAqcmVnZXhwLCBk b21haW5fZW51bSBraW5kLCBpbnQgbmZpbGVzLCBjaGFyICpmaWxlc1tdLAogICAgc3RhdGljIGNv bnN0IGVudW0gbWluaW1hbF9zeW1ib2xfdHlwZSB0eXBlczNbXQogICAgICA9IHttc3RfZmlsZV9k YXRhLCBtc3Rfc29saWJfdHJhbXBvbGluZSwgbXN0X2FicywgbXN0X3Vua25vd259OwogICAgc3Rh dGljIGNvbnN0IGVudW0gbWluaW1hbF9zeW1ib2xfdHlwZSB0eXBlczRbXQpAQCAtNzgyOCw3ICs3 NDQ1LDcgQEAgaW5kZXggYmRmMzRkNi4uZmUyZGM0YyAxMDA2NDQKICAgIGVudW0gbWluaW1hbF9z eW1ib2xfdHlwZSBvdXJ0eXBlMjsKICAgIGVudW0gbWluaW1hbF9zeW1ib2xfdHlwZSBvdXJ0eXBl MzsKIGRpZmYgLS1naXQgYS9nZGIvc3ltdGFiLmggYi9nZGIvc3ltdGFiLmgKLWluZGV4IDY4NjRi OTYuLjY1MWJkNjcgMTAwNjQ0CitpbmRleCBlNGVjNGJmLi43NTRkODlkIDEwMDY0NAogLS0tIGEv Z2RiL3N5bXRhYi5oCiArKysgYi9nZGIvc3ltdGFiLmgKIEBAIC0yOTAsNiArMjkwLDkgQEAgZW51 bSBtaW5pbWFsX3N5bWJvbF90eXBlCkBAIC03ODQzLDcgKzc0NjAsNyBAQCBpbmRleCA2ODY0Yjk2 Li42NTFiZDY3IDEwMDY0NAogICAgbXN0X2FicywJCQkvKiBHZW5lcmFsbHkgYWJzb2x1dGUgKG5v bnJlbG9jYXRhYmxlKSAqLwogQEAgLTk1NiwxMSArOTU5LDI1IEBAIGV4dGVybiBzdHJ1Y3Qgc3lt Ym9sICpmaW5kX3BjX3NlY3RfZnVuY3Rpb24gKENPUkVfQUREUiwgc3RydWN0IG9ial9zZWN0aW9u ICopOwogIAotIC8qIGxvb2t1cCBmdW5jdGlvbiBmcm9tIGFkZHJlc3MsIHJldHVybiBuYW1lLCBz dGFydCBhZGRyIGFuZCBlbmQgYWRkciAqLworIC8qIGxvb2t1cCBmdW5jdGlvbiBmcm9tIGFkZHJl c3MsIHJldHVybiBuYW1lLCBzdGFydCBhZGRyIGFuZCBlbmQgYWRkci4gICovCiAgCiAtZXh0ZXJu IGludCBmaW5kX3BjX3BhcnRpYWxfZnVuY3Rpb24gKENPUkVfQUREUiwgY2hhciAqKiwgQ09SRV9B RERSICosCiAtCQkJCSAgICAgQ09SRV9BRERSICopOwpAQCAtNzg2Niw3ICs3NDgzLDcgQEAgaW5k ZXggNjg2NGI5Ni4uNjUxYmQ2NyAxMDA2NDQKICsJCQkJICAgIGNvbnN0IGNoYXIgKmZ1bmN0aW9u X25hbWUsCiArCQkJCSAgICBDT1JFX0FERFIgZnVuY3Rpb25fYWRkcmVzcyk7CiArCi0gLyogbG9v a3VwIHBhcnRpYWwgc3ltYm9sIHRhYmxlIGJ5IGFkZHJlc3MgYW5kIHNlY3Rpb24gKi8KKyAvKiBs b29rdXAgcGFydGlhbCBzeW1ib2wgdGFibGUgYnkgYWRkcmVzcyBhbmQgc2VjdGlvbi4gICovCiAg CiAgZXh0ZXJuIHN0cnVjdCBzeW10YWIgKmZpbmRfcGNfc2VjdF9zeW10YWJfdmlhX3BhcnRpYWwg KENPUkVfQUREUiwKIEBAIC0xMDM1LDYgKzEwNTIsOCBAQCBleHRlcm4gc3RydWN0IG1pbmltYWxf c3ltYm9sICpsb29rdXBfbWluaW1hbF9zeW1ib2xfYnlfcGNfbmFtZQpAQCAtNzg3OCwyOSArNzQ5 NSw2IEBAIGluZGV4IDY4NjRiOTYuLjY1MWJkNjcgMTAwNjQ0CiAgZXh0ZXJuIHN0cnVjdCBtaW5p bWFsX3N5bWJvbCAqCiAgICAgIGxvb2t1cF9taW5pbWFsX3N5bWJvbF9hbmRfb2JqZmlsZSAoY29u c3QgY2hhciAqLAogIAkJCQkgICAgICAgc3RydWN0IG9iamZpbGUgKiopOwotZGlmZiAtLWdpdCBh L2dkYi90YXJnZXQuaCBiL2dkYi90YXJnZXQuaAotaW5kZXggYzM0NjI1Yy4uZDRmY2JmYyAxMDA2 NDQKLS0tLSBhL2dkYi90YXJnZXQuaAotKysrIGIvZ2RiL3RhcmdldC5oCi1AQCAtMTM3Miw2ICsx MzcyLDE4IEBAIGV4dGVybiBpbnQgdGFyZ2V0X3NlYXJjaF9tZW1vcnkgKENPUkVfQUREUiBzdGFy dF9hZGRyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVMT05HRVNUIHBhdHRl cm5fbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPUkVfQUREUiAqZm91 bmRfYWRkcnApOwotIAotKy8qIFV0aWxpdHkgZnVuY3Rpb25zIHdoaWNoIGNhbiBiZSB1c2VkIGJ5 IHNlYXJjaF9tZW1vcnkgaW1wbGVtZW50YXRpb25zLiAgKi8KLSsKLSt2b2lkIGFsbG9jYXRlX3Bh dHRlcm5fYnVmZmVyIChjaGFyICoqcGF0dGVybl9idWZwLCBjaGFyICoqcGF0dGVybl9idWZfZW5k LAotKwkJCSAgICAgIFVMT05HRVNUICpwYXR0ZXJuX2J1Zl9zaXplKTsKLSsKLSt2b2lkIGluY3Jl YXNlX3BhdHRlcm5fYnVmZmVyIChjaGFyICoqcGF0dGVybl9idWZwLCBjaGFyICoqcGF0dGVybl9i dWZfZW5kLAotKwkJCSAgICAgIFVMT05HRVNUICpwYXR0ZXJuX2J1Zl9zaXplLCBpbnQgdmFsX2J5 dGVzKTsKLSsKLStpbnQgc2VhcmNoX21lbW9yeSAoQ09SRV9BRERSICpzdGFydF9hZGRyLCBVTE9O R0VTVCAqc2VhcmNoX3NwYWNlX2xlbiwKLSsJCSAgIGNvbnN0IGNoYXIgKnBhdHRlcm5fYnVmLCBV TE9OR0VTVCBwYXR0ZXJuX2xlbiwKLSsJCSAgIENPUkVfQUREUiAqZm91bmRfYWRkcik7Ci0rCi0g LyogVHJhY2Vwb2ludC1yZWxhdGVkIG9wZXJhdGlvbnMuICAqLwotIAotICNkZWZpbmUgdGFyZ2V0 X3RyYWNlX2luaXQoKSBcCiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZf NjQtdmxhLXBvaW50ZXItZm9vLlMgYi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEt cG9pbnRlci1mb28uUwogbmV3IGZpbGUgbW9kZSAxMDA2NDQKIGluZGV4IDAwMDAwMDAuLjgzZmFh ZjYKQEAgLTEwODc2LDYgKzEwNDcwLDkyIEBAIGluZGV4IDAwMDAwMDAuLjIyNmRjNWQKICsgIGgg PSAnaCcKICsgIGNhbGwgZm9vIChnLCBoKQogK2VuZAorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vc3VicmFuZ2UuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9z dWJyYW5nZS5leHAKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi41NTU5OGY5 CistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YnJhbmdl LmV4cAorQEAgLTAsMCArMSw1MSBAQAorKyMgQ29weXJpZ2h0IDIwMTEgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vu c2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRo aXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9n cmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKworK2lm IHsgW3NraXBfZm9ydHJhbl90ZXN0c10gfSB7IHJldHVybiAtMSB9CisrCisrc2V0IHRlc3RmaWxl ICJzdWJyYW5nZSIKKytzZXQgc3JjZmlsZSAke3Rlc3RmaWxlfS5mOTAKKytpZiB7IFtwcmVwYXJl X2Zvcl90ZXN0aW5nICR7dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxlfSAke3NyY2ZpbGV9IHtkZWJ1 ZyBmNzd9XSB9IHsKKysgICAgcmV0dXJuIC0xCisrfQorKworK2lmICFbcnVudG8gTUFJTl9fXSB7 CisrICAgIHBlcnJvciAiQ291bGRuJ3QgcnVuIHRvIE1BSU5fXyIKKysgICAgY29udGludWUKKyt9 CisrCisrIyBEZXBlbmRpbmcgb24gdGhlIGNvbXBpbGVyIHZlcnNpb24gYmVpbmcgdXNlZCwgdGhl IG5hbWUgb2YgdGhlIDQtYnl0ZSBpbnRlZ2VyCisrIyBhbmQgcmVhbCB0eXBlcyBjYW4gYmUgcHJp bnRlZCBkaWZmZXJlbnRseS4gIEZvciBpbnN0YW5jZSwgZ2ZvcnRyYW4tNC4xIHVzZXMKKysjICJp bnQ0IiB3aGVyZWFzIGdmb3J0cmFuLTQuMyB1c2VzICJpbnQoa2luZD00KSIuCisrc2V0IGludDQg IihpbnQ0fGludGVnZXJcXChraW5kPTRcXCkpIgorKworK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0 X2xpbmVfbnVtYmVyICJicmVhay1zdGF0aWMiXQorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50 ICJicmVhay1zdGF0aWMiICIuKmJyZWFrLXN0YXRpYy4qIgorKworK2dkYl90ZXN0ICJwIGEgKDIs IDI6MykiIHsgPSBcKDIyLCAzMlwpfQorK2dkYl90ZXN0ICJwIGEgKDI6MywgMykiIHsgPSBcKDMy LCAzM1wpfQorK2dkYl90ZXN0ICJwIGEgKDEsIDI6KSIgeyA9IFwoMjEsIDMxXCl9CisrZ2RiX3Rl c3QgInAgYSAoMiwgOjIpIiB7ID0gXCgxMiwgMjJcKX0KKytnZGJfdGVzdCAicCBhICgzLCAyOjIp IiB7ID0gXCgyM1wpfQorK2dkYl90ZXN0ICJwdHlwZSBhICgzLCAyOjIpIiAiID0gJGludDQgXFwo MjoyXFwpIgorK2dkYl90ZXN0ICJwIGEgKDQsIDopIiB7ID0gXCgxNCwgMjQsIDM0XCl9CisrZ2Ri X3Rlc3QgInAgYSAoOiwgOikiIHsgPSBcKFwoICoxMSwgMTIsIDEzLCAxNFwpIFwoICoyMSwgMjIs IDIzLCAyNFwpIFwoICozMSwgMzIsIDMzLCAzNFwpICpcKX0KKytnZGJfdGVzdCAicHR5cGUgYSAo OiwgOikiICIgPSAkaW50NCBcXCg0LDNcXCkiCisrZ2RiX3Rlc3QgInAgYSAoOikiICJXcm9uZyBu dW1iZXIgb2Ygc3Vic2NyaXB0cyIKKytnZGJfdGVzdCAicCBhICg6LCA6LCA6KSIgIldyb25nIG51 bWJlciBvZiBzdWJzY3JpcHRzIgorK2dkYl90ZXN0X25vX291dHB1dCB7c2V0ICRhPWF9CisrZGVs ZXRlX2JyZWFrcG9pbnRzCisrZ2RiX3VubG9hZAorK2dkYl90ZXN0IHtwICRhICgzLCAyOjIpfSB7 ID0gXCgyM1wpfQorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3VicmFu Z2UuZjkwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJyYW5nZS5mOTAKK25ldyBmaWxl IG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi5mZTMzYzJjCistLS0gL2Rldi9udWxsCisrKysg Yi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YnJhbmdlLmY5MAorQEAgLTAsMCArMSwyMyBA QAorKyEgQ29weXJpZ2h0IDIwMTEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIQor KyEgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vciBtb2RpZnkKKyshIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrISB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyEgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyshIAorKyEgVGhpcyBwcm9ncmFtIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrISBidXQgV0lUSE9V VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyEg TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZQorKyEgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysh IAorKyEgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKKyshIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUg PGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKworK3Byb2dyYW0gdGVzdAorKyAgaW50 ZWdlciA6OiBhICg0LCAzKQorKyAgZG8gMSBpID0gMSwgNAorKyAgZG8gMSBqID0gMSwgMworKyAg ICBhIChpLCBqKSA9IGogKiAxMCArIGkKKysxIGNvbnRpbnVlCisrICB3cml0ZSAoKiwqKSBhICAg ICAgICAgICAgICAgICAhIGJyZWFrLXN0YXRpYworK2VuZAogZGlmZiAtLWdpdCBhL2dkYi90ZXN0 c3VpdGUvZ2RiLmdkYi9zZWxmdGVzdC5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5nZGIvc2VsZnRl c3QuZXhwCiBpbmRleCAzMGE3MWRkLi40YmI4ZTdkIDEwMDY0NAogLS0tIGEvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZ2RiL3NlbGZ0ZXN0LmV4cApAQCAtMTE0NTMsMzUgKzExMTMzLDYgQEAgaW5kZXggMDAw MDAwMC4uMjk1NjAyZAogKyAgcyA6PSAndGVzdCcjMCdzdHJpbmcnOwogKyAgd3JpdGVsbihzKTsg eyBzZXQgYnJlYWtwb2ludCAyIGhlcmUgfQogK2VuZC4KLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1 aXRlL2dkYi5weXRob24vcHktY21kLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1j bWQuZXhwCi1pbmRleCA2NmQzZTUzLi4wZWU1ZjYzIDEwMDY0NAotLS0tIGEvZ2RiL3Rlc3RzdWl0 ZS9nZGIucHl0aG9uL3B5LWNtZC5leHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9w eS1jbWQuZXhwCi1AQCAtMjAsMjQgKzIwLDYgQEAgaWYgJHRyYWNlbGV2ZWwgdGhlbiB7Ci0gICAg IHN0cmFjZSAkdHJhY2VsZXZlbAotIH0KLSAKLS0jIFVzYWdlOiBnZGJfcHlfdGVzdF9tdWx0aXBs ZSBOQU1FIElOUFVUIFJFU1VMVCB7SU5QVVQgUkVTVUxUfS4uLgotLSMgUnVuIGEgdGVzdCBuYW1l ZCBOQU1FLCBjb25zaXN0aW5nIG9mIG11bHRpcGxlIGxpbmVzIG9mIGlucHV0LgotLSMgQWZ0ZXIg ZWFjaCBpbnB1dCBsaW5lIElOUFVULCBzZWFyY2ggZm9yIHJlc3VsdCBsaW5lIFJFU1VMVC4KLS0j IFN1Y2NlZWQgaWYgYWxsIHJlc3VsdHMgYXJlIHNlZW47IGZhaWwgb3RoZXJ3aXNlLgotLXByb2Mg Z2RiX3B5X3Rlc3RfbXVsdGlwbGUge25hbWUgYXJnc30gewotLSAgICBnbG9iYWwgZ2RiX3Byb21w dAotLSAgICBmb3JlYWNoIHtpbnB1dCByZXN1bHR9ICRhcmdzIHsKLS0JaWYge1tnZGJfdGVzdF9t dWx0aXBsZSAkaW5wdXQgIiRuYW1lIC0gJGlucHV0IiB7Ci0tCSAgICAtcmUgIlxbXHJcblxdKigk cmVzdWx0KVxbXHJcblxdKygkZ2RiX3Byb21wdCB8ICo+KSQiIHsKLS0JCXBhc3MgIiRuYW1lIC0g JGlucHV0IgotLQkgICAgfQotLQl9XX0gewotLQkgICAgcmV0dXJuIDEKLS0JfQotLSAgICB9Ci0t ICAgIHJldHVybiAwCi0tfQotLQotICMgU3RhcnQgd2l0aCBhIGZyZXNoIGdkYi4KLSAKLSBnZGJf ZXhpdAogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFtZS5leHAg Yi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnJhbWUuZXhwCiBpbmRleCBlM2I1NjI5Li4y YTYzZDhkIDEwMDY0NAogLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWZyYW1lLmV4 cApAQCAtMTE1MDEsNDggKzExMTUyLDYgQEAgaW5kZXggZTNiNTYyOS4uMmE2M2Q4ZCAxMDA2NDQK ICBnZGJfdGVzdCAicHl0aG9uIHByaW50ICdyZXN1bHQgPScsIGdkYi5zZWxlY3RlZF9mcmFtZSAo KSA9PSBmMSIgIiA9IFRydWUiICJ0ZXN0IGdkYi5zZWxlY3RlZF9mcmFtZSIKICsKICtnZGJfdGVz dCAicHl0aG9uIHByaW50ICdyZXN1bHQgPScsIGYwLmJsb2NrICgpIiAiPGdkYi5CbG9jayBvYmpl Y3QgYXQgMHhcW1xbOnhkaWdpdDpcXVxdKz4iICJ0ZXN0IEZyYW1lLmJsb2NrIgotZGlmZiAtLWdp dCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mdW5jdGlvbi5leHAgYi9nZGIvdGVzdHN1 aXRlL2dkYi5weXRob24vcHktZnVuY3Rpb24uZXhwCi1pbmRleCBhNWM4MDI1Li44YTVkY2RhIDEw MDY0NAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWZ1bmN0aW9uLmV4cAotKysr IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWZ1bmN0aW9uLmV4cAotQEAgLTIwLDI0ICsy MCw2IEBAIGlmICR0cmFjZWxldmVsIHRoZW4gewotICAgICBzdHJhY2UgJHRyYWNlbGV2ZWwKLSB9 Ci0gCi0tIyBVc2FnZTogZ2RiX3B5X3Rlc3RfbXVsdGlwbGUgTkFNRSBJTlBVVCBSRVNVTFQge0lO UFVUIFJFU1VMVH0uLi4KLS0jIFJ1biBhIHRlc3QgbmFtZWQgTkFNRSwgY29uc2lzdGluZyBvZiBt dWx0aXBsZSBsaW5lcyBvZiBpbnB1dC4KLS0jIEFmdGVyIGVhY2ggaW5wdXQgbGluZSBJTlBVVCwg c2VhcmNoIGZvciByZXN1bHQgbGluZSBSRVNVTFQuCi0tIyBTdWNjZWVkIGlmIGFsbCByZXN1bHRz IGFyZSBzZWVuOyBmYWlsIG90aGVyd2lzZS4KLS1wcm9jIGdkYl9weV90ZXN0X211bHRpcGxlIHtu YW1lIGFyZ3N9IHsKLS0gICAgZ2xvYmFsIGdkYl9wcm9tcHQKLS0gICAgZm9yZWFjaCB7aW5wdXQg cmVzdWx0fSAkYXJncyB7Ci0tCWlmIHtbZ2RiX3Rlc3RfbXVsdGlwbGUgJGlucHV0ICIkbmFtZSAt ICRpbnB1dCIgewotLQkgICAgLXJlICJcW1xyXG5cXSooJHJlc3VsdClcW1xyXG5cXSsoJGdkYl9w cm9tcHQgfCAqPikkIiB7Ci0tCQlwYXNzICIkbmFtZSAtICRpbnB1dCIKLS0JICAgIH0KLS0JfV19 IHsKLS0JICAgIHJldHVybiAxCi0tCX0KLS0gICAgfQotLSAgICByZXR1cm4gMAotLX0KLS0KLSAj IFN0YXJ0IHdpdGggYSBmcmVzaCBnZGIuCi0gCi0gZ2RiX2V4aXQKLWRpZmYgLS1naXQgYS9nZGIv dGVzdHN1aXRlL2dkYi5weXRob24vcHktcHJldHR5cHJpbnQuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIucHl0aG9uL3B5LXByZXR0eXByaW50LmV4cAotaW5kZXggZTRhNmMzOC4uMDlhYzA2NSAxMDA2 NDQKLS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5leHAKLSsr KyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5leHAKLUBAIC05OSw2 ICs5OSw4IEBAIHByb2MgcnVuX2xhbmdfdGVzdHMge2xhbmd9IHsKLSAKLSAgICAgZ2RiX3Rlc3Qg InByaW50IGMiICIgPSBjb250YWluZXIgXCJjb250YWluZXJcIiB3aXRoIDIgZWxlbWVudHMgPSB7 JG5sICouMC4gPSAyMywkbmwgKi4xLiA9IDcyJG5sfSIKLSAKLSsgICAgZ2RiX3Rlc3QgInByaW50 IG51bGxzdHIiICJSdW50aW1lRXJyb3I6IEVycm9yIHJlYWRpbmcgc3RyaW5nIGZyb20gaW5mZXJp b3IuKiIKLSsKLSAgICAgZ2RiX3Rlc3QgInByaW50IG5zdHlwZSIgIiA9IHskbmwgKi4wLiA9IDcs JG5sICouMS4gPSA0MiRubH0iCi0gICAgIGdkYl90ZXN0ICJjb250aW51ZSIgIlByb2dyYW0gZXhp dGVkIG5vcm1hbGx5XC4iCi0gCiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9u L3B5LXZhbHVlLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5leHAKIGlu ZGV4IGUwMTJkNTMuLjFiZDllNTMgMTAwNjQ0CiAtLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRo b24vcHktdmFsdWUuZXhwCkBAIC0xMjIyNSwxNyArMTE4MzQsMjEgQEAgaW5kZXggMDAwMDAwMC4u MzFmNzY1NgogK2V4dGVybiB2b2lkIG1hcmtlciAodm9pZCk7CiArZXh0ZXJuIHZvaWQgZm9ya29m ZiAoaW50IG5yKTsKIGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwIGIvZ2Ri L3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAotaW5kZXggNWEzZjFmYy4uNjI0NjZmOCAxMDA2NDQKK2lu ZGV4IDVhM2YxZmMuLjQ3MTY2MjYgMTAwNjQ0CiAtLS0gYS9nZGIvdGVzdHN1aXRlL2xpYi9nZGIu ZXhwCiArKysgYi9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCi1AQCAtMjgsNiArMjgsNyBAQCBp ZiB7JHRvb2wgPT0gIiJ9IHsKLSB9Ci0gCi0gbG9hZF9saWIgbGliZ2xvc3MuZXhwCi0rbG9hZF9s aWIgcHl0aG9uLXN1cHBvcnQuZXhwCi0gCi0gZ2xvYmFsIEdEQgotIAorQEAgLTE0MCw2ICsxNDAs MTEgQEAgcHJvYyBnZGJfdW5sb2FkIHt9IHsKKyAJCXZlcmJvc2UgIlx0XHRLaWxsaW5nIHByZXZp b3VzIHByb2dyYW0gYmVpbmcgZGVidWdnZWQiCisgCSAgICBleHBfY29udGludWUKKyAJfQorKwkt cmUgIkEgcHJvZ3JhbSBpcyBiZWluZyBkZWJ1Z2dlZCBhbHJlYWR5Li4qQXJlIHlvdSBzdXJlIHlv dSB3YW50IHRvIGNoYW5nZSB0aGUgZmlsZS4qeSBvciBuLiAkIlwKKysJICAgIHsgc2VuZF9nZGIg InlcbiIKKysJCXZlcmJvc2UgIlx0XHRVbmxvYWRpbmcgc3ltYm9scyBmb3IgcHJvZ3JhbSBiZWlu ZyBkZWJ1Z2dlZCIKKysJICAgIGV4cF9jb250aW51ZQorKwl9CisgCS1yZSAiRGlzY2FyZCBzeW1i b2wgdGFibGUgZnJvbSAuKnkgb3Igbi4qJCIgeworIAkgICAgc2VuZF9nZGIgInlcbiIKKyAJICAg IGV4cF9jb250aW51ZQogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvbGliL3Bhc2NhbC5leHAg Yi9nZGIvdGVzdHN1aXRlL2xpYi9wYXNjYWwuZXhwCiBpbmRleCA4OTFkYTM3Li4yMzZjNWNhIDEw MDY0NAogLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9saWIvcGFzY2FsLmV4cApAQCAtMTIyNzEsNjcgKzEx ODg0LDggQEAgaW5kZXggODkxZGEzNy4uMjM2YzVjYSAxMDA2NDQKICAgICAgfQogICAgICBzZXQg cGFzY2FsX2luaXRfZG9uZSAxCiAgfSAgIAotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvbGli L3B5dGhvbi1zdXBwb3J0LmV4cCBiL2dkYi90ZXN0c3VpdGUvbGliL3B5dGhvbi1zdXBwb3J0LmV4 cAotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLmI4ZTk4MzYKLS0tLSAvZGV2 L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvbGliL3B5dGhvbi1zdXBwb3J0LmV4cAotQEAgLTAs MCArMSw1MyBAQAotK2dsb2JhbCBweXRob25fc3VwcG9ydGVkX3NhdmVkCi0rCi0rIyBSZXR1cm4g MSBpZiBQeXRob24gc2NyaXB0aW5nIGlzIHN1cHBvcnRlZCBpbiBHREIsIDAgaWYgbm90LgotK3By b2MgcHl0aG9uX3N1cHBvcnRlZCB7IH0gewotKyAgZ2xvYmFsIGdkYl9wcm9tcHQKLSsgIGdsb2Jh bCBweXRob25fc3VwcG9ydGVkX3NhdmVkCi0rCi0rICBpZiBbaW5mbyBleGlzdHMgcHl0aG9uX3N1 cHBvcnRlZF9zYXZlZF0gewotKyAgICAgIHZlcmJvc2UgInB5dGhvbl9zdXBwb3J0ZWQ6ICByZXR1 cm5pbmcgc2F2ZWQgJHB5dGhvbl9zdXBwb3J0ZWRfc2F2ZWQiIDIKLSsgICAgICByZXR1cm4gJHB5 dGhvbl9zdXBwb3J0ZWRfc2F2ZWQKLSsgIH0KLSsKLSsgIGdkYl90ZXN0X211bHRpcGxlICJweXRo b24gcHJpbnQgJ2hlbGxvLCB3b3JsZCEnIiAidmVyaWZ5IHB5dGhvbiBzdXBwb3J0IiB7Ci0rICAg IC1yZSAibm90IHN1cHBvcnRlZC4qJGdkYl9wcm9tcHQgJCIJewotKyAgICAgIHJldHVybiBbc2V0 IHB5dGhvbl9zdXBwb3J0ZWRfc2F2ZWQgMF0KLSsgICAgfQotKyAgICAtcmUgIiRnZGJfcHJvbXB0 ICQiCXsKLSsgICAgICByZXR1cm4gW3NldCBweXRob25fc3VwcG9ydGVkX3NhdmVkIDFdCi0rICAg IH0KLSsgIH0KLSsKLSsgIHJldHVybiBbc2V0IHB5dGhvbl9zdXBwb3J0ZWRfc2F2ZWQgMF0KLSt9 Ci0rCi0rIyBSdW4gYSBjb21tYW5kIGluIEdEQiwgYW5kIHJlcG9ydCBhIGZhaWx1cmUgaWYgYSBQ eXRob24gZXhjZXB0aW9uIGlzIHRocm93bi4KLSsjIElmIHJlcG9ydF9wYXNzIGlzIHRydWUsIHJl cG9ydCBhIHBhc3MgaWYgbm8gZXhjZXB0aW9uIGlzIHRocm93bi4KLStwcm9jIGdkYl9weV90ZXN0 X3NpbGVudF9jbWQge2NtZCBuYW1lIHJlcG9ydF9wYXNzfSB7Ci0rICBnbG9iYWwgZ2RiX3Byb21w dAotKwotKyAgZ2RiX3Rlc3RfbXVsdGlwbGUgJGNtZCAkbmFtZSB7Ci0rICAgICAgLXJlICJUcmFj ZWJhY2suKiRnZGJfcHJvbXB0ICQiICB7IGZhaWwgJG5hbWUgfQotKyAgICAgIC1yZSAiJGdkYl9w cm9tcHQgJCIJICAgICAgeyBpZiAkcmVwb3J0X3Bhc3MgeyBwYXNzICRuYW1lIH0gfQotKyAgfQot K30KLSsKLSsjIFVzYWdlOiBnZGJfcHlfdGVzdF9tdWx0aXBsZSBOQU1FIElOUFVUIFJFU1VMVCB7 SU5QVVQgUkVTVUxUfS4uLgotKyMgUnVuIGEgdGVzdCBuYW1lZCBOQU1FLCBjb25zaXN0aW5nIG9m IG11bHRpcGxlIGxpbmVzIG9mIGlucHV0LgotKyMgQWZ0ZXIgZWFjaCBpbnB1dCBsaW5lIElOUFVU LCBzZWFyY2ggZm9yIHJlc3VsdCBsaW5lIFJFU1VMVC4KLSsjIFN1Y2NlZWQgaWYgYWxsIHJlc3Vs dHMgYXJlIHNlZW47IGZhaWwgb3RoZXJ3aXNlLgotK3Byb2MgZ2RiX3B5X3Rlc3RfbXVsdGlwbGUg e25hbWUgYXJnc30gewotKyAgICBnbG9iYWwgZ2RiX3Byb21wdAotKwotKyAgICBmb3JlYWNoIHtp bnB1dCByZXN1bHR9ICRhcmdzIHsKLSsJaWYge1tnZGJfdGVzdF9tdWx0aXBsZSAkaW5wdXQgIiRu YW1lIC0gJGlucHV0IiB7Ci0rCSAgICAtcmUgIlxbXHJcblxdKigkcmVzdWx0KVxbXHJcblxdKygk Z2RiX3Byb21wdCB8ICo+KSQiIHsKLSsJCXBhc3MgIiRuYW1lIC0gJGlucHV0IgotKwkgICAgfQot Kwl9XX0gewotKwkgICAgcmV0dXJuIDEKLSsJfQotKyAgICB9Ci0rICAgIHJldHVybiAwCi0rfQog ZGlmZiAtLWdpdCBhL2dkYi90b3AuYyBiL2dkYi90b3AuYwotaW5kZXggZTBmZWJhNS4uZTg5ODFk ZCAxMDA2NDQKK2luZGV4IGJiYTFhMmQuLjU1ODJmMzAgMTAwNjQ0CiAtLS0gYS9nZGIvdG9wLmMK ICsrKyBiL2dkYi90b3AuYwogQEAgLTM0Myw2ICszNDMsNyBAQCB2b2lkCkBAIC0xMjM0Myw3ICsx MTg5Nyw3IEBAIGluZGV4IGUwZmViYTUuLmU4OTgxZGQgMTAwNjQ0CiAgICAvKiBXaXRoIG11bHRp cGxlIHRocmVhZHMgcnVubmluZyB3aGlsZSB0aGUgb25lIHdlJ3JlIGV4YW1pbmluZyBpcwogICAg ICAgc3RvcHBlZCwgdGhlIGRjYWNoZSBjYW4gZ2V0IHN0YWxlIHdpdGhvdXQgdXMgYmVpbmcgYWJs ZSB0byBkZXRlY3QKIGRpZmYgLS1naXQgYS9nZGIvdHlwZXByaW50LmMgYi9nZGIvdHlwZXByaW50 LmMKLWluZGV4IGExYzQ0ZjIuLjAzNmQ5MzkgMTAwNjQ0CitpbmRleCAwM2U2MzMyLi5jZTZkMWUw IDEwMDY0NAogLS0tIGEvZ2RiL3R5cGVwcmludC5jCiArKysgYi9nZGIvdHlwZXByaW50LmMKIEBA IC0zNiw2ICszNiw3IEBACkBAIC0xMjQwMCw3ICsxMTk1NCw3IEBAIGluZGV4IGExYzQ0ZjIuLjAz NmQ5MzkgMTAwNjQ0CiAgCiAgc3RhdGljIHZvaWQKIGRpZmYgLS1naXQgYS9nZGIvdXRpbHMuYyBi L2dkYi91dGlscy5jCi1pbmRleCA5ODVmMjE5Li5jY2IwNjhlIDEwMDY0NAoraW5kZXggYzIzYzRk NC4uNjBkNTViNyAxMDA2NDQKIC0tLSBhL2dkYi91dGlscy5jCiArKysgYi9nZGIvdXRpbHMuYwog QEAgLTIyMDYsNiArMjIwNiwzNiBAQCBzZXRfYmF0Y2hfZmxhZ19hbmRfbWFrZV9jbGVhbnVwX3Jl c3RvcmVfcGFnZV9pbmZvICh2b2lkKQpAQCAtMTI0NDEsODkgKzExOTk1LDIyIEBAIGluZGV4IDk4 NWYyMTkuLmNjYjA2OGUgMTAwNjQ0CiAgCiAgc3RhdGljIHZvaWQKIGRpZmYgLS1naXQgYS9nZGIv dmFsYXJpdGguYyBiL2dkYi92YWxhcml0aC5jCi1pbmRleCAxOGU4OGI3Li45ZjkwYWNiIDEwMDY0 NAoraW5kZXggMjY1NTMyYy4uMWU0MTlkZCAxMDA2NDQKIC0tLSBhL2dkYi92YWxhcml0aC5jCiAr KysgYi9nZGIvdmFsYXJpdGguYwotQEAgLTE2NSwxMiArMTY1LDI2IEBAIHZhbHVlX3N1YnNjcmlw dCAoc3RydWN0IHZhbHVlICphcnJheSwgTE9OR0VTVCBpbmRleCkKLSAKLSAgICAgICBnZXRfZGlz Y3JldGVfYm91bmRzIChyYW5nZV90eXBlLCAmbG93ZXJib3VuZCwgJnVwcGVyYm91bmQpOwotICAg ICAgIGlmIChWQUxVRV9MVkFMIChhcnJheSkgIT0gbHZhbF9tZW1vcnkpCi0tCXJldHVybiB2YWx1 ZV9zdWJzY3JpcHRlZF9ydmFsdWUgKGFycmF5LCBpbmRleCwgbG93ZXJib3VuZCk7Ci0rCXsKLSsJ ICBpZiAoaW5kZXggPj0gbG93ZXJib3VuZCAmJiBpbmRleCA8PSB1cHBlcmJvdW5kKQotKwkgICAg ewotKwkgICAgICBDT1JFX0FERFIgZWxlbWVudF9zaXplID0gVFlQRV9MRU5HVEggKFRZUEVfVEFS R0VUX1RZUEUgKHRhcnJheSkpOwotKwkgICAgICBDT1JFX0FERFIgb2Zmc2V0ID0gKGluZGV4IC0g bG93ZXJib3VuZCkgKiBlbGVtZW50X3NpemU7Ci0rCi0rCSAgICAgIHJldHVybiB2YWx1ZV9zdWJz Y3JpcHRlZF9ydmFsdWUgKGFycmF5LCBvZmZzZXQpOwotKwkgICAgfQotKwkgIGVycm9yIChfKCJh cnJheSBvciBzdHJpbmcgaW5kZXggb3V0IG9mIHJhbmdlIikpOwotKwl9Ci0gCi0gICAgICAgaWYg KGNfc3R5bGUgPT0gMCkKLSAJewotIAkgIGlmIChpbmRleCA+PSBsb3dlcmJvdW5kICYmIGluZGV4 IDw9IHVwcGVyYm91bmQpCi0tCSAgICByZXR1cm4gdmFsdWVfc3Vic2NyaXB0ZWRfcnZhbHVlIChh cnJheSwgaW5kZXgsIGxvd2VyYm91bmQpOwotKwkgICAgewotKwkgICAgICBDT1JFX0FERFIgZWxl bWVudF9zaXplID0gVFlQRV9MRU5HVEggKFRZUEVfVEFSR0VUX1RZUEUgKHRhcnJheSkpOwotKwkg ICAgICBDT1JFX0FERFIgb2Zmc2V0ID0gKGluZGV4IC0gbG93ZXJib3VuZCkgKiBlbGVtZW50X3Np emU7Ci0rCi0rCSAgICAgIHJldHVybiB2YWx1ZV9zdWJzY3JpcHRlZF9ydmFsdWUgKGFycmF5LCBv ZmZzZXQpOwotKwkgICAgfQotIAkgIC8qIEVtaXQgd2FybmluZyB1bmxlc3Mgd2UgaGF2ZSBhbiBh cnJheSBvZiB1bmtub3duIHNpemUuCi0gCSAgICAgQW4gYXJyYXkgb2YgdW5rbm93biBzaXplIGhh cyBsb3dlcmJvdW5kIDAgYW5kIHVwcGVyYm91bmQgLTEuICAqLwotIAkgIGlmICh1cHBlcmJvdW5k ID4gLTEpCi1AQCAtMTg5LDM0ICsyMDMsMzcgQEAgdmFsdWVfc3Vic2NyaXB0IChzdHJ1Y3QgdmFs dWUgKmFycmF5LCBMT05HRVNUIGluZGV4KQotICAgICBlcnJvciAoXygibm90IGFuIGFycmF5IG9y IHN0cmluZyIpKTsKLSB9Ci0gCi0tLyogUmV0dXJuIHRoZSB2YWx1ZSBvZiBFWFBSW0lEWF0sIGV4 cHIgYW4gYWdncmVnYXRlIHJ2YWx1ZQotLSAgIChlZywgYSB2ZWN0b3IgcmVnaXN0ZXIpLiAgVGhp cyByb3V0aW5lIHVzZWQgdG8gcHJvbW90ZSBmbG9hdHMKLS0gICB0byBkb3VibGVzLCBidXQgbm8g bG9uZ2VyIGRvZXMuICAqLwotKy8qIFJldHVybiB0aGUgdmFsdWUgb2YgKigodm9pZCAqKSBBUlJB WSArIEVMRU1FTlQpLCBBUlJBWSBhbiBhZ2dyZWdhdGUgcnZhbHVlCi0rICAgKGVnLCBhIHZlY3Rv ciByZWdpc3RlcikuICBUaGlzIHJvdXRpbmUgdXNlZCB0byBwcm9tb3RlIGZsb2F0cyB0byBkb3Vi bGVzLAotKyAgIGJ1dCBubyBsb25nZXIgZG9lcy4gIE9GRlNFVCBpcyB6ZXJvLWJhc2VkIHdpdGgg MCBmb3IgdGhlIGxvd2VybW9zdCBleGlzdGluZwotKyAgIGVsZW1lbnQsIGl0IG11c3QgYmUgZXhw cmVzc2VkIGluIGJ5dGVzICh0aGVyZWZvcmUgbXVsdGlwbGllZCBieQotKyAgIGNoZWNrX3R5cGVk ZWYgKFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpKS4gICovCi0gCi0gc3RydWN0IHZhbHVl ICoKLS12YWx1ZV9zdWJzY3JpcHRlZF9ydmFsdWUgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIExPTkdF U1QgaW5kZXgsIGludCBsb3dlcmJvdW5kKQotK3ZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAoc3Ry dWN0IHZhbHVlICphcnJheSwgQ09SRV9BRERSIG9mZnNldCkKLSB7CitAQCAtMTk4LDcgKzE5OCwx MCBAQCB2YWx1ZV9zdWJzY3JpcHRlZF9ydmFsdWUgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIExPTkdF U1QgaW5kZXgsIGludCBsb3dlcmJvdW5kKQogICAgc3RydWN0IHR5cGUgKmFycmF5X3R5cGUgPSBj aGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcnJheSkpOwogICAgc3RydWN0IHR5cGUgKmVsdF90 eXBlID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlwZSkpOwotLSAg dW5zaWduZWQgaW50IGVsdF9zaXplID0gVFlQRV9MRU5HVEggKGVsdF90eXBlKTsKKyAgIHVuc2ln bmVkIGludCBlbHRfc2l6ZSA9IFRZUEVfTEVOR1RIIChlbHRfdHlwZSk7CiAtICB1bnNpZ25lZCBp bnQgZWx0X29mZnMgPSBlbHRfc2l6ZSAqIGxvbmdlc3RfdG9faW50IChpbmRleCAtIGxvd2VyYm91 bmQpOworKyAgdW5zaWduZWQgaW50IGVsdF9zdHJpZGUKKysgICAgPSAoVFlQRV9CWVRFX1NUUklE RSAoVFlQRV9JTkRFWF9UWVBFIChhcnJheV90eXBlKSkgPT0gMAorKyAgICAgICA/IGVsdF9zaXpl IDogVFlQRV9CWVRFX1NUUklERSAoVFlQRV9JTkRFWF9UWVBFIChhcnJheV90eXBlKSkpOworKyAg dW5zaWduZWQgaW50IGVsdF9vZmZzID0gZWx0X3N0cmlkZSAqIGxvbmdlc3RfdG9faW50IChpbmRl eCAtIGxvd2VyYm91bmQpOwogICAgc3RydWN0IHZhbHVlICp2OwogIAotLSAgaWYgKGluZGV4IDwg bG93ZXJib3VuZCB8fCAoIVRZUEVfQVJSQVlfVVBQRVJfQk9VTkRfSVNfVU5ERUZJTkVEIChhcnJh eV90eXBlKQotLQkJCSAgICAgJiYgZWx0X29mZnMgPj0gVFlQRV9MRU5HVEggKGFycmF5X3R5cGUp KSkKLS0gICAgZXJyb3IgKF8oIm5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQiKSk7Ci0rICAvKiBEbyBu b3QgY2hlY2sgVFlQRV9MRU5HVEggKGFycmF5X3R5cGUpIGFzIHdlIG1heSBoYXZlIGJlZW4gZ2l2 ZW4gdGhlCi0rICAgICBpbm5lcm1vc3QgZGltZW5zaW9uIG9mIGEgbXVsdGktZGltZW5zaW9uYWwg Rm9ydHJhbiBhcnJheSB3aGVyZSBpdHMgbGVuZ3RoCi0rICAgICBpcyBzaG9ydGVyIHRoYW4gdGhl IHBvc3NpYmx5IGFjY2Vzc2VkIGVsZW1lbnQgb2Zmc2V0LiAgKi8KLSAKLSAgIHYgPSBhbGxvY2F0 ZV92YWx1ZSAoZWx0X3R5cGUpOwotICAgaWYgKFZBTFVFX0xWQUwgKGFycmF5KSA9PSBsdmFsX21l bW9yeSAmJiB2YWx1ZV9sYXp5IChhcnJheSkpCi0gICAgIHNldF92YWx1ZV9sYXp5ICh2LCAxKTsK LSAgIGVsc2UKLS0gICAgbWVtY3B5ICh2YWx1ZV9jb250ZW50c193cml0ZWFibGUgKHYpLAotLQkg ICAgdmFsdWVfY29udGVudHMgKGFycmF5KSArIGVsdF9vZmZzLCBlbHRfc2l6ZSk7Ci0rICAgIHsK LSsgICAgICB1bnNpZ25lZCBpbnQgZWx0X3NpemUgPSBUWVBFX0xFTkdUSCAoZWx0X3R5cGUpOwot KyAgICAgIG1lbWNweSAodmFsdWVfY29udGVudHNfd3JpdGVhYmxlICh2KSwKLSsJICAgICAgdmFs dWVfY29udGVudHMgKGFycmF5KSArIG9mZnNldCwgZWx0X3NpemUpOwotKyAgICB9Ci0gCi0gICBz ZXRfdmFsdWVfY29tcG9uZW50X2xvY2F0aW9uICh2LCBhcnJheSk7Ci0gICBWQUxVRV9SRUdOVU0g KHYpID0gVkFMVUVfUkVHTlVNIChhcnJheSk7Ci0gICBWQUxVRV9GUkFNRV9JRCAodikgPSBWQUxV RV9GUkFNRV9JRCAoYXJyYXkpOwotLSAgc2V0X3ZhbHVlX29mZnNldCAodiwgdmFsdWVfb2Zmc2V0 IChhcnJheSkgKyBlbHRfb2Zmcyk7Ci0rICBzZXRfdmFsdWVfb2Zmc2V0ICh2LCB2YWx1ZV9vZmZz ZXQgKGFycmF5KSArIG9mZnNldCk7Ci0gICByZXR1cm4gdjsKLSB9Ci0gCi1AQCAtMjk2LDYgKzMx MywxMCBAQCBpbnQKKyAgIGlmIChpbmRleCA8IGxvd2VyYm91bmQgfHwgKCFUWVBFX0FSUkFZX1VQ UEVSX0JPVU5EX0lTX1VOREVGSU5FRCAoYXJyYXlfdHlwZSkKK0BAIC0yOTcsNiArMzAwLDEwIEBA IGludAogIGJpbm9wX3VzZXJfZGVmaW5lZF9wIChlbnVtIGV4cF9vcGNvZGUgb3AsCiAgCQkgICAg ICBzdHJ1Y3QgdmFsdWUgKmFyZzEsIHN0cnVjdCB2YWx1ZSAqYXJnMikKICB7CkBAIC0xMjUzNSw3 ICsxMjAyMiw3IEBAIGluZGV4IDE4ZTg4YjcuLjlmOTBhY2IgMTAwNjQ0CiAgfQogIAogZGlmZiAt LWdpdCBhL2dkYi92YWxvcHMuYyBiL2dkYi92YWxvcHMuYwotaW5kZXggZmRiYjcwMi4uZjkzZjk0 YSAxMDA2NDQKK2luZGV4IDE5ZDUyMzguLmM5ZDcyMWEgMTAwNjQ0CiAtLS0gYS9nZGIvdmFsb3Bz LmMKICsrKyBiL2dkYi92YWxvcHMuYwogQEAgLTM4LDYgKzM4LDcgQEAKQEAgLTEyNjQxLDcgKzEy MTI4LDcgQEAgaW5kZXggZmRiYjcwMi4uZjkzZjk0YSAxMDA2NDQKICAJfQogICAgICB9CiAgICBl bHNlIGlmIChWQUxVRV9MVkFMICh2YWwpID09IGx2YWxfcmVnaXN0ZXIpCi1AQCAtMTQyNyw3ICsx NDkzLDE4IEBAIGFkZHJlc3Nfb2ZfdmFyaWFibGUgKHN0cnVjdCBzeW1ib2wgKnZhciwgc3RydWN0 IGJsb2NrICpiKQorQEAgLTE0MjksNyArMTQ5NSwxOCBAQCBhZGRyZXNzX29mX3ZhcmlhYmxlIChz dHJ1Y3Qgc3ltYm9sICp2YXIsIHN0cnVjdCBibG9jayAqYikKICAgIGlmICgoVkFMVUVfTFZBTCAo dmFsKSA9PSBsdmFsX21lbW9yeSAmJiB2YWx1ZV9sYXp5ICh2YWwpKQogICAgICAgIHx8IFRZUEVf Q09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX0ZVTkMpCiAgICAgIHsKQEAgLTEyNjYxLDcgKzEyMTQ4 LDcgQEAgaW5kZXggZmRiYjcwMi4uZjkzZjk0YSAxMDA2NDQKICAKICAgICAgICByZXR1cm4gdmFs dWVfZnJvbV9wb2ludGVyIChsb29rdXBfcG9pbnRlcl90eXBlICh0eXBlKSwgYWRkcik7CiAgICAg IH0KLUBAIC0xNTM1LDYgKzE2MTIsNyBAQCBzdHJ1Y3QgdmFsdWUgKgorQEAgLTE1MzYsNiArMTYx Myw3IEBAIHN0cnVjdCB2YWx1ZSAqCiAgdmFsdWVfY29lcmNlX2FycmF5IChzdHJ1Y3QgdmFsdWUg KmFyZzEpCiAgewogICAgc3RydWN0IHR5cGUgKnR5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90 eXBlIChhcmcxKSk7CkBAIC0xMjY2OSw3ICsxMjE1Niw3IEBAIGluZGV4IGZkYmI3MDIuLmY5M2Y5 NGEgMTAwNjQ0CiAgCiAgICAvKiBJZiB0aGUgdXNlciB0cmllcyB0byBkbyBzb21ldGhpbmcgcmVx dWlyaW5nIGEgcG9pbnRlciB3aXRoIGFuCiAgICAgICBhcnJheSB0aGF0IGhhcyBub3QgeWV0IGJl ZW4gcHVzaGVkIHRvIHRoZSB0YXJnZXQsIHRoZW4gdGhpcyB3b3VsZAotQEAgLTE1NDQsOCArMTYy MiwxMiBAQCB2YWx1ZV9jb2VyY2VfYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJnMSkKK0BAIC0xNTQ1 LDggKzE2MjMsMTIgQEAgdmFsdWVfY29lcmNlX2FycmF5IChzdHJ1Y3QgdmFsdWUgKmFyZzEpCiAg ICBpZiAoVkFMVUVfTFZBTCAoYXJnMSkgIT0gbHZhbF9tZW1vcnkpCiAgICAgIGVycm9yIChfKCJB dHRlbXB0IHRvIHRha2UgYWRkcmVzcyBvZiB2YWx1ZSBub3QgbG9jYXRlZCBpbiBtZW1vcnkuIikp OwogIApAQCAtMTI2ODMsOCArMTIxNzAsMTcgQEAgaW5kZXggZmRiYjcwMi4uZjkzZjk0YSAxMDA2 NDQKICB9CiAgCiAgLyogR2l2ZW4gYSB2YWx1ZSB3aGljaCBpcyBhIGZ1bmN0aW9uLCByZXR1cm4g YSB2YWx1ZSB3aGljaCBpcyBhIHBvaW50ZXIKK0BAIC0zNTg3LDYgKzM2NjksOCBAQCB2YWx1ZV9z bGljZSAoc3RydWN0IHZhbHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3RoKQorIAkJ CQkJVFlQRV9UQVJHRVRfVFlQRSAocmFuZ2VfdHlwZSksCisgCQkJCQlsb3dib3VuZCwgCisgCQkJ CQlsb3dib3VuZCArIGxlbmd0aCAtIDEpOworKyAgVFlQRV9CWVRFX1NUUklERSAoc2xpY2VfcmFu Z2VfdHlwZSkgPSBUWVBFX0JZVEVfU1RSSURFIChyYW5nZV90eXBlKTsKKysKKyAgIGlmIChUWVBF X0NPREUgKGFycmF5X3R5cGUpID09IFRZUEVfQ09ERV9CSVRTVFJJTkcpCisgICAgIHsKKyAgICAg ICBpbnQgaTsKIGRpZmYgLS1naXQgYS9nZGIvdmFscHJpbnQuYyBiL2dkYi92YWxwcmludC5jCi1p bmRleCBkNzhkZjVjLi5lNGZlN2Y5IDEwMDY0NAoraW5kZXggZjY1ZmUyNy4uZGQxYWFlZSAxMDA2 NDQKIC0tLSBhL2dkYi92YWxwcmludC5jCiArKysgYi9nZGIvdmFscHJpbnQuYwogQEAgLTM2LDYg KzM2LDcgQEAKQEAgLTEyNzAzLDcgKzEyMTk5LDcgQEAgaW5kZXggZDc4ZGY1Yy4uZTRmZTdmOSAx MDA2NDQKICAgICAgY2FzZSBUWVBFX0NPREVfQklUU1RSSU5HOgogICAgICAgIHJldHVybiAwOwog ICAgICBkZWZhdWx0OgotQEAgLTExMTUsNiArMTExNSw3IEBAIHZhbF9wcmludF9hcnJheV9lbGVt ZW50cyAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorQEAgLTEx MTcsNiArMTExNyw3IEBAIHZhbF9wcmludF9hcnJheV9lbGVtZW50cyAoc3RydWN0IHR5cGUgKnR5 cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAogIHsKICAgIHVuc2lnbmVkIGludCB0aGluZ3Nf cHJpbnRlZCA9IDA7CiAgICB1bnNpZ25lZCBsZW47CkBAIC0xMjcxMSw3ICsxMjIwNyw3IEBAIGlu ZGV4IGQ3OGRmNWMuLmU0ZmU3ZjkgMTAwNjQ0CiAgICBzdHJ1Y3QgdHlwZSAqZWx0dHlwZSwgKmlu ZGV4X3R5cGU7CiAgICB1bnNpZ25lZCBlbHRsZW47CiAgICAvKiBQb3NpdGlvbiBvZiB0aGUgYXJy YXkgZWxlbWVudCB3ZSBhcmUgZXhhbWluaW5nIHRvIHNlZQotQEAgLTExMjMsOSArMTEyNCwzMyBA QCB2YWxfcHJpbnRfYXJyYXlfZWxlbWVudHMgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJf Ynl0ZSAqdmFsYWRkciwKK0BAIC0xMTI1LDkgKzExMjYsMzMgQEAgdmFsX3ByaW50X2FycmF5X2Vs ZW1lbnRzIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCiAgICAv KiBOdW1iZXIgb2YgcmVwZXRpdGlvbnMgd2UgaGF2ZSBkZXRlY3RlZCBzbyBmYXIuICAqLwogICAg dW5zaWduZWQgaW50IHJlcHM7CiAgICBMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9ib3VuZDsKQEAg LTEyNzQ3LDcgKzEyMjQzLDcgQEAgaW5kZXggZDc4ZGY1Yy4uZTRmZTdmOSAxMDA2NDQKICAgIGlu ZGV4X3R5cGUgPSBUWVBFX0lOREVYX1RZUEUgKHR5cGUpOwogIAogICAgaWYgKGdldF9hcnJheV9i b3VuZHMgKHR5cGUsICZsb3dfYm91bmQsICZoaWdoX2JvdW5kKSkKLUBAIC0xMjAwLDYgKzEyMjUs OCBAQCB2YWxfcHJpbnRfYXJyYXlfZWxlbWVudHMgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBn ZGJfYnl0ZSAqdmFsYWRkciwKK0BAIC0xMjAyLDYgKzEyMjcsOCBAQCB2YWxfcHJpbnRfYXJyYXlf ZWxlbWVudHMgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKICAg ICAgewogICAgICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIi4uLiIpOwogICAgICB9CkBA IC0xMjc1Nyw3ICsxMjI1Myw3IEBAIGluZGV4IGQ3OGRmNWMuLmU0ZmU3ZjkgMTAwNjQ0CiAgCiAg LyogUmVhZCBMRU4gYnl0ZXMgb2YgdGFyZ2V0IG1lbW9yeSBhdCBhZGRyZXNzIE1FTUFERFIsIHBs YWNpbmcgdGhlCiBkaWZmIC0tZ2l0IGEvZ2RiL3ZhbHVlLmMgYi9nZGIvdmFsdWUuYwotaW5kZXgg MWM1MDQyOC4uOWIxYjQzOCAxMDA2NDQKK2luZGV4IGRiODNlYTIuLjNkNDc1NTYgMTAwNjQ0CiAt LS0gYS9nZGIvdmFsdWUuYwogKysrIGIvZ2RiL3ZhbHVlLmMKIEBAIC0zOSw2ICszOSw3IEBACkBA IC0xMjc2OCw3ICsxMjI2NCw3IEBAIGluZGV4IDFjNTA0MjguLjliMWI0MzggMTAwNjQ0CiAgCiAg I2luY2x1ZGUgInB5dGhvbi9weXRob24uaCIKICAKLUBAIC04NjQsMTIgKzg2NSwxNSBAQCB2b2lk CitAQCAtODYzLDEyICs4NjQsMTUgQEAgdm9pZAogIHNldF92YWx1ZV9jb21wb25lbnRfbG9jYXRp b24gKHN0cnVjdCB2YWx1ZSAqY29tcG9uZW50LAogIAkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1 ZSAqd2hvbGUpCiAgewpAQCAtMTI3ODQsNyArMTIyODAsNyBAQCBpbmRleCAxYzUwNDI4Li45YjFi NDM4IDEwMDY0NAogICAgaWYgKHdob2xlLT5sdmFsID09IGx2YWxfY29tcHV0ZWQpCiAgICAgIHsK ICAgICAgICBzdHJ1Y3QgbHZhbF9mdW5jcyAqZnVuY3MgPSB3aG9sZS0+bG9jYXRpb24uY29tcHV0 ZWQuZnVuY3M7Ci1AQCAtODc3LDYgKzg4MSwxMiBAQCBzZXRfdmFsdWVfY29tcG9uZW50X2xvY2F0 aW9uIChzdHJ1Y3QgdmFsdWUgKmNvbXBvbmVudCwKK0BAIC04NzYsNiArODgwLDEyIEBAIHNldF92 YWx1ZV9jb21wb25lbnRfbG9jYXRpb24gKHN0cnVjdCB2YWx1ZSAqY29tcG9uZW50LAogICAgICAg IGlmIChmdW5jcy0+Y29weV9jbG9zdXJlKQogICAgICAgICAgY29tcG9uZW50LT5sb2NhdGlvbi5j b21wdXRlZC5jbG9zdXJlID0gZnVuY3MtPmNvcHlfY2xvc3VyZSAod2hvbGUpOwogICAgICB9CkBA IC0xMjc5Nyw3ICsxMjI5Myw3IEBAIGluZGV4IDFjNTA0MjguLjliMWI0MzggMTAwNjQ0CiAgfQog IAogIAwKLUBAIC0xMDEwLDYgKzEwMjAsMjkgQEAgc2hvd192YWx1ZXMgKGNoYXIgKm51bV9leHAs IGludCBmcm9tX3R0eSkKK0BAIC0xMDA5LDYgKzEwMTksMjkgQEAgc2hvd192YWx1ZXMgKGNoYXIg Km51bV9leHAsIGludCBmcm9tX3R0eSkKICAgICAgICBudW1fZXhwWzFdID0gJ1wwJzsKICAgICAg fQogIH0KQEAgLTEyODI3LDcgKzEyMzIzLDcgQEAgaW5kZXggMWM1MDQyOC4uOWIxYjQzOCAxMDA2 NDQKICAMCiAgLyogSW50ZXJuYWwgdmFyaWFibGVzLiAgVGhlc2UgYXJlIHZhcmlhYmxlcyB3aXRo aW4gdGhlIGRlYnVnZ2VyCiAgICAgdGhhdCBob2xkIHZhbHVlcyBhc3NpZ25lZCBieSBkZWJ1Z2dl ciBjb21tYW5kcy4KLUBAIC0xNTA1LDYgKzE1MzgsNDAgQEAgY2FsbF9pbnRlcm5hbF9mdW5jdGlv biAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCitAQCAtMTUwNCw2ICsxNTM3LDQwIEBAIGNhbGxf aW50ZXJuYWxfZnVuY3Rpb24gKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAogICAgcmV0dXJuICgq aWZuLT5oYW5kbGVyKSAoZ2RiYXJjaCwgbGFuZ3VhZ2UsIGlmbi0+Y29va2llLCBhcmdjLCBhcmd2 KTsKICB9CiAgCkBAIC0xMjg2OCw3ICsxMjM2NCw3IEBAIGluZGV4IDFjNTA0MjguLjliMWI0Mzgg MTAwNjQ0CiAgLyogVGhlICdmdW5jdGlvbicgY29tbWFuZC4gIFRoaXMgZG9lcyBub3RoaW5nIC0t IGl0IGlzIGp1c3QgYQogICAgIHBsYWNlaG9sZGVyIHRvIGxldCAiaGVscCBmdW5jdGlvbiBOQU1F IiB3b3JrLiAgVGhpcyBpcyBhbHNvIHVzZWQgYXMKICAgICB0aGUgaW1wbGVtZW50YXRpb24gb2Yg dGhlIHN1Yi1jb21tYW5kIHRoYXQgaXMgY3JlYXRlZCB3aGVuCi1AQCAtMTU1MiwxMSArMTYxOSwx MCBAQCBwcmVzZXJ2ZV9vbmVfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIHN0cnVjdCBvYmpm aWxlICpvYmpmaWxlLAorQEAgLTE1NTEsMTEgKzE2MTgsMTAgQEAgcHJlc2VydmVfb25lX3ZhbHVl IChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKICAJCSAgICBo dGFiX3QgY29waWVkX3R5cGVzKQogIHsKICAgIGlmIChUWVBFX09CSkZJTEUgKHZhbHVlLT50eXBl KSA9PSBvYmpmaWxlKQpAQCAtMTI4ODIsNyArMTIzNzgsNyBAQCBpbmRleCAxYzUwNDI4Li45YjFi NDM4IDEwMDY0NAogIAkJCQkJCSBjb3BpZWRfdHlwZXMpOwogIH0KICAKLUBAIC0xNTcxLDEzICsx NjM3LDEzIEBAIHByZXNlcnZlX29uZV9pbnRlcm5hbHZhciAoc3RydWN0IGludGVybmFsdmFyICp2 YXIsIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAorQEAgLTE1NzAsMTMgKzE2MzYsMTMgQEAgcHJl c2VydmVfb25lX2ludGVybmFsdmFyIChzdHJ1Y3QgaW50ZXJuYWx2YXIgKnZhciwgc3RydWN0IG9i amZpbGUgKm9iamZpbGUsCiAgICAgIGNhc2UgSU5URVJOQUxWQVJfSU5URUdFUjoKICAgICAgICBp ZiAodmFyLT51LmludGVnZXIudHlwZSAmJiBUWVBFX09CSkZJTEUgKHZhci0+dS5pbnRlZ2VyLnR5 cGUpID09IG9iamZpbGUpCiAgCXZhci0+dS5pbnRlZ2VyLnR5cGUKQEAgLTEyOTM0LDcgKzEyNDMw LDcgQEAgaW5kZXggMWM1MDQyOC4uOWIxYjQzOCAxMDA2NDQKICsgIG9ic2VydmVyX2F0dGFjaF9t YXJrX3VzZWQgKHZhbHVlX3R5cGVzX21hcmtfdXNlZCk7CiAgfQogZGlmZiAtLWdpdCBhL2dkYi92 YWx1ZS5oIGIvZ2RiL3ZhbHVlLmgKLWluZGV4IGU2Mzc4NDIuLjVmMzZhZWYgMTAwNjQ0CitpbmRl eCAxNmY0NjQ2Li41MDFkZjg2IDEwMDY0NAogLS0tIGEvZ2RiL3ZhbHVlLmgKICsrKyBiL2dkYi92 YWx1ZS5oCiBAQCAtMzg5LDYgKzM4OSwxMCBAQCBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9m cm9tX2RvdWJsZSAoc3RydWN0IHR5cGUgKnR5cGUsIERPVUJMRVNUIG51bSk7CkBAIC0xMjk0OCwx MiArMTI0NDQsMyBAQCBpbmRleCBlNjM3ODQyLi41ZjM2YWVmIDEwMDY0NAogIGV4dGVybiBzdHJ1 Y3QgdmFsdWUgKnZhbHVlX2F0IChzdHJ1Y3QgdHlwZSAqdHlwZSwgQ09SRV9BRERSIGFkZHIpOwog IGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX2F0X2xhenkgKHN0cnVjdCB0eXBlICp0eXBlLCBD T1JFX0FERFIgYWRkcik7CiAgCi1AQCAtNzQ5LDcgKzc1Myw3IEBAIGV4dGVybiBzdHJ1Y3QgdmFs dWUgKnZhbHVlX2FsbG9jYXRlX3NwYWNlX2luX2luZmVyaW9yIChpbnQpOwotIGV4dGVybiBzdHJ1 Y3QgdmFsdWUgKnZhbHVlX29mX2xvY2FsIChjb25zdCBjaGFyICpuYW1lLCBpbnQgY29tcGxhaW4p OwotIAotIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAoc3Ry dWN0IHZhbHVlICphcnJheSwKLS0JCQkJCSAgICAgICBMT05HRVNUIGluZGV4LCBpbnQgbG93ZXJi b3VuZCk7Ci0rCQkJCQkgICAgICAgQ09SRV9BRERSIG9mZnNldCk7Ci0gCi0gLyogVXNlciBmdW5j dGlvbiBoYW5kbGVyLiAgKi8KLSAKCmRpZmYgLS1naXQgYS9nZGItYno1NDE4NjYtcndhdGNoLWJl Zm9yZS1ydW4ucGF0Y2ggYi9nZGItYno1NDE4NjYtcndhdGNoLWJlZm9yZS1ydW4ucGF0Y2gKaW5k ZXggZjQ4NWIyZi4uMDczYjZiOSAxMDA2NDQKLS0tIGEvZ2RiLWJ6NTQxODY2LXJ3YXRjaC1iZWZv cmUtcnVuLnBhdGNoCisrKyBiL2dkYi1iejU0MTg2Ni1yd2F0Y2gtYmVmb3JlLXJ1bi5wYXRjaApA QCAtMSw3ICsxLDcgQEAKLUluZGV4OiBnZGItNy4xLjkwLjIwMTAwNzExL2dkYi9jb25maWcvaTM4 Ni9saW51eDY0Lm1oCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvY29uZmlnL2kzODYv bGludXg2NC5taAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEuOTAuMjAxMDA3MTEub3JpZy9nZGIv Y29uZmlnL2kzODYvbGludXg2NC5taAkyMDEwLTA1LTI4IDIwOjUwOjMxLjAwMDAwMDAwMCArMDIw MAotKysrIGdkYi03LjEuOTAuMjAxMDA3MTEvZ2RiL2NvbmZpZy9pMzg2L2xpbnV4NjQubWgJMjAx MC0wNy0xMyAxOTowMjo1NC4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNy4yLjUwLjIwMTEwMTE3 Lm9yaWcvZ2RiL2NvbmZpZy9pMzg2L2xpbnV4NjQubWgJMjAxMC0wNS0yOCAyMDo1MDozMS4wMDAw MDAwMDAgKzAyMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi9jb25maWcvaTM4Ni9saW51 eDY0Lm1oCTIwMTEtMDEtMTcgMTY6MDE6NDguMDAwMDAwMDAwICswMTAwCiBAQCAtMiw3ICsyLDcg QEAKICBOQVRERVBGSUxFUz0gaW5mLXB0cmFjZS5vIGZvcmstY2hpbGQubyBcCiAgCWkzODYtbmF0 Lm8gYW1kNjQtbmF0Lm8gYW1kNjQtbGludXgtbmF0Lm8gbGludXgtbmF0Lm8gXApAQCAtMTEsMTAg KzExLDEwIEBAIEluZGV4OiBnZGItNy4xLjkwLjIwMTAwNzExL2dkYi9jb25maWcvaTM4Ni9saW51 eDY0Lm1oCiAgTkFUX0NERVBTID0gJChzcmNkaXIpL3Byb2Mtc2VydmljZS5saXN0CiAgCiAgIyBU aGUgZHluYW1pY2FsbHkgbG9hZGVkIGxpYnRocmVhZF9kYiBuZWVkcyBhY2Nlc3MgdG8gc3ltYm9s cyBpbiB0aGUKLUluZGV4OiBnZGItNy4xLjkwLjIwMTAwNzExL2dkYi9jb25maWcvaTM4Ni9ubS1s aW51eDY0LmgKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi9jb25maWcvaTM4Ni9ubS1s aW51eDY0LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4w MDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xLjkwLjIwMTAwNzExL2dkYi9jb25maWcvaTM4Ni9u bS1saW51eDY0LmgJMjAxMC0wNy0xMyAxOTowMjoyOC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGIt Ny4yLjUwLjIwMTEwMTE3L2dkYi9jb25maWcvaTM4Ni9ubS1saW51eDY0LmgJMjAxMS0wMS0xNyAx NjowMTo0OC4wMDAwMDAwMDAgKzAxMDAKIEBAIC0wLDAgKzEsMjggQEAKICsvKiBOYXRpdmUgc3Vw cG9ydCBmb3IgR05VL0xpbnV4IGFtZDY0LgogKwpAQCAtNDQsMTEgKzQ0LDExIEBAIEluZGV4OiBn ZGItNy4xLjkwLjIwMTAwNzExL2dkYi9jb25maWcvaTM4Ni9ubS1saW51eDY0LmgKICsjZGVmaW5l IHRhcmdldF9jYW5fdXNlX2hhcmR3YXJlX3dhdGNocG9pbnQodHlwZSwgY250LCBvdCkgMQogKwog KyNlbmRpZiAvKiBOTV9MSU5VWDY0X0ggKi8KLUluZGV4OiBnZGItNy4xLjkwLjIwMTAwNzExL2dk Yi90YXJnZXQuaAorSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL3RhcmdldC5oCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuMS45MC4yMDEwMDcxMS5vcmlnL2dkYi90YXJnZXQuaAkyMDEwLTA3 LTEyIDIzOjA3OjM0LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03LjEuOTAuMjAxMDA3MTEvZ2Ri L3RhcmdldC5oCTIwMTAtMDctMTMgMTk6MDI6MjguMDAwMDAwMDAwICswMjAwCi1AQCAtMTI5OCw4 ICsxMjk4LDEwIEBAIGV4dGVybiBjaGFyICpub3JtYWxfcGlkX3RvX3N0ciAocHRpZF90IHAKKy0t LSBnZGItNy4yLjUwLjIwMTEwMTE3Lm9yaWcvZ2RiL3RhcmdldC5oCTIwMTEtMDEtMTQgMTQ6NDc6 MTUuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvdGFyZ2V0LmgJ MjAxMS0wMS0xNyAxNjowMjowOC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xMzE4LDggKzEzMTgsMTAg QEAgZXh0ZXJuIGNoYXIgKm5vcm1hbF9waWRfdG9fc3RyIChwdGlkX3QgcAogICAgIGJwX2hhcmR3 YXJlX2JyZWFrcG9pbnQuICBDTlQgaXMgdGhlIG51bWJlciBvZiBzdWNoIHdhdGNocG9pbnRzIHVz ZWQgc28gZmFyCiAgICAgKGluY2x1ZGluZyB0aGlzIG9uZT8pLiAgT1RIRVJUWVBFIGlzIHdobyBr bm93cyB3aGF0Li4uICAqLwogIApAQCAtNTcsMTIgKzU3LDEyIEBAIEluZGV4OiBnZGItNy4xLjkw LjIwMTAwNzExL2dkYi90YXJnZXQuaAogICAoKmN1cnJlbnRfdGFyZ2V0LnRvX2Nhbl91c2VfaHdf YnJlYWtwb2ludCkgKFRZUEUsIENOVCwgT1RIRVJUWVBFKTsKICsjZW5kaWYKICAKLSAjZGVmaW5l IHRhcmdldF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQoYWRkciwgbGVuKSBcCi0gICAgICgq Y3VycmVudF90YXJnZXQudG9fcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50KSAoYWRkciwgbGVu KQotSW5kZXg6IGdkYi03LjEuOTAuMjAxMDA3MTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS93YXRj aHBvaW50LWh3LWJlZm9yZS1ydW4uZXhwCisgLyogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGRlYnVn IHJlZ2lzdGVycyBuZWVkZWQgdG8gd2F0Y2ggdGhlIGdpdmVuCisgICAgbWVtb3J5IHJlZ2lvbiwg b3IgemVybyBpZiBub3Qgc3VwcG9ydGVkLiAgKi8KK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTE3 L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvd2F0Y2hwb2ludC1ody1iZWZvcmUtcnVuLmV4cAogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAw MAotKysrIGdkYi03LjEuOTAuMjAxMDA3MTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS93YXRjaHBv aW50LWh3LWJlZm9yZS1ydW4uZXhwCTIwMTAtMDctMTMgMTk6MDI6MjguMDAwMDAwMDAwICswMjAw CisrKysgZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3dhdGNocG9p bnQtaHctYmVmb3JlLXJ1bi5leHAJMjAxMS0wMS0xNyAxNjowMTo0OC4wMDAwMDAwMDAgKzAxMDAK IEBAIC0wLDAgKzEsNDAgQEAKICsjIENvcHlyaWdodCAyMDA5LCAyMDEwIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgogKwoKZGlmZiAtLWdpdCBhL2dkYi1iejU5MjAzMS1zaWdpbmZvLWxv c3QtNG9mNS5wYXRjaCBiL2dkYi1iejU5MjAzMS1zaWdpbmZvLWxvc3QtNG9mNS5wYXRjaAppbmRl eCAyOTA2NDRjLi42MzliMzdkIDEwMDY0NAotLS0gYS9nZGItYno1OTIwMzEtc2lnaW5mby1sb3N0 LTRvZjUucGF0Y2gKKysrIGIvZ2RiLWJ6NTkyMDMxLXNpZ2luZm8tbG9zdC00b2Y1LnBhdGNoCkBA IC03OCwxMSArNzgsMTEgQEAgZ2RiL3Rlc3RzdWl0ZS8KIAkqIGdkYi50aHJlYWRzL3NpZ3N0ZXAt dGhyZWFkcy5leHA6IE5ldyBmaWxlLgogCSogZ2RiLnRocmVhZHMvc2lnc3RlcC10aHJlYWRzLmM6 IE5ldyBmaWxlLgogCi1JbmRleDogZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIvbGludXgtbmF0LmMK K0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi9saW51eC1uYXQuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjIuNTAuMjAxMDExMTYub3JpZy9nZGIvbGludXgtbmF0LmMJMjAxMC0xMS0xNiAw ODoyMTo0Ni4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi9saW51 eC1uYXQuYwkyMDEwLTExLTE2IDA5OjEyOjI2LjAwMDAwMDAwMCArMDEwMAotQEAgLTI3NTksNiAr Mjc1OSw4IEBAIHN0b3Bfd2FpdF9jYWxsYmFjayAoc3RydWN0IGx3cF9pbmZvICpscCwKKy0tLSBn ZGItNy4yLjUwLjIwMTEwMTE3Lm9yaWcvZ2RiL2xpbnV4LW5hdC5jCTIwMTEtMDEtMTcgMTU6NTM6 MTQuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvbGludXgtbmF0 LmMJMjAxMS0wMS0xNyAxNjowNTo1Ny4wMDAwMDAwMDAgKzAxMDAKK0BAIC0yODAzLDYgKzI4MDMs OCBAQCBzdG9wX3dhaXRfY2FsbGJhY2sgKHN0cnVjdCBsd3BfaW5mbyAqbHAsCiAgICAgIHsKICAg ICAgICBpbnQgc3RhdHVzOwogIApAQCAtOTEsNyArOTEsNyBAQCBJbmRleDogZ2RiLTcuMi41MC4y MDEwMTExNi9nZGIvbGludXgtbmF0LmMKICAgICAgICBzdGF0dXMgPSB3YWl0X2x3cCAobHApOwog ICAgICAgIGlmIChzdGF0dXMgPT0gMCkKICAJcmV0dXJuIDA7Ci1AQCAtMjc4MywxMTAgKzI3ODUs NjEgQEAgc3RvcF93YWl0X2NhbGxiYWNrIChzdHJ1Y3QgbHdwX2luZm8gKmxwLAorQEAgLTI4Mjgs MTEwICsyODMwLDYxIEBAIHN0b3Bfd2FpdF9jYWxsYmFjayAoc3RydWN0IGx3cF9pbmZvICpscCwK ICAKICAgICAgICBpZiAoV1NUT1BTSUcgKHN0YXR1cykgIT0gU0lHU1RPUCkKICAJewpAQCAtMTE1 LDcgKzExNSw3IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi9saW51eC1uYXQuYwog LQogLQkgICAgICBzYXZlX3NpZ3RyYXAgKGxwKTsKIC0KLS0JICAgICAgLyogTm93IHJlc3VtZSB0 aGlzIExXUCBhbmQgZ2V0IHRoZSBTSUdTVE9QIGV2ZW50LiAqLworLQkgICAgICAvKiBOb3cgcmVz dW1lIHRoaXMgTFdQIGFuZCBnZXQgdGhlIFNJR1NUT1AgZXZlbnQuICAqLwogLQkgICAgICBlcnJu byA9IDA7CiAtCSAgICAgIHB0cmFjZSAoUFRSQUNFX0NPTlQsIEdFVF9MV1AgKGxwLT5wdGlkKSwg MCwgMCk7CiAtCSAgICAgIGlmIChkZWJ1Z19saW51eF9uYXQpCkBAIC0xMzAsMTMgKzEzMCwxMyBA QCBJbmRleDogZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIvbGludXgtbmF0LmMKIC0JCQkJICAgICAg dGFyZ2V0X3BpZF90b19zdHIgKGxwLT5wdGlkKSk7CiAtCQl9CiAtCSAgICAgIC8qIEhvbGQgdGhp cyBldmVudC93YWl0c3RhdHVzIHdoaWxlIHdlIGNoZWNrIHRvIHNlZSBpZgotLQkJIHRoZXJlIGFy ZSBhbnkgbW9yZSAod2Ugc3RpbGwgd2FudCB0byBnZXQgdGhhdCBTSUdTVE9QKS4gKi8KKy0JCSB0 aGVyZSBhcmUgYW55IG1vcmUgKHdlIHN0aWxsIHdhbnQgdG8gZ2V0IHRoYXQgU0lHU1RPUCkuICAq LwogLQkgICAgICBzdG9wX3dhaXRfY2FsbGJhY2sgKGxwLCBOVUxMKTsKICsJICAvKiBUaGUgdGhy ZWFkIHdhcyBzdG9wcGVkIHdpdGggYSBzaWduYWwgb3RoZXIgdGhhbiBTSUdTVE9QLiAgKi8KICAK IC0JICAgICAgLyogSG9sZCB0aGUgU0lHVFJBUCBmb3IgaGFuZGxpbmcgYnkgbGludXhfbmF0X3dh aXQuICBJZgogLQkJIHRoZXJlJ3MgYW5vdGhlciBldmVudCwgdGhyb3cgaXQgYmFjayBpbnRvIHRo ZQotLQkJIHF1ZXVlLiAqLworLQkJIHF1ZXVlLiAgKi8KIC0JICAgICAgaWYgKGxwLT5zdGF0dXMp CiAtCQl7CiAtCQkgIGlmIChkZWJ1Z19saW51eF9uYXQpCkBAIC0xNDksMTQgKzE0OSwxNCBAQCBJ bmRleDogZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIvbGludXgtbmF0LmMKICsJICAvKiBTYXZlIHRo ZSB0cmFwJ3Mgc2lnaW5mbyBpbiBjYXNlIHdlIG5lZWQgaXQgbGF0ZXIuICAqLwogKwkgIHNhdmVf c2lnaW5mbyAobHApOwogIAotLQkgICAgICAvKiBTYXZlIHRoZSBzaWd0cmFwIGV2ZW50LiAqLwor LQkgICAgICAvKiBTYXZlIHRoZSBzaWd0cmFwIGV2ZW50LiAgKi8KIC0JICAgICAgbHAtPnN0YXR1 cyA9IHN0YXR1czsKIC0JICAgICAgcmV0dXJuIDA7CiAtCSAgICB9CiAtCSAgZWxzZQogLQkgICAg ewogLQkgICAgICAvKiBUaGUgdGhyZWFkIHdhcyBzdG9wcGVkIHdpdGggYSBzaWduYWwgb3RoZXIg dGhhbgotLQkgICAgICAgICBTSUdTVE9QLCBhbmQgZGlkbid0IGFjY2lkZW50YWxseSB0cmlwIGEg YnJlYWtwb2ludC4gKi8KKy0JICAgICAgICAgU0lHU1RPUCwgYW5kIGRpZG4ndCBhY2NpZGVudGFs bHkgdHJpcCBhIGJyZWFrcG9pbnQuICAqLwogKwkgIHNhdmVfc2lndHJhcCAobHApOwogIAogLQkg ICAgICBpZiAoZGVidWdfbGludXhfbmF0KQpAQCAtMTY2LDcgKzE2Niw3IEBAIEluZGV4OiBnZGIt Ny4yLjUwLjIwMTAxMTE2L2dkYi9saW51eC1uYXQuYwogLQkJCQkgICAgICBzdGF0dXNfdG9fc3Ry ICgoaW50KSBzdGF0dXMpLAogLQkJCQkgICAgICB0YXJnZXRfcGlkX3RvX3N0ciAobHAtPnB0aWQp KTsKIC0JCX0KLS0JICAgICAgLyogTm93IHJlc3VtZSB0aGlzIExXUCBhbmQgZ2V0IHRoZSBTSUdT VE9QIGV2ZW50LiAqLworLQkgICAgICAvKiBOb3cgcmVzdW1lIHRoaXMgTFdQIGFuZCBnZXQgdGhl IFNJR1NUT1AgZXZlbnQuICAqLwogLQkgICAgICBlcnJubyA9IDA7CiAtCSAgICAgIHB0cmFjZSAo UFRSQUNFX0NPTlQsIEdFVF9MV1AgKGxwLT5wdGlkKSwgMCwgMCk7CiAtCSAgICAgIGlmIChkZWJ1 Z19saW51eF9uYXQpCkBAIC0xNzYsNyArMTc2LDcgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMDEx MTYvZ2RiL2xpbnV4LW5hdC5jCiAtCQkJCSAgICBlcnJubyA/IHNhZmVfc3RyZXJyb3IgKGVycm5v KSA6ICJPSyIpOwogLQogLQkgICAgICAvKiBIb2xkIHRoaXMgZXZlbnQvd2FpdHN0YXR1cyB3aGls ZSB3ZSBjaGVjayB0byBzZWUgaWYKLS0JICAgICAgICAgdGhlcmUgYXJlIGFueSBtb3JlICh3ZSBz dGlsbCB3YW50IHRvIGdldCB0aGF0IFNJR1NUT1ApLiAqLworLQkgICAgICAgICB0aGVyZSBhcmUg YW55IG1vcmUgKHdlIHN0aWxsIHdhbnQgdG8gZ2V0IHRoYXQgU0lHU1RPUCkuICAqLwogLQkgICAg ICBzdG9wX3dhaXRfY2FsbGJhY2sgKGxwLCBOVUxMKTsKICsJICBpZiAoZGVidWdfbGludXhfbmF0 KQogKwkgICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLApAQCAtMjAyLDcgKzIwMiw3 IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi9saW51eC1uYXQuYwogLQkJbHAtPnN0 YXR1cyA9IHN0YXR1czsKIC0JICAgICAgcmV0dXJuIDA7CiAtCSAgICB9Ci0rCSAgLyogU2F2ZSB0 aGUgc2lndHJhcCBldmVudC4gKi8KKysJICAvKiBTYXZlIHRoZSBzaWd0cmFwIGV2ZW50LiAgKi8K ICsJICBscC0+c3RhdHVzID0gc3RhdHVzOwogKwkgIGdkYl9hc3NlcnQgKCEgbHAtPnN0b3BwZWQp OwogKwkgIGdkYl9hc3NlcnQgKGxwLT5zaWduYWxsZWQpOwpAQCAtMjQ4LDcgKzI0OCw3IEBAIElu ZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi9saW51eC1uYXQuYwogIAkgIGxwLT5zaWduYWxs ZWQgPSAwOwogIAl9CiAgICAgIH0KLUBAIC0zNDY5LDUyICszNDIyLDYgQEAgcmV0cnk6CitAQCAt MzUxNCw1MiArMzQ2Nyw2IEBAIHJldHJ5OgogIAlscCA9IE5VTEw7CiAgICAgIH0KICAKQEAgLTMw MSwxMCArMzAxLDEwIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi9saW51eC1uYXQu YwogICAgaWYgKCF0YXJnZXRfY2FuX2FzeW5jX3AgKCkpCiAgICAgIHsKICAgICAgICAvKiBDYXVz ZXMgU0lHSU5UIHRvIGJlIHBhc3NlZCBvbiB0byB0aGUgYXR0YWNoZWQgcHJvY2Vzcy4gICovCi1J bmRleDogZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3NpZ2lu Zm8tdGhyZWFkcy5jCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvdGVzdHN1aXRlL2dk Yi50aHJlYWRzL3NpZ2luZm8tdGhyZWFkcy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5 NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMi41MC4yMDEwMTEx Ni9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3NpZ2luZm8tdGhyZWFkcy5jCTIwMTAtMTEtMTYg MDk6MDg6NDQuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvdGVz dHN1aXRlL2dkYi50aHJlYWRzL3NpZ2luZm8tdGhyZWFkcy5jCTIwMTEtMDEtMTcgMTY6MDI6NDAu MDAwMDAwMDAwICswMTAwCiBAQCAtMCwwICsxLDQ0NyBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMg cGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC03NTMsMTAgKzc1MywxMCBAQCBJ bmRleDogZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3NpZ2lu Zm8tdGhyZWFkcy5jCiArCiArICByZXR1cm4gRVhJVF9TVUNDRVNTOwogK30KLUluZGV4OiBnZGIt Ny4yLjUwLjIwMTAxMTE2L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvc2lnaW5mby10aHJlYWRz LmV4cAorSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFk cy9zaWdpbmZvLXRocmVhZHMuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEt MDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIv dGVzdHN1aXRlL2dkYi50aHJlYWRzL3NpZ2luZm8tdGhyZWFkcy5leHAJMjAxMC0xMS0xNiAwOTow ODo0NC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi90ZXN0c3Vp dGUvZ2RiLnRocmVhZHMvc2lnaW5mby10aHJlYWRzLmV4cAkyMDExLTAxLTE3IDE2OjAyOjQwLjAw MDAwMDAwMCArMDEwMAogQEAgLTAsMCArMSw5NCBAQAogKyMgQ29weXJpZ2h0IDIwMTAgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC04NTIsMTAgKzg1MiwxMCBAQCBJbmRleDog Z2RiLTcuMi41MC4yMDEwMTExNi9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3NpZ2luZm8tdGhy ZWFkcy5leHAKICt9CiArCiArZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgYnJlYWstYXQtZXhp dCAiLipicmVhay1hdC1leGl0LioiCi1JbmRleDogZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIvdGVz dHN1aXRlL2dkYi50aHJlYWRzL3NpZ3N0ZXAtdGhyZWFkcy5jCitJbmRleDogZ2RiLTcuMi41MC4y MDExMDExNy9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3NpZ3N0ZXAtdGhyZWFkcy5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAw Ci0rKysgZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3NpZ3N0 ZXAtdGhyZWFkcy5jCTIwMTAtMTEtMTYgMDk6MDg6NDQuMDAwMDAwMDAwICswMTAwCisrKysgZ2Ri LTcuMi41MC4yMDExMDExNy9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3NpZ3N0ZXAtdGhyZWFk cy5jCTIwMTEtMDEtMTcgMTY6MDI6NDAuMDAwMDAwMDAwICswMTAwCiBAQCAtMCwwICsxLDU0IEBA CiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsK QEAgLTkxMSwxMCArOTExLDEwIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi90ZXN0 c3VpdGUvZ2RiLnRocmVhZHMvc2lnc3RlcC10aHJlYWRzLmMKICsgIHN0YXJ0IChOVUxMKTsJLyog bWFpbi1zdGFydCAqLwogKyAgcmV0dXJuIDA7CiArfQotSW5kZXg6IGdkYi03LjIuNTAuMjAxMDEx MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9zaWdzdGVwLXRocmVhZHMuZXhwCitJbmRleDog Z2RiLTcuMi41MC4yMDExMDExNy9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3NpZ3N0ZXAtdGhy ZWFkcy5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4w MDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi90ZXN0c3VpdGUvZ2Ri LnRocmVhZHMvc2lnc3RlcC10aHJlYWRzLmV4cAkyMDEwLTExLTE2IDA5OjA4OjQ0LjAwMDAwMDAw MCArMDEwMAorKysrIGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFk cy9zaWdzdGVwLXRocmVhZHMuZXhwCTIwMTEtMDEtMTcgMTY6MDI6NDAuMDAwMDAwMDAwICswMTAw CiBAQCAtMCwwICsxLDc0IEBACiArIyBDb3B5cmlnaHQgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KICsKCmRpZmYgLS1naXQgYS9nZGItZm9ydHJhbi1jb21tb24tcmVkdWNlLnBh dGNoIGIvZ2RiLWZvcnRyYW4tY29tbW9uLXJlZHVjZS5wYXRjaAppbmRleCAyZGYzZDNiLi5mZTEx OTlmIDEwMDY0NAotLS0gYS9nZGItZm9ydHJhbi1jb21tb24tcmVkdWNlLnBhdGNoCisrKyBiL2dk Yi1mb3J0cmFuLWNvbW1vbi1yZWR1Y2UucGF0Y2gKQEAgLTEsNyArMSw3IEBACi1JbmRleDogZ2Ri LTcuMi41MC4yMDExMDEwNy9nZGIvZi1sYW5nLmMKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTE3 L2dkYi9mLWxhbmcuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjIuNTAuMjAxMTAxMDcub3JpZy9n ZGIvZi1sYW5nLmMJMjAxMS0wMS0wNSAyMzoyMjo0OC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGIt Ny4yLjUwLjIwMTEwMTA3L2dkYi9mLWxhbmcuYwkyMDExLTAxLTA3IDA5OjA4OjUyLjAwMDAwMDAw MCArMDEwMAorLS0tIGdkYi03LjIuNTAuMjAxMTAxMTcub3JpZy9nZGIvZi1sYW5nLmMJMjAxMS0w MS0wNyAyMDozNjoxNi4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTE3L2dk Yi9mLWxhbmcuYwkyMDExLTAxLTE3IDE1OjU2OjA3LjAwMDAwMDAwMCArMDEwMAogQEAgLTU3LDIw ICs1Nyw2IEBAIHR5cGVkZWYgc3RydWN0IHNhdmVkX2JmX3N5bW51bSBTQVZFRF9CRiwKICAvKiBM b2NhbCBmdW5jdGlvbnMgKi8KICAKQEAgLTc3LDEwICs3NywxMCBAQCBJbmRleDogZ2RiLTcuMi41 MC4yMDExMDEwNy9nZGIvZi1sYW5nLmMKIC0JCQkJCQkgICAgICAgYWJvdmUgbGlzdC4gICovCiAt CiAtc3RhdGljIFNBVkVEX0JGX1BUUiB0bXBfYmZfcHRyOwkvKiBHZW5lcmljIHRlbXBvcmFyeSBm b3IgdXNlIAotLQkJCQkgICBpbiBtYWNyb3MgKi8KKy0JCQkJICAgaW4gbWFjcm9zLiAgKi8KIC0K IC0vKiBUaGUgZm9sbG93aW5nIGZ1bmN0aW9uIHNpbXBseSBlbnRlcnMgYSBnaXZlbiBjb21tb24g YmxvY2sgb250byAKLS0gICB0aGUgZ2xvYmFsIGNvbW1vbiBibG9jayBjaGFpbiAqLworLSAgIHRo ZSBnbG9iYWwgY29tbW9uIGJsb2NrIGNoYWluLiAgKi8KIC0KIC1zdGF0aWMgdm9pZAogLWFkZF9j b21tb25fYmxvY2sgKGNoYXIgKm5hbWUsIENPUkVfQUREUiBvZmZzZXQsIGludCBzZWNudW0sIGNo YXIgKmZ1bmNfc3RhYikKQEAgLTkxLDcgKzkxLDcgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAx MDcvZ2RiL2YtbGFuZy5jCiAtICAvKiBJZiB0aGUgQ09NTU9OIGJsb2NrIHdlIGFyZSB0cnlpbmcg dG8gYWRkIGhhcyBhIGJsYW5rIAogLSAgICAgbmFtZSAoaS5lLiAiI0JMTktfQ09NIikgdGhlbiB3 ZSBzZXQgaXQgdG8gX19CTEFOSwogLSAgICAgYmVjYXVzZSB0aGUgZGFybiAiIyIgY2hhcmFjdGVy IG1ha2VzIEdEQidzIGlucHV0IAotLSAgICAgcGFyc2VyIGhhdmUgZml0cy4gKi8KKy0gICAgIHBh cnNlciBoYXZlIGZpdHMuICAqLwogLQogLQogLSAgaWYgKHN0cmNtcCAobmFtZSwgQkxBTktfQ09N TU9OX05BTUVfT1JJR0lOQUwpID09IDAKQEAgLTExMSw3ICsxMTEsNyBAQCBJbmRleDogZ2RiLTcu Mi41MC4yMDExMDEwNy9nZGIvZi1sYW5nLmMKIC0gIHRtcC0+bmFtZSA9IHhtYWxsb2MgKHN0cmxl biAobmFtZSkgKyAxKTsKIC0KIC0gIC8qIGxvY2FsX2NvcHlfZnVuY19zdGFiIGlzIGEgc3RhYnN0 cmluZywgbGV0IHVzIGZpcnN0IGV4dHJhY3QgdGhlIAotLSAgICAgZnVuY3Rpb24gbmFtZSBmcm9t IHRoZSBzdGFiIGJ5IE5VTExpbmcgb3V0IHRoZSAnOicgY2hhcmFjdGVyLiAqLworLSAgICAgZnVu Y3Rpb24gbmFtZSBmcm9tIHRoZSBzdGFiIGJ5IE5VTExpbmcgb3V0IHRoZSAnOicgY2hhcmFjdGVy LiAgKi8KIC0KIC0KIC0gIGMgPSBOVUxMOwpAQCAtMTQ4LDcgKzE0OCw3IEBAIEluZGV4OiBnZGIt Ny4yLjUwLjIwMTEwMTA3L2dkYi9mLWxhbmcuYwogLSNlbmRpZgogLQogLS8qIFRoZSBmb2xsb3dp bmcgZnVuY3Rpb24gc2ltcGx5IGVudGVycyBhIGdpdmVuIGNvbW1vbiBlbnRyeSBvbnRvIAotLSAg IHRoZSAiY3VycmVudF9jb21tb24iIGJsb2NrIHRoYXQgaGFzIGJlZW4gc2F2ZWQgYXdheS4gKi8K Ky0gICB0aGUgImN1cnJlbnRfY29tbW9uIiBibG9jayB0aGF0IGhhcyBiZWVuIHNhdmVkIGF3YXku ICAqLwogLQogLSNpZiAwCiAtc3RhdGljIHZvaWQKQEAgLTE2MCw3ICsxNjAsNyBAQCBJbmRleDog Z2RiLTcuMi41MC4yMDExMDEwNy9nZGIvZi1sYW5nLmMKIC0KIC0gIC8qIFRoZSBvcmRlciBvZiB0 aGlzIGxpc3QgaXMgaW1wb3J0YW50LCBzaW5jZSAKIC0gICAgIHdlIGV4cGVjdCB0aGUgZW50cmll cyB0byBhcHBlYXIgaW4gZGVjbC4KLS0gICAgIG9yZGVyIHdoZW4gd2UgbGF0ZXIgaXNzdWUgImlu Zm8gY29tbW9uIiBjYWxscyAqLworLSAgICAgb3JkZXIgd2hlbiB3ZSBsYXRlciBpc3N1ZSAiaW5m byBjb21tb24iIGNhbGxzLiAgKi8KIC0KIC0gIHRtcCA9IGFsbG9jYXRlX2NvbW1vbl9lbnRyeV9u b2RlICgpOwogLQpAQCAtMTg1LDcgKzE4NSw3IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3 L2dkYi9mLWxhbmcuYwogLX0KIC0jZW5kaWYKIC0KLS0vKiBUaGlzIHJvdXRpbmUgZmluZHMgdGhl IGZpcnN0IGVuY291bnRyZWQgQ09NTU9OIGJsb2NrIG5hbWVkICJuYW1lIiAqLworLS8qIFRoaXMg cm91dGluZSBmaW5kcyB0aGUgZmlyc3QgZW5jb3VudHJlZCBDT01NT04gYmxvY2sgbmFtZWQgIm5h bWUiLiAgKi8KIC0KIC0jaWYgMAogLXN0YXRpYyBTQVZFRF9GNzdfQ09NTU9OX1BUUgpAQCAtMjA4 LDcgKzIwOCw3IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9mLWxhbmcuYwogLSNl bmRpZgogIAogIC8qIFRoaXMgcm91dGluZSBmaW5kcyB0aGUgZmlyc3QgZW5jb3VudHJlZCBDT01N T04gYmxvY2sgbmFtZWQgIm5hbWUiIAotICAgIHRoYXQgYmVsb25ncyB0byBmdW5jdGlvbiBmdW5j bmFtZSAqLworICAgIHRoYXQgYmVsb25ncyB0byBmdW5jdGlvbiBmdW5jbmFtZS4gICovCiBAQCAt NjYyLDE5MyArNDcwLDMgQEAgZmluZF9jb21tb25fZm9yX2Z1bmN0aW9uIChjaGFyICpuYW1lLCBj aAogICAgICB9CiAgICByZXR1cm4gKE5VTEwpOwpAQCAtMjI2LDcgKzIyNiw3IEBAIEluZGV4OiBn ZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9mLWxhbmcuYwogLXsKIC0gIENPTU1PTl9FTlRSWV9QVFIg ZW50cnk7CiAtCi0tICBibGstPm9mZnNldCA9IG9mZnNldDsJCS8qIEtlZXAgdGhpcyBhcm91bmQg Zm9yIGZ1dHVyZSB1c2UuICovCistICBibGstPm9mZnNldCA9IG9mZnNldDsJCS8qIEtlZXAgdGhp cyBhcm91bmQgZm9yIGZ1dHVyZSB1c2UuICAqLwogLQogLSAgZW50cnkgPSBibGstPmVudHJpZXM7 CiAtCkBAIC0yNDQsNyArMjQ0LDcgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL2Yt bGFuZy5jCiAtICAgYmxvY2tzIG9jY3VyIHdpdGggcmVsYXRpdmUgaW5mcmVxdWVuY3ksIHdlIHNp bXBseSBkbyBhIGxpbmVhciBzY2FuIG9uCiAtICAgdGhlIG5hbWUuICBFdmVudHVhbGx5LCB0aGUg YmVzdCB3YXkgdG8gZG8gdGhpcyB3aWxsIGJlIGEKIC0gICBoYXNoZWQtbG9va3VwLiAgU2VjbnVt IGlzIHRoZSBzZWN0aW9uIG51bWJlciBmb3IgdGhlIC5ic3Mgc2VjdGlvbgotLSAgICh3aGljaCBp cyB3aGVyZSBjb21tb24gZGF0YSBsaXZlcykuICovCistICAgKHdoaWNoIGlzIHdoZXJlIGNvbW1v biBkYXRhIGxpdmVzKS4gICovCiAtCiAtc3RhdGljIHZvaWQKIC1wYXRjaF9hbGxfY29tbW9uc19i eV9uYW1lIChjaGFyICpuYW1lLCBDT1JFX0FERFIgb2Zmc2V0LCBpbnQgc2VjbnVtKQpAQCAtMjgy LDcgKzI4Miw3IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9mLWxhbmcuYwogLSAg ICNsaW5lIHByYWdtYXMgc29tZXRpbWVzIGNhdXNlIGxpbmUgcmFuZ2VzIHRvIGdldCBtZXNzZWQg dXAgCiAtICAgd2Ugc2ltcGx5IGNyZWF0ZSBhIGxpbmVhciBsaXN0LiAgVGhpcyBsaXN0IGNhbiB0 aGVuIGJlIHNlYXJjaGVkIAogLSAgIGZpcnN0IGJ5IGEgcXVldWVpbmcgYWxnb3JpdGhtIGFuZCB1 cG9uIGZhaWx1cmUgZmFsbCBiYWNrIHRvIAotLSAgIGEgbGluZWFyIHNjYW4uICovCistICAgYSBs aW5lYXIgc2Nhbi4gICovCiAtCiAtI2lmIDAKIC0jZGVmaW5lIEFERF9CRl9TWU1OVU0oYmZfc3lt LGZjbl9zeW0pIFwKQEAgLTMxMSw3ICszMTEsNyBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDExMDEw Ny9nZGIvZi1sYW5nLmMKIC0JCSAgIH0KIC0jZW5kaWYKIC0KLS0vKiBUaGlzIGZ1bmN0aW9uIGZy ZWVzIHRoZSBlbnRpcmUgKC5iZixmdW5jdGlvbikgbGlzdCAqLworLS8qIFRoaXMgZnVuY3Rpb24g ZnJlZXMgdGhlIGVudGlyZSAoLmJmLGZ1bmN0aW9uKSBsaXN0LiAgKi8KIC0KIC0jaWYgMAogLXN0 YXRpYyB2b2lkCkBAIC0zNDIsNyArMzQyLDcgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMDcv Z2RiL2YtbGFuZy5jCiAtICBpbnQgbnByb2JlcyA9IDA7CiAtCiAtICAvKiBGaXJzdCB1c2UgYSBz aW1wbGUgcXVldWluZyBhbGdvcml0aG0gKGkuZS4gbG9vayBhbmQgc2VlIGlmIHRoZSAKLS0gICAg IGl0ZW0gYXQgdGhlIGhlYWQgb2YgdGhlIHF1ZXVlIGlzIHRoZSBvbmUgeW91IHdhbnQpICAqLwor LSAgICAgaXRlbSBhdCB0aGUgaGVhZCBvZiB0aGUgcXVldWUgaXMgdGhlIG9uZSB5b3Ugd2FudCku ICAqLwogLQogLSAgaWYgKHNhdmVkX2JmX2xpc3QgPT0gTlVMTCkKIC0gICAgaW50ZXJuYWxfZXJy b3IgKF9fRklMRV9fLCBfX0xJTkVfXywKQEAgLTM2MSw3ICszNjEsNyBAQCBJbmRleDogZ2RiLTcu Mi41MC4yMDExMDEwNy9nZGIvZi1sYW5nLmMKIC0KIC0gIC8qIElmIHRoZSBhYm92ZSBkaWQgbm90 IHdvcmsgKHByb2JhYmx5IGJlY2F1c2UgI2xpbmUgZGlyZWN0aXZlcyB3ZXJlIAogLSAgICAgdXNl ZCBpbiB0aGUgc291cmNlZmlsZSBhbmQgdGhleSBtZXNzZWQgdXAgb3VyIGludGVybmFsIHRhYmxl cykgd2Ugbm93IGRvCi0tICAgICB0aGUgdWdseSBsaW5lYXIgc2NhbiAqLworLSAgICAgdGhlIHVn bHkgbGluZWFyIHNjYW4uICAqLwogLQogLSAgaWYgKGdsb2JhbF9yZW1vdGVfZGVidWcpCiAtICAg IGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGVyciwgIlxuZGVmYXVsdGluZyB0byBsaW5lYXIg c2NhblxuIik7CkBAIC00MDMsMTAgKzQwMywxMCBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDExMDEw Ny9nZGIvZi1sYW5nLmMKIC0gIHNhdmVkX2Z1bmN0aW9uX2xpc3QgPSBOVUxMOwogLX0KIC0jZW5k aWYKLUluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9mLWxhbmcuaAorSW5kZXg6IGdkYi03 LjIuNTAuMjAxMTAxMTcvZ2RiL2YtbGFuZy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMi41MC4y MDExMDEwNy5vcmlnL2dkYi9mLWxhbmcuaAkyMDExLTAxLTA3IDA5OjAzOjM4LjAwMDAwMDAwMCAr MDEwMAotKysrIGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL2YtbGFuZy5oCTIwMTEtMDEtMDcgMDk6 MDc6NTguMDAwMDAwMDAwICswMTAwCistLS0gZ2RiLTcuMi41MC4yMDExMDExNy5vcmlnL2dkYi9m LWxhbmcuaAkyMDExLTAxLTE3IDE1OjQ3OjM3LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIu NTAuMjAxMTAxMTcvZ2RiL2YtbGFuZy5oCTIwMTEtMDEtMTcgMTU6NTQ6MTQuMDAwMDAwMDAwICsw MTAwCiBAQCAtNzYsMTQgKzc2LDkgQEAgdHlwZWRlZiBzdHJ1Y3Qgc2F2ZWRfZjc3X2NvbW1vbiBT QVZFRF9GNwogIHR5cGVkZWYgc3RydWN0IGNvbW1vbl9lbnRyeSBDT01NT05fRU5UUlksICpDT01N T05fRU5UUllfUFRSOwogIApAQCAtNDIyLDEwICs0MjIsMTAgQEAgSW5kZXg6IGdkYi03LjIuNTAu MjAxMTAxMDcvZ2RiL2YtbGFuZy5oCiAgI2RlZmluZSBCTEFOS19DT01NT05fTkFNRV9PUklHSU5B TCAiI0JMTktfQ09NIgkvKiBYTEYgYXNzaWduZWQgICovCiAgI2RlZmluZSBCTEFOS19DT01NT05f TkFNRV9NRjc3ICAgICAiX19CTE5LX18iCS8qIE1GNzcgYXNzaWduZWQgICovCiAgI2RlZmluZSBC TEFOS19DT01NT05fTkFNRV9MT0NBTCAgICAiX19CTEFOSyIJLyogTG9jYWwgR0RCICovCi1JbmRl eDogZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvZi12YWxwcmludC5jCitJbmRleDogZ2RiLTcuMi41 MC4yMDExMDExNy9nZGIvZi12YWxwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMi41MC4y MDExMDEwNy5vcmlnL2dkYi9mLXZhbHByaW50LmMJMjAxMS0wMS0wNyAwOTowMzozOC4wMDAwMDAw MDAgKzAxMDAKLSsrKyBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9mLXZhbHByaW50LmMJMjAxMS0w MS0wNyAwOTowNzo1OC4wMDAwMDAwMDAgKzAxMDAKKy0tLSBnZGItNy4yLjUwLjIwMTEwMTE3Lm9y aWcvZ2RiL2YtdmFscHJpbnQuYwkyMDExLTAxLTE3IDE1OjQ3OjM3LjAwMDAwMDAwMCArMDEwMAor KysrIGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL2YtdmFscHJpbnQuYwkyMDExLTAxLTE3IDE1OjU0 OjM2LjAwMDAwMDAwMCArMDEwMAogQEAgLTM1LDEwICszNSw2IEBACiAgI2luY2x1ZGUgImNvbW1h bmQuaCIKICAjaW5jbHVkZSAiYmxvY2suaCIKQEAgLTQ0Miw3ICs0NDIsNyBAQCBJbmRleDogZ2Ri LTcuMi41MC4yMDExMDEwNy9nZGIvZi12YWxwcmludC5jCiAgfQogIAogLS8qIFRoaXMgZnVuY3Rp b24gaXMgdXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciB0aGVyZSBpcyBhCi0tICAgRjc3IGNvbW1v biBibG9jayB2aXNpYmxlIGF0IHRoZSBjdXJyZW50IHNjb3BlIGNhbGxlZCAnY29tbmFtZScuICov CistICAgRjc3IGNvbW1vbiBibG9jayB2aXNpYmxlIGF0IHRoZSBjdXJyZW50IHNjb3BlIGNhbGxl ZCAnY29tbmFtZScuICAqLwogLQogLSNpZiAwCiAtc3RhdGljIGludApAQCAtNDU5LDcgKzQ1OSw3 IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9mLXZhbHByaW50LmMKIC0gIGZpID0g Z2V0X3NlbGVjdGVkX2ZyYW1lIChfKCJObyBmcmFtZSBzZWxlY3RlZCIpKTsKIC0KIC0gIC8qIFRo ZSBmb2xsb3dpbmcgaXMgZ2VuZXJhbGx5IHJpcHBlZCBvZmYgZnJvbSBzdGFjay5jJ3Mgcm91dGlu ZSAKLS0gICAgIHByaW50X2ZyYW1lX2luZm8oKSAqLworLSAgICAgcHJpbnRfZnJhbWVfaW5mbygp LiAgKi8KIC0KIC0gIGZ1bmMgPSBmaW5kX3BjX2Z1bmN0aW9uIChmaS0+cGMpOwogLSAgaWYgKGZ1 bmMpCkBAIC00NzYsNyArNDc2LDcgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL2Yt dmFscHJpbnQuYwogLSAgICAgICAgIHVwIHdpdGggYSBsYXJnZXIgYWRkcmVzcyBmb3IgdGhlIGZ1 bmN0aW9uIHVzZSB0aGF0IGluc3RlYWQuCiAtICAgICAgICAgSSBkb24ndCB0aGluayB0aGlzIGNh biBldmVyIGNhdXNlIGFueSBwcm9ibGVtczsgdGhlcmUgc2hvdWxkbid0CiAtICAgICAgICAgYmUg YW55IG1pbmltYWwgc3ltYm9scyBpbiB0aGUgbWlkZGxlIG9mIGEgZnVuY3Rpb24uCi0tICAgICAg ICAgRklYTUU6ICAoTm90IG5lY2Vzc2FyaWx5IHRydWUuICBXaGF0IGFib3V0IHRleHQgbGFiZWxz KSAqLworLSAgICAgICAgIEZJWE1FOiAgKE5vdCBuZWNlc3NhcmlseSB0cnVlLiAgV2hhdCBhYm91 dCB0ZXh0IGxhYmVscz8pICAqLwogLQogLSAgICAgIHN0cnVjdCBtaW5pbWFsX3N5bWJvbCAqbXN5 bWJvbCA9IGxvb2t1cF9taW5pbWFsX3N5bWJvbF9ieV9wYyAoZmktPnBjKTsKIC0KCmRpZmYgLS1n aXQgYS9nZGItZm9ydHJhbi1jb21tb24ucGF0Y2ggYi9nZGItZm9ydHJhbi1jb21tb24ucGF0Y2gK aW5kZXggYTcwYjc4MC4uYWNjMzYyMiAxMDA2NDQKLS0tIGEvZ2RiLWZvcnRyYW4tY29tbW9uLnBh dGNoCisrKyBiL2dkYi1mb3J0cmFuLWNvbW1vbi5wYXRjaApAQCAtMSw4ICsxLDggQEAKLUluZGV4 OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi9kd2FyZjJyZWFkLmMKK0luZGV4OiBnZGItNy4yLjUw LjIwMTEwMTE3L2dkYi9kd2FyZjJyZWFkLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4yLjUwLjIw MTAxMTE2Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDEwLTExLTE2IDA4OjE5OjU0LjAwMDAwMDAw MCArMDEwMAotKysrIGdkYi03LjIuNTAuMjAxMDExMTYvZ2RiL2R3YXJmMnJlYWQuYwkyMDEwLTEx LTE2IDA4OjI1OjIxLjAwMDAwMDAwMCArMDEwMAotQEAgLTczMTUsMTIgKzczMTUsMTQgQEAgcmVh ZF9zZXRfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cgorLS0tIGdkYi03LjIuNTAuMjAx MTAxMTcub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMTEtMDEtMTcgMTU6NTA6NDEuMDAwMDAwMDAw ICswMTAwCisrKysgZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvZHdhcmYycmVhZC5jCTIwMTEtMDEt MTcgMTU6NTY6MjMuMDAwMDAwMDAwICswMTAwCitAQCAtNzQ2NSwxMiArNzQ2NSwxNCBAQCByZWFk X3NldF90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RyCiAgICByZXR1cm4gc2V0X2RpZV90 eXBlIChkaWUsIHNldF90eXBlLCBjdSk7CiAgfQogIApAQCAtMTksNyArMTksNyBAQCBJbmRleDog Z2RiLTcuMi41MC4yMDEwMTExNi9nZGIvZHdhcmYycmVhZC5jCiAgICBzdHJ1Y3QgYXR0cmlidXRl ICphdHRyOwogICAgc3RydWN0IHN5bWJvbCAqc3ltOwogICAgQ09SRV9BRERSIGJhc2UgPSAoQ09S RV9BRERSKSAwOwotQEAgLTczNDUsMTAgKzczNDcsNDAgQEAgcmVhZF9jb21tb25fYmxvY2sgKHN0 cnVjdCBkaWVfaW5mbyAqZGllLAorQEAgLTc0OTUsMTAgKzc0OTcsNDAgQEAgcmVhZF9jb21tb25f YmxvY2sgKHN0cnVjdCBkaWVfaW5mbyAqZGllLAogICAgICB9CiAgICBpZiAoZGllLT5jaGlsZCAh PSBOVUxMKQogICAgICB7CkBAIC02MCw3ICs2MCw3IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAx MTE2L2dkYi9kd2FyZjJyZWFkLmMKICAJICBhdHRyID0gZHdhcmYyX2F0dHIgKGNoaWxkX2RpZSwg RFdfQVRfZGF0YV9tZW1iZXJfbG9jYXRpb24sIGN1KTsKICAJICBpZiAoc3ltICE9IE5VTEwgJiYg YXR0ciAhPSBOVUxMKQogIAkgICAgewotQEAgLTczNjYsOCArNzM5OCwyNSBAQCByZWFkX2NvbW1v bl9ibG9jayAoc3RydWN0IGRpZV9pbmZvICpkaWUsCitAQCAtNzUxNiw4ICs3NTQ4LDI1IEBAIHJl YWRfY29tbW9uX2Jsb2NrIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwKICAJICAgICAgU1lNQk9MX1ZB TFVFX0FERFJFU1MgKHN5bSkgPSBiYXNlICsgYnl0ZV9vZmZzZXQ7CiAgCSAgICAgIGFkZF9zeW1i b2xfdG9fbGlzdCAoc3ltLCAmZ2xvYmFsX3N5bWJvbHMpOwogIAkgICAgfQpAQCAtODYsNyArODYs NyBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIvZHdhcmYycmVhZC5jCiAgICAgIH0K ICB9CiAgCi1AQCAtMTA5NTQsNiArMTEwMDMsMTMgQEAgbmV3X3N5bWJvbF9mdWxsIChzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwgcworQEAgLTExMTExLDYgKzExMTYwLDEzIEBAIG5ld19zeW1ib2xfZnVs bCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHMKICAJICAgIHsKICAJICAgICAgdmFyX2RlY29kZV9s b2NhdGlvbiAoYXR0ciwgc3ltLCBjdSk7CiAgCSAgICAgIGF0dHIyID0gZHdhcmYyX2F0dHIgKGRp ZSwgRFdfQVRfZXh0ZXJuYWwsIGN1KTsKQEAgLTEwMCw3ICsxMDAsNyBAQCBJbmRleDogZ2RiLTcu Mi41MC4yMDEwMTExNi9nZGIvZHdhcmYycmVhZC5jCiAgCSAgICAgIGlmIChTWU1CT0xfQ0xBU1Mg KHN5bSkgPT0gTE9DX1NUQVRJQwogIAkJICAmJiBTWU1CT0xfVkFMVUVfQUREUkVTUyAoc3ltKSA9 PSAwCiAgCQkgICYmICFkd2FyZjJfcGVyX29iamZpbGUtPmhhc19zZWN0aW9uX2F0X3plcm8pCi1A QCAtMTExMjYsNiArMTExODIsMTEgQEAgbmV3X3N5bWJvbF9mdWxsIChzdHJ1Y3QgZGllX2luZm8g KmRpZSwgcworQEAgLTExMjgzLDYgKzExMzM5LDExIEBAIG5ld19zeW1ib2xfZnVsbCAoc3RydWN0 IGRpZV9pbmZvICpkaWUsIHMKICAJICBTWU1CT0xfQ0xBU1MgKHN5bSkgPSBMT0NfVFlQRURFRjsK ICAJICBsaXN0X3RvX2FkZCA9ICZnbG9iYWxfc3ltYm9sczsKICAJICBicmVhazsKQEAgLTExMiwx MSArMTEyLDExIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi9kd2FyZjJyZWFkLmMK ICAJZGVmYXVsdDoKICAJICAvKiBOb3QgYSB0YWcgd2UgcmVjb2duaXplLiAgSG9wZWZ1bGx5IHdl IGFyZW4ndCBwcm9jZXNzaW5nCiAgCSAgICAgdHJhc2ggZGF0YSwgYnV0IHNpbmNlIHdlIG11c3Qg c3BlY2lmaWNhbGx5IGlnbm9yZSB0aGluZ3MKLUluZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dk Yi9mLWxhbmcuYworSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL2YtbGFuZy5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuMi41MC4yMDEwMTExNi5vcmlnL2dkYi9mLWxhbmcuYwkyMDEwLTEx LTE2IDA4OjIxOjQ2LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjIuNTAuMjAxMDExMTYvZ2Ri L2YtbGFuZy5jCTIwMTAtMTEtMTYgMDg6MjI6MDUuMDAwMDAwMDAwICswMTAwCi1AQCAtNDQzLDI3 ICs0NDMsMyBAQCBfaW5pdGlhbGl6ZV9mX2xhbmd1YWdlICh2b2lkKQorLS0tIGdkYi03LjIuNTAu MjAxMTAxMTcub3JpZy9nZGIvZi1sYW5nLmMJMjAxMS0wMS0xNyAxNTo1NjowNy4wMDAwMDAwMDAg KzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi9mLWxhbmcuYwkyMDExLTAxLTE3IDE1 OjU2OjQ4LjAwMDAwMDAwMCArMDEwMAorQEAgLTQ0NiwyNyArNDQ2LDMgQEAgX2luaXRpYWxpemVf Zl9sYW5ndWFnZSAodm9pZCkKICAKICAgIGFkZF9sYW5ndWFnZSAoJmZfbGFuZ3VhZ2VfZGVmbik7 CiAgfQpAQCAtMTI0LDcgKzEyNCw3IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi9m LWxhbmcuYwogLVNBVkVEX0Y3N19DT01NT05fUFRSIGhlYWRfY29tbW9uX2xpc3QgPSBOVUxMOwkv KiBQdHIgdG8gMXN0IHNhdmVkIENPTU1PTiAgKi8KIC0KIC0vKiBUaGlzIHJvdXRpbmUgZmluZHMg dGhlIGZpcnN0IGVuY291bnRyZWQgQ09NTU9OIGJsb2NrIG5hbWVkICJuYW1lIiAKLS0gICB0aGF0 IGJlbG9uZ3MgdG8gZnVuY3Rpb24gZnVuY25hbWUgKi8KKy0gICB0aGF0IGJlbG9uZ3MgdG8gZnVu Y3Rpb24gZnVuY25hbWUuICAqLwogLQogLVNBVkVEX0Y3N19DT01NT05fUFRSCiAtZmluZF9jb21t b25fZm9yX2Z1bmN0aW9uIChjaGFyICpuYW1lLCBjaGFyICpmdW5jbmFtZSkKQEAgLTE0NCwxMCAr MTQ0LDEwIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi9mLWxhbmcuYwogLSAgICB9 CiAtICByZXR1cm4gKE5VTEwpOwogLX0KLUluZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi9m LWxhbmcuaAorSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL2YtbGFuZy5oCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuMi41MC4yMDEwMTExNi5vcmlnL2dkYi9mLWxhbmcuaAkyMDEwLTExLTE2 IDA4OjIxOjQ2LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjIuNTAuMjAxMDExMTYvZ2RiL2Yt bGFuZy5oCTIwMTAtMTEtMTYgMDg6MjI6MDUuMDAwMDAwMDAwICswMTAwCistLS0gZ2RiLTcuMi41 MC4yMDExMDExNy5vcmlnL2dkYi9mLWxhbmcuaAkyMDExLTAxLTE3IDE1OjU0OjE0LjAwMDAwMDAw MCArMDEwMAorKysrIGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL2YtbGFuZy5oCTIwMTEtMDEtMTcg MTU6NTY6MjMuMDAwMDAwMDAwICswMTAwCiBAQCAtNTIsMzYgKzUyLDggQEAgZW51bSBmOTBfcmFu Z2VfdHlwZQogICAgICBOT05FX0JPVU5EX0RFRkFVTFQJCS8qICIobG93OmhpZ2gpIiAgKi8KICAg IH07CkBAIC0xODUsMTAgKzE4NSwxMCBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIv Zi1sYW5nLmgKICAKICAvKiBXaGVuIHJlYXNvbmFibGUgYXJyYXkgYm91bmRzIGNhbm5vdCBiZSBm ZXRjaGVkLCBzdWNoIGFzIHdoZW4gCiAgICAgeW91IGFzayB0byAnbXQgcHJpbnQgc3ltYm9scycg YW5kIHRoZXJlIGlzIG5vIHN0YWNrIGZyYW1lIGFuZCAKLUluZGV4OiBnZGItNy4yLjUwLjIwMTAx MTE2L2dkYi9mLXZhbHByaW50LmMKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi9mLXZh bHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4yLjUwLjIwMTAxMTE2Lm9yaWcvZ2RiL2Yt dmFscHJpbnQuYwkyMDEwLTExLTE2IDA4OjIxOjQ2LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03 LjIuNTAuMjAxMDExMTYvZ2RiL2YtdmFscHJpbnQuYwkyMDEwLTExLTE2IDA4OjIyOjA1LjAwMDAw MDAwMCArMDEwMAorLS0tIGdkYi03LjIuNTAuMjAxMTAxMTcub3JpZy9nZGIvZi12YWxwcmludC5j CTIwMTEtMDEtMTcgMTU6NTQ6MzYuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi41MC4yMDEx MDExNy9nZGIvZi12YWxwcmludC5jCTIwMTEtMDEtMTcgMTU6NTk6MzguMDAwMDAwMDAwICswMTAw CiBAQCAtMzQsNiArMzQsOCBAQAogICNpbmNsdWRlICJnZGJjb3JlLmgiCiAgI2luY2x1ZGUgImNv bW1hbmQuaCIKQEAgLTE5OCw3ICsxOTgsNyBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDEwMTExNi9n ZGIvZi12YWxwcmludC5jCiAgCiAgZXh0ZXJuIHZvaWQgX2luaXRpYWxpemVfZl92YWxwcmludCAo dm9pZCk7CiAgc3RhdGljIHZvaWQgaW5mb19jb21tb25fY29tbWFuZCAoY2hhciAqLCBpbnQpOwot QEAgLTQ4NiwyMiArNDg4LDU0IEBAIGZfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29u c3QgZ2QKK0BAIC00ODksMjIgKzQ5MSw1NCBAQCBmX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5 cGUsIGNvbnN0IGdkCiAgICByZXR1cm4gMDsKICB9CiAgCkBAIC0yNjYsNyArMjY2LDcgQEAgSW5k ZXg6IGdkYi03LjIuNTAuMjAxMDExMTYvZ2RiL2YtdmFscHJpbnQuYwogIH0KICAKICAvKiBUaGlz IGZ1bmN0aW9uIGlzIHVzZWQgdG8gcHJpbnQgb3V0IHRoZSB2YWx1ZXMgaW4gYSBnaXZlbiBDT01N T04gCi1AQCAtNTExLDExICs1NDUsOSBAQCBsaXN0X2FsbF92aXNpYmxlX2NvbW1vbnMgKGNoYXIg KmZ1bm5hbWUpCitAQCAtNTE0LDExICs1NDgsOSBAQCBsaXN0X2FsbF92aXNpYmxlX2NvbW1vbnMg KGNoYXIgKmZ1bm5hbWUpCiAgc3RhdGljIHZvaWQKICBpbmZvX2NvbW1vbl9jb21tYW5kIChjaGFy ICpjb21uYW1lLCBpbnQgZnJvbV90dHkpCiAgewpAQCAtMjgwLDkgKzI4MCw5IEBAIEluZGV4OiBn ZGItNy4yLjUwLjIwMTAxMTE2L2dkYi9mLXZhbHByaW50LmMKICAKICAgIC8qIFdlIGhhdmUgYmVl biB0b2xkIHRvIGRpc3BsYXkgdGhlIGNvbnRlbnRzIG9mIEY3NyBDT01NT04gCiAgICAgICBibG9j ayBzdXBwb3NlZGx5IHZpc2libGUgaW4gdGhpcyBmdW5jdGlvbi4gIExldCB1cyAKLUBAIC01Mjcs NzQgKzU1OSwzMSBAQCBpbmZvX2NvbW1vbl9jb21tYW5kIChjaGFyICpjb21uYW1lLCBpbnQgCitA QCAtNTMwLDc0ICs1NjIsMzEgQEAgaW5mb19jb21tb25fY29tbWFuZCAoY2hhciAqY29tbmFtZSwg aW50IAogICAgLyogVGhlIGZvbGxvd2luZyBpcyBnZW5lcmFsbHkgcmlwcGVkIG9mZiBmcm9tIHN0 YWNrLmMncyByb3V0aW5lIAotICAgICAgcHJpbnRfZnJhbWVfaW5mbygpICovCisgICAgICBwcmlu dF9mcmFtZV9pbmZvKCkuICAqLwogIAogLSAgZnVuYyA9IGZpbmRfcGNfZnVuY3Rpb24gKGdldF9m cmFtZV9wYyAoZmkpKTsKIC0gIGlmIChmdW5jKQpAQCAtMzAxLDcgKzMwMSw3IEBAIEluZGV4OiBn ZGItNy4yLjUwLjIwMTAxMTE2L2dkYi9mLXZhbHByaW50LmMKIC0gICAgICAgICB1cCB3aXRoIGEg bGFyZ2VyIGFkZHJlc3MgZm9yIHRoZSBmdW5jdGlvbiB1c2UgdGhhdCBpbnN0ZWFkLgogLSAgICAg ICAgIEkgZG9uJ3QgdGhpbmsgdGhpcyBjYW4gZXZlciBjYXVzZSBhbnkgcHJvYmxlbXM7IHRoZXJl IHNob3VsZG4ndAogLSAgICAgICAgIGJlIGFueSBtaW5pbWFsIHN5bWJvbHMgaW4gdGhlIG1pZGRs ZSBvZiBhIGZ1bmN0aW9uLgotLSAgICAgICAgIEZJWE1FOiAgKE5vdCBuZWNlc3NhcmlseSB0cnVl LiAgV2hhdCBhYm91dCB0ZXh0IGxhYmVscykgKi8KKy0gICAgICAgICBGSVhNRTogIChOb3QgbmVj ZXNzYXJpbHkgdHJ1ZS4gIFdoYXQgYWJvdXQgdGV4dCBsYWJlbHM/KSAgKi8KIC0KIC0gICAgICBz dHJ1Y3QgbWluaW1hbF9zeW1ib2wgKm1zeW1ib2wgPSAKIC0JbG9va3VwX21pbmltYWxfc3ltYm9s X2J5X3BjIChnZXRfZnJhbWVfcGMgKGZpKSk7CkBAIC0zMjcsNyArMzI3LDcgQEAgSW5kZXg6IGdk Yi03LjIuNTAuMjAxMDExMTYvZ2RiL2YtdmFscHJpbnQuYwogICAgICB9CiAgCiAtICAvKiBJZiBj b21uYW1lIGlzIE5VTEwsIHdlIGFzc3VtZSB0aGUgdXNlciB3aXNoZXMgdG8gc2VlIHRoZSAKLS0g ICAgIHdoaWNoIENPTU1PTiBibG9ja3MgYXJlIHZpc2libGUgaGVyZSBhbmQgdGhlbiByZXR1cm4g Ki8KKy0gICAgIHdoaWNoIENPTU1PTiBibG9ja3MgYXJlIHZpc2libGUgaGVyZSBhbmQgdGhlbiBy ZXR1cm4uICAqLwogLQogLSAgaWYgKGNvbW5hbWUgPT0gMCkKICsgIHdoaWxlIChibG9jaykKQEAg LTM3MSwxMSArMzcxLDExIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi9mLXZhbHBy aW50LmMKICB9CiAgCiAgdm9pZAotSW5kZXg6IGdkYi03LjIuNTAuMjAxMDExMTYvZ2RiL3N0YWNr LmMKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi9zdGFjay5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMi41MC4yMDEwMTExNi5vcmlnL2dkYi9zdGFjay5jCTIwMTAtMDktMzAgMTI6Mjk6 MDAuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIvc3RhY2suYwky MDEwLTExLTE2IDA4OjIyOjA1LjAwMDAwMDAwMCArMDEwMAotQEAgLTE0OTAsNiArMTQ5MCw4IEBA IGl0ZXJhdGVfb3Zlcl9ibG9ja19sb2NhbHMgKHN0cnVjdCBibG9jayAKKy0tLSBnZGItNy4yLjUw LjIwMTEwMTE3Lm9yaWcvZ2RiL3N0YWNrLmMJMjAxMS0wMS0xNyAxNTo0NzozNy4wMDAwMDAwMDAg KzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi9zdGFjay5jCTIwMTEtMDEtMTcgMTU6 NTY6MjMuMDAwMDAwMDAwICswMTAwCitAQCAtMTQ5OCw2ICsxNDk4LDggQEAgaXRlcmF0ZV9vdmVy X2Jsb2NrX2xvY2FscyAoc3RydWN0IGJsb2NrIAogIAljYXNlIExPQ19DT01QVVRFRDoKICAJICBp ZiAoU1lNQk9MX0lTX0FSR1VNRU5UIChzeW0pKQogIAkgICAgYnJlYWs7CkBAIC0zODQsMTAgKzM4 NCwxMCBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDEwMTExNi9nZGIvc3RhY2suYwogIAkgICgqY2Ip IChTWU1CT0xfUFJJTlRfTkFNRSAoc3ltKSwgc3ltLCBjYl9kYXRhKTsKICAJICBicmVhazsKICAK LUluZGV4OiBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi9zeW10YWIuaAorSW5kZXg6IGdkYi03LjIu NTAuMjAxMTAxMTcvZ2RiL3N5bXRhYi5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMi41MC4yMDEw MTExNi5vcmlnL2dkYi9zeW10YWIuaAkyMDEwLTExLTE2IDA3OjUzOjU5LjAwMDAwMDAwMCArMDEw MAotKysrIGdkYi03LjIuNTAuMjAxMDExMTYvZ2RiL3N5bXRhYi5oCTIwMTAtMTEtMTYgMDg6MjI6 MDUuMDAwMDAwMDAwICswMTAwCistLS0gZ2RiLTcuMi41MC4yMDExMDExNy5vcmlnL2dkYi9zeW10 YWIuaAkyMDExLTAxLTE3IDE1OjQ3OjM3LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuNTAu MjAxMTAxMTcvZ2RiL3N5bXRhYi5oCTIwMTEtMDEtMTcgMTU6NTY6MjMuMDAwMDAwMDAwICswMTAw CiBAQCAtNDA4LDcgKzQwOCwxMCBAQCB0eXBlZGVmIGVudW0gZG9tYWluX2VudW1fdGFnCiAgICBG VU5DVElPTlNfRE9NQUlOLAogIApAQCAtNDAwLDEwICs0MDAsMTAgQEAgSW5kZXg6IGdkYi03LjIu NTAuMjAxMDExMTYvZ2RiL3N5bXRhYi5oCiAgfQogIGRvbWFpbl9lbnVtOwogIAotSW5kZXg6IGdk Yi03LjIuNTAuMjAxMDExMTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9jb21tb24tYmxvY2su ZXhwCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L2NvbW1vbi1ibG9jay5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAw MDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4yLjUwLjIwMTAxMTE2L2dkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vY29tbW9uLWJsb2NrLmV4cAkyMDEwLTExLTE2IDA4OjIyOjA1LjAw MDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL3Rlc3RzdWl0ZS9nZGIu Zm9ydHJhbi9jb21tb24tYmxvY2suZXhwCTIwMTEtMDEtMTcgMTU6NTY6MjMuMDAwMDAwMDAwICsw MTAwCiBAQCAtMCwwICsxLDEwMSBAQAogKyMgQ29weXJpZ2h0IDIwMDggRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCiArCkBAIC01MDYsMTAgKzUwNiwxMCBAQCBJbmRleDogZ2RiLTcuMi41 MC4yMDEwMTExNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2NvbW1vbi1ibG9jay5leHAKICtn ZGJfdGVzdCAicCBpeF94IiAiID0gMSAqIiAicCBpeF94IGluIgogK2dkYl90ZXN0ICJwIGl5X3ki ICIgPSAyICoiICJwIGl5X3kgaW4iCiArZ2RiX3Rlc3QgInAgaXpfejIiICIgPSAzICoiICJwIGl6 X3oyIGluIgotSW5kZXg6IGdkYi03LjIuNTAuMjAxMDExMTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi9jb21tb24tYmxvY2suZjkwCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL2NvbW1vbi1ibG9jay5mOTAKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2 L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4yLjUw LjIwMTAxMTE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vY29tbW9uLWJsb2NrLmY5MAkyMDEw LTExLTE2IDA4OjIyOjA1LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuNTAuMjAxMTAxMTcv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9jb21tb24tYmxvY2suZjkwCTIwMTEtMDEtMTcgMTU6 NTY6MjMuMDAwMDAwMDAwICswMTAwCiBAQCAtMCwwICsxLDY3IEBACiArISBDb3B5cmlnaHQgMjAw OCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICshCgpkaWZmIC0tZ2l0IGEvZ2RiLXJl YWRsaW5lLTYuMC1zaWduYWwucGF0Y2ggYi9nZGItcmVhZGxpbmUtNi4wLXNpZ25hbC5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OWMzNmIwCi0tLSAvZGV2L251bGwK KysrIGIvZ2RiLXJlYWRsaW5lLTYuMC1zaWduYWwucGF0Y2gKQEAgLTAsMCArMSwyNjYgQEAKK2h0 dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDA5LTExL21zZzAwNTk2Lmh0bWwK K1N1YmplY3Q6IFtnZGIgRllJLXBhdGNoXSBjYWxsYmFjay1tb2RlIHJlYWRsaW5lLTYuMCByZWdy ZXNzaW9uCisKK0hpIENoZXQsCisKK0ZTRiBHREIgY3VycmVudGx5IHNoaXBzIGJ1bmRsZWQgd2l0 aCByZWFkbGluZS01LjIgd2hpY2ggd29ya3MgZmluZS4KK0J1dCB1c2luZyAtLXdpdGgtc3lzdGVt LXJlYWRsaW5lIGFuZCByZWFkbGluZS02LjAtcGF0Y2hsZXZlbDQgaGFzCithIHJlZ3Jlc3Npb246 CisKK3JlYWRsaW5lLTUuMjogUnVuIGBnZGIgLW54IC1xJyBhbmQgdHlwZSBDVFJMLUM6CisoZ2Ri KSBRdWl0CisoZ2RiKSBfCisKK3JlYWRsaW5lLTYuMDogUnVuIGBnZGIgLW54IC1xJyBhbmQgdHlw ZSBDVFJMLUM6CisoZ2RiKSBfCisgPSBub3RoaW5nIGhhcHBlbnMgKGl0IGdldHMgYnVmZmVyZWQg YW5kIGV4ZWN1dGVkIGxhdGVyKQorCShJdCBkb2VzIGFsc28gRkFJTCBvbiBnZGIuZ2RiL3NlbGZ0 ZXN0LmV4cC4pCisKK0l0IGlzIGJlY2F1c2UgR0RCIHdhaXRzIGluIGl0cyBvd24gcG9sbCgpIG1h aW5sb29wIGFuZCByZWFkbGluZSB1c2VzIHZpYQorcmxfY2FsbGJhY2tfaGFuZGxlcl9pbnN0YWxs IGFuZCBybF9jYWxsYmFja19oYW5kbGVyX3JlbW92ZS4gIFRoaXMgd2F5IHRoZQorcmVhZGxpbmUg aW50ZXJuYWwgdmFyaWFibGUgX3JsX2ludGVycnVwdF9pbW1lZGlhdGVseSByZW1haW5zIDAgYW5k IENUUkwtQyBnZXRzCitvbmx5IHN0b3JlZCB0byBfcmxfY2F1Z2h0X3NpZ25hbCBidXQgbm90IGV4 ZWN1dGVkLgorCitTZWVuIGluIHJsX3NpZ25hbF9oYW5kbGVyIGV2ZW4gaWYgX3JsX2ludGVycnVw dF9pbW1lZGlhdGVseSBpcyBzZXQgYW5kCitfcmxfaGFuZGxlX3NpZ25hbCBpcyBjYWxsZWQgdGhl biB0aGUgc2lnbmFsIGlzIHN0aWxsIHN0b3JlZCB0bworX3JsX2NhdWdodF9zaWduYWwuICBJbiB0 aGUgX3JsX2ludGVycnVwdF9pbW1lZGlhdGVseSBjYXNlIGl0IHNob3VsZCBub3QgYmUKK3N0b3Jl ZCB3aGVuIGl0IHdhcyBhbHJlYWR5IHByb2Nlc3NlZC4KKworcmxfc2lnbmFsX2hhbmRsZXIgZG9l cyBgX3JsX2ludGVycnVwdF9pbW1lZGlhdGVseSA9IDA7JyAtIHdoaWxlIEkgYW0gbm90IGF3YXJl CitvZiBpdHMgbWVhbmluZyBpdCBicmVha3MgdGhlIG5lc3QtY291bnRpbmcgb2Ygb3RoZXIgcm91 dGluZXMgd2hpY2ggZG8KK2BfcmxfaW50ZXJydXB0X2ltbWVkaWF0ZWx5Kys7JyBhbmQgYF9ybF9p bnRlcnJ1cHRfaW1tZWRpYXRlbHktLTsnIHBvc3NpYmx5CitjcmVhdGluZyBwcm9ibGVtYXRpYyBg X3JsX2ludGVycnVwdF9pbW1lZGlhdGVseSA9PSAtMScuCisKK2BfcmxfaW50ZXJydXB0X2ltbWVk aWF0ZWx5JyBpcyBhbiBpbnRlcm5hbCB2YXJpYWJsZSwgaG93IGl0IGNvdWxkIGJlIGFjY2Vzc2Vk CitieSBhIHJlYWRsaW5lIGFwcGxpY2F0aW9uPyAoT0ssIG1heWJlIGl0IHNob3VsZCBub3QgYmUg dXNlZC4pCisKK0F0dGFjaGluZyBhIGN1cnJlbnQgR0RCLXNpZGUgcGF0Y2ggYnV0IGl0IG11c3Qg YWNjZXNzIHJlYWRsaW5lIGludGVybmFsCit2YXJpYWJsZSBfcmxfY2F1Z2h0X3NpZ25hbCBhbmQg aXQgaXMgZ2VuZXJhbGx5IGp1c3QgYSB3b3JrYXJvdW5kLiAgQ291bGQgeW91CitwbGVhc2UgaW5j bHVkZSBzdXBwb3J0IGZvciBzaWduYWxzIGluIHRoaXMgYXN5bmNocm9ub3VzIG1vZGUgaW4gcmVh ZGxpbmUtNi4xPworSSBmaW5kIGl0IHdvdWxkIGJlIGVub3VnaCB0byBtYWtlIFJMX0NIRUNLX1NJ R05BTFMgcHVibGljPworCisKK0dEQjogTm8gcmVncmVzc2lvbnMgb24ge3g4Nl82NCx4ODZfNjQt bTMyLGk2ODZ9LWZlZG9yYTEyLWxpbnV4LWdudS4KK0J1dCB0aGlzIGlzIG5vdCBhIHBhdGNoIGlu dGVuZGVkIHRvIGJlIGFjY2VwdGVkLgorCisKK1RoYW5rcywKK0phbgorCisKK2dkYi8KKzIwMDkt MTEtMjkgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKworCSog Y29uZmlnLmluLCBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCisJKiBjb25maWd1cmUuYWMgKGZvciBy ZWFkbGluZV9lY2hvaW5nX3ApOiBNb3ZlIGluc2lkZSAkTElCUyBjaGFuZ2UuCisJKGZvciBfcmxf Y2F1Z2h0X3NpZ25hbCk6IE5ldy4KKwkqIGV2ZW50LWxvb3AuYzogSW5jbHVkZSByZWFkbGluZS9y ZWFkbGluZS5oLgorCShnZGJfZG9fb25lX2V2ZW50KSBbSEFWRV9SRUFETElORV9DQVVHSFRfU0lH TkFMXTogTmV3LgorCitnZGIvdGVzdHN1aXRlLworMjAwOS0xMS0yOSAgSmFuIEtyYXRvY2h2aWwg IDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorCisJKiBnZGIuZ2RiL3NlbGZ0ZXN0LmV4cCAo YmFja3RyYWNlIHRocm91Z2ggc2lnbmFsIGhhbmRsZXIpOiBNb3ZlIGJlZm9yZQorCVNJR0lOVCBw YXNzLCBkcm9wIHRoZSB0aW1lb3V0IGNhc2UuCisJKHNlbmQgU0lHSU5UIHNpZ25hbCB0byBjaGls ZCBwcm9jZXNzKTogVXNlIGdkYl90ZXN0LgorCShiYWNrdHJhY2UgdGhyb3VnaCByZWFkbGluZSBo YW5kbGVyKTogTmV3LgorCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvY29uZmlnLmlu Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CistLS0gZ2RiLTcuMi41MC4yMDExMDEwNy5vcmlnL2dkYi9jb25maWcuaW4J MjAxMS0wMS0xNyAxNTozNjo0MC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEw MTA3L2dkYi9jb25maWcuaW4JMjAxMS0wMS0xNyAxNTozNzowOS4wMDAwMDAwMDAgKzAxMDAKK0BA IC00NjQsNiArNDY0LDkgQEAKKyAvKiBEZWZpbmUgdG8gMSBpZiB3Y3dpZHRoIGlzIGRlY2xhcmVk IGV2ZW4gYWZ0ZXIgdW5kZWZpbmluZyBtYWNyb3MuICovCisgI3VuZGVmIEhBVkVfUkFXX0RFQ0xf V0NXSURUSAorIAorKy8qIHJlYWRsaW5lLTYuMCB3b3JrYXJvdW5kIG9mIGJsb2NrZWQgc2lnbmFs cy4gKi8KKysjdW5kZWYgSEFWRV9SRUFETElORV9DQVVHSFRfU0lHTkFMCisrCisgLyogRGVmaW5l IHRvIDEgaWYgeW91IGhhdmUgdGhlIGByZWFscGF0aCcgZnVuY3Rpb24uICovCisgI3VuZGVmIEhB VkVfUkVBTFBBVEgKKyAKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9jb25maWd1cmUu YWMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4yLjUwLjIwMTEwMTA3Lm9yaWcvZ2RiL2NvbmZpZ3Vy ZS5hYwkyMDExLTAxLTE3IDE1OjM2OjQyLjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuNTAu MjAxMTAxMDcvZ2RiL2NvbmZpZ3VyZS5hYwkyMDExLTAxLTE3IDE1OjM3OjA5LjAwMDAwMDAwMCAr MDEwMAorQEAgLTczNiwxNyArNzM2LDI1IEBAIGlmIHRlc3QgIiR3aXRoX3N5c3RlbV9yZWFkbGlu ZSIgPSB5ZXM7IHQKKyAgICMgcmVhZGxpbmUtNi4wIHN0YXJ0ZWQgdG8gdXNlIHRoZSBuYW1lIGBf cmxfZWNob2luZ19wJy4KKyAgICMgYCQoUkVBRExJTkVfRElSKS8nIG9mIGJ1bmRsZWQgcmVhZGxp bmUgd291bGQgbm90IHJlc29sdmUgaW4gY29uZmlndXJlLgorIAorLSAgQUNfTVNHX0NIRUNLSU5H KFtmb3IgcmVhZGxpbmVfZWNob2luZ19wXSkKKyAgIHNhdmVfTElCUz0kTElCUworICAgTElCUz0i JExJQlMgJFJFQURMSU5FIgorKyAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgcmVhZGxpbmVfZWNob2lu Z19wXSkKKyAgIEFDX0xJTktfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTSgsW1tleHRlcm4gaW50IHJl YWRsaW5lX2VjaG9pbmdfcDsKKyAJCQkJICAgIHJldHVybiByZWFkbGluZV9lY2hvaW5nX3A7XV0p LAorIAkJIFtSRUFETElORV9FQ0hPSU5HX1A9eWVzXSwKKyAJCSBbUkVBRExJTkVfRUNIT0lOR19Q PW5vCisgCQkgIEFDX0RFRklORShbcmVhZGxpbmVfZWNob2luZ19wXSwgW19ybF9lY2hvaW5nX3Bd LAorIAkJCSAgICBbcmVhZGxpbmUtNi4wIHN0YXJ0ZWQgdG8gdXNlIGRpZmZlcmVudCBuYW1lLl0p XSkKKy0gIExJQlM9IiRzYXZlX0xJQlMiCisgICBBQ19NU0dfUkVTVUxUKFskUkVBRExJTkVfRUNI T0lOR19QXSkKKysgIEFDX01TR19DSEVDS0lORyhbZm9yIF9ybF9jYXVnaHRfc2lnbmFsXSkKKysg IEFDX0xJTktfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTSgsW1tleHRlcm4gaW50IHZvbGF0aWxlIF9y bF9jYXVnaHRfc2lnbmFsOworKwkJCQkgICAgcmV0dXJuIF9ybF9jYXVnaHRfc2lnbmFsO11dKSwK KysJCSBbUkVBRExJTkVfQ0FVR0hUX1NJR05BTD15ZXMKKysJCSAgQUNfREVGSU5FKFtIQVZFX1JF QURMSU5FX0NBVUdIVF9TSUdOQUxdLCwKKysJCQkgICAgW3JlYWRsaW5lLTYuMCB3b3JrYXJvdW5k IG9mIGJsb2NrZWQgc2lnbmFscy5dKV0sCisrCQkgW1JFQURMSU5FX0NBVUdIVF9TSUdOQUw9bm9d KQorKyAgQUNfTVNHX1JFU1VMVChbJFJFQURMSU5FX0NBVUdIVF9TSUdOQUxdKQorKyAgTElCUz0i JHNhdmVfTElCUyIKKyBlbHNlCisgICBSRUFETElORT0nJChSRUFETElORV9ESVIpL2xpYnJlYWRs aW5lLmEnCisgICBSRUFETElORV9ERVBTPSckKFJFQURMSU5FKScKK0luZGV4OiBnZGItNy4yLjUw LjIwMTEwMTA3L2dkYi9ldmVudC1sb29wLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4yLjUwLjIw MTEwMTA3Lm9yaWcvZ2RiL2V2ZW50LWxvb3AuYwkyMDExLTAxLTA1IDIzOjIyOjQ4LjAwMDAwMDAw MCArMDEwMAorKysrIGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL2V2ZW50LWxvb3AuYwkyMDExLTAx LTE3IDE1OjM3OjIzLjAwMDAwMDAwMCArMDEwMAorQEAgLTM3LDYgKzM3LDcgQEAKKyAjaW5jbHVk ZSAiZXhjZXB0aW9ucy5oIgorICNpbmNsdWRlICJnZGJfYXNzZXJ0LmgiCisgI2luY2x1ZGUgImdk Yl9zZWxlY3QuaCIKKysjaW5jbHVkZSAicmVhZGxpbmUvcmVhZGxpbmUuaCIKKyAKKyAvKiBUZWxs IGNyZWF0ZV9maWxlX2hhbmRsZXIgd2hhdCBldmVudHMgd2UgYXJlIGludGVyZXN0ZWQgaW4uCisg ICAgVGhpcyBpcyB1c2VkIGJ5IHRoZSBzZWxlY3QgdmVyc2lvbiBvZiB0aGUgZXZlbnQgbG9vcC4g ICovCitAQCAtNDE5LDYgKzQyMCw5IEBAIGdkYl9kb19vbmVfZXZlbnQgKHZvaWQgKmRhdGEpCisg ICBzdGF0aWMgaW50IGV2ZW50X3NvdXJjZV9oZWFkID0gMDsKKyAgIGNvbnN0IGludCBudW1iZXJf b2Zfc291cmNlcyA9IDM7CisgICBpbnQgY3VycmVudCA9IDA7CisrI2lmZGVmIEhBVkVfUkVBRExJ TkVfQ0FVR0hUX1NJR05BTAorKyAgZXh0ZXJuIGludCB2b2xhdGlsZSBfcmxfY2F1Z2h0X3NpZ25h bDsKKysjZW5kaWYKKyAKKyAgIC8qIEFueSBldmVudHMgYWxyZWFkeSB3YWl0aW5nIGluIHRoZSBx dWV1ZT8gICovCisgICBpZiAocHJvY2Vzc19ldmVudCAoKSkKK0BAIC00NjMsNiArNDY3LDI5IEBA IGdkYl9kb19vbmVfZXZlbnQgKHZvaWQgKmRhdGEpCisgICBpZiAoZ2RiX3dhaXRfZm9yX2V2ZW50 ICgxKSA8IDApCisgICAgIHJldHVybiAtMTsKKyAKKysjaWZkZWYgSEFWRV9SRUFETElORV9DQVVH SFRfU0lHTkFMCisrICBpZiAoYXN5bmNfY29tbWFuZF9lZGl0aW5nX3AgJiYgUkxfSVNTVEFURSAo UkxfU1RBVEVfQ0FMTEJBQ0spCisrICAgICAgJiYgX3JsX2NhdWdodF9zaWduYWwpCisrICAgIHsK KysgICAgICBjaGFyICpwcm9tcHQ7CisrCisrICAgICAgaWYgKHJsX3Byb21wdCA9PSBOVUxMKQor Kwl7CisrCSAgLyogU2hvdWxkIG5vdCBoYXBwZW4sIGRlZmVuc2l2ZSBvbmx5LiAgKi8KKysJICBw cm9tcHQgPSAiIjsKKysJfQorKyAgICAgIGVsc2UKKysJeworKwkgIHByb21wdCA9IGFsbG9jYSAo c3RybGVuIChybF9wcm9tcHQpICsgMSk7CisrCSAgc3RyY3B5IChwcm9tcHQsIHJsX3Byb21wdCk7 CisrCX0KKysKKysgICAgICAvKiBDYWxsIFJMX0NIRUNLX1NJR05BTFMgdGhpcyB3YXkuICAqLwor KyAgICAgIHJsX2NhbGxiYWNrX2hhbmRsZXJfcmVtb3ZlICgpOworKyAgICAgIHJsX2NhbGxiYWNr X2hhbmRsZXJfaW5zdGFsbCAocHJvbXB0LCBpbnB1dF9oYW5kbGVyKTsKKysgICAgfQorKyNlbmRp ZgorKworICAgLyogSGFuZGxlIGFueSBuZXcgZXZlbnRzIG9jY3VycmVkIHdoaWxlIHdhaXRpbmcu ICAqLworICAgaWYgKHByb2Nlc3NfZXZlbnQgKCkpCisgICAgIHJldHVybiAxOworSW5kZXg6IGdk Yi03LjIuNTAuMjAxMTAxMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZ2RiL3NlbGZ0ZXN0LmV4cAorPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0tIGdkYi03LjIuNTAuMjAxMTAxMDcub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5n ZGIvc2VsZnRlc3QuZXhwCTIwMTEtMDEtMTcgMTU6MzY6MzcuMDAwMDAwMDAwICswMTAwCisrKysg Z2RiLTcuMi41MC4yMDExMDEwNy9nZGIvdGVzdHN1aXRlL2dkYi5nZGIvc2VsZnRlc3QuZXhwCTIw MTEtMDEtMTcgMTU6Mzc6MDkuMDAwMDAwMDAwICswMTAwCitAQCAtNDMzLDYgKzQzMywyOCBAQCBw cm9jIHRlc3Rfd2l0aF9zZWxmIHsgZXhlY3V0YWJsZSB9IHsKKyAJfQorICAgICB9CisgICAgIAor KyAgICAjIGdldCBhIHN0YWNrIHRyYWNlIHdpdGggdGhlIHBvbGwgZnVuY3Rpb24KKysgICAgIwor KyAgICAjIFRoaXMgZmFpbHMgb24gc29tZSBsaW51eCBzeXN0ZW1zIGZvciB1bmtub3duIHJlYXNv bnMuICBPbiB0aGUKKysgICAgIyBzeXN0ZW1zIHdoZXJlIGl0IGZhaWxzLCBzb21ldGltZXMgaXQg d29ya3MgZmluZSB3aGVuIHJ1biBtYW51YWxseS4KKysgICAgIyBUaGUgdGVzdHN1aXRlIGZhaWx1 cmVzIG1heSBub3QgYmUgbGltaXRlZCB0byBqdXN0IGFvdXQgc3lzdGVtcy4KKysgICAgc2V0dXBf eGZhaWwgImkqODYtcGMtbGludXhhb3V0LWdudSIKKysgICAgc2V0IGRlc2NyaXB0aW9uICJiYWNr dHJhY2UgdGhyb3VnaCBzaWduYWwgaGFuZGxlciIKKysgICAgZ2RiX3Rlc3RfbXVsdGlwbGUgImJh Y2t0cmFjZSIgIiRkZXNjcmlwdGlvbiIgeworKwktcmUgIiMwLioocmVhZHxwb2xsKS4qaW4gbWFp biBcXCguKlxcKSBhdCAuKmdkYlxcLmMuKiRnZGJfcHJvbXB0ICQiIHsKKysJICAgIHBhc3MgIiRk ZXNjcmlwdGlvbiIKKysJfQorKwktcmUgIi4qJGdkYl9wcm9tcHQgJCIgeworKwkgICAgIyBPbiB0 aGUgYWxwaGEsIHdlIGhpdCB0aGUgaW5mYW1vdXMgcHJvYmxlbSBhYm91dCBnZGIKKysJICAgICMg YmVpbmcgdW5hYmxlIHRvIGdldCB0aGUgZnJhbWUgcG9pbnRlciAobWVudGlvbmVkIGluCisrCSAg ICAjIGdkYi9SRUFETUUpLiAgQXMgaXQgaXMgaW50ZXJtaXR0ZW50LCB0aGVyZSBpcyBubyB3YXkg dG8KKysJICAgICMgWEZBSUwgaXQgd2hpY2ggd2lsbCBnaXZlIHVzIGFuIFhQQVNTIGlmIHRoZSBw cm9ibGVtIGdvZXMKKysJICAgICMgYXdheS4KKysJICAgIHNldHVwX3hmYWlsICJhbHBoYSotKi1v c2YqIgorKwkgICAgZmFpbCAiJGRlc2NyaXB0aW9uIgorKwl9CisrICAgIH0KKysKKyAgICAgc2V0 IGRlc2NyaXB0aW9uICJzZW5kIFNJR0lOVCBzaWduYWwgdG8gY2hpbGQgcHJvY2VzcyIKKyAgICAg Z2RiX3Rlc3QgInNpZ25hbCBTSUdJTlQiIFwKKyAJIkNvbnRpbnVpbmcgd2l0aCBzaWduYWwgU0lH SU5ULioiIFwKK0BAIC00NDMsMTAgKzQ2NSwxMSBAQCBwcm9jIHRlc3Rfd2l0aF9zZWxmIHsgZXhl Y3V0YWJsZSB9IHsKKyAgICAgIyBUaGlzIGZhaWxzIG9uIHNvbWUgbGludXggc3lzdGVtcyBmb3Ig dW5rbm93biByZWFzb25zLiAgT24gdGhlCisgICAgICMgc3lzdGVtcyB3aGVyZSBpdCBmYWlscywg c29tZXRpbWVzIGl0IHdvcmtzIGZpbmUgd2hlbiBydW4gbWFudWFsbHkuCisgICAgICMgVGhlIHRl c3RzdWl0ZSBmYWlsdXJlcyBtYXkgbm90IGJlIGxpbWl0ZWQgdG8ganVzdCBhb3V0IHN5c3RlbXMu CisrICAgICMgT3B0aW9uYWwgc3lzdGVtIHJlYWRsaW5lIG1heSBub3QgaGF2ZSBzeW1ib2xzIHRv IGJlIHNob3duLgorICAgICBzZXR1cF94ZmFpbCAiaSo4Ni1wYy1saW51eGFvdXQtZ251IgorLSAg ICBzZXQgZGVzY3JpcHRpb24gImJhY2t0cmFjZSB0aHJvdWdoIHNpZ25hbCBoYW5kbGVyIgorKyAg ICBzZXQgZGVzY3JpcHRpb24gImJhY2t0cmFjZSB0aHJvdWdoIHJlYWRsaW5lIGhhbmRsZXIiCisg ICAgIGdkYl90ZXN0X211bHRpcGxlICJiYWNrdHJhY2UiICIkZGVzY3JpcHRpb24iIHsKKy0JLXJl ICIjMC4qKHJlYWR8cG9sbCkuKmluIG1haW4gXFwoLipcXCkgYXQgLipnZGJcXC5jLiokZ2RiX3By b21wdCAkIiB7CisrCS1yZSAiIzAuKmdkYl9kb19vbmVfZXZlbnQuKmluIG1haW4gXFwoLipcXCkg YXQgLipnZGJcXC5jLiokZ2RiX3Byb21wdCAkIiB7CisgCSAgICBwYXNzICIkZGVzY3JpcHRpb24i CisgCX0KKyAJLXJlICIuKiRnZGJfcHJvbXB0ICQiIHsKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEw MTA3L2dkYi9jb25maWd1cmUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4yLjUwLjIwMTEwMTA3Lm9y aWcvZ2RiL2NvbmZpZ3VyZQkyMDExLTAxLTE3IDE1OjM2OjQyLjAwMDAwMDAwMCArMDEwMAorKysr IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL2NvbmZpZ3VyZQkyMDExLTAxLTE3IDE1OjM3OjA5LjAw MDAwMDAwMCArMDEwMAorQEAgLTEwMjM3LDEwICsxMDIzNywxMCBAQCBpZiB0ZXN0ICIkd2l0aF9z eXN0ZW1fcmVhZGxpbmUiID0geWVzOyB0CisgICAjIHJlYWRsaW5lLTYuMCBzdGFydGVkIHRvIHVz ZSB0aGUgbmFtZSBgX3JsX2VjaG9pbmdfcCcuCisgICAjIGAkKFJFQURMSU5FX0RJUikvJyBvZiBi dW5kbGVkIHJlYWRsaW5lIHdvdWxkIG5vdCByZXNvbHZlIGluIGNvbmZpZ3VyZS4KKyAKKy0gIHsg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIHJlYWRs aW5lX2VjaG9pbmdfcCIgPiY1CistJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIHJlYWRsaW5lX2Vj aG9pbmdfcC4uLiAiID4mNjsgfQorICAgc2F2ZV9MSUJTPSRMSUJTCisgICBMSUJTPSIkTElCUyAk UkVBRExJTkUiCisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNo ZWNraW5nIGZvciByZWFkbGluZV9lY2hvaW5nX3AiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5n IGZvciByZWFkbGluZV9lY2hvaW5nX3AuLi4gIiA+JjY7IH0KKyAgIGNhdCBjb25mZGVmcy5oIC0g PDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKyAvKiBlbmQgY29uZmRlZnMuaC4gICovCisgCitA QCAtMTAyNjMsOSArMTAyNjMsMzUgQEAgJGFzX2VjaG8gIiNkZWZpbmUgcmVhZGxpbmVfZWNob2lu Z19wIF9ybAorIGZpCisgcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4 dCBcCisgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CistICBMSUJTPSIk c2F2ZV9MSUJTIgorICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBy ZXN1bHQ6ICRSRUFETElORV9FQ0hPSU5HX1AiID4mNQorICRhc19lY2hvICIkUkVBRExJTkVfRUNI T0lOR19QIiA+JjY7IH0KKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogY2hlY2tpbmcgZm9yIF9ybF9jYXVnaHRfc2lnbmFsIiA+JjUKKyskYXNfZWNob19uICJjaGVj a2luZyBmb3IgX3JsX2NhdWdodF9zaWduYWwuLi4gIiA+JjY7IH0KKysgIGNhdCBjb25mZGVmcy5o IC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisr CisraW50CisrbWFpbiAoKQorK3sKKytleHRlcm4gaW50IHZvbGF0aWxlIF9ybF9jYXVnaHRfc2ln bmFsOworKwkJCQkgICAgcmV0dXJuIF9ybF9jYXVnaHRfc2lnbmFsOworKyAgOworKyAgcmV0dXJu IDA7CisrfQorK19BQ0VPRgorK2lmIGFjX2ZuX2NfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoK KysgIFJFQURMSU5FX0NBVUdIVF9TSUdOQUw9eWVzCisrCisrJGFzX2VjaG8gIiNkZWZpbmUgSEFW RV9SRUFETElORV9DQVVHSFRfU0lHTkFMIC8qKi8iID4+Y29uZmRlZnMuaAorKworK2Vsc2UKKysg IFJFQURMSU5FX0NBVUdIVF9TSUdOQUw9bm8KKytmaQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJy IGNvbmZ0ZXN0LiRhY19vYmpleHQgXAorKyAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3Qu JGFjX2V4dAorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1 bHQ6ICRSRUFETElORV9DQVVHSFRfU0lHTkFMIiA+JjUKKyskYXNfZWNobyAiJFJFQURMSU5FX0NB VUdIVF9TSUdOQUwiID4mNjsgfQorKyAgTElCUz0iJHNhdmVfTElCUyIKKyBlbHNlCisgICBSRUFE TElORT0nJChSRUFETElORV9ESVIpL2xpYnJlYWRsaW5lLmEnCisgICBSRUFETElORV9ERVBTPSck KFJFQURMSU5FKScKCmRpZmYgLS1naXQgYS9nZGItdGVzdC1wcC1oaW50LWVycm9yLnBhdGNoIGIv Z2RiLXRlc3QtcHAtaGludC1lcnJvci5wYXRjaAppbmRleCBkZTdiZGJmLi5mNzI3ZWNhIDEwMDY0 NAotLS0gYS9nZGItdGVzdC1wcC1oaW50LWVycm9yLnBhdGNoCisrKyBiL2dkYi10ZXN0LXBwLWhp bnQtZXJyb3IucGF0Y2gKQEAgLTI3LDEwICsyNywxMCBAQCBnZGIvdGVzdHN1aXRlLwogCSogZ2Ri LnB5dGhvbi9weS1wcmV0dHlwcmludC5weSAoY2xhc3MgcHBfaGludF9lcnJvcik6IE5ldy4KIAko cmVnaXN0ZXJfcHJldHR5X3ByaW50ZXJzKTogUmVnaXN0ZXIgaXQuCiAKLUluZGV4OiBnZGItNy4y LjUwLjIwMTEwMTA3L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5jCitJ bmRleDogZ2RiLTcuMi41MC4yMDExMDExNy9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktcHJl dHR5cHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjIuNTAuMjAxMTAxMDcub3JpZy9nZGIv dGVzdHN1aXRlL2dkYi5weXRob24vcHktcHJldHR5cHJpbnQuYwkyMDExLTAxLTAxIDE2OjMzOjQ5 LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL3Rlc3RzdWl0ZS9n ZGIucHl0aG9uL3B5LXByZXR0eXByaW50LmMJMjAxMS0wMS0wNyAwOToxMToxOC4wMDAwMDAwMDAg KzAxMDAKKy0tLSBnZGItNy4yLjUwLjIwMTEwMTE3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0 aG9uL3B5LXByZXR0eXByaW50LmMJMjAxMS0wMS0wMSAxNjozMzo0OS4wMDAwMDAwMDAgKzAxMDAK KysrKyBnZGItNy4yLjUwLjIwMTEwMTE3L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0 dHlwcmludC5jCTIwMTEtMDEtMTcgMTY6MDg6MTYuMDAwMDAwMDAwICswMTAwCiBAQCAtNDQsNiAr NDQsMTAgQEAgc3RydWN0IGxhenlzdHJpbmcgewogICAgY29uc3QgY2hhciAqbGF6eV9zdHI7CiAg fTsKQEAgLTUwLDEwICs1MCwxMCBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvdGVz dHN1aXRlL2dkYi5weXRob24vcHktcHJldHR5cHJpbnQuYwogIAogICAgbnN0eXBlLmVsZW1lbnRz ID0gbmFycmF5OwogICAgbnN0eXBlLmxlbiA9IDA7Ci1JbmRleDogZ2RiLTcuMi41MC4yMDExMDEw Ny9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktcHJldHR5cHJpbnQuZXhwCitJbmRleDogZ2Ri LTcuMi41MC4yMDExMDExNy9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktcHJldHR5cHJpbnQu ZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMi41MC4yMDExMDEwNy5vcmlnL2dkYi90ZXN0c3Vp dGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5leHAJMjAxMS0wMS0wNyAwOTowMzozOC4wMDAw MDAwMDAgKzAxMDAKLSsrKyBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi90ZXN0c3VpdGUvZ2RiLnB5 dGhvbi9weS1wcmV0dHlwcmludC5leHAJMjAxMS0wMS0wNyAwOToxMTozMi4wMDAwMDAwMDAgKzAx MDAKKy0tLSBnZGItNy4yLjUwLjIwMTEwMTE3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9u L3B5LXByZXR0eXByaW50LmV4cAkyMDExLTAxLTAxIDE2OjMzOjQ5LjAwMDAwMDAwMCArMDEwMAor KysrIGdkYi03LjIuNTAuMjAxMTAxMTcvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXByZXR0 eXByaW50LmV4cAkyMDExLTAxLTE3IDE2OjA4OjMzLjAwMDAwMDAwMCArMDEwMAogQEAgLTk3LDYg Kzk3LDggQEAgcHJvYyBydW5fbGFuZ190ZXN0cyB7bGFuZ30gewogICAgICBnZGJfdGVzdF9ub19v dXRwdXQgInB5dGhvbiBwcF9sc19lbmNvZGluZyA9ICdVVEYtOCciCiAgICAgIGdkYl90ZXN0ICJw cmludCBlc3RyaW5nMiIgIlwiZW1iZWRkZWQgXCIsIDxpbmNvbXBsZXRlIHNlcXVlbmNlIFxcXFwz MDI+IgpAQCAtNjIsMTEgKzYyLDExIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi90 ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5leHAKICsKICAgICAgZ2RiX3Rlc3Qg InByaW50IGMiICIgPSBjb250YWluZXIgXCJjb250YWluZXJcIiB3aXRoIDIgZWxlbWVudHMgPSB7 JG5sICouMC4gPSAyMywkbmwgKi4xLiA9IDcyJG5sfSIKICAKLSAgICAgZ2RiX3Rlc3QgInByaW50 IG51bGxzdHIiICJSdW50aW1lRXJyb3I6IEVycm9yIHJlYWRpbmcgc3RyaW5nIGZyb20gaW5mZXJp b3IuKiIKLUluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhv bi9weS1wcmV0dHlwcmludC5weQorICAgICBnZGJfdGVzdCAicHJpbnQgbnN0eXBlIiAiID0geyRu bCAqLjAuID0gNywkbmwgKi4xLiA9IDQyJG5sfSIKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTE3 L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5weQogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjIuNTAuMjAxMTAxMDcub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHkt cHJldHR5cHJpbnQucHkJMjAxMS0wMS0wMSAxNjozMzo0OS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBn ZGItNy4yLjUwLjIwMTEwMTA3L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmlu dC5weQkyMDExLTAxLTA3IDA5OjExOjE4LjAwMDAwMDAwMCArMDEwMAorLS0tIGdkYi03LjIuNTAu MjAxMTAxMTcub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktcHJldHR5cHJpbnQucHkJ MjAxMS0wMS0wMSAxNjozMzo0OS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEw MTE3L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5weQkyMDExLTAxLTE3 IDE2OjA4OjE2LjAwMDAwMDAwMCArMDEwMAogQEAgLTE1Niw2ICsxNTYsMTggQEAgY2xhc3MgcHBf bHM6CiAgICAgIGRlZiBkaXNwbGF5X2hpbnQgKHNlbGYpOgogICAgICAgICAgcmV0dXJuICdzdHJp bmcnCgpkaWZmIC0tZ2l0IGEvZ2RiLnNwZWMgYi9nZGIuc3BlYwppbmRleCBkZmExZTBkLi5jZjFi MDI2IDEwMDY0NAotLS0gYS9nZGIuc3BlYworKysgYi9nZGIuc3BlYwpAQCAtMjMsMTEgKzIzLDEx IEBAIE5hbWU6IGdkYiV7P193aXRoX2RlYnVnOi1kZWJ1Z30KICMgU2V0IHZlcnNpb24gdG8gY29u dGVudHMgb2YgZ2RiL3ZlcnNpb24uaW4uCiAjIE5PVEU6IHRoZSBGU0YgZ2RiIHZlcnNpb25zIGFy ZSBudW1iZXJlZCBOLk0gZm9yIG9mZmljaWFsIHJlbGVhc2VzLCBsaWtlIDYuMwogIyBhbmQsIHNp bmNlIEphbnVhcnkgMjAwNSwgWC5ZLlouZGF0ZSBmb3IgZGFpbHkgc25hcHNob3RzLCBsaWtlIDYu My41MC4yMDA1MDExMiAjIChkYWlseSBzbmFwc2hvdCBmcm9tIG1haWxpbmUpLCBvciA2LjMuMC4y MDA0MDExMiAoaGVhZCBvZiB0aGUgcmVsZWFzZSBicmFuY2gpLgotVmVyc2lvbjogNy4yLjUwLjIw MTEwMTA3CitWZXJzaW9uOiA3LjIuNTAuMjAxMTAxMTcKIAogIyBUaGUgcmVsZWFzZSBhbHdheXMg Y29udGFpbnMgYSBsZWFkaW5nIHJlc2VydmVkIG51bWJlciwgc3RhcnQgaXQgYXQgMS4KICMgYHVw c3RyZWFtJyBpcyBub3QgYSBwYXJ0IG9mIGBuYW1lJyB0byBzdGF5IGZ1bGx5IHJwbSBkZXBlbmRl bmNpZXMgY29tcGF0aWJsZSBmb3IgdGhlIHRlc3RpbmcuCi1SZWxlYXNlOiAxMCV7P193aXRoX3Vw c3RyZWFtOi51cHN0cmVhbX0le2Rpc3R9CitSZWxlYXNlOiAxMSV7P193aXRoX3Vwc3RyZWFtOi51 cHN0cmVhbX0le2Rpc3R9CiAKIExpY2Vuc2U6IEdQTHYzKyBhbmQgR1BMdjMrIHdpdGggZXhjZXB0 aW9ucyBhbmQgR1BMdjIrIGFuZCBHUEx2Misgd2l0aCBleGNlcHRpb25zIGFuZCBHUEwrIGFuZCBM R1BMdjIrIGFuZCBHRkRMIGFuZCBCU0QgYW5kIFB1YmxpYyBEb21haW4KIEdyb3VwOiBEZXZlbG9w bWVudC9EZWJ1Z2dlcnMKQEAgLTQxOCw2ICs0MTgsOSBAQCBQYXRjaDM4MTogZ2RiLXNpbXVsdGFu ZW91cy1zdGVwLXJlc3VtZS1icmVha3BvaW50LXRlc3QucGF0Y2gKICM9cHVzaCt3b3JrOiBJdCBz aG91bGQgYmUgaW4gZ2xpYmM6IGxpYmMtYWxwaGE6IDwyMDA5MTAwNDE2MTcwNi5HQTI3NDUwQC4q PgogUGF0Y2gzODI6IGdkYi1jb3JlLW9wZW4tdmRzby13YXJuaW5nLnBhdGNoCiAKKyMgRml4IGNh bGxiYWNrLW1vZGUgcmVhZGxpbmUtNi4wIHJlZ3Jlc3Npb24gZm9yIENUUkwtQyAoZm9yIFJIRUwt Ni4wKS4KK1BhdGNoMzkwOiBnZGItcmVhZGxpbmUtNi4wLXNpZ25hbC5wYXRjaAorCiAjIEZpeCBz eXNjYWxsIHJlc3RhcnRzIGZvciBhbWQ2NC0+aTM4NiBiaWFyY2guCiAjPXB1c2gKIFBhdGNoMzkx OiBnZGIteDg2XzY0LWkzODYtc3lzY2FsbC1yZXN0YXJ0LnBhdGNoCkBAIC03ODMsOCArNzg2LDE0 IEBAIHJtIC1mIGdkYi9qdi1leHAuYyBnZGIvbTItZXhwLmMgZ2RiL29iamMtZXhwLmMgZ2RiL3At ZXhwLmMKICVwYXRjaDU0NyAtcDEKICVwYXRjaDU0OCAtcDEKIAorJXBhdGNoMzkwIC1wMQogJXBh dGNoMzkzIC1wMQogJXBhdGNoMzM1IC1wMQorcmVhZGxpbmU9IiQocmVhZGxpbmsgLWYgJXtfbGli ZGlyfS9saWJyZWFkbGluZS5zbykiCitpZiBbICIkcmVhZGxpbmUiID0gIiR7cmVhZGxpbmUlL2xp YnJlYWRsaW5lLnNvLjYuMH0iIF0KK3RoZW4KKyVwYXRjaDM5MCAtcDEgLVIKK2ZpCiAlaWYgMCV7 IT9lbDU6MX0KICVwYXRjaDM5MyAtcDEgLVIKICVwYXRjaDMzNSAtcDEgLVIKQEAgLTExNzgsNiAr MTE4NywxMSBAQCBmaQogJWVuZGlmCiAKICVjaGFuZ2Vsb2cKKyogTW9uIEphbiAxNyAyMDExIEph biBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMi41MC4yMDExMDEx Ny0xMS5mYzE1CistIFJlYmFzZSB0byBGU0YgR0RCIDcuMi41MC4yMDExMDExNyAod2hpY2ggaXMg YSA3LjMgcHJlLXJlbGVhc2UpLgorLSBGaXggY2FsbGJhY2stbW9kZSByZWFkbGluZS02LjAgcmVn cmVzc2lvbiBmb3IgQ1RSTC1DIChmb3IgUkhFTC02LjApLgorICAtIEZpeCBvY2Nhc2lvbmFsIE5V TEwgZGVyZWZlcmVuY2Ugb2YgdGhlIHJlYWRsaW5lLTYuMCB3b3JrYXJvdW5kIChCWiA1NzU1MTYp LgorCiAqIFNhdCBKYW4gMTUgMjAxMSBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVk aGF0LmNvbT4gLSA3LjIuNTAuMjAxMTAxMDctMTAuZmMxNQogLSBbZGVsYXllZC1zeW1maWxlXSBU ZXN0IGEgYmFja3RyYWNlIHJlZ3Jlc3Npb24gb24gQ0ZJcyB3aXRob3V0IERJRSAoQlogNjE0NjA0 KS4KIC0gW2FyY2hlci10cm9tZXktZGVsYXllZC1zeW1maWxlXSBOZXcgdGVzdCBnZGIuZHdhcmYy L2R3Mi1hcmFuZ2VzLmV4cC4KCmRpZmYgLS1naXQgYS9zb3VyY2VzIGIvc291cmNlcwppbmRleCA4 ODMyZmU5Li43NjZjZGY4IDEwMDY0NAotLS0gYS9zb3VyY2VzCisrKyBiL3NvdXJjZXMKQEAgLTEs MiArMSwyIEBACi1hNDA5MjA5ZTk1Y2Q3MTcyNzQ0MzFiMmVhYTc3ZGFjMCAgZ2RiLTcuMi41MC4y MDExMDEwNy50YXIuYnoyCiAwNGU1YzRiMWI5ZTYzMzQyMmNjNDg5OTBmZTYxOTU4ZCAgbGlic3Rk YysrLXYzLXB5dGhvbi1yMTU1OTc4LnRhci5iejIKKzNjZWNiYTIwYjBlZmQ1MWU1YWNiOTM3ZjNh YmQyMDE0ICBnZGItNy4yLjUwLjIwMTEwMTE3LnRhci5iejIK