From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.2 required=5.0 tests=ALL_TRUSTED, DKIM_ADSP_NXDOMAIN,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 10214 invoked from network); 3 Feb 2022 19:15:58 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 3 Feb 2022 19:15:58 -0000 Content-Type: multipart/mixed; boundary="===============4475748501054359743==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_New_package=3A_openjdk17-17=2E0=2E1+12?= To: ml@inbox.vuxu.org From: classabbyamp Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Thu, 03 Feb 2022 20:15:57 +0100 List-Id: Message-ID: <20220203191557.fDR_W7mSUlZHAqeqNxlExe1WMVqGPGLcpJhqaom9_vQ@z> GitHub notification mails are now in MIME to allow UTF8. --===============4475748501054359743== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgY2xhc3NhYmJ5YW1wIGFnYWluc3Qg bWFzdGVyIG9uIHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNv bS9jbGFzc2FiYnlhbXAvdm9pZC1wYWNrYWdlcyBvcGVuamRrMTcKaHR0cHM6Ly9naXRodWIuY29t L3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzM0OTg5CgpOZXcgcGFja2FnZTogb3Blbmpk azE3LTE3LjAuMSsxMgo8IS0tIFVuY29tbWVudCByZWxldmFudCBzZWN0aW9ucyBhbmQgZGVsZXRl IG9wdGlvbnMgd2hpY2ggYXJlIG5vdCBhcHBsaWNhYmxlIC0tPg0KDQpCdWlsdCB1cG9uIHRoZSB3 b3JrIG9mIEBzZ24gYW5kIEByYWVkd3VsZi4NCg0KQ2xvc2VzICMzMjk0Mg0KU3VwZXJjZWRlcyAj MzQzOTAsICMzNTA3OA0KDQojIyMjIFRlc3RpbmcgdGhlIGNoYW5nZXMNCi0gSSB0ZXN0ZWQgdGhl IGNoYW5nZXMgaW4gdGhpcyBQUjogKipZRVMqKg0KDQojIyMjIE5ldyBwYWNrYWdlDQotIFRoaXMg bmV3IHBhY2thZ2UgY29uZm9ybXMgdG8gdGhlIFtxdWFsaXR5IHJlcXVpcmVtZW50c10oaHR0cHM6 Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9ibG9iL21hc3Rlci9NYW51YWwu bWQjcXVhbGl0eS1yZXF1aXJlbWVudHMpOiAqKllFUyoqDQoNCjwhLS0gTm90ZTogSWYgdGhlIGJ1 aWxkIGlzIGxpa2VseSB0byB0YWtlIG1vcmUgdGhhbiAyIGhvdXJzLCBwbGVhc2UgW3NraXAgQ0ld KGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvYmxvYi9tYXN0ZXIv Q09OVFJJQlVUSU5HLm1kI2NvbnRpbnVvdXMtaW50ZWdyYXRpb24pDQphbmQgdGVzdCBhdCBsZWFz dCBvbmUgbmF0aXZlIGJ1aWxkIGFuZCwgaWYgc3VwcG9ydGVkLCBhdCBsZWFzdCBvbmUgY3Jvc3Mg YnVpbGQuDQpJZ25vcmUgdGhpcyBzZWN0aW9uIGlmIHRoaXMgUFIgaXMgbm90IHNraXBwaW5nIENJ Lg0KLS0+DQoNCiMjIyMgTG9jYWwgYnVpbGQgdGVzdGluZw0KLSBJIGJ1aWx0IHRoaXMgUFIgbG9j YWxseSBmb3IgdGhlc2UgYXJjaGl0ZWN0dXJlczoNCg0KfCBhcmNoIHwgY3Jvc3MgfCBidWlsdCB8 IGBjaGVja2AgcGFzc2VzIHwNCnw6LS0tLS06fDotLS0tLTp8Oi0tLS0tOnw6LS0tLS06fA0KfCB4 ODZfNjQgfHwgMTIg4pyUIDxicj4gMTMg4pyUIDxicj4gMTQg4pyUIDxicj4gMTUg4pyUIDxicj4g MTYg4pyUIDxicj4gMTcg4pyUIHwgMTIg4pyUIDxicj4gMTMg4pyUIDxicj4gMTQg4pyUIDxicj4g MTUg4pyUIDxicj4gMTYg4pyUIDxicj4gMTcg4pyUIHwNCnwgeDg2XzY0LW11c2wgfHwgMTIg4pyU IDxicj4gMTMg4pyUIDxicj4gMTQg4pyUIDxicj4gMTUg4pyUIDxicj4gMTYg4pyUIDxicj4gMTcg 4pyUIHwgMTIg4pyUIDxicj4gMTMg4pyUIDxicj4gMTQg4pyUIDxicj4gMTUg4pyUIDxicj4gMTYg 4pyUIDxicj4gMTcg4pyUIHwNCnwgaTY4NiB8fCAxMiDinJQgPGJyPiAxMyDinJQgPGJyPiAxNCDi nJQgPGJyPiAxNSDinJQgPGJyPiAxNiDinJQgPGJyPiAxNyDinJQgfCAxMiDinJQgPGJyPiAxMyDi nJQgPGJyPiAxNCDinJQgPGJyPiAxNSDinJQgPGJyPiAxNiDinJQgPGJyPiAxNyDinJQgfA0KfCBh YXJjaDY0IHwg4pyUIHwgMTcg4pyUIHx8DQp8IGFhcmNoNjQtbXVzbCB8IOKclCB8IDE3IOKclCB8 fA0KfCBhcm12N2wgfCDinJQgfCAxNyDinJQgfHwNCnwgYXJtdjZsLW11c2wgfCDinJQgfCAxNyDi nJQgfHwNCg0KW2NpIHNraXBdCgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20v dm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzQ5ODkucGF0Y2ggaXMgYXR0YWNoZWQ= --===============4475748501054359743== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-openjdk17-34989.patch" RnJvbSA1NDFkNzYxMDk4NzcwYWM5ZDA4YjkzNTAzMmIwZWJmMmIxMTkzNWMwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBjbGFzc2FiYnlhbXAgPGRldkBrYjYuZWU+CkRhdGU6IFR1ZSwg MTEgSmFuIDIwMjIgMDI6NTY6MDQgLTA1MDAKU3ViamVjdDogW1BBVENIIDEvOF0gc2h1dGlsczog aW50cm9kdWNlIFhCUFNfT1JJR19NQUtFSk9CUyB2YXJpYWJsZQpNSU1FLVZlcnNpb246IDEuMApD b250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1F bmNvZGluZzogOGJpdAoKU29tZSBwYWNrYWdlcyBjb3VsZG4ndCB3b3JrIHdlbGwgd2l0aCBYQlBT X01BS0VKT0JTLAp0aHVzIHdlIGRpc2FibGUgcGFyYWxsZWwgYnVpbGQgZm9yIHRob3NlIHBhY2th Z2VzLgoKT24gdGhlIG90aGVyIGhhbmQsIHNvbWUgcGFja2FnZXMgaW5jbHVkaW5nIGJ1dCBub3Qg bGltaXRlZCB0byBvcGVuamRrCnVzZSBhbiBpbnRlcm5hbCBtZWNoYW5pc20gdG8gYnVpbGQgdGhl bXNlbHZlcyBpbiBwYXJhbGxlbC4KCkxldCdzIGludmVudCBhbm90aGVyIHZhcmlhYmxlIGZvciB0 aG9zZSBwYWNrYWdlcy4KCihtZXNzYWdlIGJ5IHNnbikKCkNvLWF1dGhvcmVkLWJ5OiDEkG/DoG4g VHLhuqduIEPDtG5nIERhbmggPGNvbmdkYW5ocXhAZ21haWwuY29tPgotLS0KIGNvbW1vbi94YnBz LXNyYy9zaHV0aWxzL2NvbW1vbi5zaCB8IDQgKysrLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2NvbW1vbi94YnBzLXNyYy9zaHV0 aWxzL2NvbW1vbi5zaCBiL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2NvbW1vbi5zaAppbmRleCAx NzM5MTI0MDUwZjcuLjQ3ZmYzNjVlOWZmMiAxMDA2NDQKLS0tIGEvY29tbW9uL3hicHMtc3JjL3No dXRpbHMvY29tbW9uLnNoCisrKyBiL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2NvbW1vbi5zaApA QCAtNDY1LDcgKzQ2NSw5IEBAIHNldHVwX3BrZygpIHsKICAgICBERVNURElSPSRYQlBTX0RFU1RE SVIvJFhCUFNfQ1JPU1NfVFJJUExFVC8ke3NvdXJjZXBrZ30tJHt2ZXJzaW9ufQogICAgIFBLR0RF U1RESVI9JFhCUFNfREVTVERJUi8kWEJQU19DUk9TU19UUklQTEVULyR7cGtnfS0ke3ZlcnNpb259 CiAKLSAgICBpZiBbIC1uICIkZGlzYWJsZV9wYXJhbGxlbF9idWlsZCIgLW8gLXogIiRYQlBTX01B S0VKT0JTIiBdOyB0aGVuCisgICAgOiAke1hCUFNfTUFLRUpPQlM6PTF9CisgICAgZXhwb3J0IFhC UFNfT1JJR19NQUtFSk9CUz0ke1hCUFNfT1JJR19NQUtFSk9CUzo9JFhCUFNfTUFLRUpPQlN9Cisg ICAgaWYgWyAtbiAiJGRpc2FibGVfcGFyYWxsZWxfYnVpbGQiIF07IHRoZW4KICAgICAgICAgWEJQ U19NQUtFSk9CUz0xCiAgICAgZmkKICAgICBtYWtlam9icz0iLWokWEJQU19NQUtFSk9CUyIKCkZy b20gY2VlOGJhZWIzNGNhZTk1MGI2MmM0MGM0OTUyOGU2NzA4ZDM1ZmE2YyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogY2xhc3NhYmJ5YW1wIDxkZXZAa2I2LmVlPgpEYXRlOiBNb24sIDE3 IEphbiAyMDIyIDA2OjE4OjM3IC0wNTAwClN1YmplY3Q6IFtQQVRDSCAyLzhdIE5ldyBwYWNrYWdl OiBvcGVuamRrMTItYm9vdHN0cmFwLTEyLjAuMisxMAoKLS0tCiAuLi4vZmlsZXMvbXVzbF9wYXRj aGVzL2FhcmNoNjQucGF0Y2ggICAgICAgICAgfCAgMTAgKwogLi4uL2ZpbGVzL211c2xfcGF0Y2hl cy9hcm0ucGF0Y2ggICAgICAgICAgICAgIHwgIDI0ICsrCiAuLi4vZmlsZXMvbXVzbF9wYXRjaGVz L2J1aWxkLnBhdGNoICAgICAgICAgICAgfCAzODcgKysrKysrKysrKysrKysrKysrCiAuLi4vZmls ZXMvbXVzbF9wYXRjaGVzL3BwYy5wYXRjaCAgICAgICAgICAgICAgfCAgNDUgKysKIC4uLi9maWxl cy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoICAgICAgICAgICAgICB8IDEzMCArKysrKysKIHNyY3Br Z3Mvb3BlbmpkazEyLWJvb3RzdHJhcC90ZW1wbGF0ZSAgICAgICAgICB8IDExNyArKysrKysKIDYg ZmlsZXMgY2hhbmdlZCwgNzEzIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL29wZW5qZGsxMi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0Y2gK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxMi1ib290c3RyYXAvZmlsZXMvbXVz bF9wYXRjaGVzL2FybS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazEy LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL29wZW5qZGsxMi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3BwYy5w YXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazEyLWJvb3RzdHJhcC9maWxl cy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVu amRrMTItYm9vdHN0cmFwL3RlbXBsYXRlCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTIt Ym9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNoIGIvc3JjcGtncy9vcGVu amRrMTItYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYWE2YzVkNGQyYmUyCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTItYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9h YXJjaDY0LnBhdGNoCkBAIC0wLDAgKzEsMTAgQEAKKy0tLSBhL3NyYy9ob3RzcG90L29zX2NwdS9s aW51eF9hYXJjaDY0L29zX2xpbnV4X2FhcmNoNjQuY3BwCisrKysgYi9zcmMvaG90c3BvdC9vc19j cHUvbGludXhfYWFyY2g2NC9vc19saW51eF9hYXJjaDY0LmNwcAorQEAgLTc0LDcgKzc0LDYgQEAK KyAjIGluY2x1ZGUgPHB3ZC5oPgorICMgaW5jbHVkZSA8cG9sbC5oPgorICMgaW5jbHVkZSA8dWNv bnRleHQuaD4KKy0jIGluY2x1ZGUgPGZwdV9jb250cm9sLmg+CisgCisgI2RlZmluZSBSRUdfRlAg MjkKKyAjZGVmaW5lIFJFR19MUiAzMApkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTItYm9v dHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsxMi1i b290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLmFkYzQ1MjY2MGRmNQotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3Mvb3BlbmpkazEyLWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoCkBA IC0wLDAgKzEsMjQgQEAKKy0tLSBhL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9hcm0vb3NfbGlu dXhfYXJtLmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X2FybS9vc19saW51eF9h cm0uY3BwCitAQCAtNzEsOSArNzEsMjAgQEAKKyAjIGluY2x1ZGUgPHB3ZC5oPgorICMgaW5jbHVk ZSA8cG9sbC5oPgorICMgaW5jbHVkZSA8dWNvbnRleHQuaD4KKy0jIGluY2x1ZGUgPGZwdV9jb250 cm9sLmg+CisgIyBpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisgCisrLy8gU3R1cGlkIGhhY2sgYXMg dGhlIG9yaWdpbiBpZiBiZWxvdyBkb2VzbnQgY29tcGlsZSB3aXRoIGdjYyA4LjIuMDoKKysvLwor Ky8vIG9zX2xpbnV4X2FybS5jcHA6MTE0OjU6IGVycm9yOiBtaXNzaW5nIGJpbmFyeSBvcGVyYXRv ciBiZWZvcmUgdG9rZW4gIigiCisrLy8gICNpZiBOR1JFRyA9PSAxNgorKy8vICAgICAgIF5+fn5+ CisrLy8KKysvLyBUaGUgTkdSRUcgaXMgMTggKGJpdHMvc2lnbmFsLmg6MTApLCBzbyBmb3JjZSBp dCB0byB0aGF0IHZhbHVlLgorKyNpZmRlZiBOR1JFRworKyMgIHVuZGVmIE5HUkVHCisrI2VuZGlm CisrI2RlZmluZSBOR1JFRyAxOAorKworICNkZWZpbmUgU1BFTExfUkVHX1NQICAic3AiCisgCisg Ly8gRG9uJ3QgI2RlZmluZSBTUEVMTF9SRUdfRlAgZm9yIHRodW1iIGJlY2F1c2UgaXQgaXMgbm90 IHNhZmUgdG8gdXNlLCBzbyB0aGlzIG1ha2VzIHN1cmUgd2UgbmV2ZXIgZmV0Y2ggaXQuCmRpZmYg LS1naXQgYS9zcmNwa2dzL29wZW5qZGsxMi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2J1 aWxkLnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTItYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hl cy9idWlsZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjhl MjM5YmZlNzg2MwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazEyLWJvb3RzdHJh cC9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2gKQEAgLTAsMCArMSwzODcgQEAKK2RpZmYg LS1naXQgYS9tYWtlL1JlbGVhc2VGaWxlLmdtayBiL21ha2UvUmVsZWFzZUZpbGUuZ21rCistLS0g YS9tYWtlL1JlbGVhc2VGaWxlLmdtaworKysrIGIvbWFrZS9SZWxlYXNlRmlsZS5nbWsKK0BAIC01 Myw2ICs1Myw3IEBAIGRlZmluZSBjcmVhdGUtaW5mby1maWxlCisgICAkKGNhbGwgaW5mby1maWxl LWl0ZW0sICJKQVZBX1ZFUlNJT05fREFURSIsICIkKFZFUlNJT05fREFURSkiKQorICAgJChjYWxs IGluZm8tZmlsZS1pdGVtLCAiT1NfTkFNRSIsICIkKFJFTEVBU0VfRklMRV9PU19OQU1FKSIpCisg ICAkKGNhbGwgaW5mby1maWxlLWl0ZW0sICJPU19BUkNIIiwgIiQoUkVMRUFTRV9GSUxFX09TX0FS Q0gpIikKKysgICQoY2FsbCBpbmZvLWZpbGUtaXRlbSwgIkxJQkMiLCAibXVzbCIpCisgZW5kZWYK KyAKKyAjIFBhcmFtIDEgLSBUaGUgZmlsZSBjb250YWluaW5nIHRoZSBNT0RVTEVTIGxpc3QKK2Rp ZmYgLS1naXQgYS9tYWtlL2hvdHNwb3QvbGliL0NvbXBpbGVKdm0uZ21rIGIvbWFrZS9ob3RzcG90 L2xpYi9Db21waWxlSnZtLmdtaworLS0tIGEvbWFrZS9ob3RzcG90L2xpYi9Db21waWxlSnZtLmdt aworKysrIGIvbWFrZS9ob3RzcG90L2xpYi9Db21waWxlSnZtLmdtaworQEAgLTcxLDYgKzcxLDcg QEAgQ0ZMQUdTX1ZNX1ZFUlNJT04gOj0gXAorICAgICAtREhPVFNQT1RfQlVJTERfVVNFUj0nIiQo VVNFUk5BTUUpIicgXAorICAgICAtREhPVFNQT1RfVk1fRElTVFJPPSciJChIT1RTUE9UX1ZNX0RJ U1RSTykiJyBcCisgICAgIC1EQ1BVPSciJChPUEVOSkRLX1RBUkdFVF9DUFVfVk1fVkVSU0lPTiki JyBcCisrICAgIC1ETElCQz0nIm11c2wiJyBcCisgICAgICMKKyAKKyAjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworZGlmZiAtLWdpdCBhL21ha2UvbGliL0NvcmVMaWJyYXJpZXMuZ21rIGIvbWFrZS9s aWIvQ29yZUxpYnJhcmllcy5nbWsKKy0tLSBhL21ha2UvbGliL0NvcmVMaWJyYXJpZXMuZ21rCisr KysgYi9tYWtlL2xpYi9Db3JlTGlicmFyaWVzLmdtaworQEAgLTE5NCw2ICsxOTQsNyBAQCBpZmVx ICgkKE9QRU5KREtfVEFSR0VUX09TKSwgd2luZG93cykKKyBlbmRpZgorIAorIExJQkpMSV9DRkxB R1MgKz0gJChMSUJaX0NGTEFHUykKKytMSUJKTElfQ0ZMQUdTICs9IC1ETElCQz1cIm11c2xcIgor IAorIGlmbmVxICgkKFVTRV9FWFRFUk5BTF9MSUJaKSwgdHJ1ZSkKKyAgIExJQkpMSV9FWFRSQV9G SUxFUyArPSBcCitkaWZmIC0tZ2l0IGEvc3JjL2hvdHNwb3Qvb3MvbGludXgvb3NfbGludXguY3Bw IGIvc3JjL2hvdHNwb3Qvb3MvbGludXgvb3NfbGludXguY3BwCistLS0gYS9zcmMvaG90c3BvdC9v cy9saW51eC9vc19saW51eC5jcHAKKysrKyBiL3NyYy9ob3RzcG90L29zL2xpbnV4L29zX2xpbnV4 LmNwcAorQEAgLTk5LDcgKzk5LDYgQEAKKyAjIGluY2x1ZGUgPHN0cmluZy5oPgorICMgaW5jbHVk ZSA8c3lzY2FsbC5oPgorICMgaW5jbHVkZSA8c3lzL3N5c2luZm8uaD4KKy0jIGluY2x1ZGUgPGdu dS9saWJjLXZlcnNpb24uaD4KKyAjIGluY2x1ZGUgPHN5cy9pcGMuaD4KKyAjIGluY2x1ZGUgPHN5 cy9zaG0uaD4KKyAjIGluY2x1ZGUgPGxpbmsuaD4KK0BAIC01MTksNiArNTE4LDExIEBAIHZvaWQg b3M6OkxpbnV4Ojpob3RzcG90X3NpZ21hc2soVGhyZWFkKiB0aHJlYWQpIHsKKyAvLyBkZXRlY3Rp bmcgcHRocmVhZCBsaWJyYXJ5CisgCisgdm9pZCBvczo6TGludXg6OmxpYnB0aHJlYWRfaW5pdCgp IHsKKysjaWYgIWRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKQorKyAg Ly8gSGFyZCBjb2RlIEFscGluZSBMaW51eCBzdXBwb3J0ZWQgbXVzbCBjb21wYXRpYmxlIHNldHRp bmdzCisrICBvczo6TGludXg6OnNldF9nbGliY192ZXJzaW9uKCJnbGliYyAyLjkiKTsKKysgIG9z OjpMaW51eDo6c2V0X2xpYnB0aHJlYWRfdmVyc2lvbigiTlBUTCIpOworKyNlbHNlCisgICAvLyBT YXZlIGdsaWJjIGFuZCBwdGhyZWFkIHZlcnNpb24gc3RyaW5ncy4KKyAjaWYgIWRlZmluZWQoX0NT X0dOVV9MSUJDX1ZFUlNJT04pIHx8IFwKKyAgICAgIWRlZmluZWQoX0NTX0dOVV9MSUJQVEhSRUFE X1ZFUlNJT04pCitAQCAtNTM2LDYgKzU0MCw3IEBAIHZvaWQgb3M6OkxpbnV4OjpsaWJwdGhyZWFk X2luaXQoKSB7CisgICBzdHIgPSAoY2hhciAqKW1hbGxvYyhuLCBtdEludGVybmFsKTsKKyAgIGNv bmZzdHIoX0NTX0dOVV9MSUJQVEhSRUFEX1ZFUlNJT04sIHN0ciwgbik7CisgICBvczo6TGludXg6 OnNldF9saWJwdGhyZWFkX3ZlcnNpb24oc3RyKTsKKysjZW5kaWYKKyB9CisgCisgLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8KK0BAIC0yODU1LDIwICsyODYwLDM2IEBAIHZvaWQgb3M6OkxpbnV4OjpzY2hl ZF9nZXRjcHVfaW5pdCgpIHsKKyBleHRlcm4gIkMiIEpOSUVYUE9SVCB2b2lkIG51bWFfd2Fybihp bnQgbnVtYmVyLCBjaGFyICp3aGVyZSwgLi4uKSB7IH0KKyBleHRlcm4gIkMiIEpOSUVYUE9SVCB2 b2lkIG51bWFfZXJyb3IoY2hhciAqd2hlcmUpIHsgfQorIAorK3N0YXRpYyB2b2lkKiBkbHZzeW1f aWZfYXZhaWxhYmxlKHZvaWQqIGhhbmRsZSwgY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciog dmVyc2lvbikgeworKyAgdHlwZWRlZiB2b2lkKiAoKmRsdnN5bV9mdW5jX3R5cGUpKHZvaWQqIGhh bmRsZSwgY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciogdmVyc2lvbik7CisrICBzdGF0aWMg ZGx2c3ltX2Z1bmNfdHlwZSBkbHZzeW1fZnVuYzsKKysgIHN0YXRpYyBib29sIGluaXRpYWxpemVk ID0gZmFsc2U7CisrCisrICBpZiAoIWluaXRpYWxpemVkKSB7CisrICAgIGRsdnN5bV9mdW5jID0g KGRsdnN5bV9mdW5jX3R5cGUpZGxzeW0oUlRMRF9ORVhULCAiZGx2c3ltIik7CisrICAgIGluaXRp YWxpemVkID0gdHJ1ZTsKKysgIH0KKysKKysgIGlmIChkbHZzeW1fZnVuYyAhPSBOVUxMKSB7Cisr ICAgIHZvaWQgKmYgPSBkbHZzeW1fZnVuYyhoYW5kbGUsIG5hbWUsIHZlcnNpb24pOworKyAgICBp ZiAoZiAhPSBOVUxMKSB7CisrICAgICAgcmV0dXJuIGY7CisrICAgIH0KKysgIH0KKysKKysgIHJl dHVybiBkbHN5bShoYW5kbGUsIG5hbWUpOworK30KKysKKyAvLyBIYW5kbGUgcmVxdWVzdCB0byBs b2FkIGxpYm51bWEgc3ltYm9sIHZlcnNpb24gMS4xIChBUEkgdjEpLiBJZiBpdCBmYWlscworIC8v IGxvYWQgc3ltYm9sIGZyb20gYmFzZSB2ZXJzaW9uIGluc3RlYWQuCisgdm9pZCogb3M6OkxpbnV4 OjpsaWJudW1hX2Rsc3ltKHZvaWQqIGhhbmRsZSwgY29uc3QgY2hhciAqbmFtZSkgeworLSAgdm9p ZCAqZiA9IGRsdnN5bShoYW5kbGUsIG5hbWUsICJsaWJudW1hXzEuMSIpOworLSAgaWYgKGYgPT0g TlVMTCkgeworLSAgICBmID0gZGxzeW0oaGFuZGxlLCBuYW1lKTsKKy0gIH0KKy0gIHJldHVybiBm OworKyAgcmV0dXJuIGRsdnN5bV9pZl9hdmFpbGFibGUoaGFuZGxlLCBuYW1lLCAibGlibnVtYV8x LjEiKTsKKyB9CisgCisgLy8gSGFuZGxlIHJlcXVlc3QgdG8gbG9hZCBsaWJudW1hIHN5bWJvbCB2 ZXJzaW9uIDEuMiAoQVBJIHYyKSBvbmx5LgorIC8vIFJldHVybiBOVUxMIGlmIHRoZSBzeW1ib2wg aXMgbm90IGRlZmluZWQgaW4gdGhpcyBwYXJ0aWN1bGFyIHZlcnNpb24uCisgdm9pZCogb3M6Okxp bnV4OjpsaWJudW1hX3YyX2Rsc3ltKHZvaWQqIGhhbmRsZSwgY29uc3QgY2hhciogbmFtZSkgewor LSAgcmV0dXJuIGRsdnN5bShoYW5kbGUsIG5hbWUsICJsaWJudW1hXzEuMiIpOworKyAgcmV0dXJu IGRsdnN5bV9pZl9hdmFpbGFibGUoaGFuZGxlLCBuYW1lLCAibGlibnVtYV8xLjIiKTsKKyB9Cisg CisgYm9vbCBvczo6TGludXg6OmxpYm51bWFfaW5pdCgpIHsKK2RpZmYgLS1naXQgYS9zcmMvaG90 c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAgYi9zcmMvaG90c3BvdC9vc19j cHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKKy0tLSBhL3NyYy9ob3RzcG90L29zX2NwdS9s aW51eF94ODYvb3NfbGludXhfeDg2LmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4 X3g4Ni9vc19saW51eF94ODYuY3BwCitAQCAtNzUsOSArNzUsNiBAQAorICMgaW5jbHVkZSA8cHdk Lmg+CisgIyBpbmNsdWRlIDxwb2xsLmg+CisgIyBpbmNsdWRlIDx1Y29udGV4dC5oPgorLSNpZm5k ZWYgQU1ENjQKKy0jIGluY2x1ZGUgPGZwdV9jb250cm9sLmg+CistI2VuZGlmCisgCisgI2lmZGVm IEFNRDY0CisgI2RlZmluZSBSRUdfU1AgUkVHX1JTUAorZGlmZiAtLWdpdCBhL3NyYy9ob3RzcG90 L3NoYXJlL2djL3NoYXJlZC9nZW5Db2xsZWN0ZWRIZWFwLmNwcCBiL3NyYy9ob3RzcG90L3NoYXJl L2djL3NoYXJlZC9nZW5Db2xsZWN0ZWRIZWFwLmNwcAorLS0tIGEvc3JjL2hvdHNwb3Qvc2hhcmUv Z2Mvc2hhcmVkL2dlbkNvbGxlY3RlZEhlYXAuY3BwCisrKysgYi9zcmMvaG90c3BvdC9zaGFyZS9n Yy9zaGFyZWQvZ2VuQ29sbGVjdGVkSGVhcC5jcHAKK0BAIC0xMTQ4LDcgKzExNDgsNyBAQCBIZWFw V29yZCogR2VuQ29sbGVjdGVkSGVhcDo6YWxsb2NhdGVfbmV3X3RsYWIoc2l6ZV90IG1pbl9zaXpl LAorIHN0YXRpYyBTY3JhdGNoQmxvY2sgKnJlbW92ZVNtYWxsZXN0U2NyYXRjaChTY3JhdGNoQmxv Y2sgKipwcmV2X3B0cikgeworICAgYm9vbCBmaXJzdCA9IHRydWU7CisgICBzaXplX3QgbWluX3Np emUgPSAwOyAgIC8vICJmaXJzdCIgbWFrZXMgdGhpcyBjb25jZXB0dWFsbHkgaW5maW5pdGUuCist ICBTY3JhdGNoQmxvY2sgKipzbWFsbGVzdF9wdHIsICpzbWFsbGVzdDsKKysgIFNjcmF0Y2hCbG9j ayAqKnNtYWxsZXN0X3B0ciA9IE5VTEwsICpzbWFsbGVzdDsKKyAgIFNjcmF0Y2hCbG9jayAgKmN1 ciA9ICpwcmV2X3B0cjsKKyAgIHdoaWxlIChjdXIpIHsKKyAgICAgYXNzZXJ0KCpwcmV2X3B0ciA9 PSBjdXIsICJqdXN0IGNoZWNraW5nIik7CitkaWZmIC0tZ2l0IGEvc3JjL2hvdHNwb3Qvc2hhcmUv cnVudGltZS92bV92ZXJzaW9uLmNwcCBiL3NyYy9ob3RzcG90L3NoYXJlL3J1bnRpbWUvdm1fdmVy c2lvbi5jcHAKKy0tLSBhL3NyYy9ob3RzcG90L3NoYXJlL3J1bnRpbWUvdm1fdmVyc2lvbi5jcHAK KysrKyBiL3NyYy9ob3RzcG90L3NoYXJlL3J1bnRpbWUvdm1fdmVyc2lvbi5jcHAKK0BAIC0yNzAs NyArMjcwLDcgQEAgY29uc3QgY2hhciogQWJzdHJhY3RfVk1fVmVyc2lvbjo6aW50ZXJuYWxfdm1f aW5mb19zdHJpbmcoKSB7CisgICAjZW5kaWYKKyAKKyAgICNkZWZpbmUgSU5URVJOQUxfVkVSU0lP Tl9TVUZGSVggVk1fUkVMRUFTRSAiKSIgXAorLSAgICAgICAgICIgZm9yICIgT1MgIi0iIENQVSBG TE9BVF9BUkNIX1NUUiBcCisrICAgICAgICAgIiBmb3IgIiBPUyAiLSIgQ1BVIEZMT0FUX0FSQ0hf U1RSIExJQkMgXAorICAgICAgICAgICIgSlJFICgiIFZFUlNJT05fU1RSSU5HICIpLCBidWlsdCBv biAiIF9fREFURV9fICIgIiBfX1RJTUVfXyBcCisgICAgICAgICAgIiBieSAiIFhTVFIoSE9UU1BP VF9CVUlMRF9VU0VSKSAiIHdpdGggIiBIT1RTUE9UX0JVSUxEX0NPTVBJTEVSCisgCitkaWZmIC0t Z2l0IGEvc3JjL2hvdHNwb3Qvc2hhcmUvdXRpbGl0aWVzL2dsb2JhbERlZmluaXRpb25zX2djYy5o cHAgYi9zcmMvaG90c3BvdC9zaGFyZS91dGlsaXRpZXMvZ2xvYmFsRGVmaW5pdGlvbnNfZ2NjLmhw cAorLS0tIGEvc3JjL2hvdHNwb3Qvc2hhcmUvdXRpbGl0aWVzL2dsb2JhbERlZmluaXRpb25zX2dj Yy5ocHAKKysrKyBiL3NyYy9ob3RzcG90L3NoYXJlL3V0aWxpdGllcy9nbG9iYWxEZWZpbml0aW9u c19nY2MuaHBwCitAQCAtMjA0LDcgKzIwNCw3IEBAIGlubGluZSBpbnQgZ19pc25hbihkb3VibGUg ZikgeyByZXR1cm4gaXNuYW5kKGYpOyB9CisgI2VsaWYgZGVmaW5lZChfX0FQUExFX18pCisgaW5s aW5lIGludCBnX2lzbmFuKGRvdWJsZSBmKSB7IHJldHVybiBpc25hbihmKTsgfQorICNlbGlmIGRl ZmluZWQoTElOVVgpIHx8IGRlZmluZWQoX0FMTEJTRF9TT1VSQ0UpCistaW5saW5lIGludCBnX2lz bmFuKGZsb2F0ICBmKSB7IHJldHVybiBpc25hbmYoZik7IH0KKytpbmxpbmUgaW50IGdfaXNuYW4o ZmxvYXQgIGYpIHsgcmV0dXJuIGlzbmFuKGYpOyB9CisgaW5saW5lIGludCBnX2lzbmFuKGRvdWJs ZSBmKSB7IHJldHVybiBpc25hbihmKTsgfQorICNlbHNlCisgI2Vycm9yICJtaXNzaW5nIHBsYXRm b3JtLXNwZWNpZmljIGRlZmluaXRpb24gaGVyZSIKK2RpZmYgLS1naXQgYS9zcmMvamF2YS5iYXNl L2xpbnV4L25hdGl2ZS9saWJuZXQvbGludXhfY2xvc2UuYyBiL3NyYy9qYXZhLmJhc2UvbGludXgv bmF0aXZlL2xpYm5ldC9saW51eF9jbG9zZS5jCistLS0gYS9zcmMvamF2YS5iYXNlL2xpbnV4L25h dGl2ZS9saWJuZXQvbGludXhfY2xvc2UuYworKysrIGIvc3JjL2phdmEuYmFzZS9saW51eC9uYXRp dmUvbGlibmV0L2xpbnV4X2Nsb3NlLmMKK0BAIC02MCw3ICs2MCw3IEBAIHR5cGVkZWYgc3RydWN0 IHsKKyAvKgorICAqIFNpZ25hbCB0byB1bmJsb2NrIHRocmVhZAorICAqLworLXN0YXRpYyBpbnQg c2lnV2FrZXVwID0gKF9fU0lHUlRNQVggLSAyKTsKKytzdGF0aWMgaW50IHNpZ1dha2V1cDsKKyAK KyAvKgorICAqIGZkVGFibGUgaG9sZHMgb25lIGVudHJ5IHBlciBmaWxlIGRlc2NyaXB0b3IsIHVw IHRvIGEgY2VydGFpbgorQEAgLTE0OSw2ICsxNDksNyBAQCBzdGF0aWMgdm9pZCBfX2F0dHJpYnV0 ZSgoY29uc3RydWN0b3IpKSBpbml0KCkgeworICAgICAvKgorICAgICAgKiBTZXR1cCB0aGUgc2ln bmFsIGhhbmRsZXIKKyAgICAgICovCisrICAgIHNpZ1dha2V1cCA9IFNJR1JUTUFYIC0gMjsKKyAg ICAgc2Euc2FfaGFuZGxlciA9IHNpZ193YWtldXA7CisgICAgIHNhLnNhX2ZsYWdzICAgPSAwOwor ICAgICBzaWdlbXB0eXNldCgmc2Euc2FfbWFzayk7CitkaWZmIC0tZ2l0IGEvc3JjL2phdmEuYmFz ZS91bml4L25hdGl2ZS9saWJqYXZhL2NoaWxkcHJvYy5jIGIvc3JjL2phdmEuYmFzZS91bml4L25h dGl2ZS9saWJqYXZhL2NoaWxkcHJvYy5jCistLS0gYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZl L2xpYmphdmEvY2hpbGRwcm9jLmMKKysrKyBiL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGli amF2YS9jaGlsZHByb2MuYworQEAgLTIzNCw3ICsyMzQsMTMgQEAgSkRLX2V4ZWN2cGUoaW50IG1v ZGUsIGNvbnN0IGNoYXIgKmZpbGUsCisgeworICAgICBpZiAoZW52cCA9PSBOVUxMIHx8IChjaGFy ICoqKSBlbnZwID09IGVudmlyb24pIHsKKyAgICAgICAgIGV4ZWN2cChmaWxlLCAoY2hhciAqKikg YXJndik7CistICAgICAgICByZXR1cm47CisrICAgICAgICAvLyBFTk9FWEVDIGluZGljYXRlcyB0 aGF0IHRoZSBmaWxlIGhlYWRlciB3YXMgbm90IHJlY29nbml6ZWQuIFRoZSBtdXNsIEMKKysgICAg ICAgIC8vIGxpYnJhcnkgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBmYWxsYmFjayB0byAvYmluL3No IGZvciB0aGF0IGNhc2UsIHNvIGZhbGwKKysgICAgICAgIC8vIHRocm91Z2ggdG8gdGhlIGNvZGUg YmVsb3cgd2hpY2ggaW1wbGVtZW50cyB0aGF0IGZhbGxiYWNrIHVzaW5nCisrICAgICAgICAvLyBl eGVjdmVfd2l0aF9zaGVsbF9mYWxsYmFjay4KKysgICAgICAgIGlmIChlcnJubyAhPSBFTk9FWEVD KSB7CisrICAgICAgICAgICAgcmV0dXJuOworKyAgICAgICAgfQorICAgICB9CisgCisgICAgIGlm ICgqZmlsZSA9PSAnXDAnKSB7CitkaWZmIC0tZ2l0IGEvc3JjL2phdmEuYmFzZS91bml4L25hdGl2 ZS9saWJqYXZhL2pka191dGlsX21kLmggYi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmph dmEvamRrX3V0aWxfbWQuaAorLS0tIGEvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZh L2pka191dGlsX21kLmgKKysrKyBiL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2YS9q ZGtfdXRpbF9tZC5oCitAQCAtMzcsNyArMzcsNyBAQAorICNkZWZpbmUgSVNOQU5EKGQpIGlzbmFu KGQpCisgI2VsaWYgZGVmaW5lZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX0FMTEJTRF9TT1VSQ0Up CisgI2luY2x1ZGUgPG1hdGguaD4KKy0jZGVmaW5lIElTTkFORihmKSBpc25hbmYoZikKKysjZGVm aW5lIElTTkFORihmKSBpc25hbihmKQorICNkZWZpbmUgSVNOQU5EKGQpIGlzbmFuKGQpCisgI2Vs aWYgZGVmaW5lZChfQUlYKQorICNpbmNsdWRlIDxtYXRoLmg+CitkaWZmIC0tZ2l0IGEvc3JjL2ph dmEuYmFzZS91bml4L25hdGl2ZS9saWJqbGkvamF2YV9tZF9zb2xpbnV4LmMgYi9zcmMvamF2YS5i YXNlL3VuaXgvbmF0aXZlL2xpYmpsaS9qYXZhX21kX3NvbGludXguYworLS0tIGEvc3JjL2phdmEu YmFzZS91bml4L25hdGl2ZS9saWJqbGkvamF2YV9tZF9zb2xpbnV4LmMKKysrKyBiL3NyYy9qYXZh LmJhc2UvdW5peC9uYXRpdmUvbGliamxpL2phdmFfbWRfc29saW51eC5jCitAQCAtMjM1LDYgKzIz NSwzOSBAQCBSZXF1aXJlc1NldGVudihjb25zdCBjaGFyICpqdm1wYXRoKSB7CisgICAgIGNoYXIg KmRtbGxwID0gTlVMTDsKKyAgICAgY2hhciAqcDsgLyogYSB1dGlsaXR5IHBvaW50ZXIgKi8KKyAK KysjaWZkZWYgX19saW51eAorKyNpZm5kZWYgTElCQworKyNlcnJvciAiTElCQyBub3Qgc2V0Igor KyNlbmRpZgorKworKyAgICBpZiAoc3RyY21wKExJQkMsICJtdXNsIikgPT0gMCkgeworKyAgICAg IC8qCisrICAgICAgICogVGhlIG11c2wgbGlicmFyeSBsb2FkZXIgcmVxdWlyZXMgTERfTElCUkFS WV9QQVRIIHRvIGJlIHNldCBpbgorKyAgICAgICAqIG9yZGVyIHRvIGNvcnJlY3RseSByZXNvbHZl IHRoZSBkZXBlbmRlbmN5IGxpYmphdmEuc28gaGFzIG9uIGxpYmp2bS5zby4KKysgICAgICAgKgor KyAgICAgICAqIFNwZWNpZmljYWxseSwgaXQgZGlmZmVycyBmcm9tIGdsaWJjIGluIHRoZSBzZW5z ZSB0aGF0IGV2ZW4gaWYKKysgICAgICAgKiBsaWJqdm0uc28gaGFzIGFscmVhZHkgYmVlbiBsb2Fk ZWQgaXQgd2lsbCBub3QgYmUgY29uc2lkZXJlZCBhCisrICAgICAgICogY2FuZGlkYXRlIGZvciBy ZXNvbHZpbmcgdGhlIGRlcGVuZGVuY3kgdW5sZXNzIHRoZSAqZnVsbCogcGF0aAorKyAgICAgICAq IG9mIHRoZSBhbHJlYWR5IGxvYWRlZCBsaWJyYXJ5IG1hdGNoZXMgdGhlIGRlcGVuZGVuY3kgYmVp bmcgbG9hZGVkLgorKyAgICAgICAqCisrICAgICAgICogbGlianZtLnNvIGlzIGJlaW5nIGxvYWRl ZCBieSB0aGUgbGF1bmNoZXIgdXNpbmcgYSBsb25nIHBhdGggdG8KKysgICAgICAgKiBkbG9wZW4s IG5vdCBqdXN0IHRoZSBiYXNlbmFtZSBvZiB0aGUgbGlicmFyeS4gVHlwaWNhbGx5IHRoaXMKKysg ICAgICAgKiBpcyBzb21ldGhpbmcgbGlrZSAiLi4vbGliL3NlcnZlci9saWJqdm0uc28iLiBIb3dl dmVyLCBpZi93aGVuCisrICAgICAgICogbGlianZtLnNvIGxhdGVyIHRyaWVzIHRvIGRsb3BlbiBs aWJqYXZhLnNvICh3aGljaCBpdCBkb2VzIGluCisrICAgICAgICogb3JkZXIgdG8gZ2V0IGFjY2Vz cyB0byBhIGZldyBmdW5jdGlvbnMgaW1wbGVtZW50ZWQgaW4KKysgICAgICAgKiBsaWJqYXZhLnNv KSB0aGUgbXVzbCBsb2FkZXIgd2lsbCwgYXMgcGFydCBvZiBsb2FkaW5nCisrICAgICAgICogZGVw ZW5kZW50IGxpYnJhcmllcywgdHJ5IHRvIGxvYWQgbGlianZtLnNvIHVzaW5nIG9ubHkgaXRzCisr ICAgICAgICogYmFzZW5hbWUgImxpYmp2bS5zbyIuIFNpbmNlIHRoaXMgZG9lcyBub3QgbWF0Y2gg dGhlIGxvbmdlcgorKyAgICAgICAqIHBhdGggcGF0aCBpdCB3YXMgZmlyc3QgbG9hZGVkIHdpdGgs IHRoZSBhbHJlYWR5IGxvYWRlZAorKyAgICAgICAqIGxpYnJhcnkgaXMgbm90IGNvbnNpZGVyZWQg YSBjYW5kaWRhdGUsIGFuZCB0aGUgbG9hZGVyIHdpbGwKKysgICAgICAgKiBpbnN0ZWFkIGxvb2sg Zm9yIGxpYmp2bS5zbyBlbHNld2hlcmUuIElmIGl0J3Mgbm90IGluCisrICAgICAgICogTERfTElC UkFSWV9QQVRIIHRoZSBkZXBlbmRlbmN5IGxvYWQgd2lsbCBmYWlsLCBhbmQgbGliamF2YS5zbwor KyAgICAgICAqIHdpbGwgdGhlcmVmb3JlIGZhaWwgYXMgd2VsbC4KKysgICAgICAgKi8KKysgICAg ICByZXR1cm4gSk5JX1RSVUU7CisrICAgIH0KKysjZW5kaWYKKysKKyAjaWZkZWYgQUlYCisgICAg IC8qIFdlIGFsd2F5cyBoYXZlIHRvIHNldCB0aGUgTElCUEFUSCBvbiBBSVggYmVjYXVzZSBsZCBk b2Vzbid0IHN1cHBvcnQgJE9SSUdJTi4gKi8KKyAgICAgcmV0dXJuIEpOSV9UUlVFOworZGlmZiAt LWdpdCBhL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGlibmlvL2NoL05hdGl2ZVRocmVhZC5j IGIvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJuaW8vY2gvTmF0aXZlVGhyZWFkLmMKKy0t LSBhL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGlibmlvL2NoL05hdGl2ZVRocmVhZC5jCisr KysgYi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYm5pby9jaC9OYXRpdmVUaHJlYWQuYwor QEAgLTM2LDcgKzM2LDcgQEAKKyAjaWZkZWYgX19saW51eF9fCisgICAjaW5jbHVkZSA8cHRocmVh ZC5oPgorICAgLyogQWxzbyBkZWZpbmVkIGluIG5ldC9saW51eF9jbG9zZS5jICovCistICAjZGVm aW5lIElOVEVSUlVQVF9TSUdOQUwgKF9fU0lHUlRNQVggLSAyKQorKyAgI2RlZmluZSBJTlRFUlJV UFRfU0lHTkFMIChTSUdSVE1BWCAtIDIpCisgI2VsaWYgZGVmaW5lZChfQUlYKQorICAgI2luY2x1 ZGUgPHB0aHJlYWQuaD4KKyAgIC8qIEFsc28gZGVmaW5lZCBpbiBuZXQvYWl4X2Nsb3NlLmMgKi8K K2RpZmYgLS1naXQgYS9zcmMvamF2YS5kZXNrdG9wL3VuaXgvbmF0aXZlL2xpYmF3dF94YXd0L3hh d3QvWFRvb2xraXQuYyBiL3NyYy9qYXZhLmRlc2t0b3AvdW5peC9uYXRpdmUvbGliYXd0X3hhd3Qv eGF3dC9YVG9vbGtpdC5jCistLS0gYS9zcmMvamF2YS5kZXNrdG9wL3VuaXgvbmF0aXZlL2xpYmF3 dF94YXd0L3hhd3QvWFRvb2xraXQuYworKysrIGIvc3JjL2phdmEuZGVza3RvcC91bml4L25hdGl2 ZS9saWJhd3RfeGF3dC94YXd0L1hUb29sa2l0LmMKK0BAIC0yNyw5ICsyNyw2IEBACisgI2luY2x1 ZGUgPFgxMS9YdXRpbC5oPgorICNpbmNsdWRlIDxYMTEvWG9zLmg+CisgI2luY2x1ZGUgPFgxMS9Y YXRvbS5oPgorLSNpZmRlZiBfX2xpbnV4X18KKy0jaW5jbHVkZSA8ZXhlY2luZm8uaD4KKy0jZW5k aWYKKyAKKyAjaW5jbHVkZSA8anZtLmg+CisgI2luY2x1ZGUgPGpuaS5oPgorQEAgLTc5MSwyNiAr Nzg4LDYgQEAgSk5JRVhQT1JUIGpzdHJpbmcgSk5JQ0FMTCBKYXZhX3N1bl9hd3RfWDExX1hUb29s a2l0X2dldEVudgorICAgICByZXR1cm4gcmV0OworIH0KKyAKKy0jaWZkZWYgX19saW51eF9fCist dm9pZCBwcmludF9zdGFjayh2b2lkKQorLXsKKy0gIHZvaWQgKmFycmF5WzEwXTsKKy0gIHNpemVf dCBzaXplOworLSAgY2hhciAqKnN0cmluZ3M7CistICBzaXplX3QgaTsKKy0KKy0gIHNpemUgPSBi YWNrdHJhY2UgKGFycmF5LCAxMCk7CistICBzdHJpbmdzID0gYmFja3RyYWNlX3N5bWJvbHMgKGFy cmF5LCBzaXplKTsKKy0KKy0gIGZwcmludGYgKHN0ZGVyciwgIk9idGFpbmVkICV6ZCBzdGFjayBm cmFtZXMuXG4iLCBzaXplKTsKKy0KKy0gIGZvciAoaSA9IDA7IGkgPCBzaXplOyBpKyspCistICAg ICBmcHJpbnRmIChzdGRlcnIsICIlc1xuIiwgc3RyaW5nc1tpXSk7CistCistICBmcmVlIChzdHJp bmdzKTsKKy19CistI2VuZGlmCistCisgV2luZG93IGdldF94YXd0X3Jvb3Rfc2hlbGwoSk5JRW52 ICplbnYpIHsKKyAgIHN0YXRpYyBqY2xhc3MgY2xhc3NYUm9vdFdpbmRvdyA9IE5VTEw7CisgICBz dGF0aWMgam1ldGhvZElEIG1ldGhvZEdldFhSb290V2luZG93ID0gTlVMTDsKK2RpZmYgLS1naXQg YS9zcmMvamRrLmpkd3AuYWdlbnQvc2hhcmUvbmF0aXZlL2xpYmpkd3AvdXRpbC5oIGIvc3JjL2pk ay5qZHdwLmFnZW50L3NoYXJlL25hdGl2ZS9saWJqZHdwL3V0aWwuaAorLS0tIGEvc3JjL2pkay5q ZHdwLmFnZW50L3NoYXJlL25hdGl2ZS9saWJqZHdwL3V0aWwuaAorKysrIGIvc3JjL2pkay5qZHdw LmFnZW50L3NoYXJlL25hdGl2ZS9saWJqZHdwL3V0aWwuaAorQEAgLTM1LDE1ICszNSwxNSBAQAor ICNpZmRlZiBERUJVRworICAgICAvKiBKdXN0IHRvIG1ha2Ugc3VyZSB0aGVzZSBpbnRlcmZhY2Vz IGFyZSBub3QgdXNlZCBoZXJlLiAqLworICAgICAjdW5kZWYgZnJlZQorLSAgICAjZGVmaW5lIGZy ZWUocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSBmcmVlIGRvX25v dF91c2VfdGhpc19pbnRlcmZhY2VfZnJlZQorICAgICAjdW5kZWYgbWFsbG9jCistICAgICNkZWZp bmUgbWFsbG9jKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUgbWFs bG9jIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2VfbWFsbG9jCisgICAgICN1bmRlZiBjYWxsb2MK Ky0gICAgI2RlZmluZSBjYWxsb2MocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAg I2RlZmluZSBjYWxsb2MgZG9fbm90X3VzZV90aGlzX2ludGVyZmFjZV9jYWxsb2MKKyAgICAgI3Vu ZGVmIHJlYWxsb2MKKy0gICAgI2RlZmluZSByZWFsbG9jKHApIERvIG5vdCB1c2UgdGhpcyBpbnRl cmZhY2UuCisrICAgICNkZWZpbmUgcmVhbGxvYyBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX3Jl YWxsb2MKKyAgICAgI3VuZGVmIHN0cmR1cAorLSAgICAjZGVmaW5lIHN0cmR1cChwKSBEbyBub3Qg dXNlIHRoaXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIHN0cmR1cCBkb19ub3RfdXNlX3RoaXNf aW50ZXJmYWNlX3N0cmR1cAorICNlbmRpZgorIAorICNpbmNsdWRlICJsb2dfbWVzc2FnZXMuaCIK K2RpZmYgLS1naXQgYS90ZXN0L2hvdHNwb3QvanRyZWcvcnVudGltZS9TdGFja0d1YXJkUGFnZXMv ZXhlaW52b2tlLmMgYi90ZXN0L2hvdHNwb3QvanRyZWcvcnVudGltZS9TdGFja0d1YXJkUGFnZXMv ZXhlaW52b2tlLmMKKy0tLSBhL3Rlc3QvaG90c3BvdC9qdHJlZy9ydW50aW1lL1N0YWNrR3VhcmRQ YWdlcy9leGVpbnZva2UuYworKysrIGIvdGVzdC9ob3RzcG90L2p0cmVnL3J1bnRpbWUvU3RhY2tH dWFyZFBhZ2VzL2V4ZWludm9rZS5jCitAQCAtMzMsNiArMzMsNyBAQAorIAorICNpbmNsdWRlIDxh c3NlcnQuaD4KKyAjaW5jbHVkZSA8am5pLmg+CisrI2luY2x1ZGUgPGp2bS5oPgorICNpbmNsdWRl IDxhbGxvY2EuaD4KKyAjaW5jbHVkZSA8c2lnbmFsLmg+CisgI2luY2x1ZGUgPHN0cmluZy5oPgor QEAgLTkxLDYgKzkyLDIwIEBAIHZvaWQgc2V0X3NpZ25hbF9oYW5kbGVyKCkgeworICAgfQorIH0K KyAKKytpbnQgZ2V0X2phdmFfc3RhY2tzaXplICgpIHsKKysgIHNpemVfdCBzdGFja3NpemU7Cisr ICBwdGhyZWFkX2F0dHJfdCBhdHRyOworKyAgSkRLMV8xSW5pdEFyZ3MgamRrX2FyZ3M7CisrCisr ICBqZGtfYXJncy52ZXJzaW9uID0gSk5JX1ZFUlNJT05fMV8xOworKyAgSk5JX0dldERlZmF1bHRK YXZhVk1Jbml0QXJncygmamRrX2FyZ3MpOworKyAgaWYgKGpka19hcmdzLmphdmFTdGFja1NpemUg PD0gMCkgeworKyAgICBmcHJpbnRmKHN0ZGVyciwgIlRlc3QgRVJST1IuIENhbid0IGdldCBhIHZh bGlkIHZhbHVlIGZvciB0aGUgZGVmYXVsdCBzdGFja3NpemUuXG4iKTsKKysgICAgZXhpdCg3KTsK KysgIH0KKysgIHJldHVybiBqZGtfYXJncy5qYXZhU3RhY2tTaXplOworK30KKysKKyB2b2lkICpy dW5famF2YV9vdmVyZmxvdyAodm9pZCAqcCkgeworICAgSk5JRW52ICplbnY7CisgICBqY2xhc3Mg Y2xhc3NfaWQ7CitAQCAtMjU0LDEzICsyNjksMTkgQEAgaW50IG1haW4gKGludCBhcmdjLCBjb25z dCBjaGFyKiogYXJndikgeworICAgICBleGl0KDcpOworICAgfQorIAorKyAgaW50IHN0YWNrX3Np emUgPSBnZXRfamF2YV9zdGFja3NpemUoKTsKKyAgIHB0aHJlYWRfdCB0aHI7CisrICBwdGhyZWFk X2F0dHJfdCB0aHJlYWRfYXR0cjsKKysKKysgIHB0aHJlYWRfYXR0cl9pbml0KCZ0aHJlYWRfYXR0 cik7CisrICBwdGhyZWFkX2F0dHJfc2V0c3RhY2tzaXplKCZ0aHJlYWRfYXR0ciwgc3RhY2tfc2l6 ZSk7CisgCisgICBpZiAoYXJnYyA+IDEgJiYgc3RyY21wKGFyZ3ZbMV0sICJ0ZXN0X2phdmFfb3Zl cmZsb3ciKSA9PSAwKSB7CisgICAgIHByaW50ZigiXG5UZXN0aW5nIEpBVkFfT1ZFUkZMT1dcbiIp OworIAorICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9y IG90aGVyIHRocmVhZFxuIik7CistICAgIHB0aHJlYWRfY3JlYXRlICgmdGhyLCBOVUxMLCBydW5f amF2YV9vdmVyZmxvdywgTlVMTCk7CisrCisrICAgIHB0aHJlYWRfY3JlYXRlICgmdGhyLCAmdGhy ZWFkX2F0dHIsIHJ1bl9qYXZhX292ZXJmbG93LCBOVUxMKTsKKyAgICAgcHRocmVhZF9qb2luICh0 aHIsIE5VTEwpOworIAorICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhh dmlvdXIgZm9yIGluaXRpYWwgdGhyZWFkXG4iKTsKK0BAIC0yNzMsNyArMjk0LDcgQEAgaW50IG1h aW4gKGludCBhcmdjLCBjb25zdCBjaGFyKiogYXJndikgeworICAgICBwcmludGYoIlxuVGVzdGlu ZyBOQVRJVkVfT1ZFUkZMT1dcbiIpOworIAorICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3Vh cmQgcGFnZSBiZWhhdmlvdXIgZm9yIG90aGVyIHRocmVhZFxuIik7CistICAgIHB0aHJlYWRfY3Jl YXRlICgmdGhyLCBOVUxMLCBydW5fbmF0aXZlX292ZXJmbG93LCBOVUxMKTsKKysgICAgcHRocmVh ZF9jcmVhdGUgKCZ0aHIsICZ0aHJlYWRfYXR0ciwgcnVuX25hdGl2ZV9vdmVyZmxvdywgTlVMTCk7 CisgICAgIHB0aHJlYWRfam9pbiAodGhyLCBOVUxMKTsKKyAKKyAgICAgcHJpbnRmKCJUZXN0aW5n IHN0YWNrIGd1YXJkIHBhZ2UgYmVoYXZpb3VyIGZvciBpbml0aWFsIHRocmVhZFxuIik7CmRpZmYg LS1naXQgYS9zcmNwa2dzL29wZW5qZGsxMi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3Bw Yy5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazEyLWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMv cHBjLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDMwNmQ1 MDFlNGI4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTItYm9vdHN0cmFwL2Zp bGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2gKQEAgLTAsMCArMSw0NSBAQAorUGF0Y2hlcyBmb3Ig bXVzbCB0YWtlbiBmcm9tIEFscGluZSBsaW51eDogaHR0cHM6Ly9naXQuYWxwaW5lbGludXgub3Jn L2Fwb3J0cy9jb21taXQvP2lkPThhMWFlMTdkNGE5YWY1NDI4NWM3ODkxYTY4MDYyMGU3ZTI0YzYy ODAKKy0tLSBvbGQvc3JjL2hvdHNwb3QvY3B1L3BwYy9tYWNyb0Fzc2VtYmxlcl9wcGMuY3BwCisr KysgbmV3L3NyYy9ob3RzcG90L2NwdS9wcGMvbWFjcm9Bc3NlbWJsZXJfcHBjLmNwcAorQEAgLTQ3 LDYgKzQ3LDggQEAKKyAjaW5jbHVkZSAib3B0by9pbnRyaW5zaWNub2RlLmhwcCIKKyAjZW5kaWYK KyAKKysjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorKworICNpZmRlZiBQUk9EVUNUCisgI2RlZmlu ZSBCTE9DS19DT01NRU5UKHN0cikgLy8gbm90aGluZworICNlbHNlCistLS0gb2xkL3NyYy9ob3Rz cG90L2NwdS9wcGMvdm1fdmVyc2lvbl9wcGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L2NwdS9w cGMvdm1fdmVyc2lvbl9wcGMuY3BwCitAQCAtODQ1LDcgKzg0NSw3IEBAIHZvaWQgVk1fVmVyc2lv bjo6ZGV0ZXJtaW5lX2ZlYXR1cmVzKCkgeworICAgdW5zaWduZWQgbG9uZyBhdXh2ID0gZ2V0YXV4 dmFsKEFUX0hXQ0FQMik7CisgCisgICBpZiAoYXV4diAmIFBQQ19GRUFUVVJFMl9IVE1fTk9TQykg eworLSAgICBpZiAoYXV4diAmIFBQQ19GRUFUVVJFMl9IQVNfSFRNKSB7CisrICAgIGlmIChhdXh2 ICYgUFBDX0ZFQVRVUkUyX0hUTSkgeworICAgICAgIC8vIFRNIG9uIFBPV0VSOCBhbmQgUE9XRVI5 IGluIGNvbXBhdCBtb2RlIChWTSkgaXMgc3VwcG9ydGVkIGJ5IHRoZSBKVk0uCisgICAgICAgLy8g VE0gb24gUE9XRVI5IEREMi4xIE5WIChiYXJlbWV0YWwpIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhl IEpWTSAoVE0gb24KKyAgICAgICAvLyBQT1dFUjkgREQyLjEgTlYgaGFzIGEgZmV3IGlzc3VlcyB0 aGF0IG5lZWQgYSBjb3VwbGUgb2YgZmlybXdhcmUKKy0tLSBvbGQvc3JjL2hvdHNwb3Qvb3NfY3B1 L2xpbnV4X3BwYy9vc19saW51eF9wcGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L29zX2NwdS9s aW51eF9wcGMvb3NfbGludXhfcHBjLmNwcAorQEAgLTc1LDcgKzc1LDcgQEAKKyAjIGluY2x1ZGUg PHB3ZC5oPgorICMgaW5jbHVkZSA8cG9sbC5oPgorICMgaW5jbHVkZSA8dWNvbnRleHQuaD4KKy0K KysjIGluY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKyAKKyBhZGRyZXNzIG9zOjpjdXJyZW50X3N0YWNr X3BvaW50ZXIoKSB7CisgICBpbnRwdHJfdCogY3NwOworLS0tIG9sZC9zcmMvaG90c3BvdC9vc19j cHUvbGludXhfcHBjL3RocmVhZF9saW51eF9wcGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L29z X2NwdS9saW51eF9wcGMvdGhyZWFkX2xpbnV4X3BwYy5jcHAKK0BAIC0yMyw2ICsyMyw4IEBACisg ICoKKyAgKi8KKyAKKysjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorKworICNpbmNsdWRlICJwcmVj b21waWxlZC5ocHAiCisgI2luY2x1ZGUgInJ1bnRpbWUvZnJhbWUuaW5saW5lLmhwcCIKKyAjaW5j bHVkZSAicnVudGltZS90aHJlYWQuaHBwIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTIt Ym9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsx Mi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3g4Ni5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjljNjRjMTg5MDM2YQotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3Mvb3BlbmpkazEyLWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNo CkBAIC0wLDAgKzEsMTMwIEBACitQYXRjaGVzIGZvciBtdXNsIHRha2VuIGZyb20gQWxwaW5lIGxp bnV4OiBodHRwczovL2dpdC5hbHBpbmVsaW51eC5vcmcvYXBvcnRzL2NvbW1pdC8/aWQ9OGExYWUx N2Q0YTlhZjU0Mjg1Yzc4OTFhNjgwNjIwZTdlMjRjNjI4MAorLS0tIG9sZC9zcmMvaG90c3BvdC9v c19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3Qvb3Nf Y3B1L2xpbnV4X3g4Ni9vc19saW51eF94ODYuY3BwCitAQCAtOTAsNiArOTAsMTI2IEBACisgI2Rl ZmluZSBTUEVMTF9SRUdfRlAgImVicCIKKyAjZW5kaWYgLy8gQU1ENjQKKworKy8vID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorKy8vIFRha2VuIGZyb20gZ2xpYmMgMi4yOAorKy8vIHNvdXJjZTogaHR0 cHM6Ly9zb3VyY2V3YXJlLm9yZy9naXQvP3A9Z2xpYmMuZ2l0O2E9YmxvYjtmPXN5c2RlcHMveDg2 L2ZwdV9jb250cm9sLmg7aD00Y2I5OGM1Njc5YjI4OTdmZjRlNTgyNmQyMjhjYmE2YmU1ODllMjRk O2hiPTNjMDNiYWNhMzdmZGNiNTJjMzg4MWU2NTNjYTM5MmJiYTdhOTljMmIKKysvLyA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKysjaWZuZGVmIEFNRDY0CisrLyogRlBVIGNvbnRyb2wgd29yZCBiaXRz LiAgeDg2IHZlcnNpb24uCisrICAgQ29weXJpZ2h0IChDKSAxOTkzLTIwMTggRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExp YnJhcnkuCisrICAgQ29udHJpYnV0ZWQgYnkgT2xhZiBGbGViYmUuCisrCisrICAgVGhlIEdOVSBD IExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y CisrICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs IFB1YmxpYworKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlcgorKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5 IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAg YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlIEdOVQorKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0 aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKysgICA8aHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uICAqLworKworKyNpZm5kZWYgX0ZQVV9DT05UUk9MX0gKKysjZGVmaW5lIF9GUFVf Q09OVFJPTF9ICTEKKysKKysvKiBOb3RlIHRoYXQgdGhpcyBmaWxlIHNldHMgb24geDg2LTY0IG9u bHkgdGhlIHg4NyBGUFUsIGl0IGRvZXMgbm90CisrICAgdG91Y2ggdGhlIFNTRSB1bml0LiAgKi8K KysKKysvKiBIZXJlIGlzIHRoZSBkaXJ0eSBwYXJ0LiBTZXQgdXAgeW91ciAzODcgdGhyb3VnaCB0 aGUgY29udHJvbCB3b3JkCisrICogKGN3KSByZWdpc3Rlci4KKysgKgorKyAqICAgICAxNS0xMyAg ICAxMiAgMTEtMTAgIDktOCAgICAgNy02ICAgICA1ICAgIDQgICAgMyAgICAyICAgIDEgICAgMAor KyAqIHwgcmVzZXJ2ZWQgfCBJQyB8IFJDICB8IFBDIHwgcmVzZXJ2ZWQgfCBQTSB8IFVNIHwgT00g fCBaTSB8IERNIHwgSU0KKysgKgorKyAqIElNOiBJbnZhbGlkIG9wZXJhdGlvbiBtYXNrCisrICog RE06IERlbm9ybWFsaXplZCBvcGVyYW5kIG1hc2sKKysgKiBaTTogWmVyby1kaXZpZGUgbWFzawor KyAqIE9NOiBPdmVyZmxvdyBtYXNrCisrICogVU06IFVuZGVyZmxvdyBtYXNrCisrICogUE06IFBy ZWNpc2lvbiAoaW5leGFjdCByZXN1bHQpIG1hc2sKKysgKgorKyAqIE1hc2sgYml0IGlzIDEgbWVh bnMgbm8gaW50ZXJydXB0LgorKyAqCisrICogUEM6IFByZWNpc2lvbiBjb250cm9sCisrICogMTEg LSByb3VuZCB0byBleHRlbmRlZCBwcmVjaXNpb24KKysgKiAxMCAtIHJvdW5kIHRvIGRvdWJsZSBw cmVjaXNpb24KKysgKiAwMCAtIHJvdW5kIHRvIHNpbmdsZSBwcmVjaXNpb24KKysgKgorKyAqIFJD OiBSb3VuZGluZyBjb250cm9sCisrICogMDAgLSByb3VuZGluZyB0byBuZWFyZXN0CisrICogMDEg LSByb3VuZGluZyBkb3duICh0b3dhcmQgLSBpbmZpbml0eSkKKysgKiAxMCAtIHJvdW5kaW5nIHVw ICh0b3dhcmQgKyBpbmZpbml0eSkKKysgKiAxMSAtIHJvdW5kaW5nIHRvd2FyZCB6ZXJvCisrICoK KysgKiBJQzogSW5maW5pdHkgY29udHJvbAorKyAqIFRoYXQgaXMgZm9yIDgwODcgYW5kIDgwMjg3 IG9ubHkuCisrICoKKysgKiBUaGUgaGFyZHdhcmUgZGVmYXVsdCBpcyAweDAzN2Ygd2hpY2ggd2Ug dXNlLgorKyAqLworKworKyNpbmNsdWRlIDxmZWF0dXJlcy5oPgorKworKy8qIG1hc2tpbmcgb2Yg aW50ZXJydXB0cyAqLworKyNkZWZpbmUgX0ZQVV9NQVNLX0lNICAweDAxCisrI2RlZmluZSBfRlBV X01BU0tfRE0gIDB4MDIKKysjZGVmaW5lIF9GUFVfTUFTS19aTSAgMHgwNAorKyNkZWZpbmUgX0ZQ VV9NQVNLX09NICAweDA4CisrI2RlZmluZSBfRlBVX01BU0tfVU0gIDB4MTAKKysjZGVmaW5lIF9G UFVfTUFTS19QTSAgMHgyMAorKworKy8qIHByZWNpc2lvbiBjb250cm9sICovCisrI2RlZmluZSBf RlBVX0VYVEVOREVEIDB4MzAwCS8qIGxpYm0gcmVxdWlyZXMgZG91YmxlIGV4dGVuZGVkIHByZWNp c2lvbi4gICovCisrI2RlZmluZSBfRlBVX0RPVUJMRSAgIDB4MjAwCisrI2RlZmluZSBfRlBVX1NJ TkdMRSAgIDB4MAorKworKy8qIHJvdW5kaW5nIGNvbnRyb2wgKi8KKysjZGVmaW5lIF9GUFVfUkNf TkVBUkVTVCAweDAgICAgLyogUkVDT01NRU5ERUQgKi8KKysjZGVmaW5lIF9GUFVfUkNfRE9XTiAg ICAweDQwMAorKyNkZWZpbmUgX0ZQVV9SQ19VUCAgICAgIDB4ODAwCisrI2RlZmluZSBfRlBVX1JD X1pFUk8gICAgMHhDMDAKKysKKysjZGVmaW5lIF9GUFVfUkVTRVJWRUQgMHhGMEMwICAvKiBSZXNl cnZlZCBiaXRzIGluIGN3ICovCisrCisrCisrLyogVGhlIGZkbGlibSBjb2RlIHJlcXVpcmVzIHN0 cmljdCBJRUVFIGRvdWJsZSBwcmVjaXNpb24gYXJpdGhtZXRpYywKKysgICBhbmQgbm8gaW50ZXJy dXB0cyBmb3IgZXhjZXB0aW9ucywgcm91bmRpbmcgdG8gbmVhcmVzdC4gICovCisrCisrI2RlZmlu ZSBfRlBVX0RFRkFVTFQgIDB4MDM3ZgorKworKy8qIElFRUU6ICBzYW1lIGFzIGFib3ZlLiAgKi8K KysjZGVmaW5lIF9GUFVfSUVFRSAgICAgMHgwMzdmCisrCisrLyogVHlwZSBvZiB0aGUgY29udHJv bCB3b3JkLiAgKi8KKyt0eXBlZGVmIHVuc2lnbmVkIGludCBmcHVfY29udHJvbF90IF9fYXR0cmli dXRlX18gKChfX21vZGVfXyAoX19ISV9fKSkpOworKworKy8qIE1hY3JvcyBmb3IgYWNjZXNzaW5n IHRoZSBoYXJkd2FyZSBjb250cm9sIHdvcmQuICAiKiYiIGlzIHVzZWQgdG8KKysgICB3b3JrIGFy b3VuZCBhIGJ1ZyBpbiBvbGRlciB2ZXJzaW9ucyBvZiBHQ0MuICBfX3ZvbGF0aWxlX18gaXMgdXNl ZAorKyAgIHRvIHN1cHBvcnQgY29tYmluYXRpb24gb2Ygd3JpdGluZyB0aGUgY29udHJvbCByZWdp c3RlciBhbmQgcmVhZGluZworKyAgIGl0IGJhY2suICBXaXRob3V0IF9fdm9sYXRpbGVfXywgdGhl IG9sZCB2YWx1ZSBtYXkgYmUgdXNlZCBmb3IgcmVhZGluZworKyAgIGJhY2sgdW5kZXIgY29tcGls ZXIgb3B0aW1pemF0aW9uLgorKworKyAgIE5vdGUgdGhhdCB0aGUgdXNlIG9mIHRoZXNlIG1hY3Jv cyBpcyBub3Qgc3VmZmljaWVudCBhbnltb3JlIHdpdGgKKysgICByZWNlbnQgaGFyZHdhcmUgbm9y IG9uIHg4Ni02NC4gIFNvbWUgZmxvYXRpbmcgcG9pbnQgb3BlcmF0aW9ucyBhcmUKKysgICBleGVj dXRlZCBpbiB0aGUgU1NFL1NTRTIgZW5naW5lcyB3aGljaCBoYXZlIHRoZWlyIG93biBjb250cm9s IGFuZAorKyAgIHN0YXR1cyByZWdpc3Rlci4gICovCisrI2RlZmluZSBfRlBVX0dFVENXKGN3KSBf X2FzbV9fIF9fdm9sYXRpbGVfXyAoImZuc3RjdyAlMCIgOiAiPW0iICgqJmN3KSkKKysjZGVmaW5l IF9GUFVfU0VUQ1coY3cpIF9fYXNtX18gX192b2xhdGlsZV9fICgiZmxkY3cgJTAiIDogOiAibSIg KComY3cpKQorKworKy8qIERlZmF1bHQgY29udHJvbCB3b3JkIHNldCBhdCBzdGFydHVwLiAgKi8K KytleHRlcm4gZnB1X2NvbnRyb2xfdCBfX2ZwdV9jb250cm9sOworKworKyNlbmRpZgkvKiBmcHVf Y29udHJvbC5oICovCisrCisrI2VuZGlmIC8vIEFNRDY0CisrLy8gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrLy8gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CisrCisgYWRkcmVzcyBvczo6Y3VycmVudF9zdGFja19wb2ludGVyKCkgeworICNpZmRlZiBTUEFS Q19XT1JLUworICAgcmVnaXN0ZXIgdm9pZCAqZXNwOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVu amRrMTItYm9vdHN0cmFwL3RlbXBsYXRlIGIvc3JjcGtncy9vcGVuamRrMTItYm9vdHN0cmFwL3Rl bXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uODEzYTY3YWM1 MGEzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTItYm9vdHN0cmFwL3RlbXBs YXRlCkBAIC0wLDAgKzEsMTE3IEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdvcGVuamRrMTItYm9v dHN0cmFwJworX2phdmFfdmVyPTEyCitfamF2YV9taW5fdmVyPTAKK19qYXZhX3NlY192ZXI9Mgor X2pka191cGRhdGU9MTAKK19qZGtfaG9tZT0idXNyL2xpYi9qdm0vb3BlbmpkayR7X2phdmFfdmVy fSIKK19iYXNlX3ZlcnNpb249IiR7X2phdmFfdmVyfS4ke19qYXZhX21pbl92ZXJ9LiR7X2phdmFf c2VjX3Zlcn0iCisKK3BrZ25hbWU9b3BlbmpkazEyLWJvb3RzdHJhcAordmVyc2lvbj0iJHtfYmFz ZV92ZXJzaW9ufSske19qZGtfdXBkYXRlfSIKK3JldmlzaW9uPTEKK3dya3NyYz0iamRrJHtfamF2 YV92ZXJ9dS1qZGstJHt2ZXJzaW9ufSIKK2J1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKK2NvbmZp Z3VyZV9hcmdzPSItLWRpc2FibGUtd2FybmluZ3MtYXMtZXJyb3JzCisgLS1wcmVmaXg9JHtYQlBT X0RFU1RESVJ9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS91c3IvbGliCisgLS1lbmFibGUtdW5saW1p dGVkLWNyeXB0bworIC0td2l0aC16bGliPXN5c3RlbQorIC0td2l0aC1saWJqcGVnPXN5c3RlbQor IC0td2l0aC1naWZsaWI9c3lzdGVtCisgLS13aXRoLWxpYnBuZz1zeXN0ZW0KKyAtLXdpdGgtbGNt cz1zeXN0ZW0KKyAtLXdpdGgtanRyZWc9bm8KKyAtLXdpdGgtdmVyc2lvbi1idWlsZD0ke19qYXZh X3Zlcn0KKyAtLXdpdGgtam9icz0ke1hCUFNfT1JJR19NQUtFSk9CU30KKyAtLXdpdGgtdmVuZG9y LW5hbWU9Vm9pZAorIC0td2l0aC12ZW5kb3ItdXJsPWh0dHBzOi8vdm9pZGxpbnV4Lm9yZy8KKyAt LXdpdGgtdmVuZG9yLWJ1Zy11cmw9aHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1w YWNrYWdlcy9pc3N1ZXMKKyAtLXdpdGgtdmVuZG9yLXZtLWJ1Zy11cmw9aHR0cHM6Ly9naXRodWIu Y29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9pc3N1ZXMKKyAtLXdpdGgtYm9vdC1qZGs9L3Vz ci9saWIvanZtL29wZW5qZGsxMSIKK21ha2VfYnVpbGRfYXJncz0iaW1hZ2VzIgorbWFrZV9jaGVj a190YXJnZXQ9InRlc3QtaG90c3BvdC1ndGVzdCIKK2hvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZp ZyBhdXRvbWFrZSBhdXRvY29uZiBjcGlvIHRhciB1bnppcCB6aXAgY2EtY2VydGlmaWNhdGVzCisg bGlicmVzc2wgemxpYi1kZXZlbCB3aGljaCBtYWtlLWNhIG9wZW5qZGsxMSIKK21ha2VkZXBlbmRz PSJsaWJYcmVuZGVyLWRldmVsIGxpYlh0c3QtZGV2ZWwgbGliWHQtZGV2ZWwgbGliWHJhbmRyLWRl dmVsCisgZ2lmbGliLWRldmVsIGxpYmpwZWctdHVyYm8tZGV2ZWwgY3Vwcy1kZXZlbCBmcmVldHlw ZS1kZXZlbCBhbHNhLWxpYi1kZXZlbAorIGZvbnRjb25maWctZGV2ZWwgemxpYi1kZXZlbCBsY21z Mi1kZXZlbCIKK3Byb3ZpZGVzPSJqYXZhLWVudmlyb25tZW50LSR7dmVyc2lvbn1fMSBqYXZhLXJ1 bnRpbWUtJHt2ZXJzaW9ufV8xIgorc2hvcnRfZGVzYz0iT3BlbkpESyBKYXZhIERldmVsb3BtZW50 IEtpdCAoYm9vdHN0cmFwIHZlcnNpb24gMTIpIgorbWFpbnRhaW5lcj0iY2xhc3NhYmJ5YW1wIDxk ZXZAa2I2LmVlPiIKK2xpY2Vuc2U9IkdQTC0yLjAtb25seSBXSVRIIENsYXNzcGF0aC1leGNlcHRp b24tMi4wIgoraG9tZXBhZ2U9Imh0dHBzOi8vb3Blbmpkay5qYXZhLm5ldCIKK2Rpc3RmaWxlcz0i aHR0cHM6Ly9oZy5vcGVuamRrLmphdmEubmV0L2pkay11cGRhdGVzL2pkayR7X2phdmFfdmVyfXUv YXJjaGl2ZS9qZGstJHt2ZXJzaW9ufS50YXIuZ3oiCitjaGVja3N1bT1iMmJjYWQzNTY1NmIwMDky ODY4MzQxNmYzNDgwYWQwMDM2M2IwMDk5M2ViNzExYzNlMTg4NmU0ZmU3N2VlZmViCitsaWIzMmRp c2FibGVkPXllcworbm9jcm9zcz15ZXMKKworIyBCdWlsZCBpcyBzdGlsbCBwYXJhbGxlbCwgYnV0 IGRvbid0IHVzZSAtak4uCitkaXNhYmxlX3BhcmFsbGVsX2J1aWxkPXllcworCisjIG5vIGhvdHNw b3QgSklUIGZvciBwcGMzMgorY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJcHBjNjQq KSA7OworCXBwYyopIF91c2VfemVybz15ZXMgOzsKK2VzYWMKKworaWYgWyAtbiAiJF91c2VfemVy byIgXTsgdGhlbgorCW1ha2VkZXBlbmRzKz0iIGxpYmZmaS1kZXZlbCIKKwljb25maWd1cmVfYXJn cys9IiAtLXdpdGgtanZtLXZhcmlhbnRzPXplcm8iCisJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJ TkUiIGluCisJCXBwYyopIGNvbmZpZ3VyZV9hcmdzKz0iIC0td2l0aC1ib290LWpkay1qdm1hcmdz PS1YWDpUaHJlYWRTdGFja1NpemU9MjU2MCI7OworCWVzYWMKK2ZpCisKK3Bvc3RfZXh0cmFjdCgp IHsKKwljaG1vZCAreCBjb25maWd1cmUKKworCWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJt dXNsIiBdOyB0aGVuCisJCXJtIC1yIHNyYy9qZGsuaG90c3BvdC5hZ2VudAorCWZpCit9CisKK3Bv c3RfcGF0Y2goKSB7CisJaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gIm11c2wiIF07IHRoZW4K KwkJZm9yIGYgaW4gIiR7RklMRVNESVJ9Ii9tdXNsX3BhdGNoZXMvKi5wYXRjaDsgZG8KKwkJCW1z Z19ub3JtYWwgIkFwcGx5aW5nICR7ZiMkRklMRVNESVIvfVxuIgorCQkJcGF0Y2ggLWxOcDEgLWkg IiRmIgorCQlkb25lCisJZmkKK30KKworZG9fY29uZmlndXJlKCkgeworCUNGTEFHUz0ke0NGTEFH Uy8tRF9GT1JUSUZZX1NPVVJDRT0yL30KKwlDWFhGTEFHUz0ke0NYWEZMQUdTLy1EX0ZPUlRJRllf U09VUkNFPTIvfQorCisJIyBmb3JjZSBFTEZ2MiBmb3IgcHBjNjQganVzdCBpbiBjYXNlCisJY2Fz ZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJCXBwYzY0KikKKwkJCUNGTEFHUys9IiAtREFC SV9FTEZ2MiIKKwkJCUNYWEZMQUdTKz0iIC1EQUJJX0VMRnYyIgorCQkJOzsKKwllc2FjCisKKwkj IGNvbXBhdGliaWxpdHkgd2l0aCBHQ0MgMTAueAorCUNGTEFHUys9IiAtZmNvbW1vbiAtZm5vLWxp ZmV0aW1lLWRzZSIKKwlDWFhGTEFHUys9IiAtZmNvbW1vbiAtZm5vLWxpZmV0aW1lLWRzZSIKKwor CWNvbmZpZ3VyZV9hcmdzPSR7Y29uZmlndXJlX2FyZ3MvLS13aXRoLWxpYnRvb2wtc3lzcm9vdD1c L3VzclwvW2EtejAtOV0qLWxpbnV4LVthLXpdKi99CisJaWYgWyAiJFhCUFNfQ0NBQ0hFIiBdOyB0 aGVuCisJCWNvbmZpZ3VyZV9hcmdzKz0iIC0tZW5hYmxlLWNjYWNoZSIKKwlmaQorCUNDPSIvdXNy L2Jpbi9jYyIKKwlDWFg9Ii91c3IvYmluL2MrKyIKKwkuL2NvbmZpZ3VyZSAke2NvbmZpZ3VyZV9h cmdzfSBcCisJCS0td2l0aC1leHRyYS1jZmxhZ3M9IiRDRkxBR1MiIFwKKwkJLS13aXRoLWV4dHJh LWN4eGZsYWdzPSIkQ1hYRkxBR1MiIFwKKwkJLS13aXRoLWV4dHJhLWxkZmxhZ3M9IiRMREZMQUdT IiBcCisJCVJFQURFTEY9JFJFQURFTEYgQVI9JEFSIFNUUklQPSRTVFJJUCBOTT0kTk0gXAorCQlP QkpEVU1QPSRPQkpEVU1QIE9CSkNPUFk9JE9CSkNPUFkKK30KKworcG9zdF9pbnN0YWxsKCkgewor CW12ICR7REVTVERJUn0vdXNyL2xpYi9qdm0vb3Blbmpkay0ke19iYXNlX3ZlcnNpb259LWludGVy bmFsICR7REVTVERJUn0vJF9qZGtfaG9tZQorCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9saWIvYmlu CisJcm0gLWYgJERFU1RESVIvJF9qZGtfaG9tZS9saWIvc3JjLnppcAorCXZsaWNlbnNlIEFTU0VN QkxZX0VYQ0VQVElPTgorCXZsaWNlbnNlIExJQ0VOU0UKK30KCkZyb20gNDQ1MGU4MWFiYTc4Yzky YmRlZTM1ZDNjY2RhN2Q3MTY3MjQ5ZjMyMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog Y2xhc3NhYmJ5YW1wIDxkZXZAa2I2LmVlPgpEYXRlOiBNb24sIDE3IEphbiAyMDIyIDA2OjE4OjUz IC0wNTAwClN1YmplY3Q6IFtQQVRDSCAzLzhdIE5ldyBwYWNrYWdlOiBvcGVuamRrMTMtYm9vdHN0 cmFwLTEzLjAuMis4CgotLS0KIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaCAg ICAgICAgICB8ICAxMCArCiAuLi4vZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaCAgICAgICAg ICAgICAgfCAgMjQgKysKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2ggICAgICAg ICAgICB8IDM4NyArKysrKysrKysrKysrKysrKysKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMvcHBj LnBhdGNoICAgICAgICAgICAgICB8ICA0NSArKwogLi4uL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYu cGF0Y2ggICAgICAgICAgICAgIHwgMTMwICsrKysrKwogc3JjcGtncy9vcGVuamRrMTMtYm9vdHN0 cmFwL3RlbXBsYXRlICAgICAgICAgIHwgMTE2ICsrKysrKwogNiBmaWxlcyBjaGFuZ2VkLCA3MTIg aW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazEzLWJvb3Rz dHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3Mvb3BlbmpkazEzLWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNo CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTMtYm9vdHN0cmFwL2ZpbGVzL211 c2xfcGF0Y2hlcy9idWlsZC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3Blbmpk azEzLWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9vcGVuamRrMTMtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYu cGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvdGVt cGxhdGUKCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvZmlsZXMvbXVz bF9wYXRjaGVzL2FhcmNoNjQucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvZmls ZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwLi5hYTZjNWQ0ZDJiZTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29w ZW5qZGsxMy1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0Y2gKQEAgLTAs MCArMSwxMCBAQAorLS0tIGEvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X2FhcmNoNjQvb3NfbGlu dXhfYWFyY2g2NC5jcHAKKysrKyBiL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9hYXJjaDY0L29z X2xpbnV4X2FhcmNoNjQuY3BwCitAQCAtNzQsNyArNzQsNiBAQAorICMgaW5jbHVkZSA8cHdkLmg+ CisgIyBpbmNsdWRlIDxwb2xsLmg+CisgIyBpbmNsdWRlIDx1Y29udGV4dC5oPgorLSMgaW5jbHVk ZSA8ZnB1X2NvbnRyb2wuaD4KKyAKKyAjZGVmaW5lIFJFR19GUCAyOQorICNkZWZpbmUgUkVHX0xS IDMwCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvZmlsZXMvbXVzbF9w YXRjaGVzL2FybS5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazEzLWJvb3RzdHJhcC9maWxlcy9tdXNs X3BhdGNoZXMvYXJtLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uYWRjNDUyNjYwZGY1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTMtYm9v dHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2gKQEAgLTAsMCArMSwyNCBAQAorLS0t IGEvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X2FybS9vc19saW51eF9hcm0uY3BwCisrKysgYi9z cmMvaG90c3BvdC9vc19jcHUvbGludXhfYXJtL29zX2xpbnV4X2FybS5jcHAKK0BAIC03MSw5ICs3 MSwyMCBAQAorICMgaW5jbHVkZSA8cHdkLmg+CisgIyBpbmNsdWRlIDxwb2xsLmg+CisgIyBpbmNs dWRlIDx1Y29udGV4dC5oPgorLSMgaW5jbHVkZSA8ZnB1X2NvbnRyb2wuaD4KKyAjIGluY2x1ZGUg PGFzbS9wdHJhY2UuaD4KKyAKKysvLyBTdHVwaWQgaGFjayBhcyB0aGUgb3JpZ2luIGlmIGJlbG93 IGRvZXNudCBjb21waWxlIHdpdGggZ2NjIDguMi4wOgorKy8vCisrLy8gb3NfbGludXhfYXJtLmNw cDoxMTQ6NTogZXJyb3I6IG1pc3NpbmcgYmluYXJ5IG9wZXJhdG9yIGJlZm9yZSB0b2tlbiAiKCIK KysvLyAgI2lmIE5HUkVHID09IDE2CisrLy8gICAgICAgXn5+fn4KKysvLworKy8vIFRoZSBOR1JF RyBpcyAxOCAoYml0cy9zaWduYWwuaDoxMCksIHNvIGZvcmNlIGl0IHRvIHRoYXQgdmFsdWUuCisr I2lmZGVmIE5HUkVHCisrIyAgdW5kZWYgTkdSRUcKKysjZW5kaWYKKysjZGVmaW5lIE5HUkVHIDE4 CisrCisgI2RlZmluZSBTUEVMTF9SRUdfU1AgICJzcCIKKyAKKyAvLyBEb24ndCAjZGVmaW5lIFNQ RUxMX1JFR19GUCBmb3IgdGh1bWIgYmVjYXVzZSBpdCBpcyBub3Qgc2FmZSB0byB1c2UsIHNvIHRo aXMgbWFrZXMgc3VyZSB3ZSBuZXZlciBmZXRjaCBpdC4KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3Bl bmpkazEzLWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2ggYi9zcmNwa2dz L29wZW5qZGsxMy1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOGUyMzliZmU3ODYzCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTMtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hl cy9idWlsZC5wYXRjaApAQCAtMCwwICsxLDM4NyBAQAorZGlmZiAtLWdpdCBhL21ha2UvUmVsZWFz ZUZpbGUuZ21rIGIvbWFrZS9SZWxlYXNlRmlsZS5nbWsKKy0tLSBhL21ha2UvUmVsZWFzZUZpbGUu Z21rCisrKysgYi9tYWtlL1JlbGVhc2VGaWxlLmdtaworQEAgLTUzLDYgKzUzLDcgQEAgZGVmaW5l IGNyZWF0ZS1pbmZvLWZpbGUKKyAgICQoY2FsbCBpbmZvLWZpbGUtaXRlbSwgIkpBVkFfVkVSU0lP Tl9EQVRFIiwgIiQoVkVSU0lPTl9EQVRFKSIpCisgICAkKGNhbGwgaW5mby1maWxlLWl0ZW0sICJP U19OQU1FIiwgIiQoUkVMRUFTRV9GSUxFX09TX05BTUUpIikKKyAgICQoY2FsbCBpbmZvLWZpbGUt aXRlbSwgIk9TX0FSQ0giLCAiJChSRUxFQVNFX0ZJTEVfT1NfQVJDSCkiKQorKyAgJChjYWxsIGlu Zm8tZmlsZS1pdGVtLCAiTElCQyIsICJtdXNsIikKKyBlbmRlZgorIAorICMgUGFyYW0gMSAtIFRo ZSBmaWxlIGNvbnRhaW5pbmcgdGhlIE1PRFVMRVMgbGlzdAorZGlmZiAtLWdpdCBhL21ha2UvaG90 c3BvdC9saWIvQ29tcGlsZUp2bS5nbWsgYi9tYWtlL2hvdHNwb3QvbGliL0NvbXBpbGVKdm0uZ21r CistLS0gYS9tYWtlL2hvdHNwb3QvbGliL0NvbXBpbGVKdm0uZ21rCisrKysgYi9tYWtlL2hvdHNw b3QvbGliL0NvbXBpbGVKdm0uZ21rCitAQCAtNzEsNiArNzEsNyBAQCBDRkxBR1NfVk1fVkVSU0lP TiA6PSBcCisgICAgIC1ESE9UU1BPVF9CVUlMRF9VU0VSPSciJChVU0VSTkFNRSkiJyBcCisgICAg IC1ESE9UU1BPVF9WTV9ESVNUUk89JyIkKEhPVFNQT1RfVk1fRElTVFJPKSInIFwKKyAgICAgLURD UFU9JyIkKE9QRU5KREtfVEFSR0VUX0NQVV9WTV9WRVJTSU9OKSInIFwKKysgICAgLURMSUJDPSci bXVzbCInIFwKKyAgICAgIworIAorICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitkaWZmIC0tZ2l0 IGEvbWFrZS9saWIvQ29yZUxpYnJhcmllcy5nbWsgYi9tYWtlL2xpYi9Db3JlTGlicmFyaWVzLmdt aworLS0tIGEvbWFrZS9saWIvQ29yZUxpYnJhcmllcy5nbWsKKysrKyBiL21ha2UvbGliL0NvcmVM aWJyYXJpZXMuZ21rCitAQCAtMTk0LDYgKzE5NCw3IEBAIGlmZXEgKCQoT1BFTkpES19UQVJHRVRf T1MpLCB3aW5kb3dzKQorIGVuZGlmCisgCisgTElCSkxJX0NGTEFHUyArPSAkKExJQlpfQ0ZMQUdT KQorK0xJQkpMSV9DRkxBR1MgKz0gLURMSUJDPVwibXVzbFwiCisgCisgaWZuZXEgKCQoVVNFX0VY VEVSTkFMX0xJQlopLCB0cnVlKQorICAgTElCSkxJX0VYVFJBX0ZJTEVTICs9IFwKK2RpZmYgLS1n aXQgYS9zcmMvaG90c3BvdC9vcy9saW51eC9vc19saW51eC5jcHAgYi9zcmMvaG90c3BvdC9vcy9s aW51eC9vc19saW51eC5jcHAKKy0tLSBhL3NyYy9ob3RzcG90L29zL2xpbnV4L29zX2xpbnV4LmNw cAorKysrIGIvc3JjL2hvdHNwb3Qvb3MvbGludXgvb3NfbGludXguY3BwCitAQCAtOTksNyArOTks NiBAQAorICMgaW5jbHVkZSA8c3RyaW5nLmg+CisgIyBpbmNsdWRlIDxzeXNjYWxsLmg+CisgIyBp bmNsdWRlIDxzeXMvc3lzaW5mby5oPgorLSMgaW5jbHVkZSA8Z251L2xpYmMtdmVyc2lvbi5oPgor ICMgaW5jbHVkZSA8c3lzL2lwYy5oPgorICMgaW5jbHVkZSA8c3lzL3NobS5oPgorICMgaW5jbHVk ZSA8bGluay5oPgorQEAgLTUxOSw2ICs1MTgsMTEgQEAgdm9pZCBvczo6TGludXg6OmhvdHNwb3Rf c2lnbWFzayhUaHJlYWQqIHRocmVhZCkgeworIC8vIGRldGVjdGluZyBwdGhyZWFkIGxpYnJhcnkK KyAKKyB2b2lkIG9zOjpMaW51eDo6bGlicHRocmVhZF9pbml0KCkgeworKyNpZiAhZGVmaW5lZChf X0dMSUJDX18pICYmICFkZWZpbmVkKF9fVUNMSUJDX18pCisrICAvLyBIYXJkIGNvZGUgQWxwaW5l IExpbnV4IHN1cHBvcnRlZCBtdXNsIGNvbXBhdGlibGUgc2V0dGluZ3MKKysgIG9zOjpMaW51eDo6 c2V0X2dsaWJjX3ZlcnNpb24oImdsaWJjIDIuOSIpOworKyAgb3M6OkxpbnV4OjpzZXRfbGlicHRo cmVhZF92ZXJzaW9uKCJOUFRMIik7CisrI2Vsc2UKKyAgIC8vIFNhdmUgZ2xpYmMgYW5kIHB0aHJl YWQgdmVyc2lvbiBzdHJpbmdzLgorICNpZiAhZGVmaW5lZChfQ1NfR05VX0xJQkNfVkVSU0lPTikg fHwgXAorICAgICAhZGVmaW5lZChfQ1NfR05VX0xJQlBUSFJFQURfVkVSU0lPTikKK0BAIC01MzYs NiArNTQwLDcgQEAgdm9pZCBvczo6TGludXg6OmxpYnB0aHJlYWRfaW5pdCgpIHsKKyAgIHN0ciA9 IChjaGFyICopbWFsbG9jKG4sIG10SW50ZXJuYWwpOworICAgY29uZnN0cihfQ1NfR05VX0xJQlBU SFJFQURfVkVSU0lPTiwgc3RyLCBuKTsKKyAgIG9zOjpMaW51eDo6c2V0X2xpYnB0aHJlYWRfdmVy c2lvbihzdHIpOworKyNlbmRpZgorIH0KKyAKKyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworQEAgLTI4 NTUsMjAgKzI4NjAsMzYgQEAgdm9pZCBvczo6TGludXg6OnNjaGVkX2dldGNwdV9pbml0KCkgewor IGV4dGVybiAiQyIgSk5JRVhQT1JUIHZvaWQgbnVtYV93YXJuKGludCBudW1iZXIsIGNoYXIgKndo ZXJlLCAuLi4pIHsgfQorIGV4dGVybiAiQyIgSk5JRVhQT1JUIHZvaWQgbnVtYV9lcnJvcihjaGFy ICp3aGVyZSkgeyB9CisgCisrc3RhdGljIHZvaWQqIGRsdnN5bV9pZl9hdmFpbGFibGUodm9pZCog aGFuZGxlLCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiB2ZXJzaW9uKSB7CisrICB0eXBl ZGVmIHZvaWQqICgqZGx2c3ltX2Z1bmNfdHlwZSkodm9pZCogaGFuZGxlLCBjb25zdCBjaGFyKiBu YW1lLCBjb25zdCBjaGFyKiB2ZXJzaW9uKTsKKysgIHN0YXRpYyBkbHZzeW1fZnVuY190eXBlIGRs dnN5bV9mdW5jOworKyAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBmYWxzZTsKKysKKysgIGlm ICghaW5pdGlhbGl6ZWQpIHsKKysgICAgZGx2c3ltX2Z1bmMgPSAoZGx2c3ltX2Z1bmNfdHlwZSlk bHN5bShSVExEX05FWFQsICJkbHZzeW0iKTsKKysgICAgaW5pdGlhbGl6ZWQgPSB0cnVlOworKyAg fQorKworKyAgaWYgKGRsdnN5bV9mdW5jICE9IE5VTEwpIHsKKysgICAgdm9pZCAqZiA9IGRsdnN5 bV9mdW5jKGhhbmRsZSwgbmFtZSwgdmVyc2lvbik7CisrICAgIGlmIChmICE9IE5VTEwpIHsKKysg ICAgICByZXR1cm4gZjsKKysgICAgfQorKyAgfQorKworKyAgcmV0dXJuIGRsc3ltKGhhbmRsZSwg bmFtZSk7CisrfQorKworIC8vIEhhbmRsZSByZXF1ZXN0IHRvIGxvYWQgbGlibnVtYSBzeW1ib2wg dmVyc2lvbiAxLjEgKEFQSSB2MSkuIElmIGl0IGZhaWxzCisgLy8gbG9hZCBzeW1ib2wgZnJvbSBi YXNlIHZlcnNpb24gaW5zdGVhZC4KKyB2b2lkKiBvczo6TGludXg6OmxpYm51bWFfZGxzeW0odm9p ZCogaGFuZGxlLCBjb25zdCBjaGFyICpuYW1lKSB7CistICB2b2lkICpmID0gZGx2c3ltKGhhbmRs ZSwgbmFtZSwgImxpYm51bWFfMS4xIik7CistICBpZiAoZiA9PSBOVUxMKSB7CistICAgIGYgPSBk bHN5bShoYW5kbGUsIG5hbWUpOworLSAgfQorLSAgcmV0dXJuIGY7CisrICByZXR1cm4gZGx2c3lt X2lmX2F2YWlsYWJsZShoYW5kbGUsIG5hbWUsICJsaWJudW1hXzEuMSIpOworIH0KKyAKKyAvLyBI YW5kbGUgcmVxdWVzdCB0byBsb2FkIGxpYm51bWEgc3ltYm9sIHZlcnNpb24gMS4yIChBUEkgdjIp IG9ubHkuCisgLy8gUmV0dXJuIE5VTEwgaWYgdGhlIHN5bWJvbCBpcyBub3QgZGVmaW5lZCBpbiB0 aGlzIHBhcnRpY3VsYXIgdmVyc2lvbi4KKyB2b2lkKiBvczo6TGludXg6OmxpYm51bWFfdjJfZGxz eW0odm9pZCogaGFuZGxlLCBjb25zdCBjaGFyKiBuYW1lKSB7CistICByZXR1cm4gZGx2c3ltKGhh bmRsZSwgbmFtZSwgImxpYm51bWFfMS4yIik7CisrICByZXR1cm4gZGx2c3ltX2lmX2F2YWlsYWJs ZShoYW5kbGUsIG5hbWUsICJsaWJudW1hXzEuMiIpOworIH0KKyAKKyBib29sIG9zOjpMaW51eDo6 bGlibnVtYV9pbml0KCkgeworZGlmZiAtLWdpdCBhL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94 ODYvb3NfbGludXhfeDg2LmNwcCBiL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94ODYvb3NfbGlu dXhfeDg2LmNwcAorLS0tIGEvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3g4Ni9vc19saW51eF94 ODYuY3BwCisrKysgYi9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5j cHAKK0BAIC03NSw5ICs3NSw2IEBACisgIyBpbmNsdWRlIDxwd2QuaD4KKyAjIGluY2x1ZGUgPHBv bGwuaD4KKyAjIGluY2x1ZGUgPHVjb250ZXh0Lmg+CistI2lmbmRlZiBBTUQ2NAorLSMgaW5jbHVk ZSA8ZnB1X2NvbnRyb2wuaD4KKy0jZW5kaWYKKyAKKyAjaWZkZWYgQU1ENjQKKyAjZGVmaW5lIFJF R19TUCBSRUdfUlNQCitkaWZmIC0tZ2l0IGEvc3JjL2hvdHNwb3Qvc2hhcmUvZ2Mvc2hhcmVkL2dl bkNvbGxlY3RlZEhlYXAuY3BwIGIvc3JjL2hvdHNwb3Qvc2hhcmUvZ2Mvc2hhcmVkL2dlbkNvbGxl Y3RlZEhlYXAuY3BwCistLS0gYS9zcmMvaG90c3BvdC9zaGFyZS9nYy9zaGFyZWQvZ2VuQ29sbGVj dGVkSGVhcC5jcHAKKysrKyBiL3NyYy9ob3RzcG90L3NoYXJlL2djL3NoYXJlZC9nZW5Db2xsZWN0 ZWRIZWFwLmNwcAorQEAgLTExNDgsNyArMTE0OCw3IEBAIEhlYXBXb3JkKiBHZW5Db2xsZWN0ZWRI ZWFwOjphbGxvY2F0ZV9uZXdfdGxhYihzaXplX3QgbWluX3NpemUsCisgc3RhdGljIFNjcmF0Y2hC bG9jayAqcmVtb3ZlU21hbGxlc3RTY3JhdGNoKFNjcmF0Y2hCbG9jayAqKnByZXZfcHRyKSB7Cisg ICBib29sIGZpcnN0ID0gdHJ1ZTsKKyAgIHNpemVfdCBtaW5fc2l6ZSA9IDA7ICAgLy8gImZpcnN0 IiBtYWtlcyB0aGlzIGNvbmNlcHR1YWxseSBpbmZpbml0ZS4KKy0gIFNjcmF0Y2hCbG9jayAqKnNt YWxsZXN0X3B0ciwgKnNtYWxsZXN0OworKyAgU2NyYXRjaEJsb2NrICoqc21hbGxlc3RfcHRyID0g TlVMTCwgKnNtYWxsZXN0OworICAgU2NyYXRjaEJsb2NrICAqY3VyID0gKnByZXZfcHRyOworICAg d2hpbGUgKGN1cikgeworICAgICBhc3NlcnQoKnByZXZfcHRyID09IGN1ciwgImp1c3QgY2hlY2tp bmciKTsKK2RpZmYgLS1naXQgYS9zcmMvaG90c3BvdC9zaGFyZS9ydW50aW1lL3ZtX3ZlcnNpb24u Y3BwIGIvc3JjL2hvdHNwb3Qvc2hhcmUvcnVudGltZS92bV92ZXJzaW9uLmNwcAorLS0tIGEvc3Jj L2hvdHNwb3Qvc2hhcmUvcnVudGltZS92bV92ZXJzaW9uLmNwcAorKysrIGIvc3JjL2hvdHNwb3Qv c2hhcmUvcnVudGltZS92bV92ZXJzaW9uLmNwcAorQEAgLTI3MCw3ICsyNzAsNyBAQCBjb25zdCBj aGFyKiBBYnN0cmFjdF9WTV9WZXJzaW9uOjppbnRlcm5hbF92bV9pbmZvX3N0cmluZygpIHsKKyAg ICNlbmRpZgorIAorICAgI2RlZmluZSBJTlRFUk5BTF9WRVJTSU9OX1NVRkZJWCBWTV9SRUxFQVNF ICIpIiBcCistICAgICAgICAgIiBmb3IgIiBPUyAiLSIgQ1BVIEZMT0FUX0FSQ0hfU1RSIFwKKysg ICAgICAgICAiIGZvciAiIE9TICItIiBDUFUgRkxPQVRfQVJDSF9TVFIgTElCQyBcCisgICAgICAg ICAgIiBKUkUgKCIgVkVSU0lPTl9TVFJJTkcgIiksIGJ1aWx0IG9uICIgX19EQVRFX18gIiAiIF9f VElNRV9fIFwKKyAgICAgICAgICAiIGJ5ICIgWFNUUihIT1RTUE9UX0JVSUxEX1VTRVIpICIgd2l0 aCAiIEhPVFNQT1RfQlVJTERfQ09NUElMRVIKKyAKK2RpZmYgLS1naXQgYS9zcmMvaG90c3BvdC9z aGFyZS91dGlsaXRpZXMvZ2xvYmFsRGVmaW5pdGlvbnNfZ2NjLmhwcCBiL3NyYy9ob3RzcG90L3No YXJlL3V0aWxpdGllcy9nbG9iYWxEZWZpbml0aW9uc19nY2MuaHBwCistLS0gYS9zcmMvaG90c3Bv dC9zaGFyZS91dGlsaXRpZXMvZ2xvYmFsRGVmaW5pdGlvbnNfZ2NjLmhwcAorKysrIGIvc3JjL2hv dHNwb3Qvc2hhcmUvdXRpbGl0aWVzL2dsb2JhbERlZmluaXRpb25zX2djYy5ocHAKK0BAIC0yMDQs NyArMjA0LDcgQEAgaW5saW5lIGludCBnX2lzbmFuKGRvdWJsZSBmKSB7IHJldHVybiBpc25hbmQo Zik7IH0KKyAjZWxpZiBkZWZpbmVkKF9fQVBQTEVfXykKKyBpbmxpbmUgaW50IGdfaXNuYW4oZG91 YmxlIGYpIHsgcmV0dXJuIGlzbmFuKGYpOyB9CisgI2VsaWYgZGVmaW5lZChMSU5VWCkgfHwgZGVm aW5lZChfQUxMQlNEX1NPVVJDRSkKKy1pbmxpbmUgaW50IGdfaXNuYW4oZmxvYXQgIGYpIHsgcmV0 dXJuIGlzbmFuZihmKTsgfQorK2lubGluZSBpbnQgZ19pc25hbihmbG9hdCAgZikgeyByZXR1cm4g aXNuYW4oZik7IH0KKyBpbmxpbmUgaW50IGdfaXNuYW4oZG91YmxlIGYpIHsgcmV0dXJuIGlzbmFu KGYpOyB9CisgI2Vsc2UKKyAjZXJyb3IgIm1pc3NpbmcgcGxhdGZvcm0tc3BlY2lmaWMgZGVmaW5p dGlvbiBoZXJlIgorZGlmZiAtLWdpdCBhL3NyYy9qYXZhLmJhc2UvbGludXgvbmF0aXZlL2xpYm5l dC9saW51eF9jbG9zZS5jIGIvc3JjL2phdmEuYmFzZS9saW51eC9uYXRpdmUvbGlibmV0L2xpbnV4 X2Nsb3NlLmMKKy0tLSBhL3NyYy9qYXZhLmJhc2UvbGludXgvbmF0aXZlL2xpYm5ldC9saW51eF9j bG9zZS5jCisrKysgYi9zcmMvamF2YS5iYXNlL2xpbnV4L25hdGl2ZS9saWJuZXQvbGludXhfY2xv c2UuYworQEAgLTYwLDcgKzYwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgeworIC8qCisgICogU2lnbmFs IHRvIHVuYmxvY2sgdGhyZWFkCisgICovCistc3RhdGljIGludCBzaWdXYWtldXAgPSAoX19TSUdS VE1BWCAtIDIpOworK3N0YXRpYyBpbnQgc2lnV2FrZXVwOworIAorIC8qCisgICogZmRUYWJsZSBo b2xkcyBvbmUgZW50cnkgcGVyIGZpbGUgZGVzY3JpcHRvciwgdXAgdG8gYSBjZXJ0YWluCitAQCAt MTQ5LDYgKzE0OSw3IEBAIHN0YXRpYyB2b2lkIF9fYXR0cmlidXRlKChjb25zdHJ1Y3RvcikpIGlu aXQoKSB7CisgICAgIC8qCisgICAgICAqIFNldHVwIHRoZSBzaWduYWwgaGFuZGxlcgorICAgICAg Ki8KKysgICAgc2lnV2FrZXVwID0gU0lHUlRNQVggLSAyOworICAgICBzYS5zYV9oYW5kbGVyID0g c2lnX3dha2V1cDsKKyAgICAgc2Euc2FfZmxhZ3MgICA9IDA7CisgICAgIHNpZ2VtcHR5c2V0KCZz YS5zYV9tYXNrKTsKK2RpZmYgLS1naXQgYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmph dmEvY2hpbGRwcm9jLmMgYi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvY2hpbGRw cm9jLmMKKy0tLSBhL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2YS9jaGlsZHByb2Mu YworKysrIGIvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2NoaWxkcHJvYy5jCitA QCAtMjM0LDcgKzIzNCwxMyBAQCBKREtfZXhlY3ZwZShpbnQgbW9kZSwgY29uc3QgY2hhciAqZmls ZSwKKyB7CisgICAgIGlmIChlbnZwID09IE5VTEwgfHwgKGNoYXIgKiopIGVudnAgPT0gZW52aXJv bikgeworICAgICAgICAgZXhlY3ZwKGZpbGUsIChjaGFyICoqKSBhcmd2KTsKKy0gICAgICAgIHJl dHVybjsKKysgICAgICAgIC8vIEVOT0VYRUMgaW5kaWNhdGVzIHRoYXQgdGhlIGZpbGUgaGVhZGVy IHdhcyBub3QgcmVjb2duaXplZC4gVGhlIG11c2wgQworKyAgICAgICAgLy8gbGlicmFyeSBkb2Vz IG5vdCBpbXBsZW1lbnQgdGhlIGZhbGxiYWNrIHRvIC9iaW4vc2ggZm9yIHRoYXQgY2FzZSwgc28g ZmFsbAorKyAgICAgICAgLy8gdGhyb3VnaCB0byB0aGUgY29kZSBiZWxvdyB3aGljaCBpbXBsZW1l bnRzIHRoYXQgZmFsbGJhY2sgdXNpbmcKKysgICAgICAgIC8vIGV4ZWN2ZV93aXRoX3NoZWxsX2Zh bGxiYWNrLgorKyAgICAgICAgaWYgKGVycm5vICE9IEVOT0VYRUMpIHsKKysgICAgICAgICAgICBy ZXR1cm47CisrICAgICAgICB9CisgICAgIH0KKyAKKyAgICAgaWYgKCpmaWxlID09ICdcMCcpIHsK K2RpZmYgLS1naXQgYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvamRrX3V0aWxf bWQuaCBiL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2YS9qZGtfdXRpbF9tZC5oCist LS0gYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvamRrX3V0aWxfbWQuaAorKysr IGIvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2pka191dGlsX21kLmgKK0BAIC0z Nyw3ICszNyw3IEBACisgI2RlZmluZSBJU05BTkQoZCkgaXNuYW4oZCkKKyAjZWxpZiBkZWZpbmVk KF9fbGludXhfXykgfHwgZGVmaW5lZChfQUxMQlNEX1NPVVJDRSkKKyAjaW5jbHVkZSA8bWF0aC5o PgorLSNkZWZpbmUgSVNOQU5GKGYpIGlzbmFuZihmKQorKyNkZWZpbmUgSVNOQU5GKGYpIGlzbmFu KGYpCisgI2RlZmluZSBJU05BTkQoZCkgaXNuYW4oZCkKKyAjZWxpZiBkZWZpbmVkKF9BSVgpCisg I2luY2x1ZGUgPG1hdGguaD4KK2RpZmYgLS1naXQgYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZl L2xpYmpsaS9qYXZhX21kX3NvbGludXguYyBiL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGli amxpL2phdmFfbWRfc29saW51eC5jCistLS0gYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xp YmpsaS9qYXZhX21kX3NvbGludXguYworKysrIGIvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9s aWJqbGkvamF2YV9tZF9zb2xpbnV4LmMKK0BAIC0yMzUsNiArMjM1LDM5IEBAIFJlcXVpcmVzU2V0 ZW52KGNvbnN0IGNoYXIgKmp2bXBhdGgpIHsKKyAgICAgY2hhciAqZG1sbHAgPSBOVUxMOworICAg ICBjaGFyICpwOyAvKiBhIHV0aWxpdHkgcG9pbnRlciAqLworIAorKyNpZmRlZiBfX2xpbnV4Cisr I2lmbmRlZiBMSUJDCisrI2Vycm9yICJMSUJDIG5vdCBzZXQiCisrI2VuZGlmCisrCisrICAgIGlm IChzdHJjbXAoTElCQywgIm11c2wiKSA9PSAwKSB7CisrICAgICAgLyoKKysgICAgICAgKiBUaGUg bXVzbCBsaWJyYXJ5IGxvYWRlciByZXF1aXJlcyBMRF9MSUJSQVJZX1BBVEggdG8gYmUgc2V0IGlu CisrICAgICAgICogb3JkZXIgdG8gY29ycmVjdGx5IHJlc29sdmUgdGhlIGRlcGVuZGVuY3kgbGli amF2YS5zbyBoYXMgb24gbGlianZtLnNvLgorKyAgICAgICAqCisrICAgICAgICogU3BlY2lmaWNh bGx5LCBpdCBkaWZmZXJzIGZyb20gZ2xpYmMgaW4gdGhlIHNlbnNlIHRoYXQgZXZlbiBpZgorKyAg ICAgICAqIGxpYmp2bS5zbyBoYXMgYWxyZWFkeSBiZWVuIGxvYWRlZCBpdCB3aWxsIG5vdCBiZSBj b25zaWRlcmVkIGEKKysgICAgICAgKiBjYW5kaWRhdGUgZm9yIHJlc29sdmluZyB0aGUgZGVwZW5k ZW5jeSB1bmxlc3MgdGhlICpmdWxsKiBwYXRoCisrICAgICAgICogb2YgdGhlIGFscmVhZHkgbG9h ZGVkIGxpYnJhcnkgbWF0Y2hlcyB0aGUgZGVwZW5kZW5jeSBiZWluZyBsb2FkZWQuCisrICAgICAg ICoKKysgICAgICAgKiBsaWJqdm0uc28gaXMgYmVpbmcgbG9hZGVkIGJ5IHRoZSBsYXVuY2hlciB1 c2luZyBhIGxvbmcgcGF0aCB0bworKyAgICAgICAqIGRsb3Blbiwgbm90IGp1c3QgdGhlIGJhc2Vu YW1lIG9mIHRoZSBsaWJyYXJ5LiBUeXBpY2FsbHkgdGhpcworKyAgICAgICAqIGlzIHNvbWV0aGlu ZyBsaWtlICIuLi9saWIvc2VydmVyL2xpYmp2bS5zbyIuIEhvd2V2ZXIsIGlmL3doZW4KKysgICAg ICAgKiBsaWJqdm0uc28gbGF0ZXIgdHJpZXMgdG8gZGxvcGVuIGxpYmphdmEuc28gKHdoaWNoIGl0 IGRvZXMgaW4KKysgICAgICAgKiBvcmRlciB0byBnZXQgYWNjZXNzIHRvIGEgZmV3IGZ1bmN0aW9u cyBpbXBsZW1lbnRlZCBpbgorKyAgICAgICAqIGxpYmphdmEuc28pIHRoZSBtdXNsIGxvYWRlciB3 aWxsLCBhcyBwYXJ0IG9mIGxvYWRpbmcKKysgICAgICAgKiBkZXBlbmRlbnQgbGlicmFyaWVzLCB0 cnkgdG8gbG9hZCBsaWJqdm0uc28gdXNpbmcgb25seSBpdHMKKysgICAgICAgKiBiYXNlbmFtZSAi bGlianZtLnNvIi4gU2luY2UgdGhpcyBkb2VzIG5vdCBtYXRjaCB0aGUgbG9uZ2VyCisrICAgICAg ICogcGF0aCBwYXRoIGl0IHdhcyBmaXJzdCBsb2FkZWQgd2l0aCwgdGhlIGFscmVhZHkgbG9hZGVk CisrICAgICAgICogbGlicmFyeSBpcyBub3QgY29uc2lkZXJlZCBhIGNhbmRpZGF0ZSwgYW5kIHRo ZSBsb2FkZXIgd2lsbAorKyAgICAgICAqIGluc3RlYWQgbG9vayBmb3IgbGlianZtLnNvIGVsc2V3 aGVyZS4gSWYgaXQncyBub3QgaW4KKysgICAgICAgKiBMRF9MSUJSQVJZX1BBVEggdGhlIGRlcGVu ZGVuY3kgbG9hZCB3aWxsIGZhaWwsIGFuZCBsaWJqYXZhLnNvCisrICAgICAgICogd2lsbCB0aGVy ZWZvcmUgZmFpbCBhcyB3ZWxsLgorKyAgICAgICAqLworKyAgICAgIHJldHVybiBKTklfVFJVRTsK KysgICAgfQorKyNlbmRpZgorKworICNpZmRlZiBBSVgKKyAgICAgLyogV2UgYWx3YXlzIGhhdmUg dG8gc2V0IHRoZSBMSUJQQVRIIG9uIEFJWCBiZWNhdXNlIGxkIGRvZXNuJ3Qgc3VwcG9ydCAkT1JJ R0lOLiAqLworICAgICByZXR1cm4gSk5JX1RSVUU7CitkaWZmIC0tZ2l0IGEvc3JjL2phdmEuYmFz ZS91bml4L25hdGl2ZS9saWJuaW8vY2gvTmF0aXZlVGhyZWFkLmMgYi9zcmMvamF2YS5iYXNlL3Vu aXgvbmF0aXZlL2xpYm5pby9jaC9OYXRpdmVUaHJlYWQuYworLS0tIGEvc3JjL2phdmEuYmFzZS91 bml4L25hdGl2ZS9saWJuaW8vY2gvTmF0aXZlVGhyZWFkLmMKKysrKyBiL3NyYy9qYXZhLmJhc2Uv dW5peC9uYXRpdmUvbGlibmlvL2NoL05hdGl2ZVRocmVhZC5jCitAQCAtMzYsNyArMzYsNyBAQAor ICNpZmRlZiBfX2xpbnV4X18KKyAgICNpbmNsdWRlIDxwdGhyZWFkLmg+CisgICAvKiBBbHNvIGRl ZmluZWQgaW4gbmV0L2xpbnV4X2Nsb3NlLmMgKi8KKy0gICNkZWZpbmUgSU5URVJSVVBUX1NJR05B TCAoX19TSUdSVE1BWCAtIDIpCisrICAjZGVmaW5lIElOVEVSUlVQVF9TSUdOQUwgKFNJR1JUTUFY IC0gMikKKyAjZWxpZiBkZWZpbmVkKF9BSVgpCisgICAjaW5jbHVkZSA8cHRocmVhZC5oPgorICAg LyogQWxzbyBkZWZpbmVkIGluIG5ldC9haXhfY2xvc2UuYyAqLworZGlmZiAtLWdpdCBhL3NyYy9q YXZhLmRlc2t0b3AvdW5peC9uYXRpdmUvbGliYXd0X3hhd3QveGF3dC9YVG9vbGtpdC5jIGIvc3Jj L2phdmEuZGVza3RvcC91bml4L25hdGl2ZS9saWJhd3RfeGF3dC94YXd0L1hUb29sa2l0LmMKKy0t LSBhL3NyYy9qYXZhLmRlc2t0b3AvdW5peC9uYXRpdmUvbGliYXd0X3hhd3QveGF3dC9YVG9vbGtp dC5jCisrKysgYi9zcmMvamF2YS5kZXNrdG9wL3VuaXgvbmF0aXZlL2xpYmF3dF94YXd0L3hhd3Qv WFRvb2xraXQuYworQEAgLTI3LDkgKzI3LDYgQEAKKyAjaW5jbHVkZSA8WDExL1h1dGlsLmg+Cisg I2luY2x1ZGUgPFgxMS9Yb3MuaD4KKyAjaW5jbHVkZSA8WDExL1hhdG9tLmg+CistI2lmZGVmIF9f bGludXhfXworLSNpbmNsdWRlIDxleGVjaW5mby5oPgorLSNlbmRpZgorIAorICNpbmNsdWRlIDxq dm0uaD4KKyAjaW5jbHVkZSA8am5pLmg+CitAQCAtNzkxLDI2ICs3ODgsNiBAQCBKTklFWFBPUlQg anN0cmluZyBKTklDQUxMIEphdmFfc3VuX2F3dF9YMTFfWFRvb2xraXRfZ2V0RW52CisgICAgIHJl dHVybiByZXQ7CisgfQorIAorLSNpZmRlZiBfX2xpbnV4X18KKy12b2lkIHByaW50X3N0YWNrKHZv aWQpCisteworLSAgdm9pZCAqYXJyYXlbMTBdOworLSAgc2l6ZV90IHNpemU7CistICBjaGFyICoq c3RyaW5nczsKKy0gIHNpemVfdCBpOworLQorLSAgc2l6ZSA9IGJhY2t0cmFjZSAoYXJyYXksIDEw KTsKKy0gIHN0cmluZ3MgPSBiYWNrdHJhY2Vfc3ltYm9scyAoYXJyYXksIHNpemUpOworLQorLSAg ZnByaW50ZiAoc3RkZXJyLCAiT2J0YWluZWQgJXpkIHN0YWNrIGZyYW1lcy5cbiIsIHNpemUpOwor LQorLSAgZm9yIChpID0gMDsgaSA8IHNpemU7IGkrKykKKy0gICAgIGZwcmludGYgKHN0ZGVyciwg IiVzXG4iLCBzdHJpbmdzW2ldKTsKKy0KKy0gIGZyZWUgKHN0cmluZ3MpOworLX0KKy0jZW5kaWYK Ky0KKyBXaW5kb3cgZ2V0X3hhd3Rfcm9vdF9zaGVsbChKTklFbnYgKmVudikgeworICAgc3RhdGlj IGpjbGFzcyBjbGFzc1hSb290V2luZG93ID0gTlVMTDsKKyAgIHN0YXRpYyBqbWV0aG9kSUQgbWV0 aG9kR2V0WFJvb3RXaW5kb3cgPSBOVUxMOworZGlmZiAtLWdpdCBhL3NyYy9qZGsuamR3cC5hZ2Vu dC9zaGFyZS9uYXRpdmUvbGliamR3cC91dGlsLmggYi9zcmMvamRrLmpkd3AuYWdlbnQvc2hhcmUv bmF0aXZlL2xpYmpkd3AvdXRpbC5oCistLS0gYS9zcmMvamRrLmpkd3AuYWdlbnQvc2hhcmUvbmF0 aXZlL2xpYmpkd3AvdXRpbC5oCisrKysgYi9zcmMvamRrLmpkd3AuYWdlbnQvc2hhcmUvbmF0aXZl L2xpYmpkd3AvdXRpbC5oCitAQCAtMzUsMTUgKzM1LDE1IEBACisgI2lmZGVmIERFQlVHCisgICAg IC8qIEp1c3QgdG8gbWFrZSBzdXJlIHRoZXNlIGludGVyZmFjZXMgYXJlIG5vdCB1c2VkIGhlcmUu ICovCisgICAgICN1bmRlZiBmcmVlCistICAgICNkZWZpbmUgZnJlZShwKSBEbyBub3QgdXNlIHRo aXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIGZyZWUgZG9fbm90X3VzZV90aGlzX2ludGVyZmFj ZV9mcmVlCisgICAgICN1bmRlZiBtYWxsb2MKKy0gICAgI2RlZmluZSBtYWxsb2MocCkgRG8gbm90 IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSBtYWxsb2MgZG9fbm90X3VzZV90aGlz X2ludGVyZmFjZV9tYWxsb2MKKyAgICAgI3VuZGVmIGNhbGxvYworLSAgICAjZGVmaW5lIGNhbGxv YyhwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIGNhbGxvYyBkb19u b3RfdXNlX3RoaXNfaW50ZXJmYWNlX2NhbGxvYworICAgICAjdW5kZWYgcmVhbGxvYworLSAgICAj ZGVmaW5lIHJlYWxsb2MocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmlu ZSByZWFsbG9jIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2VfcmVhbGxvYworICAgICAjdW5kZWYg c3RyZHVwCistICAgICNkZWZpbmUgc3RyZHVwKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2Uu CisrICAgICNkZWZpbmUgc3RyZHVwIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2Vfc3RyZHVwCisg I2VuZGlmCisgCisgI2luY2x1ZGUgImxvZ19tZXNzYWdlcy5oIgorZGlmZiAtLWdpdCBhL3Rlc3Qv aG90c3BvdC9qdHJlZy9ydW50aW1lL1N0YWNrR3VhcmRQYWdlcy9leGVpbnZva2UuYyBiL3Rlc3Qv aG90c3BvdC9qdHJlZy9ydW50aW1lL1N0YWNrR3VhcmRQYWdlcy9leGVpbnZva2UuYworLS0tIGEv dGVzdC9ob3RzcG90L2p0cmVnL3J1bnRpbWUvU3RhY2tHdWFyZFBhZ2VzL2V4ZWludm9rZS5jCisr KysgYi90ZXN0L2hvdHNwb3QvanRyZWcvcnVudGltZS9TdGFja0d1YXJkUGFnZXMvZXhlaW52b2tl LmMKK0BAIC0zMyw2ICszMyw3IEBACisgCisgI2luY2x1ZGUgPGFzc2VydC5oPgorICNpbmNsdWRl IDxqbmkuaD4KKysjaW5jbHVkZSA8anZtLmg+CisgI2luY2x1ZGUgPGFsbG9jYS5oPgorICNpbmNs dWRlIDxzaWduYWwuaD4KKyAjaW5jbHVkZSA8c3RyaW5nLmg+CitAQCAtOTEsNiArOTIsMjAgQEAg dm9pZCBzZXRfc2lnbmFsX2hhbmRsZXIoKSB7CisgICB9CisgfQorIAorK2ludCBnZXRfamF2YV9z dGFja3NpemUgKCkgeworKyAgc2l6ZV90IHN0YWNrc2l6ZTsKKysgIHB0aHJlYWRfYXR0cl90IGF0 dHI7CisrICBKREsxXzFJbml0QXJncyBqZGtfYXJnczsKKysKKysgIGpka19hcmdzLnZlcnNpb24g PSBKTklfVkVSU0lPTl8xXzE7CisrICBKTklfR2V0RGVmYXVsdEphdmFWTUluaXRBcmdzKCZqZGtf YXJncyk7CisrICBpZiAoamRrX2FyZ3MuamF2YVN0YWNrU2l6ZSA8PSAwKSB7CisrICAgIGZwcmlu dGYoc3RkZXJyLCAiVGVzdCBFUlJPUi4gQ2FuJ3QgZ2V0IGEgdmFsaWQgdmFsdWUgZm9yIHRoZSBk ZWZhdWx0IHN0YWNrc2l6ZS5cbiIpOworKyAgICBleGl0KDcpOworKyAgfQorKyAgcmV0dXJuIGpk a19hcmdzLmphdmFTdGFja1NpemU7CisrfQorKworIHZvaWQgKnJ1bl9qYXZhX292ZXJmbG93ICh2 b2lkICpwKSB7CisgICBKTklFbnYgKmVudjsKKyAgIGpjbGFzcyBjbGFzc19pZDsKK0BAIC0yNTQs MTMgKzI2OSwxOSBAQCBpbnQgbWFpbiAoaW50IGFyZ2MsIGNvbnN0IGNoYXIqKiBhcmd2KSB7Cisg ICAgIGV4aXQoNyk7CisgICB9CisgCisrICBpbnQgc3RhY2tfc2l6ZSA9IGdldF9qYXZhX3N0YWNr c2l6ZSgpOworICAgcHRocmVhZF90IHRocjsKKysgIHB0aHJlYWRfYXR0cl90IHRocmVhZF9hdHRy OworKworKyAgcHRocmVhZF9hdHRyX2luaXQoJnRocmVhZF9hdHRyKTsKKysgIHB0aHJlYWRfYXR0 cl9zZXRzdGFja3NpemUoJnRocmVhZF9hdHRyLCBzdGFja19zaXplKTsKKyAKKyAgIGlmIChhcmdj ID4gMSAmJiBzdHJjbXAoYXJndlsxXSwgInRlc3RfamF2YV9vdmVyZmxvdyIpID09IDApIHsKKyAg ICAgcHJpbnRmKCJcblRlc3RpbmcgSkFWQV9PVkVSRkxPV1xuIik7CisgCisgICAgIHByaW50Zigi VGVzdGluZyBzdGFjayBndWFyZCBwYWdlIGJlaGF2aW91ciBmb3Igb3RoZXIgdGhyZWFkXG4iKTsK Ky0gICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsIE5VTEwsIHJ1bl9qYXZhX292ZXJmbG93LCBOVUxM KTsKKysKKysgICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsICZ0aHJlYWRfYXR0ciwgcnVuX2phdmFf b3ZlcmZsb3csIE5VTEwpOworICAgICBwdGhyZWFkX2pvaW4gKHRociwgTlVMTCk7CisgCisgICAg IHByaW50ZigiVGVzdGluZyBzdGFjayBndWFyZCBwYWdlIGJlaGF2aW91ciBmb3IgaW5pdGlhbCB0 aHJlYWRcbiIpOworQEAgLTI3Myw3ICsyOTQsNyBAQCBpbnQgbWFpbiAoaW50IGFyZ2MsIGNvbnN0 IGNoYXIqKiBhcmd2KSB7CisgICAgIHByaW50ZigiXG5UZXN0aW5nIE5BVElWRV9PVkVSRkxPV1xu Iik7CisgCisgICAgIHByaW50ZigiVGVzdGluZyBzdGFjayBndWFyZCBwYWdlIGJlaGF2aW91ciBm b3Igb3RoZXIgdGhyZWFkXG4iKTsKKy0gICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsIE5VTEwsIHJ1 bl9uYXRpdmVfb3ZlcmZsb3csIE5VTEwpOworKyAgICBwdGhyZWFkX2NyZWF0ZSAoJnRociwgJnRo cmVhZF9hdHRyLCBydW5fbmF0aXZlX292ZXJmbG93LCBOVUxMKTsKKyAgICAgcHRocmVhZF9qb2lu ICh0aHIsIE5VTEwpOworIAorICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBi ZWhhdmlvdXIgZm9yIGluaXRpYWwgdGhyZWFkXG4iKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3Bl bmpkazEzLWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNoIGIvc3JjcGtncy9v cGVuamRrMTMtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kMzA2ZDUwMWU0YjgKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3Bw Yy5wYXRjaApAQCAtMCwwICsxLDQ1IEBACitQYXRjaGVzIGZvciBtdXNsIHRha2VuIGZyb20gQWxw aW5lIGxpbnV4OiBodHRwczovL2dpdC5hbHBpbmVsaW51eC5vcmcvYXBvcnRzL2NvbW1pdC8/aWQ9 OGExYWUxN2Q0YTlhZjU0Mjg1Yzc4OTFhNjgwNjIwZTdlMjRjNjI4MAorLS0tIG9sZC9zcmMvaG90 c3BvdC9jcHUvcHBjL21hY3JvQXNzZW1ibGVyX3BwYy5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3Qv Y3B1L3BwYy9tYWNyb0Fzc2VtYmxlcl9wcGMuY3BwCitAQCAtNDcsNiArNDcsOCBAQAorICNpbmNs dWRlICJvcHRvL2ludHJpbnNpY25vZGUuaHBwIgorICNlbmRpZgorIAorKyNpbmNsdWRlIDxhc20v cHRyYWNlLmg+CisrCisgI2lmZGVmIFBST0RVQ1QKKyAjZGVmaW5lIEJMT0NLX0NPTU1FTlQoc3Ry KSAvLyBub3RoaW5nCisgI2Vsc2UKKy0tLSBvbGQvc3JjL2hvdHNwb3QvY3B1L3BwYy92bV92ZXJz aW9uX3BwYy5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3QvY3B1L3BwYy92bV92ZXJzaW9uX3BwYy5j cHAKK0BAIC04NDUsNyArODQ1LDcgQEAgdm9pZCBWTV9WZXJzaW9uOjpkZXRlcm1pbmVfZmVhdHVy ZXMoKSB7CisgICB1bnNpZ25lZCBsb25nIGF1eHYgPSBnZXRhdXh2YWwoQVRfSFdDQVAyKTsKKyAK KyAgIGlmIChhdXh2ICYgUFBDX0ZFQVRVUkUyX0hUTV9OT1NDKSB7CistICAgIGlmIChhdXh2ICYg UFBDX0ZFQVRVUkUyX0hBU19IVE0pIHsKKysgICAgaWYgKGF1eHYgJiBQUENfRkVBVFVSRTJfSFRN KSB7CisgICAgICAgLy8gVE0gb24gUE9XRVI4IGFuZCBQT1dFUjkgaW4gY29tcGF0IG1vZGUgKFZN KSBpcyBzdXBwb3J0ZWQgYnkgdGhlIEpWTS4KKyAgICAgICAvLyBUTSBvbiBQT1dFUjkgREQyLjEg TlYgKGJhcmVtZXRhbCkgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgSlZNIChUTSBvbgorICAgICAg IC8vIFBPV0VSOSBERDIuMSBOViBoYXMgYSBmZXcgaXNzdWVzIHRoYXQgbmVlZCBhIGNvdXBsZSBv ZiBmaXJtd2FyZQorLS0tIG9sZC9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfcHBjL29zX2xpbnV4 X3BwYy5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3BwYy9vc19saW51eF9w cGMuY3BwCitAQCAtNzUsNyArNzUsNyBAQAorICMgaW5jbHVkZSA8cHdkLmg+CisgIyBpbmNsdWRl IDxwb2xsLmg+CisgIyBpbmNsdWRlIDx1Y29udGV4dC5oPgorLQorKyMgaW5jbHVkZSA8YXNtL3B0 cmFjZS5oPgorIAorIGFkZHJlc3Mgb3M6OmN1cnJlbnRfc3RhY2tfcG9pbnRlcigpIHsKKyAgIGlu dHB0cl90KiBjc3A7CistLS0gb2xkL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9wcGMvdGhyZWFk X2xpbnV4X3BwYy5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3BwYy90aHJl YWRfbGludXhfcHBjLmNwcAorQEAgLTIzLDYgKzIzLDggQEAKKyAgKgorICAqLworIAorKyNpbmNs dWRlIDxhc20vcHRyYWNlLmg+CisrCisgI2luY2x1ZGUgInByZWNvbXBpbGVkLmhwcCIKKyAjaW5j bHVkZSAicnVudGltZS9mcmFtZS5pbmxpbmUuaHBwIgorICNpbmNsdWRlICJydW50aW1lL3RocmVh ZC5ocHAiCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvZmlsZXMvbXVz bF9wYXRjaGVzL3g4Ni5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazEzLWJvb3RzdHJhcC9maWxlcy9t dXNsX3BhdGNoZXMveDg2LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMC4uOWM2NGMxODkwMzZhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTMt Ym9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2gKQEAgLTAsMCArMSwxMzAgQEAK K1BhdGNoZXMgZm9yIG11c2wgdGFrZW4gZnJvbSBBbHBpbmUgbGludXg6IGh0dHBzOi8vZ2l0LmFs cGluZWxpbnV4Lm9yZy9hcG9ydHMvY29tbWl0Lz9pZD04YTFhZTE3ZDRhOWFmNTQyODVjNzg5MWE2 ODA2MjBlN2UyNGM2MjgwCistLS0gb2xkL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94ODYvb3Nf bGludXhfeDg2LmNwcAorKysrIG5ldy9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xp bnV4X3g4Ni5jcHAKK0BAIC05MCw2ICs5MCwxMjYgQEAKKyAjZGVmaW5lIFNQRUxMX1JFR19GUCAi ZWJwIgorICNlbmRpZiAvLyBBTUQ2NAorCisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrLy8g VGFrZW4gZnJvbSBnbGliYyAyLjI4CisrLy8gc291cmNlOiBodHRwczovL3NvdXJjZXdhcmUub3Jn L2dpdC8/cD1nbGliYy5naXQ7YT1ibG9iO2Y9c3lzZGVwcy94ODYvZnB1X2NvbnRyb2wuaDtoPTRj Yjk4YzU2NzliMjg5N2ZmNGU1ODI2ZDIyOGNiYTZiZTU4OWUyNGQ7aGI9M2MwM2JhY2EzN2ZkY2I1 MmMzODgxZTY1M2NhMzkyYmJhN2E5OWMyYgorKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKyNp Zm5kZWYgQU1ENjQKKysvKiBGUFUgY29udHJvbCB3b3JkIGJpdHMuICB4ODYgdmVyc2lvbi4KKysg ICBDb3B5cmlnaHQgKEMpIDE5OTMtMjAxOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K KysgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKysgICBDb250cmli dXRlZCBieSBPbGFmIEZsZWJiZS4KKysKKysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKysgICBtb2RpZnkgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5z ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisr ICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh dGVyIHZlcnNpb24uCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V CisrICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysK KysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdl bmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBp ZiBub3QsIHNlZQorKyAgIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisr I2lmbmRlZiBfRlBVX0NPTlRST0xfSAorKyNkZWZpbmUgX0ZQVV9DT05UUk9MX0gJMQorKworKy8q IE5vdGUgdGhhdCB0aGlzIGZpbGUgc2V0cyBvbiB4ODYtNjQgb25seSB0aGUgeDg3IEZQVSwgaXQg ZG9lcyBub3QKKysgICB0b3VjaCB0aGUgU1NFIHVuaXQuICAqLworKworKy8qIEhlcmUgaXMgdGhl IGRpcnR5IHBhcnQuIFNldCB1cCB5b3VyIDM4NyB0aHJvdWdoIHRoZSBjb250cm9sIHdvcmQKKysg KiAoY3cpIHJlZ2lzdGVyLgorKyAqCisrICogICAgIDE1LTEzICAgIDEyICAxMS0xMCAgOS04ICAg ICA3LTYgICAgIDUgICAgNCAgICAzICAgIDIgICAgMSAgICAwCisrICogfCByZXNlcnZlZCB8IElD IHwgUkMgIHwgUEMgfCByZXNlcnZlZCB8IFBNIHwgVU0gfCBPTSB8IFpNIHwgRE0gfCBJTQorKyAq CisrICogSU06IEludmFsaWQgb3BlcmF0aW9uIG1hc2sKKysgKiBETTogRGVub3JtYWxpemVkIG9w ZXJhbmQgbWFzaworKyAqIFpNOiBaZXJvLWRpdmlkZSBtYXNrCisrICogT006IE92ZXJmbG93IG1h c2sKKysgKiBVTTogVW5kZXJmbG93IG1hc2sKKysgKiBQTTogUHJlY2lzaW9uIChpbmV4YWN0IHJl c3VsdCkgbWFzaworKyAqCisrICogTWFzayBiaXQgaXMgMSBtZWFucyBubyBpbnRlcnJ1cHQuCisr ICoKKysgKiBQQzogUHJlY2lzaW9uIGNvbnRyb2wKKysgKiAxMSAtIHJvdW5kIHRvIGV4dGVuZGVk IHByZWNpc2lvbgorKyAqIDEwIC0gcm91bmQgdG8gZG91YmxlIHByZWNpc2lvbgorKyAqIDAwIC0g cm91bmQgdG8gc2luZ2xlIHByZWNpc2lvbgorKyAqCisrICogUkM6IFJvdW5kaW5nIGNvbnRyb2wK KysgKiAwMCAtIHJvdW5kaW5nIHRvIG5lYXJlc3QKKysgKiAwMSAtIHJvdW5kaW5nIGRvd24gKHRv d2FyZCAtIGluZmluaXR5KQorKyAqIDEwIC0gcm91bmRpbmcgdXAgKHRvd2FyZCArIGluZmluaXR5 KQorKyAqIDExIC0gcm91bmRpbmcgdG93YXJkIHplcm8KKysgKgorKyAqIElDOiBJbmZpbml0eSBj b250cm9sCisrICogVGhhdCBpcyBmb3IgODA4NyBhbmQgODAyODcgb25seS4KKysgKgorKyAqIFRo ZSBoYXJkd2FyZSBkZWZhdWx0IGlzIDB4MDM3ZiB3aGljaCB3ZSB1c2UuCisrICovCisrCisrI2lu Y2x1ZGUgPGZlYXR1cmVzLmg+CisrCisrLyogbWFza2luZyBvZiBpbnRlcnJ1cHRzICovCisrI2Rl ZmluZSBfRlBVX01BU0tfSU0gIDB4MDEKKysjZGVmaW5lIF9GUFVfTUFTS19ETSAgMHgwMgorKyNk ZWZpbmUgX0ZQVV9NQVNLX1pNICAweDA0CisrI2RlZmluZSBfRlBVX01BU0tfT00gIDB4MDgKKysj ZGVmaW5lIF9GUFVfTUFTS19VTSAgMHgxMAorKyNkZWZpbmUgX0ZQVV9NQVNLX1BNICAweDIwCisr CisrLyogcHJlY2lzaW9uIGNvbnRyb2wgKi8KKysjZGVmaW5lIF9GUFVfRVhURU5ERUQgMHgzMDAJ LyogbGlibSByZXF1aXJlcyBkb3VibGUgZXh0ZW5kZWQgcHJlY2lzaW9uLiAgKi8KKysjZGVmaW5l IF9GUFVfRE9VQkxFICAgMHgyMDAKKysjZGVmaW5lIF9GUFVfU0lOR0xFICAgMHgwCisrCisrLyog cm91bmRpbmcgY29udHJvbCAqLworKyNkZWZpbmUgX0ZQVV9SQ19ORUFSRVNUIDB4MCAgICAvKiBS RUNPTU1FTkRFRCAqLworKyNkZWZpbmUgX0ZQVV9SQ19ET1dOICAgIDB4NDAwCisrI2RlZmluZSBf RlBVX1JDX1VQICAgICAgMHg4MDAKKysjZGVmaW5lIF9GUFVfUkNfWkVSTyAgICAweEMwMAorKwor KyNkZWZpbmUgX0ZQVV9SRVNFUlZFRCAweEYwQzAgIC8qIFJlc2VydmVkIGJpdHMgaW4gY3cgKi8K KysKKysKKysvKiBUaGUgZmRsaWJtIGNvZGUgcmVxdWlyZXMgc3RyaWN0IElFRUUgZG91YmxlIHBy ZWNpc2lvbiBhcml0aG1ldGljLAorKyAgIGFuZCBubyBpbnRlcnJ1cHRzIGZvciBleGNlcHRpb25z LCByb3VuZGluZyB0byBuZWFyZXN0LiAgKi8KKysKKysjZGVmaW5lIF9GUFVfREVGQVVMVCAgMHgw MzdmCisrCisrLyogSUVFRTogIHNhbWUgYXMgYWJvdmUuICAqLworKyNkZWZpbmUgX0ZQVV9JRUVF ICAgICAweDAzN2YKKysKKysvKiBUeXBlIG9mIHRoZSBjb250cm9sIHdvcmQuICAqLworK3R5cGVk ZWYgdW5zaWduZWQgaW50IGZwdV9jb250cm9sX3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChf X0hJX18pKSk7CisrCisrLyogTWFjcm9zIGZvciBhY2Nlc3NpbmcgdGhlIGhhcmR3YXJlIGNvbnRy b2wgd29yZC4gICIqJiIgaXMgdXNlZCB0bworKyAgIHdvcmsgYXJvdW5kIGEgYnVnIGluIG9sZGVy IHZlcnNpb25zIG9mIEdDQy4gIF9fdm9sYXRpbGVfXyBpcyB1c2VkCisrICAgdG8gc3VwcG9ydCBj b21iaW5hdGlvbiBvZiB3cml0aW5nIHRoZSBjb250cm9sIHJlZ2lzdGVyIGFuZCByZWFkaW5nCisr ICAgaXQgYmFjay4gIFdpdGhvdXQgX192b2xhdGlsZV9fLCB0aGUgb2xkIHZhbHVlIG1heSBiZSB1 c2VkIGZvciByZWFkaW5nCisrICAgYmFjayB1bmRlciBjb21waWxlciBvcHRpbWl6YXRpb24uCisr CisrICAgTm90ZSB0aGF0IHRoZSB1c2Ugb2YgdGhlc2UgbWFjcm9zIGlzIG5vdCBzdWZmaWNpZW50 IGFueW1vcmUgd2l0aAorKyAgIHJlY2VudCBoYXJkd2FyZSBub3Igb24geDg2LTY0LiAgU29tZSBm bG9hdGluZyBwb2ludCBvcGVyYXRpb25zIGFyZQorKyAgIGV4ZWN1dGVkIGluIHRoZSBTU0UvU1NF MiBlbmdpbmVzIHdoaWNoIGhhdmUgdGhlaXIgb3duIGNvbnRyb2wgYW5kCisrICAgc3RhdHVzIHJl Z2lzdGVyLiAgKi8KKysjZGVmaW5lIF9GUFVfR0VUQ1coY3cpIF9fYXNtX18gX192b2xhdGlsZV9f ICgiZm5zdGN3ICUwIiA6ICI9bSIgKComY3cpKQorKyNkZWZpbmUgX0ZQVV9TRVRDVyhjdykgX19h c21fXyBfX3ZvbGF0aWxlX18gKCJmbGRjdyAlMCIgOiA6ICJtIiAoKiZjdykpCisrCisrLyogRGVm YXVsdCBjb250cm9sIHdvcmQgc2V0IGF0IHN0YXJ0dXAuICAqLworK2V4dGVybiBmcHVfY29udHJv bF90IF9fZnB1X2NvbnRyb2w7CisrCisrI2VuZGlmCS8qIGZwdV9jb250cm9sLmggKi8KKysKKysj ZW5kaWYgLy8gQU1ENjQKKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysvLyA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysKKyBhZGRyZXNzIG9zOjpj dXJyZW50X3N0YWNrX3BvaW50ZXIoKSB7CisgI2lmZGVmIFNQQVJDX1dPUktTCisgICByZWdpc3Rl ciB2b2lkICplc3A7CmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvdGVt cGxhdGUgYi9zcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvdGVtcGxhdGUKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4wMWM1YzQ1ODgzZTgKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvdGVtcGxhdGUKQEAgLTAsMCArMSwxMTYg QEAKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ29wZW5qZGsxMy1ib290c3RyYXAnCitfamF2YV92ZXI9 MTMKK19qYXZhX21pbl92ZXI9MAorX2phdmFfc2VjX3Zlcj0yCitfamRrX3VwZGF0ZT04CitfamRr X2hvbWU9InVzci9saWIvanZtL29wZW5qZGske19qYXZhX3Zlcn0iCitfYmFzZV92ZXJzaW9uPSIk e19qYXZhX3Zlcn0uJHtfamF2YV9taW5fdmVyfS4ke19qYXZhX3NlY192ZXJ9IgorCitwa2duYW1l PW9wZW5qZGsxMy1ib290c3RyYXAKK3ZlcnNpb249IiR7X2Jhc2VfdmVyc2lvbn0rJHtfamRrX3Vw ZGF0ZX0iCityZXZpc2lvbj0xCit3cmtzcmM9ImpkayR7X2phdmFfdmVyfXUtamRrLSR7dmVyc2lv bn0iCitidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCitjb25maWd1cmVfYXJncz0iLS1kaXNhYmxl LXdhcm5pbmdzLWFzLWVycm9ycworIC0tcHJlZml4PSR7WEJQU19ERVNURElSfS8ke3BrZ25hbWV9 LSR7dmVyc2lvbn0vdXNyL2xpYgorIC0tZW5hYmxlLXVubGltaXRlZC1jcnlwdG8KKyAtLXdpdGgt emxpYj1zeXN0ZW0KKyAtLXdpdGgtbGlianBlZz1zeXN0ZW0KKyAtLXdpdGgtZ2lmbGliPXN5c3Rl bQorIC0td2l0aC1saWJwbmc9c3lzdGVtCisgLS13aXRoLWxjbXM9c3lzdGVtCisgLS13aXRoLWp0 cmVnPW5vCisgLS13aXRoLXZlcnNpb24tYnVpbGQ9JHtfamF2YV92ZXJ9CisgLS13aXRoLWpvYnM9 JHtYQlBTX09SSUdfTUFLRUpPQlN9CisgLS13aXRoLXZlbmRvci1uYW1lPVZvaWQKKyAtLXdpdGgt dmVuZG9yLXVybD1odHRwczovL3ZvaWRsaW51eC5vcmcvCisgLS13aXRoLXZlbmRvci1idWctdXJs PWh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvaXNzdWVzCisgLS13 aXRoLXZlbmRvci12bS1idWctdXJsPWh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQt cGFja2FnZXMvaXNzdWVzCisgLS13aXRoLWJvb3QtamRrPS91c3IvbGliL2p2bS9vcGVuamRrMTIi CittYWtlX2J1aWxkX2FyZ3M9ImltYWdlcyIKK21ha2VfY2hlY2tfdGFyZ2V0PSJ0ZXN0LWhvdHNw b3QtZ3Rlc3QiCitob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgYXV0b21ha2UgYXV0b2NvbmYg Y3BpbyB0YXIgdW56aXAgemlwIGNhLWNlcnRpZmljYXRlcworIGxpYnJlc3NsIHpsaWItZGV2ZWwg d2hpY2ggbWFrZS1jYSBvcGVuamRrMTItYm9vdHN0cmFwIgorbWFrZWRlcGVuZHM9ImxpYlhyZW5k ZXItZGV2ZWwgbGliWHRzdC1kZXZlbCBsaWJYdC1kZXZlbCBsaWJYcmFuZHItZGV2ZWwKKyBnaWZs aWItZGV2ZWwgbGlianBlZy10dXJiby1kZXZlbCBjdXBzLWRldmVsIGZyZWV0eXBlLWRldmVsIGFs c2EtbGliLWRldmVsCisgZm9udGNvbmZpZy1kZXZlbCB6bGliLWRldmVsIGxjbXMyLWRldmVsIgor cHJvdmlkZXM9ImphdmEtZW52aXJvbm1lbnQtJHt2ZXJzaW9ufV8xIGphdmEtcnVudGltZS0ke3Zl cnNpb259XzEiCitzaG9ydF9kZXNjPSJPcGVuSkRLIEphdmEgRGV2ZWxvcG1lbnQgS2l0IChib290 c3RyYXAgdmVyc2lvbiAxMykiCittYWludGFpbmVyPSJjbGFzc2FiYnlhbXAgPGRldkBrYjYuZWU+ IgorbGljZW5zZT0iR1BMLTIuMC1vbmx5IFdJVEggQ2xhc3NwYXRoLWV4Y2VwdGlvbi0yLjAiCito b21lcGFnZT0iaHR0cHM6Ly9vcGVuamRrLmphdmEubmV0LyIKK2Rpc3RmaWxlcz0iaHR0cHM6Ly9o Zy5vcGVuamRrLmphdmEubmV0L2pkay11cGRhdGVzL2pkayR7X2phdmFfdmVyfXUvYXJjaGl2ZS9q ZGstJHt2ZXJzaW9ufS50YXIuZ3oiCitjaGVja3N1bT1kMzhmYjE3Nzk1NzgyZGZmZTg0ZTk4ZjIx ZjFkNjI5M2IwYTQ1ZWE4ZjFlOWM4MWU5OWNkNzFhY2FjMDNhNGUwCitsaWIzMmRpc2FibGVkPXll cworbm9jcm9zcz15ZXMKKworIyBCdWlsZCBpcyBzdGlsbCBwYXJhbGxlbCwgYnV0IGRvbid0IHVz ZSAtak4uCitkaXNhYmxlX3BhcmFsbGVsX2J1aWxkPXllcworCisjIG5vIGhvdHNwb3QgSklUIGZv ciBwcGMzMgorY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJcHBjNjQqKSA7OworCXBw YyopIF91c2VfemVybz15ZXMgOzsKK2VzYWMKKworaWYgWyAtbiAiJF91c2VfemVybyIgXTsgdGhl bgorCW1ha2VkZXBlbmRzKz0iIGxpYmZmaS1kZXZlbCIKKwljb25maWd1cmVfYXJncys9IiAtLXdp dGgtanZtLXZhcmlhbnRzPXplcm8iCisJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJ CXBwYyopIGNvbmZpZ3VyZV9hcmdzKz0iIC0td2l0aC1ib290LWpkay1qdm1hcmdzPS1YWDpUaHJl YWRTdGFja1NpemU9MjU2MCI7OworCWVzYWMKK2ZpCisKK3Bvc3RfZXh0cmFjdCgpIHsKKwljaG1v ZCAreCBjb25maWd1cmUKKwlpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhl bgorCQlybSAtciBzcmMvamRrLmhvdHNwb3QuYWdlbnQKKwlmaQorfQorCitwb3N0X3BhdGNoKCkg eworCWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCisJCWZvciBmIGlu ICIke0ZJTEVTRElSfSIvbXVzbF9wYXRjaGVzLyoucGF0Y2g7IGRvCisJCQltc2dfbm9ybWFsICJB cHBseWluZyAke2YjJEZJTEVTRElSL31cbiIKKwkJCXBhdGNoIC1sTnAxIC1pICIkZiIKKwkJZG9u ZQorCWZpCit9CisKK2RvX2NvbmZpZ3VyZSgpIHsKKwlDRkxBR1M9JHtDRkxBR1MvLURfRk9SVElG WV9TT1VSQ0U9Mi99CisJQ1hYRkxBR1M9JHtDWFhGTEFHUy8tRF9GT1JUSUZZX1NPVVJDRT0yL30K KworCSMgZm9yY2UgRUxGdjIgZm9yIHBwYzY0IGp1c3QgaW4gY2FzZQorCWNhc2UgIiRYQlBTX1RB UkdFVF9NQUNISU5FIiBpbgorCQlwcGM2NCopCisJCQlDRkxBR1MrPSIgLURBQklfRUxGdjIiCisJ CQlDWFhGTEFHUys9IiAtREFCSV9FTEZ2MiIKKwkJCTs7CisJZXNhYworCisJIyBjb21wYXRpYmls aXR5IHdpdGggR0NDIDEwLngKKwlDRkxBR1MrPSIgLWZjb21tb24gLWZuby1saWZldGltZS1kc2Ui CisJQ1hYRkxBR1MrPSIgLWZjb21tb24gLWZuby1saWZldGltZS1kc2UiCisKKwljb25maWd1cmVf YXJncz0ke2NvbmZpZ3VyZV9hcmdzLy0td2l0aC1saWJ0b29sLXN5c3Jvb3Q9XC91c3JcL1thLXow LTldKi1saW51eC1bYS16XSovfQorCWlmIFsgIiRYQlBTX0NDQUNIRSIgXTsgdGhlbgorCQljb25m aWd1cmVfYXJncys9IiAtLWVuYWJsZS1jY2FjaGUiCisJZmkKKwlDQz0iL3Vzci9iaW4vY2MiCisJ Q1hYPSIvdXNyL2Jpbi9jKysiCisJLi9jb25maWd1cmUgJHtjb25maWd1cmVfYXJnc30gXAorCQkt LXdpdGgtZXh0cmEtY2ZsYWdzPSIkQ0ZMQUdTIiBcCisJCS0td2l0aC1leHRyYS1jeHhmbGFncz0i JENYWEZMQUdTIiBcCisJCS0td2l0aC1leHRyYS1sZGZsYWdzPSIkTERGTEFHUyIgXAorCQlSRUFE RUxGPSRSRUFERUxGIEFSPSRBUiBTVFJJUD0kU1RSSVAgTk09JE5NIFwKKwkJT0JKRFVNUD0kT0JK RFVNUCBPQkpDT1BZPSRPQkpDT1BZCit9CisKK3Bvc3RfaW5zdGFsbCgpIHsKKwltdiAke0RFU1RE SVJ9L3Vzci9saWIvanZtL29wZW5qZGstJHtfYmFzZV92ZXJzaW9ufS1pbnRlcm5hbCAke0RFU1RE SVJ9LyRfamRrX2hvbWUKKwlybSAtcmYgJHtERVNURElSfS91c3IvbGliL2JpbgorCXJtIC1mICRE RVNURElSLyRfamRrX2hvbWUvbGliL3NyYy56aXAKKwl2bGljZW5zZSBBU1NFTUJMWV9FWENFUFRJ T04KKwl2bGljZW5zZSBMSUNFTlNFCit9CgpGcm9tIGNkZTU4YmVhYzNhMmZhNjJhODIyOWMxY2Y2 Njk3YWMxNTRiNGZkMjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IGNsYXNzYWJieWFt cCA8ZGV2QGtiNi5lZT4KRGF0ZTogTW9uLCAxNyBKYW4gMjAyMiAwNjoyNTo1NCAtMDUwMApTdWJq ZWN0OiBbUEFUQ0ggNC84XSBOZXcgcGFja2FnZTogb3BlbmpkazE0LWJvb3RzdHJhcC0xNC4wLjIr MTIKCi0tLQogLi4uL2ZpbGVzL2k2ODZfcGF0Y2hlcy9KREstODIzODkwOS5wYXRjaCAgICAgIHwg IDMwICsrCiAuLi4vZmlsZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0Y2ggICAgICAgICAgfCAg MTAgKwogLi4uL2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2ggICAgICAgICAgICAgIHwgIDIx ICsKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2ggICAgICAgICAgICB8IDM3MiAr KysrKysrKysrKysrKysrKysKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNoICAgICAg ICAgICAgICB8ICA0NSArKysKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoICAgICAg ICAgICAgICB8IDEzMCArKysrKysKIHNyY3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJhcC90ZW1wbGF0 ZSAgICAgICAgICB8IDEyNCArKysrKysKIDcgZmlsZXMgY2hhbmdlZCwgNzMyIGluc2VydGlvbnMo KykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNC1ib290c3RyYXAvZmlsZXMv aTY4Nl9wYXRjaGVzL0pESy04MjM4OTA5LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9vcGVuamRrMTQtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL2ZpbGVzL211c2xf cGF0Y2hlcy9hcm0ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNC1i b290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNC1ib290c3RyYXAvZmlsZXMv bXVzbF9wYXRjaGVzL3g4Ni5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3Blbmpk azE0LWJvb3RzdHJhcC90ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE0LWJv b3RzdHJhcC9maWxlcy9pNjg2X3BhdGNoZXMvSkRLLTgyMzg5MDkucGF0Y2ggYi9zcmNwa2dzL29w ZW5qZGsxNC1ib290c3RyYXAvZmlsZXMvaTY4Nl9wYXRjaGVzL0pESy04MjM4OTA5LnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZjE5YjA5MTFjZmFiCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL2ZpbGVzL2k2ODZfcGF0 Y2hlcy9KREstODIzODkwOS5wYXRjaApAQCAtMCwwICsxLDMwIEBACisjIGZyb20gaHR0cHM6Ly9i dWdzLm9wZW5qZGsuamF2YS5uZXQvYnJvd3NlL0pESy04MjM4OTA5CisKKy0tLSBhL3NyYy9ob3Rz cG90L3NoYXJlL3V0aWxpdGllcy9wb3dlck9mVHdvLmhwcAlUaHUgRmViIDEzIDE1OjQzOjU5IDIw MjAgKzAwMDAKKysrKyBiL3NyYy9ob3RzcG90L3NoYXJlL3V0aWxpdGllcy9wb3dlck9mVHdvLmhw cAlUaHUgRmViIDEzIDE3OjA1OjMwIDIwMjAgKzAxMDAKK0BAIC0yOCw2ICsyOCw3IEBACisgI2lu Y2x1ZGUgIm1ldGFwcm9ncmFtbWluZy9lbmFibGVJZi5ocHAiCisgI2luY2x1ZGUgIm1ldGFwcm9n cmFtbWluZy9pc0ludGVncmFsLmhwcCIKKyAjaW5jbHVkZSAibWV0YXByb2dyYW1taW5nL2lzU2ln bmVkLmhwcCIKKysjaW5jbHVkZSAidXRpbGl0aWVzL2FsaWduLmhwcCIKKyAjaW5jbHVkZSAidXRp bGl0aWVzL2NvdW50X2xlYWRpbmdfemVyb3MuaHBwIgorICNpbmNsdWRlICJ1dGlsaXRpZXMvZGVi dWcuaHBwIgorICNpbmNsdWRlICJ1dGlsaXRpZXMvZ2xvYmFsRGVmaW5pdGlvbnMuaHBwIgorQEAg LTY4LDcgKzY5LDcgQEAKKyAgIFNUQVRJQ19BU1NFUlQoSXNJbnRlZ3JhbDxUPjo6dmFsdWUpOwor ICAgU1RBVElDX0FTU0VSVChJc1NpZ25lZDxUPjo6dmFsdWUpOworICAgYXNzZXJ0KHZhbHVlID4g MCwgIkludmFsaWQgdmFsdWUiKTsKKy0gIGlmIChpc19wb3dlcl9vZl8yKHZhbHVlKSkgeworKyAg aWYgKGlzX3Bvd2VyX29mXzJfdCh2YWx1ZSkpIHsKKyAgICAgcmV0dXJuIHZhbHVlOworICAgfQor ICAgdWludDMyX3QgbHogPSBjb3VudF9sZWFkaW5nX3plcm9zKHZhbHVlKTsKK0BAIC04NCw3ICs4 NSw3IEBACisgICBTVEFUSUNfQVNTRVJUKElzSW50ZWdyYWw8VD46OnZhbHVlKTsKKyAgIFNUQVRJ Q19BU1NFUlQoIUlzU2lnbmVkPFQ+Ojp2YWx1ZSk7CisgICBhc3NlcnQodmFsdWUgIT0gMCwgIklu dmFsaWQgdmFsdWUiKTsKKy0gIGlmIChpc19wb3dlcl9vZl8yKHZhbHVlKSkgeworKyAgaWYgKGlz X3Bvd2VyX29mXzJfdCh2YWx1ZSkpIHsKKyAgICAgcmV0dXJuIHZhbHVlOworICAgfQorICAgdWlu dDMyX3QgbHogPSBjb3VudF9sZWFkaW5nX3plcm9zKHZhbHVlKTsKZGlmZiAtLWdpdCBhL3NyY3Br Z3Mvb3BlbmpkazE0LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaCBi L3NyY3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmFhNmM1ZDRkMmJl MgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJhcC9maWxlcy9t dXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaApAQCAtMCwwICsxLDEwIEBACistLS0gYS9zcmMvaG90 c3BvdC9vc19jcHUvbGludXhfYWFyY2g2NC9vc19saW51eF9hYXJjaDY0LmNwcAorKysrIGIvc3Jj L2hvdHNwb3Qvb3NfY3B1L2xpbnV4X2FhcmNoNjQvb3NfbGludXhfYWFyY2g2NC5jcHAKK0BAIC03 NCw3ICs3NCw2IEBACisgIyBpbmNsdWRlIDxwd2QuaD4KKyAjIGluY2x1ZGUgPHBvbGwuaD4KKyAj IGluY2x1ZGUgPHVjb250ZXh0Lmg+CistIyBpbmNsdWRlIDxmcHVfY29udHJvbC5oPgorIAorICNk ZWZpbmUgUkVHX0ZQIDI5CisgI2RlZmluZSBSRUdfTFIgMzAKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv b3BlbmpkazE0LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoIGIvc3JjcGtn cy9vcGVuamRrMTQtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4xMDI0MjhmMTBmMzMKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxNC1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVz L2FybS5wYXRjaApAQCAtMCwwICsxLDIxIEBACistLS0gYS9zcmMvaG90c3BvdC9vc19jcHUvbGlu dXhfYXJtL29zX2xpbnV4X2FybS5jcHAKKysrKyBiL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9h cm0vb3NfbGludXhfYXJtLmNwcAorQEAgLTczLDYgKzczLDE4IEBACisgIyBpbmNsdWRlIDx1Y29u dGV4dC5oPgorICMgaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorIAorKy8vIFN0dXBpZCBoYWNrIGFz IHRoZSBvcmlnaW4gaWYgYmVsb3cgZG9lc250IGNvbXBpbGUgd2l0aCBnY2MgOC4yLjA6CisrLy8K KysvLyBvc19saW51eF9hcm0uY3BwOjExNDo1OiBlcnJvcjogbWlzc2luZyBiaW5hcnkgb3BlcmF0 b3IgYmVmb3JlIHRva2VuICIoIgorKy8vICAjaWYgTkdSRUcgPT0gMTYKKysvLyAgICAgICBefn5+ fgorKy8vCisrLy8gVGhlIE5HUkVHIGlzIDE4IChiaXRzL3NpZ25hbC5oOjEwKSwgc28gZm9yY2Ug aXQgdG8gdGhhdCB2YWx1ZS4KKysjaWZkZWYgTkdSRUcKKysjICB1bmRlZiBOR1JFRworKyNlbmRp ZgorKyNkZWZpbmUgTkdSRUcgMTgKKysKKyAjZGVmaW5lIFNQRUxMX1JFR19TUCAgInNwIgorIAor IC8vIERvbid0ICNkZWZpbmUgU1BFTExfUkVHX0ZQIGZvciB0aHVtYiBiZWNhdXNlIGl0IGlzIG5v dCBzYWZlIHRvIHVzZSwgc28gdGhpcyBtYWtlcyBzdXJlIHdlIG5ldmVyIGZldGNoIGl0LgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9i dWlsZC5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNo ZXMvYnVpbGQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi42 MGRmZGVjMzBhYmMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxNC1ib290c3Ry YXAvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCkBAIC0wLDAgKzEsMzcyIEBACistLS0g YS9tYWtlL1JlbGVhc2VGaWxlLmdtaworKysrIGIvbWFrZS9SZWxlYXNlRmlsZS5nbWsKK0BAIC01 Myw2ICs1Myw3IEBAIGRlZmluZSBjcmVhdGUtaW5mby1maWxlCisgICAkKGNhbGwgaW5mby1maWxl LWl0ZW0sICJKQVZBX1ZFUlNJT05fREFURSIsICIkKFZFUlNJT05fREFURSkiKQorICAgJChjYWxs IGluZm8tZmlsZS1pdGVtLCAiT1NfTkFNRSIsICIkKFJFTEVBU0VfRklMRV9PU19OQU1FKSIpCisg ICAkKGNhbGwgaW5mby1maWxlLWl0ZW0sICJPU19BUkNIIiwgIiQoUkVMRUFTRV9GSUxFX09TX0FS Q0gpIikKKysgICQoY2FsbCBpbmZvLWZpbGUtaXRlbSwgIkxJQkMiLCAibXVzbCIpCisgZW5kZWYK KyAKKyAjIFBhcmFtIDEgLSBUaGUgZmlsZSBjb250YWluaW5nIHRoZSBNT0RVTEVTIGxpc3QKKy0t LSBhL21ha2UvaG90c3BvdC9saWIvQ29tcGlsZUp2bS5nbWsKKysrKyBiL21ha2UvaG90c3BvdC9s aWIvQ29tcGlsZUp2bS5nbWsKK0BAIC03Myw2ICs3Myw3IEBAIENGTEFHU19WTV9WRVJTSU9OIDo9 IFwKKyAgICAgLURIT1RTUE9UX0JVSUxEX1VTRVI9JyIkKFVTRVJOQU1FKSInIFwKKyAgICAgLURI T1RTUE9UX1ZNX0RJU1RSTz0nIiQoSE9UU1BPVF9WTV9ESVNUUk8pIicgXAorICAgICAtRENQVT0n IiQoT1BFTkpES19UQVJHRVRfQ1BVX1ZNX1ZFUlNJT04pIicgXAorKyAgICAtRExJQkM9JyJtdXNs IicgXAorICAgICAjCisgCisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKy0tLSBhL21ha2UvbGli L0NvcmVMaWJyYXJpZXMuZ21rCisrKysgYi9tYWtlL2xpYi9Db3JlTGlicmFyaWVzLmdtaworQEAg LTE5MCw2ICsxOTAsNyBAQCBpZmVxICgkKGNhbGwgaXNUYXJnZXRPcywgd2luZG93cyksIHRydWUp CisgZW5kaWYKKyAKKyBMSUJKTElfQ0ZMQUdTICs9ICQoTElCWl9DRkxBR1MpCisrTElCSkxJX0NG TEFHUyArPSAtRExJQkM9XCJtdXNsXCIKKyAKKyBpZm5lcSAoJChVU0VfRVhURVJOQUxfTElCWiks IHRydWUpCisgICBMSUJKTElfRVhUUkFfRklMRVMgKz0gXAorLS0tIGEvc3JjL2hvdHNwb3Qvb3Mv bGludXgvb3NfbGludXguY3BwCisrKysgYi9zcmMvaG90c3BvdC9vcy9saW51eC9vc19saW51eC5j cHAKK0BAIC0xMDIsNyArMTAyLDYgQEAKKyAjIGluY2x1ZGUgPHN0cmluZy5oPgorICMgaW5jbHVk ZSA8c3lzY2FsbC5oPgorICMgaW5jbHVkZSA8c3lzL3N5c2luZm8uaD4KKy0jIGluY2x1ZGUgPGdu dS9saWJjLXZlcnNpb24uaD4KKyAjIGluY2x1ZGUgPHN5cy9pcGMuaD4KKyAjIGluY2x1ZGUgPHN5 cy9zaG0uaD4KKyAjIGluY2x1ZGUgPGxpbmsuaD4KK0BAIC01OTcsNiArNTk2LDEyIEBAIHZvaWQg b3M6OkxpbnV4Ojpob3RzcG90X3NpZ21hc2soVGhyZWFkKiB0aHJlYWQpIHsKKyAvLyBkZXRlY3Rp bmcgcHRocmVhZCBsaWJyYXJ5CisgCisgdm9pZCBvczo6TGludXg6OmxpYnB0aHJlYWRfaW5pdCgp IHsKKysjaWYgIWRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKQorKyAg Ly8gSGFyZCBjb2RlIEFscGluZSBMaW51eCBzdXBwb3J0ZWQgbXVzbCBjb21wYXRpYmxlIHNldHRp bmdzCisrICAvLyBzZ246IE5QVEwgaXMgY29ycmVjdCwgZG9uJ3Qga25vdyBhYm91dCBnbGliYyAy LjksIGFscGluZSdzIHRoaW5nPworKyAgb3M6OkxpbnV4OjpzZXRfZ2xpYmNfdmVyc2lvbigiZ2xp YmMgMi45Iik7CisrICBvczo6TGludXg6OnNldF9saWJwdGhyZWFkX3ZlcnNpb24oIk5QVEwiKTsK KysjZWxzZQorICAgLy8gU2F2ZSBnbGliYyBhbmQgcHRocmVhZCB2ZXJzaW9uIHN0cmluZ3MuCisg I2lmICFkZWZpbmVkKF9DU19HTlVfTElCQ19WRVJTSU9OKSB8fCBcCisgICAgICFkZWZpbmVkKF9D U19HTlVfTElCUFRIUkVBRF9WRVJTSU9OKQorQEAgLTYxNCw2ICs2MTksNyBAQCB2b2lkIG9zOjpM aW51eDo6bGlicHRocmVhZF9pbml0KCkgeworICAgc3RyID0gKGNoYXIgKiltYWxsb2MobiwgbXRJ bnRlcm5hbCk7CisgICBjb25mc3RyKF9DU19HTlVfTElCUFRIUkVBRF9WRVJTSU9OLCBzdHIsIG4p OworICAgb3M6OkxpbnV4OjpzZXRfbGlicHRocmVhZF92ZXJzaW9uKHN0cik7CisrI2VuZGlmCisg fQorIAorIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCitAQCAtMzExNywyMCArMzEyMywzNiBAQCB2b2lk IG9zOjpMaW51eDo6c2NoZWRfZ2V0Y3B1X2luaXQoKSB7CisgZXh0ZXJuICJDIiBKTklFWFBPUlQg dm9pZCBudW1hX3dhcm4oaW50IG51bWJlciwgY2hhciAqd2hlcmUsIC4uLikgeyB9CisgZXh0ZXJu ICJDIiBKTklFWFBPUlQgdm9pZCBudW1hX2Vycm9yKGNoYXIgKndoZXJlKSB7IH0KKyAKKytzdGF0 aWMgdm9pZCogZGx2c3ltX2lmX2F2YWlsYWJsZSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIqIG5h bWUsIGNvbnN0IGNoYXIqIHZlcnNpb24pIHsKKysgIHR5cGVkZWYgdm9pZCogKCpkbHZzeW1fZnVu Y190eXBlKSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIHZlcnNp b24pOworKyAgc3RhdGljIGRsdnN5bV9mdW5jX3R5cGUgZGx2c3ltX2Z1bmM7CisrICBzdGF0aWMg Ym9vbCBpbml0aWFsaXplZCA9IGZhbHNlOworKworKyAgaWYgKCFpbml0aWFsaXplZCkgeworKyAg ICBkbHZzeW1fZnVuYyA9IChkbHZzeW1fZnVuY190eXBlKWRsc3ltKFJUTERfTkVYVCwgImRsdnN5 bSIpOworKyAgICBpbml0aWFsaXplZCA9IHRydWU7CisrICB9CisrCisrICBpZiAoZGx2c3ltX2Z1 bmMgIT0gTlVMTCkgeworKyAgICB2b2lkICpmID0gZGx2c3ltX2Z1bmMoaGFuZGxlLCBuYW1lLCB2 ZXJzaW9uKTsKKysgICAgaWYgKGYgIT0gTlVMTCkgeworKyAgICAgIHJldHVybiBmOworKyAgICB9 CisrICB9CisrCisrICByZXR1cm4gZGxzeW0oaGFuZGxlLCBuYW1lKTsKKyt9CisrCisgLy8gSGFu ZGxlIHJlcXVlc3QgdG8gbG9hZCBsaWJudW1hIHN5bWJvbCB2ZXJzaW9uIDEuMSAoQVBJIHYxKS4g SWYgaXQgZmFpbHMKKyAvLyBsb2FkIHN5bWJvbCBmcm9tIGJhc2UgdmVyc2lvbiBpbnN0ZWFkLgor IHZvaWQqIG9zOjpMaW51eDo6bGlibnVtYV9kbHN5bSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIg Km5hbWUpIHsKKy0gIHZvaWQgKmYgPSBkbHZzeW0oaGFuZGxlLCBuYW1lLCAibGlibnVtYV8xLjEi KTsKKy0gIGlmIChmID09IE5VTEwpIHsKKy0gICAgZiA9IGRsc3ltKGhhbmRsZSwgbmFtZSk7Cist ICB9CistICByZXR1cm4gZjsKKysgIHJldHVybiBkbHZzeW1faWZfYXZhaWxhYmxlKGhhbmRsZSwg bmFtZSwgImxpYm51bWFfMS4xIik7CisgfQorIAorIC8vIEhhbmRsZSByZXF1ZXN0IHRvIGxvYWQg bGlibnVtYSBzeW1ib2wgdmVyc2lvbiAxLjIgKEFQSSB2Mikgb25seS4KKyAvLyBSZXR1cm4gTlVM TCBpZiB0aGUgc3ltYm9sIGlzIG5vdCBkZWZpbmVkIGluIHRoaXMgcGFydGljdWxhciB2ZXJzaW9u LgorIHZvaWQqIG9zOjpMaW51eDo6bGlibnVtYV92Ml9kbHN5bSh2b2lkKiBoYW5kbGUsIGNvbnN0 IGNoYXIqIG5hbWUpIHsKKy0gIHJldHVybiBkbHZzeW0oaGFuZGxlLCBuYW1lLCAibGlibnVtYV8x LjIiKTsKKysgIHJldHVybiBkbHZzeW1faWZfYXZhaWxhYmxlKGhhbmRsZSwgbmFtZSwgImxpYm51 bWFfMS4yIik7CisgfQorIAorIGJvb2wgb3M6OkxpbnV4OjpsaWJudW1hX2luaXQoKSB7CistLS0g YS9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKKysrKyBiL3Ny Yy9ob3RzcG90L29zX2NwdS9saW51eF94ODYvb3NfbGludXhfeDg2LmNwcAorQEAgLTc1LDkgKzc1 LDYgQEAKKyAjIGluY2x1ZGUgPHB3ZC5oPgorICMgaW5jbHVkZSA8cG9sbC5oPgorICMgaW5jbHVk ZSA8dWNvbnRleHQuaD4KKy0jaWZuZGVmIEFNRDY0CistIyBpbmNsdWRlIDxmcHVfY29udHJvbC5o PgorLSNlbmRpZgorIAorICNpZmRlZiBBTUQ2NAorICNkZWZpbmUgUkVHX1NQIFJFR19SU1AKKy0t LSBhL3NyYy9ob3RzcG90L3NoYXJlL2djL3NoYXJlZC9nZW5Db2xsZWN0ZWRIZWFwLmNwcAorKysr IGIvc3JjL2hvdHNwb3Qvc2hhcmUvZ2Mvc2hhcmVkL2dlbkNvbGxlY3RlZEhlYXAuY3BwCitAQCAt MTExNiw3ICsxMTE2LDcgQEAgSGVhcFdvcmQqIEdlbkNvbGxlY3RlZEhlYXA6OmFsbG9jYXRlX25l d190bGFiKHNpemVfdCBtaW5fc2l6ZSwKKyBzdGF0aWMgU2NyYXRjaEJsb2NrICpyZW1vdmVTbWFs bGVzdFNjcmF0Y2goU2NyYXRjaEJsb2NrICoqcHJldl9wdHIpIHsKKyAgIGJvb2wgZmlyc3QgPSB0 cnVlOworICAgc2l6ZV90IG1pbl9zaXplID0gMDsgICAvLyAiZmlyc3QiIG1ha2VzIHRoaXMgY29u Y2VwdHVhbGx5IGluZmluaXRlLgorLSAgU2NyYXRjaEJsb2NrICoqc21hbGxlc3RfcHRyLCAqc21h bGxlc3Q7CisrICBTY3JhdGNoQmxvY2sgKipzbWFsbGVzdF9wdHIgPSBOVUxMLCAqc21hbGxlc3Q7 CisgICBTY3JhdGNoQmxvY2sgICpjdXIgPSAqcHJldl9wdHI7CisgICB3aGlsZSAoY3VyKSB7Cisg ICAgIGFzc2VydCgqcHJldl9wdHIgPT0gY3VyLCAianVzdCBjaGVja2luZyIpOworLS0tIGEvc3Jj L2hvdHNwb3Qvc2hhcmUvcnVudGltZS9hYnN0cmFjdF92bV92ZXJzaW9uLmNwcAorKysrIGIvc3Jj L2hvdHNwb3Qvc2hhcmUvcnVudGltZS9hYnN0cmFjdF92bV92ZXJzaW9uLmNwcAorQEAgLTI3NCw3 ICsyNzQsNyBAQCBjb25zdCBjaGFyKiBBYnN0cmFjdF9WTV9WZXJzaW9uOjppbnRlcm5hbF92bV9p bmZvX3N0cmluZygpIHsKKyAgICNlbmRpZgorIAorICAgI2RlZmluZSBJTlRFUk5BTF9WRVJTSU9O X1NVRkZJWCBWTV9SRUxFQVNFICIpIiBcCistICAgICAgICAgIiBmb3IgIiBPUyAiLSIgQ1BVIEZM T0FUX0FSQ0hfU1RSIFwKKysgICAgICAgICAiIGZvciAiIE9TICItIiBDUFUgRkxPQVRfQVJDSF9T VFIgTElCQyBcCisgICAgICAgICAgIiBKUkUgKCIgVkVSU0lPTl9TVFJJTkcgIiksIGJ1aWx0IG9u ICIgX19EQVRFX18gIiAiIF9fVElNRV9fIFwKKyAgICAgICAgICAiIGJ5ICIgWFNUUihIT1RTUE9U X0JVSUxEX1VTRVIpICIgd2l0aCAiIEhPVFNQT1RfQlVJTERfQ09NUElMRVIKKyAKKy0tLSBhL3Ny Yy9ob3RzcG90L3NoYXJlL3V0aWxpdGllcy9nbG9iYWxEZWZpbml0aW9uc19nY2MuaHBwCisrKysg Yi9zcmMvaG90c3BvdC9zaGFyZS91dGlsaXRpZXMvZ2xvYmFsRGVmaW5pdGlvbnNfZ2NjLmhwcAor QEAgLTIwNCw3ICsyMDQsNyBAQCBpbmxpbmUgaW50IGdfaXNuYW4oZG91YmxlIGYpIHsgcmV0dXJu IGlzbmFuZChmKTsgfQorICNlbGlmIGRlZmluZWQoX19BUFBMRV9fKQorIGlubGluZSBpbnQgZ19p c25hbihkb3VibGUgZikgeyByZXR1cm4gaXNuYW4oZik7IH0KKyAjZWxpZiBkZWZpbmVkKExJTlVY KSB8fCBkZWZpbmVkKF9BTExCU0RfU09VUkNFKQorLWlubGluZSBpbnQgZ19pc25hbihmbG9hdCAg ZikgeyByZXR1cm4gaXNuYW5mKGYpOyB9CisraW5saW5lIGludCBnX2lzbmFuKGZsb2F0ICBmKSB7 IHJldHVybiBpc25hbihmKTsgfQorIGlubGluZSBpbnQgZ19pc25hbihkb3VibGUgZikgeyByZXR1 cm4gaXNuYW4oZik7IH0KKyAjZWxzZQorICNlcnJvciAibWlzc2luZyBwbGF0Zm9ybS1zcGVjaWZp YyBkZWZpbml0aW9uIGhlcmUiCistLS0gYS9zcmMvamF2YS5iYXNlL2xpbnV4L25hdGl2ZS9saWJu ZXQvbGludXhfY2xvc2UuYworKysrIGIvc3JjL2phdmEuYmFzZS9saW51eC9uYXRpdmUvbGlibmV0 L2xpbnV4X2Nsb3NlLmMKK0BAIC02MCw3ICs2MCw3IEBAIHR5cGVkZWYgc3RydWN0IHsKKyAvKgor ICAqIFNpZ25hbCB0byB1bmJsb2NrIHRocmVhZAorICAqLworLXN0YXRpYyBpbnQgc2lnV2FrZXVw ID0gKF9fU0lHUlRNQVggLSAyKTsKKytzdGF0aWMgaW50IHNpZ1dha2V1cDsKKyAKKyAvKgorICAq IGZkVGFibGUgaG9sZHMgb25lIGVudHJ5IHBlciBmaWxlIGRlc2NyaXB0b3IsIHVwIHRvIGEgY2Vy dGFpbgorQEAgLTE0OSw2ICsxNDksNyBAQCBzdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZSgoY29uc3Ry dWN0b3IpKSBpbml0KCkgeworICAgICAvKgorICAgICAgKiBTZXR1cCB0aGUgc2lnbmFsIGhhbmRs ZXIKKyAgICAgICovCisrICAgIHNpZ1dha2V1cCA9IFNJR1JUTUFYIC0gMjsKKyAgICAgc2Euc2Ff aGFuZGxlciA9IHNpZ193YWtldXA7CisgICAgIHNhLnNhX2ZsYWdzICAgPSAwOworICAgICBzaWdl bXB0eXNldCgmc2Euc2FfbWFzayk7CistLS0gYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xp YmphdmEvY2hpbGRwcm9jLmMKKysrKyBiL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2 YS9jaGlsZHByb2MuYworQEAgLTIzNSw3ICsyMzUsMTMgQEAgSkRLX2V4ZWN2cGUoaW50IG1vZGUs IGNvbnN0IGNoYXIgKmZpbGUsCisgeworICAgICBpZiAoZW52cCA9PSBOVUxMIHx8IChjaGFyICoq KSBlbnZwID09IGVudmlyb24pIHsKKyAgICAgICAgIGV4ZWN2cChmaWxlLCAoY2hhciAqKikgYXJn dik7CistICAgICAgICByZXR1cm47CisrICAgICAgICAvLyBFTk9FWEVDIGluZGljYXRlcyB0aGF0 IHRoZSBmaWxlIGhlYWRlciB3YXMgbm90IHJlY29nbml6ZWQuIFRoZSBtdXNsIEMKKysgICAgICAg IC8vIGxpYnJhcnkgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBmYWxsYmFjayB0byAvYmluL3NoIGZv ciB0aGF0IGNhc2UsIHNvIGZhbGwKKysgICAgICAgIC8vIHRocm91Z2ggdG8gdGhlIGNvZGUgYmVs b3cgd2hpY2ggaW1wbGVtZW50cyB0aGF0IGZhbGxiYWNrIHVzaW5nCisrICAgICAgICAvLyBleGVj dmVfd2l0aF9zaGVsbF9mYWxsYmFjay4KKysgICAgICAgIGlmIChlcnJubyAhPSBFTk9FWEVDKSB7 CisrICAgICAgICAgICAgcmV0dXJuOworKyAgICAgICAgfQorICAgICB9CisgCisgICAgIGlmICgq ZmlsZSA9PSAnXDAnKSB7CistLS0gYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEv amRrX3V0aWxfbWQuaAorKysrIGIvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2pk a191dGlsX21kLmgKK0BAIC0zNyw3ICszNyw3IEBACisgI2RlZmluZSBJU05BTkQoZCkgaXNuYW4o ZCkKKyAjZWxpZiBkZWZpbmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChfQUxMQlNEX1NPVVJDRSkK KyAjaW5jbHVkZSA8bWF0aC5oPgorLSNkZWZpbmUgSVNOQU5GKGYpIGlzbmFuZihmKQorKyNkZWZp bmUgSVNOQU5GKGYpIGlzbmFuKGYpCisgI2RlZmluZSBJU05BTkQoZCkgaXNuYW4oZCkKKyAjZWxp ZiBkZWZpbmVkKF9BSVgpCisgI2luY2x1ZGUgPG1hdGguaD4KKy0tLSBhL3NyYy9qYXZhLmJhc2Uv dW5peC9uYXRpdmUvbGliamxpL2phdmFfbWRfc29saW51eC5jCisrKysgYi9zcmMvamF2YS5iYXNl L3VuaXgvbmF0aXZlL2xpYmpsaS9qYXZhX21kX3NvbGludXguYworQEAgLTIzNiw2ICsyMzYsMzkg QEAgUmVxdWlyZXNTZXRlbnYoY29uc3QgY2hhciAqanZtcGF0aCkgeworICAgICBjaGFyICpkbWxs cCA9IE5VTEw7CisgICAgIGNoYXIgKnA7IC8qIGEgdXRpbGl0eSBwb2ludGVyICovCisgCisrI2lm ZGVmIF9fbGludXgKKysjaWZuZGVmIExJQkMKKysjZXJyb3IgIkxJQkMgbm90IHNldCIKKysjZW5k aWYKKysKKysgICAgaWYgKHN0cmNtcChMSUJDLCAibXVzbCIpID09IDApIHsKKysgICAgICAvKgor KyAgICAgICAqIFRoZSBtdXNsIGxpYnJhcnkgbG9hZGVyIHJlcXVpcmVzIExEX0xJQlJBUllfUEFU SCB0byBiZSBzZXQgaW4KKysgICAgICAgKiBvcmRlciB0byBjb3JyZWN0bHkgcmVzb2x2ZSB0aGUg ZGVwZW5kZW5jeSBsaWJqYXZhLnNvIGhhcyBvbiBsaWJqdm0uc28uCisrICAgICAgICoKKysgICAg ICAgKiBTcGVjaWZpY2FsbHksIGl0IGRpZmZlcnMgZnJvbSBnbGliYyBpbiB0aGUgc2Vuc2UgdGhh dCBldmVuIGlmCisrICAgICAgICogbGlianZtLnNvIGhhcyBhbHJlYWR5IGJlZW4gbG9hZGVkIGl0 IHdpbGwgbm90IGJlIGNvbnNpZGVyZWQgYQorKyAgICAgICAqIGNhbmRpZGF0ZSBmb3IgcmVzb2x2 aW5nIHRoZSBkZXBlbmRlbmN5IHVubGVzcyB0aGUgKmZ1bGwqIHBhdGgKKysgICAgICAgKiBvZiB0 aGUgYWxyZWFkeSBsb2FkZWQgbGlicmFyeSBtYXRjaGVzIHRoZSBkZXBlbmRlbmN5IGJlaW5nIGxv YWRlZC4KKysgICAgICAgKgorKyAgICAgICAqIGxpYmp2bS5zbyBpcyBiZWluZyBsb2FkZWQgYnkg dGhlIGxhdW5jaGVyIHVzaW5nIGEgbG9uZyBwYXRoIHRvCisrICAgICAgICogZGxvcGVuLCBub3Qg anVzdCB0aGUgYmFzZW5hbWUgb2YgdGhlIGxpYnJhcnkuIFR5cGljYWxseSB0aGlzCisrICAgICAg ICogaXMgc29tZXRoaW5nIGxpa2UgIi4uL2xpYi9zZXJ2ZXIvbGlianZtLnNvIi4gSG93ZXZlciwg aWYvd2hlbgorKyAgICAgICAqIGxpYmp2bS5zbyBsYXRlciB0cmllcyB0byBkbG9wZW4gbGliamF2 YS5zbyAod2hpY2ggaXQgZG9lcyBpbgorKyAgICAgICAqIG9yZGVyIHRvIGdldCBhY2Nlc3MgdG8g YSBmZXcgZnVuY3Rpb25zIGltcGxlbWVudGVkIGluCisrICAgICAgICogbGliamF2YS5zbykgdGhl IG11c2wgbG9hZGVyIHdpbGwsIGFzIHBhcnQgb2YgbG9hZGluZworKyAgICAgICAqIGRlcGVuZGVu dCBsaWJyYXJpZXMsIHRyeSB0byBsb2FkIGxpYmp2bS5zbyB1c2luZyBvbmx5IGl0cworKyAgICAg ICAqIGJhc2VuYW1lICJsaWJqdm0uc28iLiBTaW5jZSB0aGlzIGRvZXMgbm90IG1hdGNoIHRoZSBs b25nZXIKKysgICAgICAgKiBwYXRoIHBhdGggaXQgd2FzIGZpcnN0IGxvYWRlZCB3aXRoLCB0aGUg YWxyZWFkeSBsb2FkZWQKKysgICAgICAgKiBsaWJyYXJ5IGlzIG5vdCBjb25zaWRlcmVkIGEgY2Fu ZGlkYXRlLCBhbmQgdGhlIGxvYWRlciB3aWxsCisrICAgICAgICogaW5zdGVhZCBsb29rIGZvciBs aWJqdm0uc28gZWxzZXdoZXJlLiBJZiBpdCdzIG5vdCBpbgorKyAgICAgICAqIExEX0xJQlJBUllf UEFUSCB0aGUgZGVwZW5kZW5jeSBsb2FkIHdpbGwgZmFpbCwgYW5kIGxpYmphdmEuc28KKysgICAg ICAgKiB3aWxsIHRoZXJlZm9yZSBmYWlsIGFzIHdlbGwuCisrICAgICAgICovCisrICAgICAgcmV0 dXJuIEpOSV9UUlVFOworKyAgICB9CisrI2VuZGlmCisrCisgI2lmZGVmIEFJWAorICAgICAvKiBX ZSBhbHdheXMgaGF2ZSB0byBzZXQgdGhlIExJQlBBVEggb24gQUlYIGJlY2F1c2UgbGQgZG9lc24n dCBzdXBwb3J0ICRPUklHSU4uICovCisgICAgIHJldHVybiBKTklfVFJVRTsKKy0tLSBhL3NyYy9q YXZhLmJhc2UvdW5peC9uYXRpdmUvbGlibmlvL2NoL05hdGl2ZVRocmVhZC5jCisrKysgYi9zcmMv amF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYm5pby9jaC9OYXRpdmVUaHJlYWQuYworQEAgLTM2LDcg KzM2LDcgQEAKKyAjaWZkZWYgX19saW51eF9fCisgICAjaW5jbHVkZSA8cHRocmVhZC5oPgorICAg LyogQWxzbyBkZWZpbmVkIGluIG5ldC9saW51eF9jbG9zZS5jICovCistICAjZGVmaW5lIElOVEVS UlVQVF9TSUdOQUwgKF9fU0lHUlRNQVggLSAyKQorKyAgI2RlZmluZSBJTlRFUlJVUFRfU0lHTkFM IChTSUdSVE1BWCAtIDIpCisgI2VsaWYgZGVmaW5lZChfQUlYKQorICAgI2luY2x1ZGUgPHB0aHJl YWQuaD4KKyAgIC8qIEFsc28gZGVmaW5lZCBpbiBuZXQvYWl4X2Nsb3NlLmMgKi8KKy0tLSBhL3Ny Yy9qYXZhLmRlc2t0b3AvdW5peC9uYXRpdmUvbGliYXd0X3hhd3QveGF3dC9YVG9vbGtpdC5jCisr KysgYi9zcmMvamF2YS5kZXNrdG9wL3VuaXgvbmF0aXZlL2xpYmF3dF94YXd0L3hhd3QvWFRvb2xr aXQuYworQEAgLTI3LDkgKzI3LDYgQEAKKyAjaW5jbHVkZSA8WDExL1h1dGlsLmg+CisgI2luY2x1 ZGUgPFgxMS9Yb3MuaD4KKyAjaW5jbHVkZSA8WDExL1hhdG9tLmg+CistI2lmZGVmIF9fbGludXhf XworLSNpbmNsdWRlIDxleGVjaW5mby5oPgorLSNlbmRpZgorIAorICNpbmNsdWRlIDxqdm0uaD4K KyAjaW5jbHVkZSA8am5pLmg+CitAQCAtNzgwLDI2ICs3NzcsNiBAQCBKTklFWFBPUlQganN0cmlu ZyBKTklDQUxMIEphdmFfc3VuX2F3dF9YMTFfWFRvb2xraXRfZ2V0RW52CisgICAgIHJldHVybiBy ZXQ7CisgfQorIAorLSNpZmRlZiBfX2xpbnV4X18KKy12b2lkIHByaW50X3N0YWNrKHZvaWQpCist eworLSAgdm9pZCAqYXJyYXlbMTBdOworLSAgc2l6ZV90IHNpemU7CistICBjaGFyICoqc3RyaW5n czsKKy0gIHNpemVfdCBpOworLQorLSAgc2l6ZSA9IGJhY2t0cmFjZSAoYXJyYXksIDEwKTsKKy0g IHN0cmluZ3MgPSBiYWNrdHJhY2Vfc3ltYm9scyAoYXJyYXksIHNpemUpOworLQorLSAgZnByaW50 ZiAoc3RkZXJyLCAiT2J0YWluZWQgJXpkIHN0YWNrIGZyYW1lcy5cbiIsIHNpemUpOworLQorLSAg Zm9yIChpID0gMDsgaSA8IHNpemU7IGkrKykKKy0gICAgIGZwcmludGYgKHN0ZGVyciwgIiVzXG4i LCBzdHJpbmdzW2ldKTsKKy0KKy0gIGZyZWUgKHN0cmluZ3MpOworLX0KKy0jZW5kaWYKKy0KKyBX aW5kb3cgZ2V0X3hhd3Rfcm9vdF9zaGVsbChKTklFbnYgKmVudikgeworICAgc3RhdGljIGpjbGFz cyBjbGFzc1hSb290V2luZG93ID0gTlVMTDsKKyAgIHN0YXRpYyBqbWV0aG9kSUQgbWV0aG9kR2V0 WFJvb3RXaW5kb3cgPSBOVUxMOworLS0tIGEvc3JjL2pkay5qZHdwLmFnZW50L3NoYXJlL25hdGl2 ZS9saWJqZHdwL3V0aWwuaAorKysrIGIvc3JjL2pkay5qZHdwLmFnZW50L3NoYXJlL25hdGl2ZS9s aWJqZHdwL3V0aWwuaAorQEAgLTM1LDE1ICszNSwxNSBAQAorICNpZmRlZiBERUJVRworICAgICAv KiBKdXN0IHRvIG1ha2Ugc3VyZSB0aGVzZSBpbnRlcmZhY2VzIGFyZSBub3QgdXNlZCBoZXJlLiAq LworICAgICAjdW5kZWYgZnJlZQorLSAgICAjZGVmaW5lIGZyZWUocCkgRG8gbm90IHVzZSB0aGlz IGludGVyZmFjZS4KKysgICAgI2RlZmluZSBmcmVlIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2Vf ZnJlZQorICAgICAjdW5kZWYgbWFsbG9jCistICAgICNkZWZpbmUgbWFsbG9jKHApIERvIG5vdCB1 c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUgbWFsbG9jIGRvX25vdF91c2VfdGhpc19p bnRlcmZhY2VfbWFsbG9jCisgICAgICN1bmRlZiBjYWxsb2MKKy0gICAgI2RlZmluZSBjYWxsb2Mo cCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSBjYWxsb2MgZG9fbm90 X3VzZV90aGlzX2ludGVyZmFjZV9jYWxsb2MKKyAgICAgI3VuZGVmIHJlYWxsb2MKKy0gICAgI2Rl ZmluZSByZWFsbG9jKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUg cmVhbGxvYyBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX3JlYWxsb2MKKyAgICAgI3VuZGVmIHN0 cmR1cAorLSAgICAjZGVmaW5lIHN0cmR1cChwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNlLgor KyAgICAjZGVmaW5lIHN0cmR1cCBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX3N0cmR1cAorICNl bmRpZgorIAorICNpbmNsdWRlICJsb2dfbWVzc2FnZXMuaCIKKy0tLSBhL3Rlc3QvaG90c3BvdC9q dHJlZy9ydW50aW1lL1N0YWNrR3VhcmRQYWdlcy9leGVpbnZva2UuYworKysrIGIvdGVzdC9ob3Rz cG90L2p0cmVnL3J1bnRpbWUvU3RhY2tHdWFyZFBhZ2VzL2V4ZWludm9rZS5jCitAQCAtMzMsNiAr MzMsNyBAQAorIAorICNpbmNsdWRlIDxhc3NlcnQuaD4KKyAjaW5jbHVkZSA8am5pLmg+CisrI2lu Y2x1ZGUgPGp2bS5oPgorICNpbmNsdWRlIDxhbGxvY2EuaD4KKyAjaW5jbHVkZSA8c2lnbmFsLmg+ CisgI2luY2x1ZGUgPHN0cmluZy5oPgorQEAgLTkxLDYgKzkyLDIwIEBAIHZvaWQgc2V0X3NpZ25h bF9oYW5kbGVyKCkgeworICAgfQorIH0KKyAKKytpbnQgZ2V0X2phdmFfc3RhY2tzaXplICgpIHsK KysgIHNpemVfdCBzdGFja3NpemU7CisrICBwdGhyZWFkX2F0dHJfdCBhdHRyOworKyAgSkRLMV8x SW5pdEFyZ3MgamRrX2FyZ3M7CisrCisrICBqZGtfYXJncy52ZXJzaW9uID0gSk5JX1ZFUlNJT05f MV8xOworKyAgSk5JX0dldERlZmF1bHRKYXZhVk1Jbml0QXJncygmamRrX2FyZ3MpOworKyAgaWYg KGpka19hcmdzLmphdmFTdGFja1NpemUgPD0gMCkgeworKyAgICBmcHJpbnRmKHN0ZGVyciwgIlRl c3QgRVJST1IuIENhbid0IGdldCBhIHZhbGlkIHZhbHVlIGZvciB0aGUgZGVmYXVsdCBzdGFja3Np emUuXG4iKTsKKysgICAgZXhpdCg3KTsKKysgIH0KKysgIHJldHVybiBqZGtfYXJncy5qYXZhU3Rh Y2tTaXplOworK30KKysKKyB2b2lkICpydW5famF2YV9vdmVyZmxvdyAodm9pZCAqcCkgeworICAg Sk5JRW52ICplbnY7CisgICBqY2xhc3MgY2xhc3NfaWQ7CitAQCAtMjU4LDEzICsyNzMsMTkgQEAg aW50IG1haW4gKGludCBhcmdjLCBjb25zdCBjaGFyKiogYXJndikgeworICAgICBleGl0KDcpOwor ICAgfQorIAorKyAgaW50IHN0YWNrX3NpemUgPSBnZXRfamF2YV9zdGFja3NpemUoKTsKKyAgIHB0 aHJlYWRfdCB0aHI7CisrICBwdGhyZWFkX2F0dHJfdCB0aHJlYWRfYXR0cjsKKysKKysgIHB0aHJl YWRfYXR0cl9pbml0KCZ0aHJlYWRfYXR0cik7CisrICBwdGhyZWFkX2F0dHJfc2V0c3RhY2tzaXpl KCZ0aHJlYWRfYXR0ciwgc3RhY2tfc2l6ZSk7CisgCisgICBpZiAoYXJnYyA+IDEgJiYgc3RyY21w KGFyZ3ZbMV0sICJ0ZXN0X2phdmFfb3ZlcmZsb3ciKSA9PSAwKSB7CisgICAgIHByaW50ZigiXG5U ZXN0aW5nIEpBVkFfT1ZFUkZMT1dcbiIpOworIAorICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sg Z3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9yIG90aGVyIHRocmVhZFxuIik7CistICAgIHB0aHJlYWRf Y3JlYXRlICgmdGhyLCBOVUxMLCBydW5famF2YV9vdmVyZmxvdywgTlVMTCk7CisrCisrICAgIHB0 aHJlYWRfY3JlYXRlICgmdGhyLCAmdGhyZWFkX2F0dHIsIHJ1bl9qYXZhX292ZXJmbG93LCBOVUxM KTsKKyAgICAgcHRocmVhZF9qb2luICh0aHIsIE5VTEwpOworIAorICAgICBwcmludGYoIlRlc3Rp bmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9yIGluaXRpYWwgdGhyZWFkXG4iKTsKK0BA IC0yNzcsNyArMjk4LDcgQEAgaW50IG1haW4gKGludCBhcmdjLCBjb25zdCBjaGFyKiogYXJndikg eworICAgICBwcmludGYoIlxuVGVzdGluZyBOQVRJVkVfT1ZFUkZMT1dcbiIpOworIAorICAgICBw cmludGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9yIG90aGVyIHRocmVh ZFxuIik7CistICAgIHB0aHJlYWRfY3JlYXRlICgmdGhyLCBOVUxMLCBydW5fbmF0aXZlX292ZXJm bG93LCBOVUxMKTsKKysgICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsICZ0aHJlYWRfYXR0ciwgcnVu X25hdGl2ZV9vdmVyZmxvdywgTlVMTCk7CisgICAgIHB0aHJlYWRfam9pbiAodGhyLCBOVUxMKTsK KyAKKyAgICAgcHJpbnRmKCJUZXN0aW5nIHN0YWNrIGd1YXJkIHBhZ2UgYmVoYXZpb3VyIGZvciBp bml0aWFsIHRocmVhZFxuIik7CmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxNC1ib290c3Ry YXAvZmlsZXMvbXVzbF9wYXRjaGVzL3BwYy5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazE0LWJvb3Rz dHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uZDMwNmQ1MDFlNGI4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9vcGVuamRrMTQtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2gKQEAgLTAs MCArMSw0NSBAQAorUGF0Y2hlcyBmb3IgbXVzbCB0YWtlbiBmcm9tIEFscGluZSBsaW51eDogaHR0 cHM6Ly9naXQuYWxwaW5lbGludXgub3JnL2Fwb3J0cy9jb21taXQvP2lkPThhMWFlMTdkNGE5YWY1 NDI4NWM3ODkxYTY4MDYyMGU3ZTI0YzYyODAKKy0tLSBvbGQvc3JjL2hvdHNwb3QvY3B1L3BwYy9t YWNyb0Fzc2VtYmxlcl9wcGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L2NwdS9wcGMvbWFjcm9B c3NlbWJsZXJfcHBjLmNwcAorQEAgLTQ3LDYgKzQ3LDggQEAKKyAjaW5jbHVkZSAib3B0by9pbnRy aW5zaWNub2RlLmhwcCIKKyAjZW5kaWYKKyAKKysjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorKwor ICNpZmRlZiBQUk9EVUNUCisgI2RlZmluZSBCTE9DS19DT01NRU5UKHN0cikgLy8gbm90aGluZwor ICNlbHNlCistLS0gb2xkL3NyYy9ob3RzcG90L2NwdS9wcGMvdm1fdmVyc2lvbl9wcGMuY3BwCisr KysgbmV3L3NyYy9ob3RzcG90L2NwdS9wcGMvdm1fdmVyc2lvbl9wcGMuY3BwCitAQCAtODQ1LDcg Kzg0NSw3IEBAIHZvaWQgVk1fVmVyc2lvbjo6ZGV0ZXJtaW5lX2ZlYXR1cmVzKCkgeworICAgdW5z aWduZWQgbG9uZyBhdXh2ID0gZ2V0YXV4dmFsKEFUX0hXQ0FQMik7CisgCisgICBpZiAoYXV4diAm IFBQQ19GRUFUVVJFMl9IVE1fTk9TQykgeworLSAgICBpZiAoYXV4diAmIFBQQ19GRUFUVVJFMl9I QVNfSFRNKSB7CisrICAgIGlmIChhdXh2ICYgUFBDX0ZFQVRVUkUyX0hUTSkgeworICAgICAgIC8v IFRNIG9uIFBPV0VSOCBhbmQgUE9XRVI5IGluIGNvbXBhdCBtb2RlIChWTSkgaXMgc3VwcG9ydGVk IGJ5IHRoZSBKVk0uCisgICAgICAgLy8gVE0gb24gUE9XRVI5IEREMi4xIE5WIChiYXJlbWV0YWwp IGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIEpWTSAoVE0gb24KKyAgICAgICAvLyBQT1dFUjkgREQy LjEgTlYgaGFzIGEgZmV3IGlzc3VlcyB0aGF0IG5lZWQgYSBjb3VwbGUgb2YgZmlybXdhcmUKKy0t LSBvbGQvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3BwYy9vc19saW51eF9wcGMuY3BwCisrKysg bmV3L3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9wcGMvb3NfbGludXhfcHBjLmNwcAorQEAgLTc1 LDcgKzc1LDcgQEAKKyAjIGluY2x1ZGUgPHB3ZC5oPgorICMgaW5jbHVkZSA8cG9sbC5oPgorICMg aW5jbHVkZSA8dWNvbnRleHQuaD4KKy0KKysjIGluY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKyAKKyBh ZGRyZXNzIG9zOjpjdXJyZW50X3N0YWNrX3BvaW50ZXIoKSB7CisgICBpbnRwdHJfdCogY3NwOwor LS0tIG9sZC9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfcHBjL3RocmVhZF9saW51eF9wcGMuY3Bw CisrKysgbmV3L3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9wcGMvdGhyZWFkX2xpbnV4X3BwYy5j cHAKK0BAIC0yMyw2ICsyMyw4IEBACisgICoKKyAgKi8KKyAKKysjaW5jbHVkZSA8YXNtL3B0cmFj ZS5oPgorKworICNpbmNsdWRlICJwcmVjb21waWxlZC5ocHAiCisgI2luY2x1ZGUgInJ1bnRpbWUv ZnJhbWUuaW5saW5lLmhwcCIKKyAjaW5jbHVkZSAicnVudGltZS90aHJlYWQuaHBwIgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYu cGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsxNC1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3g4 Ni5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjljNjRjMTg5 MDM2YQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJhcC9maWxl cy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoCkBAIC0wLDAgKzEsMTMwIEBACitQYXRjaGVzIGZvciBt dXNsIHRha2VuIGZyb20gQWxwaW5lIGxpbnV4OiBodHRwczovL2dpdC5hbHBpbmVsaW51eC5vcmcv YXBvcnRzL2NvbW1pdC8/aWQ9OGExYWUxN2Q0YTlhZjU0Mjg1Yzc4OTFhNjgwNjIwZTdlMjRjNjI4 MAorLS0tIG9sZC9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAK KysrKyBuZXcvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3g4Ni9vc19saW51eF94ODYuY3BwCitA QCAtOTAsNiArOTAsMTI2IEBACisgI2RlZmluZSBTUEVMTF9SRUdfRlAgImVicCIKKyAjZW5kaWYg Ly8gQU1ENjQKKworKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKy8vIFRha2VuIGZyb20gZ2xp YmMgMi4yOAorKy8vIHNvdXJjZTogaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9naXQvP3A9Z2xpYmMu Z2l0O2E9YmxvYjtmPXN5c2RlcHMveDg2L2ZwdV9jb250cm9sLmg7aD00Y2I5OGM1Njc5YjI4OTdm ZjRlNTgyNmQyMjhjYmE2YmU1ODllMjRkO2hiPTNjMDNiYWNhMzdmZGNiNTJjMzg4MWU2NTNjYTM5 MmJiYTdhOTljMmIKKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysjaWZuZGVmIEFNRDY0Cisr LyogRlBVIGNvbnRyb2wgd29yZCBiaXRzLiAgeDg2IHZlcnNpb24uCisrICAgQ29weXJpZ2h0IChD KSAxOTkzLTIwMTggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgVGhpcyBmaWxl IGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisrICAgQ29udHJpYnV0ZWQgYnkgT2xhZiBG bGViYmUuCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorKyAgIHZlcnNpb24gMi4x IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor KworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyAgIExlc3NlciBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor KyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKysg ICA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworKyNpZm5kZWYgX0ZQVV9D T05UUk9MX0gKKysjZGVmaW5lIF9GUFVfQ09OVFJPTF9ICTEKKysKKysvKiBOb3RlIHRoYXQgdGhp cyBmaWxlIHNldHMgb24geDg2LTY0IG9ubHkgdGhlIHg4NyBGUFUsIGl0IGRvZXMgbm90CisrICAg dG91Y2ggdGhlIFNTRSB1bml0LiAgKi8KKysKKysvKiBIZXJlIGlzIHRoZSBkaXJ0eSBwYXJ0LiBT ZXQgdXAgeW91ciAzODcgdGhyb3VnaCB0aGUgY29udHJvbCB3b3JkCisrICogKGN3KSByZWdpc3Rl ci4KKysgKgorKyAqICAgICAxNS0xMyAgICAxMiAgMTEtMTAgIDktOCAgICAgNy02ICAgICA1ICAg IDQgICAgMyAgICAyICAgIDEgICAgMAorKyAqIHwgcmVzZXJ2ZWQgfCBJQyB8IFJDICB8IFBDIHwg cmVzZXJ2ZWQgfCBQTSB8IFVNIHwgT00gfCBaTSB8IERNIHwgSU0KKysgKgorKyAqIElNOiBJbnZh bGlkIG9wZXJhdGlvbiBtYXNrCisrICogRE06IERlbm9ybWFsaXplZCBvcGVyYW5kIG1hc2sKKysg KiBaTTogWmVyby1kaXZpZGUgbWFzaworKyAqIE9NOiBPdmVyZmxvdyBtYXNrCisrICogVU06IFVu ZGVyZmxvdyBtYXNrCisrICogUE06IFByZWNpc2lvbiAoaW5leGFjdCByZXN1bHQpIG1hc2sKKysg KgorKyAqIE1hc2sgYml0IGlzIDEgbWVhbnMgbm8gaW50ZXJydXB0LgorKyAqCisrICogUEM6IFBy ZWNpc2lvbiBjb250cm9sCisrICogMTEgLSByb3VuZCB0byBleHRlbmRlZCBwcmVjaXNpb24KKysg KiAxMCAtIHJvdW5kIHRvIGRvdWJsZSBwcmVjaXNpb24KKysgKiAwMCAtIHJvdW5kIHRvIHNpbmds ZSBwcmVjaXNpb24KKysgKgorKyAqIFJDOiBSb3VuZGluZyBjb250cm9sCisrICogMDAgLSByb3Vu ZGluZyB0byBuZWFyZXN0CisrICogMDEgLSByb3VuZGluZyBkb3duICh0b3dhcmQgLSBpbmZpbml0 eSkKKysgKiAxMCAtIHJvdW5kaW5nIHVwICh0b3dhcmQgKyBpbmZpbml0eSkKKysgKiAxMSAtIHJv dW5kaW5nIHRvd2FyZCB6ZXJvCisrICoKKysgKiBJQzogSW5maW5pdHkgY29udHJvbAorKyAqIFRo YXQgaXMgZm9yIDgwODcgYW5kIDgwMjg3IG9ubHkuCisrICoKKysgKiBUaGUgaGFyZHdhcmUgZGVm YXVsdCBpcyAweDAzN2Ygd2hpY2ggd2UgdXNlLgorKyAqLworKworKyNpbmNsdWRlIDxmZWF0dXJl cy5oPgorKworKy8qIG1hc2tpbmcgb2YgaW50ZXJydXB0cyAqLworKyNkZWZpbmUgX0ZQVV9NQVNL X0lNICAweDAxCisrI2RlZmluZSBfRlBVX01BU0tfRE0gIDB4MDIKKysjZGVmaW5lIF9GUFVfTUFT S19aTSAgMHgwNAorKyNkZWZpbmUgX0ZQVV9NQVNLX09NICAweDA4CisrI2RlZmluZSBfRlBVX01B U0tfVU0gIDB4MTAKKysjZGVmaW5lIF9GUFVfTUFTS19QTSAgMHgyMAorKworKy8qIHByZWNpc2lv biBjb250cm9sICovCisrI2RlZmluZSBfRlBVX0VYVEVOREVEIDB4MzAwCS8qIGxpYm0gcmVxdWly ZXMgZG91YmxlIGV4dGVuZGVkIHByZWNpc2lvbi4gICovCisrI2RlZmluZSBfRlBVX0RPVUJMRSAg IDB4MjAwCisrI2RlZmluZSBfRlBVX1NJTkdMRSAgIDB4MAorKworKy8qIHJvdW5kaW5nIGNvbnRy b2wgKi8KKysjZGVmaW5lIF9GUFVfUkNfTkVBUkVTVCAweDAgICAgLyogUkVDT01NRU5ERUQgKi8K KysjZGVmaW5lIF9GUFVfUkNfRE9XTiAgICAweDQwMAorKyNkZWZpbmUgX0ZQVV9SQ19VUCAgICAg IDB4ODAwCisrI2RlZmluZSBfRlBVX1JDX1pFUk8gICAgMHhDMDAKKysKKysjZGVmaW5lIF9GUFVf UkVTRVJWRUQgMHhGMEMwICAvKiBSZXNlcnZlZCBiaXRzIGluIGN3ICovCisrCisrCisrLyogVGhl IGZkbGlibSBjb2RlIHJlcXVpcmVzIHN0cmljdCBJRUVFIGRvdWJsZSBwcmVjaXNpb24gYXJpdGht ZXRpYywKKysgICBhbmQgbm8gaW50ZXJydXB0cyBmb3IgZXhjZXB0aW9ucywgcm91bmRpbmcgdG8g bmVhcmVzdC4gICovCisrCisrI2RlZmluZSBfRlBVX0RFRkFVTFQgIDB4MDM3ZgorKworKy8qIElF RUU6ICBzYW1lIGFzIGFib3ZlLiAgKi8KKysjZGVmaW5lIF9GUFVfSUVFRSAgICAgMHgwMzdmCisr CisrLyogVHlwZSBvZiB0aGUgY29udHJvbCB3b3JkLiAgKi8KKyt0eXBlZGVmIHVuc2lnbmVkIGlu dCBmcHVfY29udHJvbF90IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoX19ISV9fKSkpOworKwor Ky8qIE1hY3JvcyBmb3IgYWNjZXNzaW5nIHRoZSBoYXJkd2FyZSBjb250cm9sIHdvcmQuICAiKiYi IGlzIHVzZWQgdG8KKysgICB3b3JrIGFyb3VuZCBhIGJ1ZyBpbiBvbGRlciB2ZXJzaW9ucyBvZiBH Q0MuICBfX3ZvbGF0aWxlX18gaXMgdXNlZAorKyAgIHRvIHN1cHBvcnQgY29tYmluYXRpb24gb2Yg d3JpdGluZyB0aGUgY29udHJvbCByZWdpc3RlciBhbmQgcmVhZGluZworKyAgIGl0IGJhY2suICBX aXRob3V0IF9fdm9sYXRpbGVfXywgdGhlIG9sZCB2YWx1ZSBtYXkgYmUgdXNlZCBmb3IgcmVhZGlu ZworKyAgIGJhY2sgdW5kZXIgY29tcGlsZXIgb3B0aW1pemF0aW9uLgorKworKyAgIE5vdGUgdGhh dCB0aGUgdXNlIG9mIHRoZXNlIG1hY3JvcyBpcyBub3Qgc3VmZmljaWVudCBhbnltb3JlIHdpdGgK KysgICByZWNlbnQgaGFyZHdhcmUgbm9yIG9uIHg4Ni02NC4gIFNvbWUgZmxvYXRpbmcgcG9pbnQg b3BlcmF0aW9ucyBhcmUKKysgICBleGVjdXRlZCBpbiB0aGUgU1NFL1NTRTIgZW5naW5lcyB3aGlj aCBoYXZlIHRoZWlyIG93biBjb250cm9sIGFuZAorKyAgIHN0YXR1cyByZWdpc3Rlci4gICovCisr I2RlZmluZSBfRlBVX0dFVENXKGN3KSBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoImZuc3RjdyAlMCIg OiAiPW0iICgqJmN3KSkKKysjZGVmaW5lIF9GUFVfU0VUQ1coY3cpIF9fYXNtX18gX192b2xhdGls ZV9fICgiZmxkY3cgJTAiIDogOiAibSIgKComY3cpKQorKworKy8qIERlZmF1bHQgY29udHJvbCB3 b3JkIHNldCBhdCBzdGFydHVwLiAgKi8KKytleHRlcm4gZnB1X2NvbnRyb2xfdCBfX2ZwdV9jb250 cm9sOworKworKyNlbmRpZgkvKiBmcHVfY29udHJvbC5oICovCisrCisrI2VuZGlmIC8vIEFNRDY0 CisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cisr Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CisrCisgYWRkcmVzcyBvczo6Y3VycmVudF9zdGFja19w b2ludGVyKCkgeworICNpZmRlZiBTUEFSQ19XT1JLUworICAgcmVnaXN0ZXIgdm9pZCAqZXNwOwpk aWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL3RlbXBsYXRlIGIvc3JjcGtn cy9vcGVuamRrMTQtYm9vdHN0cmFwL3RlbXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMC4uODM3Mzc1YjM2NDcyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9v cGVuamRrMTQtYm9vdHN0cmFwL3RlbXBsYXRlCkBAIC0wLDAgKzEsMTI0IEBACisjIFRlbXBsYXRl IGZpbGUgZm9yICdvcGVuamRrMTQtYm9vdHN0cmFwJworX2phdmFfdmVyPTE0CitfamF2YV9taW5f dmVyPTAKK19qYXZhX3NlY192ZXI9MgorX2pka191cGRhdGU9MTIKK19qZGtfaG9tZT0idXNyL2xp Yi9qdm0vb3BlbmpkayR7X2phdmFfdmVyfSIKK19iYXNlX3ZlcnNpb249IiR7X2phdmFfdmVyfS4k e19qYXZhX21pbl92ZXJ9LiR7X2phdmFfc2VjX3Zlcn0iCisKK3BrZ25hbWU9b3BlbmpkazE0LWJv b3RzdHJhcAordmVyc2lvbj0iJHtfYmFzZV92ZXJzaW9ufSske19qZGtfdXBkYXRlfSIKK3Jldmlz aW9uPTEKK3dya3NyYz0iamRrJHtfamF2YV92ZXJ9dS1qZGstJHt2ZXJzaW9ufSIKK2J1aWxkX3N0 eWxlPWdudS1jb25maWd1cmUKK2NvbmZpZ3VyZV9hcmdzPSItLWRpc2FibGUtd2FybmluZ3MtYXMt ZXJyb3JzCisgLS1wcmVmaXg9JHtYQlBTX0RFU1RESVJ9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS91 c3IvbGliCisgLS1lbmFibGUtdW5saW1pdGVkLWNyeXB0bworIC0td2l0aC16bGliPXN5c3RlbQor IC0td2l0aC1saWJqcGVnPXN5c3RlbQorIC0td2l0aC1naWZsaWI9c3lzdGVtCisgLS13aXRoLWxp YnBuZz1zeXN0ZW0KKyAtLXdpdGgtbGNtcz1zeXN0ZW0KKyAtLXdpdGgtanRyZWc9bm8KKyAtLXdp dGgtdmVyc2lvbi1idWlsZD0ke19qYXZhX3Zlcn0KKyAtLXdpdGgtam9icz0ke1hCUFNfT1JJR19N QUtFSk9CU30KKyAtLXdpdGgtdmVuZG9yLW5hbWU9Vm9pZAorIC0td2l0aC12ZW5kb3ItdXJsPWh0 dHBzOi8vdm9pZGxpbnV4Lm9yZy8KKyAtLXdpdGgtdmVuZG9yLWJ1Zy11cmw9aHR0cHM6Ly9naXRo dWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9pc3N1ZXMKKyAtLXdpdGgtdmVuZG9yLXZt LWJ1Zy11cmw9aHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9pc3N1 ZXMKKyAtLXdpdGgtYm9vdC1qZGs9L3Vzci9saWIvanZtL29wZW5qZGsxMyIKK21ha2VfYnVpbGRf YXJncz0iaW1hZ2VzIgorbWFrZV9jaGVja190YXJnZXQ9InRlc3QtaG90c3BvdC1ndGVzdCIKK2hv c3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBhdXRvbWFrZSBhdXRvY29uZiBjcGlvIHRhciB1bnpp cCB6aXAgY2EtY2VydGlmaWNhdGVzCisgbGlicmVzc2wgemxpYi1kZXZlbCB3aGljaCBtYWtlLWNh IG9wZW5qZGsxMy1ib290c3RyYXAiCittYWtlZGVwZW5kcz0ibGliWHJlbmRlci1kZXZlbCBsaWJY dHN0LWRldmVsIGxpYlh0LWRldmVsIGxpYlhyYW5kci1kZXZlbAorIGdpZmxpYi1kZXZlbCBsaWJq cGVnLXR1cmJvLWRldmVsIGN1cHMtZGV2ZWwgZnJlZXR5cGUtZGV2ZWwgYWxzYS1saWItZGV2ZWwK KyBmb250Y29uZmlnLWRldmVsIHpsaWItZGV2ZWwgbGNtczItZGV2ZWwgb3BlbmpkazEzLWJvb3Rz dHJhcCIKK3Byb3ZpZGVzPSJqYXZhLWVudmlyb25tZW50LSR7dmVyc2lvbn1fMSBqYXZhLXJ1bnRp bWUtJHt2ZXJzaW9ufV8xIgorc2hvcnRfZGVzYz0iT3BlbkpESyBKYXZhIERldmVsb3BtZW50IEtp dCAoYm9vdHN0cmFwIHZlcnNpb24gMTQpIgorbWFpbnRhaW5lcj0iY2xhc3NhYmJ5YW1wIDxkZXZA a2I2LmVlPiIKK2xpY2Vuc2U9IkdQTC0yLjAtb25seSBXSVRIIENsYXNzcGF0aC1leGNlcHRpb24t Mi4wIgoraG9tZXBhZ2U9Imh0dHA6Ly9vcGVuamRrLmphdmEubmV0LyIKK2Rpc3RmaWxlcz0iaHR0 cHM6Ly9oZy5vcGVuamRrLmphdmEubmV0L2pkay11cGRhdGVzL2pkayR7X2phdmFfdmVyfXUvYXJj aGl2ZS9qZGstJHt2ZXJzaW9ufS50YXIuZ3oiCitjaGVja3N1bT1kZmIzNjA3ZjFiNjc1NDU4ZjI5 YTE4NWE0MGYxZGJiZjg5NjQzOWNmMzNiM2FhMGYzZDg5ZGYyOTdlNjA0OTM1Citub2Nyb3NzPXll cworCisjIEJ1aWxkIGlzIHN0aWxsIHBhcmFsbGVsLCBidXQgZG9uJ3QgdXNlIC1qTi4KK2Rpc2Fi bGVfcGFyYWxsZWxfYnVpbGQ9eWVzCisKKyMgbm8gaG90c3BvdCBKSVQgZm9yIHBwYzMyCitjYXNl ICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwlwcGM2NCopIDs7CisJcHBjKikgX3VzZV96ZXJv PXllcyA7OworZXNhYworCitpZiBbIC1uICIkX3VzZV96ZXJvIiBdOyB0aGVuCisJbWFrZWRlcGVu ZHMrPSIgbGliZmZpLWRldmVsIgorCWNvbmZpZ3VyZV9hcmdzKz0iIC0td2l0aC1qdm0tdmFyaWFu dHM9emVybyIKKwljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwkJcHBjKikgY29uZmln dXJlX2FyZ3MrPSIgLS13aXRoLWJvb3QtamRrLWp2bWFyZ3M9LVhYOlRocmVhZFN0YWNrU2l6ZT0y NTYwIjs7CisJZXNhYworZmkKKworcG9zdF9leHRyYWN0KCkgeworCWNobW9kICt4IGNvbmZpZ3Vy ZQorCWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCisJCXJtIC1yIHNy Yy9qZGsuaG90c3BvdC5hZ2VudAorCWZpCit9CisKK3Bvc3RfcGF0Y2goKSB7CisJY2FzZSAiJFhC UFNfVEFSR0VUX01BQ0hJTkUiIGluCisJCWk2ODYqKQorCQkJZm9yIGYgaW4gIiR7RklMRVNESVJ9 Ii9pNjg2X3BhdGNoZXMvKi5wYXRjaDsgZG8KKwkJCQltc2dfbm9ybWFsICJBcHBseWluZyAke2Yj JEZJTEVTRElSL31cbiIKKwkJCQlwYXRjaCAtbE5wMSAtaSAiJGYiCisJCQlkb25lCisJCQk7Owor CWVzYWMKKworCWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCisJCWZv ciBmIGluICIke0ZJTEVTRElSfSIvbXVzbF9wYXRjaGVzLyoucGF0Y2g7IGRvCisJCQltc2dfbm9y bWFsICJBcHBseWluZyAke2YjJEZJTEVTRElSL31cbiIKKwkJCXBhdGNoIC1sTnAxIC1pICIkZiIK KwkJZG9uZQorCWZpCit9CisKK2RvX2NvbmZpZ3VyZSgpIHsKKwlDRkxBR1M9JHtDRkxBR1MvLURf Rk9SVElGWV9TT1VSQ0U9Mi99CisJQ1hYRkxBR1M9JHtDWFhGTEFHUy8tRF9GT1JUSUZZX1NPVVJD RT0yL30KKworCSMgZm9yY2UgRUxGdjIgZm9yIHBwYzY0IGp1c3QgaW4gY2FzZQorCWNhc2UgIiRY QlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCQlwcGM2NCopCisJCQlDRkxBR1MrPSIgLURBQklfRUxG djIiCisJCQlDWFhGTEFHUys9IiAtREFCSV9FTEZ2MiIKKwkJCTs7CisJZXNhYworCisJIyBjb21w YXRpYmlsaXR5IHdpdGggR0NDIDEwLngKKwlDRkxBR1MrPSIgLWZjb21tb24gLWZuby1saWZldGlt ZS1kc2UiCisJQ1hYRkxBR1MrPSIgLWZjb21tb24gLWZuby1saWZldGltZS1kc2UiCisKKwljb25m aWd1cmVfYXJncz0ke2NvbmZpZ3VyZV9hcmdzLy0td2l0aC1saWJ0b29sLXN5c3Jvb3Q9XC91c3Jc L1thLXowLTldKi1saW51eC1bYS16XSovfQorCWlmIFsgIiRYQlBTX0NDQUNIRSIgXTsgdGhlbgor CQljb25maWd1cmVfYXJncys9IiAtLWVuYWJsZS1jY2FjaGUiCisJZmkKKwlDQz0iL3Vzci9iaW4v Y2MiCisJQ1hYPSIvdXNyL2Jpbi9jKysiCisJLi9jb25maWd1cmUgJHtjb25maWd1cmVfYXJnc30g XAorCQktLXdpdGgtZXh0cmEtY2ZsYWdzPSIkQ0ZMQUdTIiBcCisJCS0td2l0aC1leHRyYS1jeHhm bGFncz0iJENYWEZMQUdTIiBcCisJCS0td2l0aC1leHRyYS1sZGZsYWdzPSIkTERGTEFHUyIgXAor CQlSRUFERUxGPSRSRUFERUxGIEFSPSRBUiBTVFJJUD0kU1RSSVAgTk09JE5NIFwKKwkJT0JKRFVN UD0kT0JKRFVNUCBPQkpDT1BZPSRPQkpDT1BZCit9CisKK3Bvc3RfaW5zdGFsbCgpIHsKKwltdiAk e0RFU1RESVJ9L3Vzci9saWIvanZtL29wZW5qZGstJHtfYmFzZV92ZXJzaW9ufS1pbnRlcm5hbCAk e0RFU1RESVJ9LyRfamRrX2hvbWUKKwlybSAtcmYgJHtERVNURElSfS91c3IvbGliL2JpbgorCXJt IC1mICRERVNURElSLyRfamRrX2hvbWUvbGliL3NyYy56aXAKKwl2bGljZW5zZSBBU1NFTUJMWV9F WENFUFRJT04KKwl2bGljZW5zZSBMSUNFTlNFCit9CgpGcm9tIDdjZDQwMDE3YWYzZjYzMGE0YzA1 ZDI5YTM4OWM4NmNmNGQ5MTE5YmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IGNsYXNz YWJieWFtcCA8ZGV2QGtiNi5lZT4KRGF0ZTogTW9uLCAxNyBKYW4gMjAyMiAwNjoyNjoxOSAtMDUw MApTdWJqZWN0OiBbUEFUQ0ggNS84XSBOZXcgcGFja2FnZTogb3BlbmpkazE1LWJvb3RzdHJhcC0x NS4wLjMrMwoKLS0tCiAuLi4vZmlsZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0Y2ggICAgICAg ICAgfCAgMTAgKwogLi4uL2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2ggICAgICAgICAgICAg IHwgIDIxICsrCiAuLi4vZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoICAgICAgICAgICAg fCAzMzMgKysrKysrKysrKysrKysrKysrCiAuLi4vZmlsZXMvbXVzbF9wYXRjaGVzL2NoZWNrLnBh dGNoICAgICAgICAgICAgfCAgMjQgKysKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNo ICAgICAgICAgICAgICB8ICA0NSArKysKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNo ICAgICAgICAgICAgICB8IDEzMCArKysrKysrCiBzcmNwa2dzL29wZW5qZGsxNS1ib290c3RyYXAv dGVtcGxhdGUgICAgICAgICAgfCAxMTkgKysrKysrKwogNyBmaWxlcyBjaGFuZ2VkLCA2ODIgaW5z ZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJh cC9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTUtYm9vdHN0cmFwL2ZpbGVzL211c2xf cGF0Y2hlcy9idWlsZC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazE1 LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvY2hlY2sucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL29wZW5qZGsxNS1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3BwYy5w YXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJhcC9maWxl cy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVu amRrMTUtYm9vdHN0cmFwL3RlbXBsYXRlCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTUt Ym9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNoIGIvc3JjcGtncy9vcGVu amRrMTUtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYWE2YzVkNGQyYmUyCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTUtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9h YXJjaDY0LnBhdGNoCkBAIC0wLDAgKzEsMTAgQEAKKy0tLSBhL3NyYy9ob3RzcG90L29zX2NwdS9s aW51eF9hYXJjaDY0L29zX2xpbnV4X2FhcmNoNjQuY3BwCisrKysgYi9zcmMvaG90c3BvdC9vc19j cHUvbGludXhfYWFyY2g2NC9vc19saW51eF9hYXJjaDY0LmNwcAorQEAgLTc0LDcgKzc0LDYgQEAK KyAjIGluY2x1ZGUgPHB3ZC5oPgorICMgaW5jbHVkZSA8cG9sbC5oPgorICMgaW5jbHVkZSA8dWNv bnRleHQuaD4KKy0jIGluY2x1ZGUgPGZwdV9jb250cm9sLmg+CisgCisgI2RlZmluZSBSRUdfRlAg MjkKKyAjZGVmaW5lIFJFR19MUiAzMApkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTUtYm9v dHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsxNS1i b290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLjEwMjQyOGYxMGYzMwotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoCkBA IC0wLDAgKzEsMjEgQEAKKy0tLSBhL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9hcm0vb3NfbGlu dXhfYXJtLmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X2FybS9vc19saW51eF9h cm0uY3BwCitAQCAtNzMsNiArNzMsMTggQEAKKyAjIGluY2x1ZGUgPHVjb250ZXh0Lmg+CisgIyBp bmNsdWRlIDxhc20vcHRyYWNlLmg+CisgCisrLy8gU3R1cGlkIGhhY2sgYXMgdGhlIG9yaWdpbiBp ZiBiZWxvdyBkb2VzbnQgY29tcGlsZSB3aXRoIGdjYyA4LjIuMDoKKysvLworKy8vIG9zX2xpbnV4 X2FybS5jcHA6MTE0OjU6IGVycm9yOiBtaXNzaW5nIGJpbmFyeSBvcGVyYXRvciBiZWZvcmUgdG9r ZW4gIigiCisrLy8gICNpZiBOR1JFRyA9PSAxNgorKy8vICAgICAgIF5+fn5+CisrLy8KKysvLyBU aGUgTkdSRUcgaXMgMTggKGJpdHMvc2lnbmFsLmg6MTApLCBzbyBmb3JjZSBpdCB0byB0aGF0IHZh bHVlLgorKyNpZmRlZiBOR1JFRworKyMgIHVuZGVmIE5HUkVHCisrI2VuZGlmCisrI2RlZmluZSBO R1JFRyAxOAorKworICNkZWZpbmUgU1BFTExfUkVHX1NQICAic3AiCisgCisgLy8gRG9uJ3QgI2Rl ZmluZSBTUEVMTF9SRUdfRlAgZm9yIHRodW1iIGJlY2F1c2UgaXQgaXMgbm90IHNhZmUgdG8gdXNl LCBzbyB0aGlzIG1ha2VzIHN1cmUgd2UgbmV2ZXIgZmV0Y2ggaXQuCmRpZmYgLS1naXQgYS9zcmNw a2dzL29wZW5qZGsxNS1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoIGIv c3JjcGtncy9vcGVuamRrMTUtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjUwM2RmNDY5YjU4NAot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJhcC9maWxlcy9tdXNs X3BhdGNoZXMvYnVpbGQucGF0Y2gKQEAgLTAsMCArMSwzMzMgQEAKKy0tLSBhL21ha2UvUmVsZWFz ZUZpbGUuZ21rCisrKysgYi9tYWtlL1JlbGVhc2VGaWxlLmdtaworQEAgLTUzLDYgKzUzLDcgQEAg ZGVmaW5lIGNyZWF0ZS1pbmZvLWZpbGUKKyAgICQoY2FsbCBpbmZvLWZpbGUtaXRlbSwgIkpBVkFf VkVSU0lPTl9EQVRFIiwgIiQoVkVSU0lPTl9EQVRFKSIpCisgICAkKGNhbGwgaW5mby1maWxlLWl0 ZW0sICJPU19OQU1FIiwgIiQoUkVMRUFTRV9GSUxFX09TX05BTUUpIikKKyAgICQoY2FsbCBpbmZv LWZpbGUtaXRlbSwgIk9TX0FSQ0giLCAiJChSRUxFQVNFX0ZJTEVfT1NfQVJDSCkiKQorKyAgJChj YWxsIGluZm8tZmlsZS1pdGVtLCAiTElCQyIsICJtdXNsIikKKyBlbmRlZgorIAorICMgUGFyYW0g MSAtIFRoZSBmaWxlIGNvbnRhaW5pbmcgdGhlIE1PRFVMRVMgbGlzdAorLS0tIGEvbWFrZS9ob3Rz cG90L2xpYi9Db21waWxlSnZtLmdtaworKysrIGIvbWFrZS9ob3RzcG90L2xpYi9Db21waWxlSnZt LmdtaworQEAgLTczLDYgKzczLDcgQEAgQ0ZMQUdTX1ZNX1ZFUlNJT04gOj0gXAorICAgICAtREhP VFNQT1RfQlVJTERfVVNFUj0nIiQoVVNFUk5BTUUpIicgXAorICAgICAtREhPVFNQT1RfVk1fRElT VFJPPSciJChIT1RTUE9UX1ZNX0RJU1RSTykiJyBcCisgICAgIC1EQ1BVPSciJChPUEVOSkRLX1RB UkdFVF9DUFVfVk1fVkVSU0lPTikiJyBcCisrICAgIC1ETElCQz0nIm11c2wiJyBcCisgICAgICMK KyAKKyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworLS0tIGEvbWFrZS9tb2R1bGVzL2phdmEuYmFz ZS9saWIvQ29yZUxpYnJhcmllcy5nbWsKKysrKyBiL21ha2UvbW9kdWxlcy9qYXZhLmJhc2UvbGli L0NvcmVMaWJyYXJpZXMuZ21rCitAQCAtMTkwLDYgKzE5MCw3IEBAIGlmZXEgKCQoY2FsbCBpc1Rh cmdldE9zLCB3aW5kb3dzKSwgdHJ1ZSkKKyBlbmRpZgorIAorIExJQkpMSV9DRkxBR1MgKz0gJChM SUJaX0NGTEFHUykKKytMSUJKTElfQ0ZMQUdTICs9IC1ETElCQz1cIm11c2xcIgorIAorIGlmbmVx ICgkKFVTRV9FWFRFUk5BTF9MSUJaKSwgdHJ1ZSkKKyAgIExJQkpMSV9FWFRSQV9GSUxFUyArPSBc CistLS0gYS9zcmMvaG90c3BvdC9vcy9saW51eC9vc19saW51eC5jcHAKKysrKyBiL3NyYy9ob3Rz cG90L29zL2xpbnV4L29zX2xpbnV4LmNwcAorQEAgLTEwMiw3ICsxMDIsNiBAQAorICMgaW5jbHVk ZSA8c3RyaW5nLmg+CisgIyBpbmNsdWRlIDxzeXNjYWxsLmg+CisgIyBpbmNsdWRlIDxzeXMvc3lz aW5mby5oPgorLSMgaW5jbHVkZSA8Z251L2xpYmMtdmVyc2lvbi5oPgorICMgaW5jbHVkZSA8c3lz L2lwYy5oPgorICMgaW5jbHVkZSA8c3lzL3NobS5oPgorICMgaW5jbHVkZSA8bGluay5oPgorQEAg LTU5Nyw2ICs1OTYsMTIgQEAgdm9pZCBvczo6TGludXg6OmhvdHNwb3Rfc2lnbWFzayhUaHJlYWQq IHRocmVhZCkgeworIC8vIGRldGVjdGluZyBwdGhyZWFkIGxpYnJhcnkKKyAKKyB2b2lkIG9zOjpM aW51eDo6bGlicHRocmVhZF9pbml0KCkgeworKyNpZiAhZGVmaW5lZChfX0dMSUJDX18pICYmICFk ZWZpbmVkKF9fVUNMSUJDX18pCisrICAvLyBIYXJkIGNvZGUgQWxwaW5lIExpbnV4IHN1cHBvcnRl ZCBtdXNsIGNvbXBhdGlibGUgc2V0dGluZ3MKKysgIC8vIHNnbjogTlBUTCBpcyBjb3JyZWN0LCBk b24ndCBrbm93IGFib3V0IGdsaWJjIDIuOSwgYWxwaW5lJ3MgdGhpbmc/CisrICBvczo6TGludXg6 OnNldF9nbGliY192ZXJzaW9uKCJnbGliYyAyLjkiKTsKKysgIG9zOjpMaW51eDo6c2V0X2xpYnB0 aHJlYWRfdmVyc2lvbigiTlBUTCIpOworKyNlbHNlCisgICAvLyBTYXZlIGdsaWJjIGFuZCBwdGhy ZWFkIHZlcnNpb24gc3RyaW5ncy4KKyAjaWYgIWRlZmluZWQoX0NTX0dOVV9MSUJDX1ZFUlNJT04p IHx8IFwKKyAgICAgIWRlZmluZWQoX0NTX0dOVV9MSUJQVEhSRUFEX1ZFUlNJT04pCitAQCAtNjE0 LDYgKzYxOSw3IEBAIHZvaWQgb3M6OkxpbnV4OjpsaWJwdGhyZWFkX2luaXQoKSB7CisgICBzdHIg PSAoY2hhciAqKW1hbGxvYyhuLCBtdEludGVybmFsKTsKKyAgIGNvbmZzdHIoX0NTX0dOVV9MSUJQ VEhSRUFEX1ZFUlNJT04sIHN0ciwgbik7CisgICBvczo6TGludXg6OnNldF9saWJwdGhyZWFkX3Zl cnNpb24oc3RyKTsKKysjZW5kaWYKKyB9CisgCisgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KK0BAIC0z MTE3LDIwICszMTIzLDM2IEBAIHZvaWQgb3M6OkxpbnV4OjpzY2hlZF9nZXRjcHVfaW5pdCgpIHsK KyBleHRlcm4gIkMiIEpOSUVYUE9SVCB2b2lkIG51bWFfd2FybihpbnQgbnVtYmVyLCBjaGFyICp3 aGVyZSwgLi4uKSB7IH0KKyBleHRlcm4gIkMiIEpOSUVYUE9SVCB2b2lkIG51bWFfZXJyb3IoY2hh ciAqd2hlcmUpIHsgfQorIAorK3N0YXRpYyB2b2lkKiBkbHZzeW1faWZfYXZhaWxhYmxlKHZvaWQq IGhhbmRsZSwgY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciogdmVyc2lvbikgeworKyAgdHlw ZWRlZiB2b2lkKiAoKmRsdnN5bV9mdW5jX3R5cGUpKHZvaWQqIGhhbmRsZSwgY29uc3QgY2hhciog bmFtZSwgY29uc3QgY2hhciogdmVyc2lvbik7CisrICBzdGF0aWMgZGx2c3ltX2Z1bmNfdHlwZSBk bHZzeW1fZnVuYzsKKysgIHN0YXRpYyBib29sIGluaXRpYWxpemVkID0gZmFsc2U7CisrCisrICBp ZiAoIWluaXRpYWxpemVkKSB7CisrICAgIGRsdnN5bV9mdW5jID0gKGRsdnN5bV9mdW5jX3R5cGUp ZGxzeW0oUlRMRF9ORVhULCAiZGx2c3ltIik7CisrICAgIGluaXRpYWxpemVkID0gdHJ1ZTsKKysg IH0KKysKKysgIGlmIChkbHZzeW1fZnVuYyAhPSBOVUxMKSB7CisrICAgIHZvaWQgKmYgPSBkbHZz eW1fZnVuYyhoYW5kbGUsIG5hbWUsIHZlcnNpb24pOworKyAgICBpZiAoZiAhPSBOVUxMKSB7Cisr ICAgICAgcmV0dXJuIGY7CisrICAgIH0KKysgIH0KKysKKysgIHJldHVybiBkbHN5bShoYW5kbGUs IG5hbWUpOworK30KKysKKyAvLyBIYW5kbGUgcmVxdWVzdCB0byBsb2FkIGxpYm51bWEgc3ltYm9s IHZlcnNpb24gMS4xIChBUEkgdjEpLiBJZiBpdCBmYWlscworIC8vIGxvYWQgc3ltYm9sIGZyb20g YmFzZSB2ZXJzaW9uIGluc3RlYWQuCisgdm9pZCogb3M6OkxpbnV4OjpsaWJudW1hX2Rsc3ltKHZv aWQqIGhhbmRsZSwgY29uc3QgY2hhciAqbmFtZSkgeworLSAgdm9pZCAqZiA9IGRsdnN5bShoYW5k bGUsIG5hbWUsICJsaWJudW1hXzEuMSIpOworLSAgaWYgKGYgPT0gTlVMTCkgeworLSAgICBmID0g ZGxzeW0oaGFuZGxlLCBuYW1lKTsKKy0gIH0KKy0gIHJldHVybiBmOworKyAgcmV0dXJuIGRsdnN5 bV9pZl9hdmFpbGFibGUoaGFuZGxlLCBuYW1lLCAibGlibnVtYV8xLjEiKTsKKyB9CisgCisgLy8g SGFuZGxlIHJlcXVlc3QgdG8gbG9hZCBsaWJudW1hIHN5bWJvbCB2ZXJzaW9uIDEuMiAoQVBJIHYy KSBvbmx5LgorIC8vIFJldHVybiBOVUxMIGlmIHRoZSBzeW1ib2wgaXMgbm90IGRlZmluZWQgaW4g dGhpcyBwYXJ0aWN1bGFyIHZlcnNpb24uCisgdm9pZCogb3M6OkxpbnV4OjpsaWJudW1hX3YyX2Rs c3ltKHZvaWQqIGhhbmRsZSwgY29uc3QgY2hhciogbmFtZSkgeworLSAgcmV0dXJuIGRsdnN5bSho YW5kbGUsIG5hbWUsICJsaWJudW1hXzEuMiIpOworKyAgcmV0dXJuIGRsdnN5bV9pZl9hdmFpbGFi bGUoaGFuZGxlLCBuYW1lLCAibGlibnVtYV8xLjIiKTsKKyB9CisgCisgYm9vbCBvczo6TGludXg6 OmxpYm51bWFfaW5pdCgpIHsKKy0tLSBhL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94ODYvb3Nf bGludXhfeDg2LmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3g4Ni9vc19saW51 eF94ODYuY3BwCitAQCAtNzUsOSArNzUsNiBAQAorICMgaW5jbHVkZSA8cHdkLmg+CisgIyBpbmNs dWRlIDxwb2xsLmg+CisgIyBpbmNsdWRlIDx1Y29udGV4dC5oPgorLSNpZm5kZWYgQU1ENjQKKy0j IGluY2x1ZGUgPGZwdV9jb250cm9sLmg+CistI2VuZGlmCisgCisgI2lmZGVmIEFNRDY0CisgI2Rl ZmluZSBSRUdfU1AgUkVHX1JTUAorLS0tIGEvc3JjL2hvdHNwb3Qvc2hhcmUvZ2Mvc2hhcmVkL2dl bkNvbGxlY3RlZEhlYXAuY3BwCisrKysgYi9zcmMvaG90c3BvdC9zaGFyZS9nYy9zaGFyZWQvZ2Vu Q29sbGVjdGVkSGVhcC5jcHAKK0BAIC0xMTE2LDcgKzExMTYsNyBAQCBIZWFwV29yZCogR2VuQ29s bGVjdGVkSGVhcDo6YWxsb2NhdGVfbmV3X3RsYWIoc2l6ZV90IG1pbl9zaXplLAorIHN0YXRpYyBT Y3JhdGNoQmxvY2sgKnJlbW92ZVNtYWxsZXN0U2NyYXRjaChTY3JhdGNoQmxvY2sgKipwcmV2X3B0 cikgeworICAgYm9vbCBmaXJzdCA9IHRydWU7CisgICBzaXplX3QgbWluX3NpemUgPSAwOyAgIC8v ICJmaXJzdCIgbWFrZXMgdGhpcyBjb25jZXB0dWFsbHkgaW5maW5pdGUuCistICBTY3JhdGNoQmxv Y2sgKipzbWFsbGVzdF9wdHIsICpzbWFsbGVzdDsKKysgIFNjcmF0Y2hCbG9jayAqKnNtYWxsZXN0 X3B0ciA9IE5VTEwsICpzbWFsbGVzdDsKKyAgIFNjcmF0Y2hCbG9jayAgKmN1ciA9ICpwcmV2X3B0 cjsKKyAgIHdoaWxlIChjdXIpIHsKKyAgICAgYXNzZXJ0KCpwcmV2X3B0ciA9PSBjdXIsICJqdXN0 IGNoZWNraW5nIik7CistLS0gYS9zcmMvaG90c3BvdC9zaGFyZS9ydW50aW1lL2Fic3RyYWN0X3Zt X3ZlcnNpb24uY3BwCisrKysgYi9zcmMvaG90c3BvdC9zaGFyZS9ydW50aW1lL2Fic3RyYWN0X3Zt X3ZlcnNpb24uY3BwCitAQCAtMjYyLDcgKzI2Miw3IEBAIGNvbnN0IGNoYXIqIEFic3RyYWN0X1ZN X1ZlcnNpb246OmludGVybmFsX3ZtX2luZm9fc3RyaW5nKCkgeworICAgI2VuZGlmCisgCisgICAj ZGVmaW5lIElOVEVSTkFMX1ZFUlNJT05fU1VGRklYIFZNX1JFTEVBU0UgIikiIFwKKy0gICAgICAg ICAiIGZvciAiIE9TICItIiBDUFUgRkxPQVRfQVJDSF9TVFIgXAorKyAgICAgICAgICIgZm9yICIg T1MgIi0iIENQVSBGTE9BVF9BUkNIX1NUUiBMSUJDIFwKKyAgICAgICAgICAiIEpSRSAoIiBWRVJT SU9OX1NUUklORyAiKSwgYnVpbHQgb24gIiBIT1RTUE9UX0JVSUxEX1RJTUUgXAorICAgICAgICAg ICIgYnkgIiBYU1RSKEhPVFNQT1RfQlVJTERfVVNFUikgIiB3aXRoICIgSE9UU1BPVF9CVUlMRF9D T01QSUxFUgorIAorLS0tIGEvc3JjL2hvdHNwb3Qvc2hhcmUvdXRpbGl0aWVzL2dsb2JhbERlZmlu aXRpb25zX2djYy5ocHAKKysrKyBiL3NyYy9ob3RzcG90L3NoYXJlL3V0aWxpdGllcy9nbG9iYWxE ZWZpbml0aW9uc19nY2MuaHBwCitAQCAtMjA0LDcgKzIwNCw3IEBAIGlubGluZSBpbnQgZ19pc25h bihkb3VibGUgZikgeyByZXR1cm4gaXNuYW5kKGYpOyB9CisgI2VsaWYgZGVmaW5lZChfX0FQUExF X18pCisgaW5saW5lIGludCBnX2lzbmFuKGRvdWJsZSBmKSB7IHJldHVybiBpc25hbihmKTsgfQor ICNlbGlmIGRlZmluZWQoTElOVVgpIHx8IGRlZmluZWQoX0FMTEJTRF9TT1VSQ0UpCistaW5saW5l IGludCBnX2lzbmFuKGZsb2F0ICBmKSB7IHJldHVybiBpc25hbmYoZik7IH0KKytpbmxpbmUgaW50 IGdfaXNuYW4oZmxvYXQgIGYpIHsgcmV0dXJuIGlzbmFuKGYpOyB9CisgaW5saW5lIGludCBnX2lz bmFuKGRvdWJsZSBmKSB7IHJldHVybiBpc25hbihmKTsgfQorICNlbHNlCisgI2Vycm9yICJtaXNz aW5nIHBsYXRmb3JtLXNwZWNpZmljIGRlZmluaXRpb24gaGVyZSIKKy0tLSBhL3NyYy9qYXZhLmJh c2UvbGludXgvbmF0aXZlL2xpYm5ldC9saW51eF9jbG9zZS5jCisrKysgYi9zcmMvamF2YS5iYXNl L2xpbnV4L25hdGl2ZS9saWJuZXQvbGludXhfY2xvc2UuYworQEAgLTYwLDcgKzYwLDcgQEAgdHlw ZWRlZiBzdHJ1Y3QgeworIC8qCisgICogU2lnbmFsIHRvIHVuYmxvY2sgdGhyZWFkCisgICovCist c3RhdGljIGludCBzaWdXYWtldXAgPSAoX19TSUdSVE1BWCAtIDIpOworK3N0YXRpYyBpbnQgc2ln V2FrZXVwOworIAorIC8qCisgICogZmRUYWJsZSBob2xkcyBvbmUgZW50cnkgcGVyIGZpbGUgZGVz Y3JpcHRvciwgdXAgdG8gYSBjZXJ0YWluCitAQCAtMTQ5LDYgKzE0OSw3IEBAIHN0YXRpYyB2b2lk IF9fYXR0cmlidXRlKChjb25zdHJ1Y3RvcikpIGluaXQoKSB7CisgICAgIC8qCisgICAgICAqIFNl dHVwIHRoZSBzaWduYWwgaGFuZGxlcgorICAgICAgKi8KKysgICAgc2lnV2FrZXVwID0gU0lHUlRN QVggLSAyOworICAgICBzYS5zYV9oYW5kbGVyID0gc2lnX3dha2V1cDsKKyAgICAgc2Euc2FfZmxh Z3MgICA9IDA7CisgICAgIHNpZ2VtcHR5c2V0KCZzYS5zYV9tYXNrKTsKKy0tLSBhL3NyYy9qYXZh LmJhc2UvdW5peC9uYXRpdmUvbGliamF2YS9jaGlsZHByb2MuYworKysrIGIvc3JjL2phdmEuYmFz ZS91bml4L25hdGl2ZS9saWJqYXZhL2NoaWxkcHJvYy5jCitAQCAtMjM1LDcgKzIzNSwxMyBAQCBK REtfZXhlY3ZwZShpbnQgbW9kZSwgY29uc3QgY2hhciAqZmlsZSwKKyB7CisgICAgIGlmIChlbnZw ID09IE5VTEwgfHwgKGNoYXIgKiopIGVudnAgPT0gZW52aXJvbikgeworICAgICAgICAgZXhlY3Zw KGZpbGUsIChjaGFyICoqKSBhcmd2KTsKKy0gICAgICAgIHJldHVybjsKKysgICAgICAgIC8vIEVO T0VYRUMgaW5kaWNhdGVzIHRoYXQgdGhlIGZpbGUgaGVhZGVyIHdhcyBub3QgcmVjb2duaXplZC4g VGhlIG11c2wgQworKyAgICAgICAgLy8gbGlicmFyeSBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGZh bGxiYWNrIHRvIC9iaW4vc2ggZm9yIHRoYXQgY2FzZSwgc28gZmFsbAorKyAgICAgICAgLy8gdGhy b3VnaCB0byB0aGUgY29kZSBiZWxvdyB3aGljaCBpbXBsZW1lbnRzIHRoYXQgZmFsbGJhY2sgdXNp bmcKKysgICAgICAgIC8vIGV4ZWN2ZV93aXRoX3NoZWxsX2ZhbGxiYWNrLgorKyAgICAgICAgaWYg KGVycm5vICE9IEVOT0VYRUMpIHsKKysgICAgICAgICAgICByZXR1cm47CisrICAgICAgICB9Cisg ICAgIH0KKyAKKyAgICAgaWYgKCpmaWxlID09ICdcMCcpIHsKKy0tLSBhL3NyYy9qYXZhLmJhc2Uv dW5peC9uYXRpdmUvbGliamF2YS9qZGtfdXRpbF9tZC5oCisrKysgYi9zcmMvamF2YS5iYXNlL3Vu aXgvbmF0aXZlL2xpYmphdmEvamRrX3V0aWxfbWQuaAorQEAgLTM3LDcgKzM3LDcgQEAKKyAjZGVm aW5lIElTTkFORChkKSBpc25hbihkKQorICNlbGlmIGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZp bmVkKF9BTExCU0RfU09VUkNFKQorICNpbmNsdWRlIDxtYXRoLmg+CistI2RlZmluZSBJU05BTkYo ZikgaXNuYW5mKGYpCisrI2RlZmluZSBJU05BTkYoZikgaXNuYW4oZikKKyAjZGVmaW5lIElTTkFO RChkKSBpc25hbihkKQorICNlbGlmIGRlZmluZWQoX0FJWCkKKyAjaW5jbHVkZSA8bWF0aC5oPgor LS0tIGEvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqbGkvamF2YV9tZC5jCisrKysgYi9z cmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmpsaS9qYXZhX21kLmMKK0BAIC0yMzAsNiArMjMw LDM5IEBAIFJlcXVpcmVzU2V0ZW52KGNvbnN0IGNoYXIgKmp2bXBhdGgpIHsKKyAgICAgY2hhciAq ZG1sbHAgPSBOVUxMOworICAgICBjaGFyICpwOyAvKiBhIHV0aWxpdHkgcG9pbnRlciAqLworIAor KyNpZmRlZiBfX2xpbnV4CisrI2lmbmRlZiBMSUJDCisrI2Vycm9yICJMSUJDIG5vdCBzZXQiCisr I2VuZGlmCisrCisrICAgIGlmIChzdHJjbXAoTElCQywgIm11c2wiKSA9PSAwKSB7CisrICAgICAg LyoKKysgICAgICAgKiBUaGUgbXVzbCBsaWJyYXJ5IGxvYWRlciByZXF1aXJlcyBMRF9MSUJSQVJZ X1BBVEggdG8gYmUgc2V0IGluCisrICAgICAgICogb3JkZXIgdG8gY29ycmVjdGx5IHJlc29sdmUg dGhlIGRlcGVuZGVuY3kgbGliamF2YS5zbyBoYXMgb24gbGlianZtLnNvLgorKyAgICAgICAqCisr ICAgICAgICogU3BlY2lmaWNhbGx5LCBpdCBkaWZmZXJzIGZyb20gZ2xpYmMgaW4gdGhlIHNlbnNl IHRoYXQgZXZlbiBpZgorKyAgICAgICAqIGxpYmp2bS5zbyBoYXMgYWxyZWFkeSBiZWVuIGxvYWRl ZCBpdCB3aWxsIG5vdCBiZSBjb25zaWRlcmVkIGEKKysgICAgICAgKiBjYW5kaWRhdGUgZm9yIHJl c29sdmluZyB0aGUgZGVwZW5kZW5jeSB1bmxlc3MgdGhlICpmdWxsKiBwYXRoCisrICAgICAgICog b2YgdGhlIGFscmVhZHkgbG9hZGVkIGxpYnJhcnkgbWF0Y2hlcyB0aGUgZGVwZW5kZW5jeSBiZWlu ZyBsb2FkZWQuCisrICAgICAgICoKKysgICAgICAgKiBsaWJqdm0uc28gaXMgYmVpbmcgbG9hZGVk IGJ5IHRoZSBsYXVuY2hlciB1c2luZyBhIGxvbmcgcGF0aCB0bworKyAgICAgICAqIGRsb3Blbiwg bm90IGp1c3QgdGhlIGJhc2VuYW1lIG9mIHRoZSBsaWJyYXJ5LiBUeXBpY2FsbHkgdGhpcworKyAg ICAgICAqIGlzIHNvbWV0aGluZyBsaWtlICIuLi9saWIvc2VydmVyL2xpYmp2bS5zbyIuIEhvd2V2 ZXIsIGlmL3doZW4KKysgICAgICAgKiBsaWJqdm0uc28gbGF0ZXIgdHJpZXMgdG8gZGxvcGVuIGxp YmphdmEuc28gKHdoaWNoIGl0IGRvZXMgaW4KKysgICAgICAgKiBvcmRlciB0byBnZXQgYWNjZXNz IHRvIGEgZmV3IGZ1bmN0aW9ucyBpbXBsZW1lbnRlZCBpbgorKyAgICAgICAqIGxpYmphdmEuc28p IHRoZSBtdXNsIGxvYWRlciB3aWxsLCBhcyBwYXJ0IG9mIGxvYWRpbmcKKysgICAgICAgKiBkZXBl bmRlbnQgbGlicmFyaWVzLCB0cnkgdG8gbG9hZCBsaWJqdm0uc28gdXNpbmcgb25seSBpdHMKKysg ICAgICAgKiBiYXNlbmFtZSAibGlianZtLnNvIi4gU2luY2UgdGhpcyBkb2VzIG5vdCBtYXRjaCB0 aGUgbG9uZ2VyCisrICAgICAgICogcGF0aCBwYXRoIGl0IHdhcyBmaXJzdCBsb2FkZWQgd2l0aCwg dGhlIGFscmVhZHkgbG9hZGVkCisrICAgICAgICogbGlicmFyeSBpcyBub3QgY29uc2lkZXJlZCBh IGNhbmRpZGF0ZSwgYW5kIHRoZSBsb2FkZXIgd2lsbAorKyAgICAgICAqIGluc3RlYWQgbG9vayBm b3IgbGlianZtLnNvIGVsc2V3aGVyZS4gSWYgaXQncyBub3QgaW4KKysgICAgICAgKiBMRF9MSUJS QVJZX1BBVEggdGhlIGRlcGVuZGVuY3kgbG9hZCB3aWxsIGZhaWwsIGFuZCBsaWJqYXZhLnNvCisr ICAgICAgICogd2lsbCB0aGVyZWZvcmUgZmFpbCBhcyB3ZWxsLgorKyAgICAgICAqLworKyAgICAg IHJldHVybiBKTklfVFJVRTsKKysgICAgfQorKyNlbmRpZgorKworICNpZmRlZiBBSVgKKyAgICAg LyogV2UgYWx3YXlzIGhhdmUgdG8gc2V0IHRoZSBMSUJQQVRIIG9uIEFJWCBiZWNhdXNlIGxkIGRv ZXNuJ3Qgc3VwcG9ydCAkT1JJR0lOLiAqLworICAgICByZXR1cm4gSk5JX1RSVUU7CistLS0gYS9z cmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYm5pby9jaC9OYXRpdmVUaHJlYWQuYworKysrIGIv c3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJuaW8vY2gvTmF0aXZlVGhyZWFkLmMKK0BAIC0z Niw3ICszNiw3IEBACisgI2lmZGVmIF9fbGludXhfXworICAgI2luY2x1ZGUgPHB0aHJlYWQuaD4K KyAgIC8qIEFsc28gZGVmaW5lZCBpbiBuZXQvbGludXhfY2xvc2UuYyAqLworLSAgI2RlZmluZSBJ TlRFUlJVUFRfU0lHTkFMIChfX1NJR1JUTUFYIC0gMikKKysgICNkZWZpbmUgSU5URVJSVVBUX1NJ R05BTCAoU0lHUlRNQVggLSAyKQorICNlbGlmIGRlZmluZWQoX0FJWCkKKyAgICNpbmNsdWRlIDxw dGhyZWFkLmg+CisgICAvKiBBbHNvIGRlZmluZWQgaW4gbmV0L2FpeF9jbG9zZS5jICovCistLS0g YS9zcmMvamRrLmpkd3AuYWdlbnQvc2hhcmUvbmF0aXZlL2xpYmpkd3AvdXRpbC5oCisrKysgYi9z cmMvamRrLmpkd3AuYWdlbnQvc2hhcmUvbmF0aXZlL2xpYmpkd3AvdXRpbC5oCitAQCAtMzUsMTUg KzM1LDE1IEBACisgI2lmZGVmIERFQlVHCisgICAgIC8qIEp1c3QgdG8gbWFrZSBzdXJlIHRoZXNl IGludGVyZmFjZXMgYXJlIG5vdCB1c2VkIGhlcmUuICovCisgICAgICN1bmRlZiBmcmVlCistICAg ICNkZWZpbmUgZnJlZShwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5l IGZyZWUgZG9fbm90X3VzZV90aGlzX2ludGVyZmFjZV9mcmVlCisgICAgICN1bmRlZiBtYWxsb2MK Ky0gICAgI2RlZmluZSBtYWxsb2MocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAg I2RlZmluZSBtYWxsb2MgZG9fbm90X3VzZV90aGlzX2ludGVyZmFjZV9tYWxsb2MKKyAgICAgI3Vu ZGVmIGNhbGxvYworLSAgICAjZGVmaW5lIGNhbGxvYyhwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJm YWNlLgorKyAgICAjZGVmaW5lIGNhbGxvYyBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX2NhbGxv YworICAgICAjdW5kZWYgcmVhbGxvYworLSAgICAjZGVmaW5lIHJlYWxsb2MocCkgRG8gbm90IHVz ZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSByZWFsbG9jIGRvX25vdF91c2VfdGhpc19p bnRlcmZhY2VfcmVhbGxvYworICAgICAjdW5kZWYgc3RyZHVwCistICAgICNkZWZpbmUgc3RyZHVw KHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUgc3RyZHVwIGRvX25v dF91c2VfdGhpc19pbnRlcmZhY2Vfc3RyZHVwCisgI2VuZGlmCisgCisgI2luY2x1ZGUgImxvZ19t ZXNzYWdlcy5oIgorLS0tIGEvdGVzdC9ob3RzcG90L2p0cmVnL3J1bnRpbWUvU3RhY2tHdWFyZFBh Z2VzL2V4ZWludm9rZS5jCisrKysgYi90ZXN0L2hvdHNwb3QvanRyZWcvcnVudGltZS9TdGFja0d1 YXJkUGFnZXMvZXhlaW52b2tlLmMKK0BAIC0zMyw2ICszMyw3IEBACisgCisgI2luY2x1ZGUgPGFz c2VydC5oPgorICNpbmNsdWRlIDxqbmkuaD4KKysjaW5jbHVkZSA8anZtLmg+CisgI2luY2x1ZGUg PGFsbG9jYS5oPgorICNpbmNsdWRlIDxzaWduYWwuaD4KKyAjaW5jbHVkZSA8c3RyaW5nLmg+CitA QCAtOTEsNiArOTIsMjAgQEAgdm9pZCBzZXRfc2lnbmFsX2hhbmRsZXIoKSB7CisgICB9CisgfQor IAorK2ludCBnZXRfamF2YV9zdGFja3NpemUgKCkgeworKyAgc2l6ZV90IHN0YWNrc2l6ZTsKKysg IHB0aHJlYWRfYXR0cl90IGF0dHI7CisrICBKREsxXzFJbml0QXJncyBqZGtfYXJnczsKKysKKysg IGpka19hcmdzLnZlcnNpb24gPSBKTklfVkVSU0lPTl8xXzE7CisrICBKTklfR2V0RGVmYXVsdEph dmFWTUluaXRBcmdzKCZqZGtfYXJncyk7CisrICBpZiAoamRrX2FyZ3MuamF2YVN0YWNrU2l6ZSA8 PSAwKSB7CisrICAgIGZwcmludGYoc3RkZXJyLCAiVGVzdCBFUlJPUi4gQ2FuJ3QgZ2V0IGEgdmFs aWQgdmFsdWUgZm9yIHRoZSBkZWZhdWx0IHN0YWNrc2l6ZS5cbiIpOworKyAgICBleGl0KDcpOwor KyAgfQorKyAgcmV0dXJuIGpka19hcmdzLmphdmFTdGFja1NpemU7CisrfQorKworIHZvaWQgKnJ1 bl9qYXZhX292ZXJmbG93ICh2b2lkICpwKSB7CisgICBKTklFbnYgKmVudjsKKyAgIGpjbGFzcyBj bGFzc19pZDsKK0BAIC0yNTgsMTMgKzI3MywxOSBAQCBpbnQgbWFpbiAoaW50IGFyZ2MsIGNvbnN0 IGNoYXIqKiBhcmd2KSB7CisgICAgIGV4aXQoNyk7CisgICB9CisgCisrICBpbnQgc3RhY2tfc2l6 ZSA9IGdldF9qYXZhX3N0YWNrc2l6ZSgpOworICAgcHRocmVhZF90IHRocjsKKysgIHB0aHJlYWRf YXR0cl90IHRocmVhZF9hdHRyOworKworKyAgcHRocmVhZF9hdHRyX2luaXQoJnRocmVhZF9hdHRy KTsKKysgIHB0aHJlYWRfYXR0cl9zZXRzdGFja3NpemUoJnRocmVhZF9hdHRyLCBzdGFja19zaXpl KTsKKyAKKyAgIGlmIChhcmdjID4gMSAmJiBzdHJjbXAoYXJndlsxXSwgInRlc3RfamF2YV9vdmVy ZmxvdyIpID09IDApIHsKKyAgICAgcHJpbnRmKCJcblRlc3RpbmcgSkFWQV9PVkVSRkxPV1xuIik7 CisgCisgICAgIHByaW50ZigiVGVzdGluZyBzdGFjayBndWFyZCBwYWdlIGJlaGF2aW91ciBmb3Ig b3RoZXIgdGhyZWFkXG4iKTsKKy0gICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsIE5VTEwsIHJ1bl9q YXZhX292ZXJmbG93LCBOVUxMKTsKKysKKysgICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsICZ0aHJl YWRfYXR0ciwgcnVuX2phdmFfb3ZlcmZsb3csIE5VTEwpOworICAgICBwdGhyZWFkX2pvaW4gKHRo ciwgTlVMTCk7CisgCisgICAgIHByaW50ZigiVGVzdGluZyBzdGFjayBndWFyZCBwYWdlIGJlaGF2 aW91ciBmb3IgaW5pdGlhbCB0aHJlYWRcbiIpOworQEAgLTI3Nyw3ICsyOTgsNyBAQCBpbnQgbWFp biAoaW50IGFyZ2MsIGNvbnN0IGNoYXIqKiBhcmd2KSB7CisgICAgIHByaW50ZigiXG5UZXN0aW5n IE5BVElWRV9PVkVSRkxPV1xuIik7CisgCisgICAgIHByaW50ZigiVGVzdGluZyBzdGFjayBndWFy ZCBwYWdlIGJlaGF2aW91ciBmb3Igb3RoZXIgdGhyZWFkXG4iKTsKKy0gICAgcHRocmVhZF9jcmVh dGUgKCZ0aHIsIE5VTEwsIHJ1bl9uYXRpdmVfb3ZlcmZsb3csIE5VTEwpOworKyAgICBwdGhyZWFk X2NyZWF0ZSAoJnRociwgJnRocmVhZF9hdHRyLCBydW5fbmF0aXZlX292ZXJmbG93LCBOVUxMKTsK KyAgICAgcHRocmVhZF9qb2luICh0aHIsIE5VTEwpOworIAorICAgICBwcmludGYoIlRlc3Rpbmcg c3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9yIGluaXRpYWwgdGhyZWFkXG4iKTsKZGlmZiAt LWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvY2hl Y2sucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsxNS1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVz L2NoZWNrLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMjUw YzdlZWRlMjA5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTUtYm9vdHN0cmFw L2ZpbGVzL211c2xfcGF0Y2hlcy9jaGVjay5wYXRjaApAQCAtMCwwICsxLDI0IEBACistLS0gYS90 ZXN0L2hvdHNwb3QvanRyZWcvcnVudGltZS9UTFMvZXhlc3RhY2stdGxzLmMKKysrKyBiL3Rlc3Qv aG90c3BvdC9qdHJlZy9ydW50aW1lL1RMUy9leGVzdGFjay10bHMuYworQEAgLTI2LDcgKzI2LDYg QEAKKyAjaW5jbHVkZSA8c3RkaW8uaD4KKyAjaW5jbHVkZSA8c3RkbGliLmg+CisgI2luY2x1ZGUg PHN0cmluZy5oPgorLSNpbmNsdWRlIDxnbnUvbGliYy12ZXJzaW9uLmg+CisgCisgLy8gRGVjbGFy ZSB0aGUgdGhyZWFkIGxvY2FsIHZhcmlhYmxlKHMpIGluIHRoZSBtYWluIGV4ZWN1dGFibGUuIFRo aXMgY2FuIGJlCisgLy8gdXNlZCB0byBkZW1vbnN0cmF0ZSB0aGUgaXNzdWVzIGFzc29jaWF0ZWQg d2l0aCB0aGUgb24tc3RhY2sgc3RhdGljIFRMUyBibG9ja3MKK0BAIC01NiwxMyArNTUsNiBAQAor IAorIC8vIGdsaWJjIDIuMTUgaW50cm9kdWNlZCBfX3B0aHJlYWRfZ2V0X21pbnN0YWNrCisgaW50 IGdsaWJjX2hhc19wdGhyZWFkX2dldF9taW5zdGFjaygpIHsKKy0gIGNvbnN0IGNoYXIqIGdsaWJj X3ZlcnMgPSBnbnVfZ2V0X2xpYmNfdmVyc2lvbigpOworLSAgY29uc3QgaW50IGdsaWJjX3ZlcnNf bWFqb3IgPSBhdG9pKGdsaWJjX3ZlcnMpOworLSAgY29uc3QgaW50IGdsaWJjX3ZlcnNfbWlub3Ig PSBhdG9pKHN0cmNocihnbGliY192ZXJzLCAnLicpICsgMSk7OworLSAgcHJpbnRmKCJHTlUgbGli YyB2ZXJzaW9uOiAlc1xuIiwgZ2xpYmNfdmVycyk7CistICBpZiAoKGdsaWJjX3ZlcnNfbWFqb3Ig PiAyKSB8fCAoKGdsaWJjX3ZlcnNfbWFqb3IgPT0gMikgJiYgKGdsaWJjX3ZlcnNfbWlub3IgPj0g MTUpKSkgeworLSAgICByZXR1cm4gMTsKKy0gIH0KKyAgIHByaW50ZigiVGhpcyB2ZXJzaW9uIGRv ZXMgbm90IHByb3ZpZGUgX19wdGhyZWFkX2dldF9taW5zdGFja1xuIik7CisgICByZXR1cm4gMDsK KyB9CmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxNS1ib290c3RyYXAvZmlsZXMvbXVzbF9w YXRjaGVzL3BwYy5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJhcC9maWxlcy9tdXNs X3BhdGNoZXMvcHBjLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uZDMwNmQ1MDFlNGI4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTUtYm9v dHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2gKQEAgLTAsMCArMSw0NSBAQAorUGF0 Y2hlcyBmb3IgbXVzbCB0YWtlbiBmcm9tIEFscGluZSBsaW51eDogaHR0cHM6Ly9naXQuYWxwaW5l bGludXgub3JnL2Fwb3J0cy9jb21taXQvP2lkPThhMWFlMTdkNGE5YWY1NDI4NWM3ODkxYTY4MDYy MGU3ZTI0YzYyODAKKy0tLSBvbGQvc3JjL2hvdHNwb3QvY3B1L3BwYy9tYWNyb0Fzc2VtYmxlcl9w cGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L2NwdS9wcGMvbWFjcm9Bc3NlbWJsZXJfcHBjLmNw cAorQEAgLTQ3LDYgKzQ3LDggQEAKKyAjaW5jbHVkZSAib3B0by9pbnRyaW5zaWNub2RlLmhwcCIK KyAjZW5kaWYKKyAKKysjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorKworICNpZmRlZiBQUk9EVUNU CisgI2RlZmluZSBCTE9DS19DT01NRU5UKHN0cikgLy8gbm90aGluZworICNlbHNlCistLS0gb2xk L3NyYy9ob3RzcG90L2NwdS9wcGMvdm1fdmVyc2lvbl9wcGMuY3BwCisrKysgbmV3L3NyYy9ob3Rz cG90L2NwdS9wcGMvdm1fdmVyc2lvbl9wcGMuY3BwCitAQCAtODQ1LDcgKzg0NSw3IEBAIHZvaWQg Vk1fVmVyc2lvbjo6ZGV0ZXJtaW5lX2ZlYXR1cmVzKCkgeworICAgdW5zaWduZWQgbG9uZyBhdXh2 ID0gZ2V0YXV4dmFsKEFUX0hXQ0FQMik7CisgCisgICBpZiAoYXV4diAmIFBQQ19GRUFUVVJFMl9I VE1fTk9TQykgeworLSAgICBpZiAoYXV4diAmIFBQQ19GRUFUVVJFMl9IQVNfSFRNKSB7CisrICAg IGlmIChhdXh2ICYgUFBDX0ZFQVRVUkUyX0hUTSkgeworICAgICAgIC8vIFRNIG9uIFBPV0VSOCBh bmQgUE9XRVI5IGluIGNvbXBhdCBtb2RlIChWTSkgaXMgc3VwcG9ydGVkIGJ5IHRoZSBKVk0uCisg ICAgICAgLy8gVE0gb24gUE9XRVI5IEREMi4xIE5WIChiYXJlbWV0YWwpIGlzIG5vdCBzdXBwb3J0 ZWQgYnkgdGhlIEpWTSAoVE0gb24KKyAgICAgICAvLyBQT1dFUjkgREQyLjEgTlYgaGFzIGEgZmV3 IGlzc3VlcyB0aGF0IG5lZWQgYSBjb3VwbGUgb2YgZmlybXdhcmUKKy0tLSBvbGQvc3JjL2hvdHNw b3Qvb3NfY3B1L2xpbnV4X3BwYy9vc19saW51eF9wcGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90 L29zX2NwdS9saW51eF9wcGMvb3NfbGludXhfcHBjLmNwcAorQEAgLTc1LDcgKzc1LDcgQEAKKyAj IGluY2x1ZGUgPHB3ZC5oPgorICMgaW5jbHVkZSA8cG9sbC5oPgorICMgaW5jbHVkZSA8dWNvbnRl eHQuaD4KKy0KKysjIGluY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKyAKKyBhZGRyZXNzIG9zOjpjdXJy ZW50X3N0YWNrX3BvaW50ZXIoKSB7CisgICBpbnRwdHJfdCogY3NwOworLS0tIG9sZC9zcmMvaG90 c3BvdC9vc19jcHUvbGludXhfcHBjL3RocmVhZF9saW51eF9wcGMuY3BwCisrKysgbmV3L3NyYy9o b3RzcG90L29zX2NwdS9saW51eF9wcGMvdGhyZWFkX2xpbnV4X3BwYy5jcHAKK0BAIC0yMyw2ICsy Myw4IEBACisgICoKKyAgKi8KKyAKKysjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorKworICNpbmNs dWRlICJwcmVjb21waWxlZC5ocHAiCisgI2luY2x1ZGUgInJ1bnRpbWUvZnJhbWUuaW5saW5lLmhw cCIKKyAjaW5jbHVkZSAicnVudGltZS90aHJlYWQuaHBwIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9v cGVuamRrMTUtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2ggYi9zcmNwa2dz L29wZW5qZGsxNS1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3g4Ni5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjljNjRjMTg5MDM2YQotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMv eDg2LnBhdGNoCkBAIC0wLDAgKzEsMTMwIEBACitQYXRjaGVzIGZvciBtdXNsIHRha2VuIGZyb20g QWxwaW5lIGxpbnV4OiBodHRwczovL2dpdC5hbHBpbmVsaW51eC5vcmcvYXBvcnRzL2NvbW1pdC8/ aWQ9OGExYWUxN2Q0YTlhZjU0Mjg1Yzc4OTFhNjgwNjIwZTdlMjRjNjI4MAorLS0tIG9sZC9zcmMv aG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKKysrKyBuZXcvc3JjL2hv dHNwb3Qvb3NfY3B1L2xpbnV4X3g4Ni9vc19saW51eF94ODYuY3BwCitAQCAtOTAsNiArOTAsMTI2 IEBACisgI2RlZmluZSBTUEVMTF9SRUdfRlAgImVicCIKKyAjZW5kaWYgLy8gQU1ENjQKKworKy8v ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorKy8vIFRha2VuIGZyb20gZ2xpYmMgMi4yOAorKy8vIHNv dXJjZTogaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9naXQvP3A9Z2xpYmMuZ2l0O2E9YmxvYjtmPXN5 c2RlcHMveDg2L2ZwdV9jb250cm9sLmg7aD00Y2I5OGM1Njc5YjI4OTdmZjRlNTgyNmQyMjhjYmE2 YmU1ODllMjRkO2hiPTNjMDNiYWNhMzdmZGNiNTJjMzg4MWU2NTNjYTM5MmJiYTdhOTljMmIKKysv LyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKysjaWZuZGVmIEFNRDY0CisrLyogRlBVIGNvbnRyb2wg d29yZCBiaXRzLiAgeDg2IHZlcnNpb24uCisrICAgQ29weXJpZ2h0IChDKSAxOTkzLTIwMTggRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhl IEdOVSBDIExpYnJhcnkuCisrICAgQ29udHJpYnV0ZWQgYnkgT2xhZiBGbGViYmUuCisrCisrICAg VGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yCisrICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl ciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNl LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoZSBHTlUg QyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYWxv bmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKysgICA8aHR0cDovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworKyNpZm5kZWYgX0ZQVV9DT05UUk9MX0gKKysjZGVm aW5lIF9GUFVfQ09OVFJPTF9ICTEKKysKKysvKiBOb3RlIHRoYXQgdGhpcyBmaWxlIHNldHMgb24g eDg2LTY0IG9ubHkgdGhlIHg4NyBGUFUsIGl0IGRvZXMgbm90CisrICAgdG91Y2ggdGhlIFNTRSB1 bml0LiAgKi8KKysKKysvKiBIZXJlIGlzIHRoZSBkaXJ0eSBwYXJ0LiBTZXQgdXAgeW91ciAzODcg dGhyb3VnaCB0aGUgY29udHJvbCB3b3JkCisrICogKGN3KSByZWdpc3Rlci4KKysgKgorKyAqICAg ICAxNS0xMyAgICAxMiAgMTEtMTAgIDktOCAgICAgNy02ICAgICA1ICAgIDQgICAgMyAgICAyICAg IDEgICAgMAorKyAqIHwgcmVzZXJ2ZWQgfCBJQyB8IFJDICB8IFBDIHwgcmVzZXJ2ZWQgfCBQTSB8 IFVNIHwgT00gfCBaTSB8IERNIHwgSU0KKysgKgorKyAqIElNOiBJbnZhbGlkIG9wZXJhdGlvbiBt YXNrCisrICogRE06IERlbm9ybWFsaXplZCBvcGVyYW5kIG1hc2sKKysgKiBaTTogWmVyby1kaXZp ZGUgbWFzaworKyAqIE9NOiBPdmVyZmxvdyBtYXNrCisrICogVU06IFVuZGVyZmxvdyBtYXNrCisr ICogUE06IFByZWNpc2lvbiAoaW5leGFjdCByZXN1bHQpIG1hc2sKKysgKgorKyAqIE1hc2sgYml0 IGlzIDEgbWVhbnMgbm8gaW50ZXJydXB0LgorKyAqCisrICogUEM6IFByZWNpc2lvbiBjb250cm9s CisrICogMTEgLSByb3VuZCB0byBleHRlbmRlZCBwcmVjaXNpb24KKysgKiAxMCAtIHJvdW5kIHRv IGRvdWJsZSBwcmVjaXNpb24KKysgKiAwMCAtIHJvdW5kIHRvIHNpbmdsZSBwcmVjaXNpb24KKysg KgorKyAqIFJDOiBSb3VuZGluZyBjb250cm9sCisrICogMDAgLSByb3VuZGluZyB0byBuZWFyZXN0 CisrICogMDEgLSByb3VuZGluZyBkb3duICh0b3dhcmQgLSBpbmZpbml0eSkKKysgKiAxMCAtIHJv dW5kaW5nIHVwICh0b3dhcmQgKyBpbmZpbml0eSkKKysgKiAxMSAtIHJvdW5kaW5nIHRvd2FyZCB6 ZXJvCisrICoKKysgKiBJQzogSW5maW5pdHkgY29udHJvbAorKyAqIFRoYXQgaXMgZm9yIDgwODcg YW5kIDgwMjg3IG9ubHkuCisrICoKKysgKiBUaGUgaGFyZHdhcmUgZGVmYXVsdCBpcyAweDAzN2Yg d2hpY2ggd2UgdXNlLgorKyAqLworKworKyNpbmNsdWRlIDxmZWF0dXJlcy5oPgorKworKy8qIG1h c2tpbmcgb2YgaW50ZXJydXB0cyAqLworKyNkZWZpbmUgX0ZQVV9NQVNLX0lNICAweDAxCisrI2Rl ZmluZSBfRlBVX01BU0tfRE0gIDB4MDIKKysjZGVmaW5lIF9GUFVfTUFTS19aTSAgMHgwNAorKyNk ZWZpbmUgX0ZQVV9NQVNLX09NICAweDA4CisrI2RlZmluZSBfRlBVX01BU0tfVU0gIDB4MTAKKysj ZGVmaW5lIF9GUFVfTUFTS19QTSAgMHgyMAorKworKy8qIHByZWNpc2lvbiBjb250cm9sICovCisr I2RlZmluZSBfRlBVX0VYVEVOREVEIDB4MzAwCS8qIGxpYm0gcmVxdWlyZXMgZG91YmxlIGV4dGVu ZGVkIHByZWNpc2lvbi4gICovCisrI2RlZmluZSBfRlBVX0RPVUJMRSAgIDB4MjAwCisrI2RlZmlu ZSBfRlBVX1NJTkdMRSAgIDB4MAorKworKy8qIHJvdW5kaW5nIGNvbnRyb2wgKi8KKysjZGVmaW5l IF9GUFVfUkNfTkVBUkVTVCAweDAgICAgLyogUkVDT01NRU5ERUQgKi8KKysjZGVmaW5lIF9GUFVf UkNfRE9XTiAgICAweDQwMAorKyNkZWZpbmUgX0ZQVV9SQ19VUCAgICAgIDB4ODAwCisrI2RlZmlu ZSBfRlBVX1JDX1pFUk8gICAgMHhDMDAKKysKKysjZGVmaW5lIF9GUFVfUkVTRVJWRUQgMHhGMEMw ICAvKiBSZXNlcnZlZCBiaXRzIGluIGN3ICovCisrCisrCisrLyogVGhlIGZkbGlibSBjb2RlIHJl cXVpcmVzIHN0cmljdCBJRUVFIGRvdWJsZSBwcmVjaXNpb24gYXJpdGhtZXRpYywKKysgICBhbmQg bm8gaW50ZXJydXB0cyBmb3IgZXhjZXB0aW9ucywgcm91bmRpbmcgdG8gbmVhcmVzdC4gICovCisr CisrI2RlZmluZSBfRlBVX0RFRkFVTFQgIDB4MDM3ZgorKworKy8qIElFRUU6ICBzYW1lIGFzIGFi b3ZlLiAgKi8KKysjZGVmaW5lIF9GUFVfSUVFRSAgICAgMHgwMzdmCisrCisrLyogVHlwZSBvZiB0 aGUgY29udHJvbCB3b3JkLiAgKi8KKyt0eXBlZGVmIHVuc2lnbmVkIGludCBmcHVfY29udHJvbF90 IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoX19ISV9fKSkpOworKworKy8qIE1hY3JvcyBmb3Ig YWNjZXNzaW5nIHRoZSBoYXJkd2FyZSBjb250cm9sIHdvcmQuICAiKiYiIGlzIHVzZWQgdG8KKysg ICB3b3JrIGFyb3VuZCBhIGJ1ZyBpbiBvbGRlciB2ZXJzaW9ucyBvZiBHQ0MuICBfX3ZvbGF0aWxl X18gaXMgdXNlZAorKyAgIHRvIHN1cHBvcnQgY29tYmluYXRpb24gb2Ygd3JpdGluZyB0aGUgY29u dHJvbCByZWdpc3RlciBhbmQgcmVhZGluZworKyAgIGl0IGJhY2suICBXaXRob3V0IF9fdm9sYXRp bGVfXywgdGhlIG9sZCB2YWx1ZSBtYXkgYmUgdXNlZCBmb3IgcmVhZGluZworKyAgIGJhY2sgdW5k ZXIgY29tcGlsZXIgb3B0aW1pemF0aW9uLgorKworKyAgIE5vdGUgdGhhdCB0aGUgdXNlIG9mIHRo ZXNlIG1hY3JvcyBpcyBub3Qgc3VmZmljaWVudCBhbnltb3JlIHdpdGgKKysgICByZWNlbnQgaGFy ZHdhcmUgbm9yIG9uIHg4Ni02NC4gIFNvbWUgZmxvYXRpbmcgcG9pbnQgb3BlcmF0aW9ucyBhcmUK KysgICBleGVjdXRlZCBpbiB0aGUgU1NFL1NTRTIgZW5naW5lcyB3aGljaCBoYXZlIHRoZWlyIG93 biBjb250cm9sIGFuZAorKyAgIHN0YXR1cyByZWdpc3Rlci4gICovCisrI2RlZmluZSBfRlBVX0dF VENXKGN3KSBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoImZuc3RjdyAlMCIgOiAiPW0iICgqJmN3KSkK KysjZGVmaW5lIF9GUFVfU0VUQ1coY3cpIF9fYXNtX18gX192b2xhdGlsZV9fICgiZmxkY3cgJTAi IDogOiAibSIgKComY3cpKQorKworKy8qIERlZmF1bHQgY29udHJvbCB3b3JkIHNldCBhdCBzdGFy dHVwLiAgKi8KKytleHRlcm4gZnB1X2NvbnRyb2xfdCBfX2ZwdV9jb250cm9sOworKworKyNlbmRp ZgkvKiBmcHVfY29udHJvbC5oICovCisrCisrI2VuZGlmIC8vIEFNRDY0CisrLy8gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrLy8gPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CisrCisgYWRkcmVzcyBvczo6Y3VycmVudF9zdGFja19wb2ludGVyKCkgeworICNp ZmRlZiBTUEFSQ19XT1JLUworICAgcmVnaXN0ZXIgdm9pZCAqZXNwOwpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9vcGVuamRrMTUtYm9vdHN0cmFwL3RlbXBsYXRlIGIvc3JjcGtncy9vcGVuamRrMTUtYm9v dHN0cmFwL3RlbXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u YzM0Yjc3YWI2ZTY4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTUtYm9vdHN0 cmFwL3RlbXBsYXRlCkBAIC0wLDAgKzEsMTE5IEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdvcGVu amRrMTUtYm9vdHN0cmFwJworX2phdmFfdmVyPTE1CitfamF2YV9taW5fdmVyPTAKK19qYXZhX3Nl Y192ZXI9MworX2pka191cGRhdGU9MworX2pka19ob21lPSJ1c3IvbGliL2p2bS9vcGVuamRrJHtf amF2YV92ZXJ9IgorX2Jhc2VfdmVyc2lvbj0iJHtfamF2YV92ZXJ9LiR7X2phdmFfbWluX3Zlcn0u JHtfamF2YV9zZWNfdmVyfSIKKworcGtnbmFtZT1vcGVuamRrMTUtYm9vdHN0cmFwCit2ZXJzaW9u PSIke19iYXNlX3ZlcnNpb259KyR7X2pka191cGRhdGV9IgorcmV2aXNpb249MQord3Jrc3JjPSJq ZGske19qYXZhX3Zlcn11LWpkay0ke3ZlcnNpb259IgorYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3Vy ZQorY29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS13YXJuaW5ncy1hcy1lcnJvcnMKKyAtLXByZWZp eD0ke1hCUFNfREVTVERJUn0vJHtwa2duYW1lfS0ke3ZlcnNpb259L3Vzci9saWIKKyAtLWVuYWJs ZS11bmxpbWl0ZWQtY3J5cHRvCisgLS13aXRoLXpsaWI9c3lzdGVtCisgLS13aXRoLWxpYmpwZWc9 c3lzdGVtCisgLS13aXRoLWdpZmxpYj1zeXN0ZW0KKyAtLXdpdGgtbGlicG5nPXN5c3RlbQorIC0t d2l0aC1sY21zPXN5c3RlbQorIC0td2l0aC1qdHJlZz1ubworIC0td2l0aC1ndGVzdD0ke1hCUFNf QlVJTERESVJ9L2dvb2dsZXRlc3QtcmVsZWFzZS0xLjguMQorIC0td2l0aC12ZXJzaW9uLWJ1aWxk PSR7X2phdmFfdmVyfQorIC0td2l0aC1qb2JzPSR7WEJQU19PUklHX01BS0VKT0JTfQorIC0td2l0 aC12ZW5kb3ItbmFtZT1Wb2lkCisgLS13aXRoLXZlbmRvci11cmw9aHR0cHM6Ly92b2lkbGludXgu b3JnLworIC0td2l0aC12ZW5kb3ItYnVnLXVybD1odHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51 eC92b2lkLXBhY2thZ2VzL2lzc3VlcworIC0td2l0aC12ZW5kb3Itdm0tYnVnLXVybD1odHRwczov L2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2lzc3VlcworIC0td2l0aC1ib290 LWpkaz0vdXNyL2xpYi9qdm0vb3BlbmpkazE0IgorbWFrZV9idWlsZF9hcmdzPSJpbWFnZXMiCitt YWtlX2NoZWNrX3RhcmdldD0idGVzdC1ob3RzcG90LWd0ZXN0IgoraG9zdG1ha2VkZXBlbmRzPSJw a2ctY29uZmlnIGF1dG9tYWtlIGF1dG9jb25mIGNwaW8gdGFyIHVuemlwIHppcCBjYS1jZXJ0aWZp Y2F0ZXMKKyBsaWJyZXNzbCB6bGliLWRldmVsIHdoaWNoIG1ha2UtY2Egb3BlbmpkazE0LWJvb3Rz dHJhcCIKK21ha2VkZXBlbmRzPSJsaWJYcmVuZGVyLWRldmVsIGxpYlh0c3QtZGV2ZWwgbGliWHQt ZGV2ZWwgbGliWHJhbmRyLWRldmVsCisgZ2lmbGliLWRldmVsIGxpYmpwZWctdHVyYm8tZGV2ZWwg Y3Vwcy1kZXZlbCBmcmVldHlwZS1kZXZlbCBhbHNhLWxpYi1kZXZlbAorIGZvbnRjb25maWctZGV2 ZWwgemxpYi1kZXZlbCBsY21zMi1kZXZlbCBoYXJmYnV6ei1kZXZlbCBvcGVuamRrMTQtYm9vdHN0 cmFwIgorcHJvdmlkZXM9ImphdmEtZW52aXJvbm1lbnQtJHt2ZXJzaW9ufV8xIGphdmEtcnVudGlt ZS0ke3ZlcnNpb259XzEiCitzaG9ydF9kZXNjPSJPcGVuSkRLIEphdmEgRGV2ZWxvcG1lbnQgS2l0 IChib290c3RyYXAgdmVyc2lvbiAxNSkiCittYWludGFpbmVyPSJjbGFzc2FiYnlhbXAgPGRldkBr YjYuZWU+IgorbGljZW5zZT0iR1BMLTIuMC1vbmx5IFdJVEggQ2xhc3NwYXRoLWV4Y2VwdGlvbi0y LjAiCitob21lcGFnZT0iaHR0cDovL29wZW5qZGsuamF2YS5uZXQvIgorZGlzdGZpbGVzPSJodHRw czovL2hnLm9wZW5qZGsuamF2YS5uZXQvamRrLXVwZGF0ZXMvamRrJHtfamF2YV92ZXJ9dS9hcmNo aXZlL2pkay0ke3ZlcnNpb259LnRhci5negorIGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ29v Z2xldGVzdC9hcmNoaXZlL3JlZnMvdGFncy9yZWxlYXNlLTEuOC4xLnRhci5neiIKK2NoZWNrc3Vt PSI0YmJkN2E3MzM1NGEyZDI0NGM3YTA3NTQwNjMzOWFhMGNlNGM1ZmM2YmU5MWE3OTVhZjkzMWY2 ZGM5NWQwNjdjCisgOWJmMWZlNTE4MmE2MDRiNDEzNWVkYzFhNDI1YWUzNTZjOWFkMTVlOWIyM2Y5 ZjEyYTAyZTgwMTg0YzNhMjQ5YyIKK25vY3Jvc3M9eWVzCisKKyMgQnVpbGQgaXMgc3RpbGwgcGFy YWxsZWwsIGJ1dCBkb24ndCB1c2UgLWpOLgorZGlzYWJsZV9wYXJhbGxlbF9idWlsZD15ZXMKKwor IyBubyBob3RzcG90IEpJVCBmb3IgcHBjMzIKK2Nhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBp bgorCXBwYzY0KikgOzsKKwlwcGMqKSBfdXNlX3plcm89eWVzIDs7Citlc2FjCisKK2lmIFsgLW4g IiRfdXNlX3plcm8iIF07IHRoZW4KKwltYWtlZGVwZW5kcys9IiBsaWJmZmktZGV2ZWwiCisJY29u ZmlndXJlX2FyZ3MrPSIgLS13aXRoLWp2bS12YXJpYW50cz16ZXJvIgorCWNhc2UgIiRYQlBTX1RB UkdFVF9NQUNISU5FIiBpbgorCQlwcGMqKSBjb25maWd1cmVfYXJncys9IiAtLXdpdGgtYm9vdC1q ZGstanZtYXJncz0tWFg6VGhyZWFkU3RhY2tTaXplPTI1NjAiOzsKKwllc2FjCitmaQorCitwb3N0 X2V4dHJhY3QoKSB7CisJY2htb2QgK3ggY29uZmlndXJlCisJaWYgWyAiJFhCUFNfVEFSR0VUX0xJ QkMiID0gIm11c2wiIF07IHRoZW4KKwkJcm0gLXIgc3JjL2pkay5ob3RzcG90LmFnZW50CisJZmkK K30KKworcG9zdF9wYXRjaCgpIHsKKwlpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIg XTsgdGhlbgorCQlmb3IgZiBpbiAiJHtGSUxFU0RJUn0iL211c2xfcGF0Y2hlcy8qLnBhdGNoOyBk bworCQkJbXNnX25vcm1hbCAiQXBwbHlpbmcgJHtmIyRGSUxFU0RJUi99XG4iCisJCQlwYXRjaCAt bE5wMSAtaSAiJGYiCisJCWRvbmUKKwlmaQorfQorCitkb19jb25maWd1cmUoKSB7CisJQ0ZMQUdT PSR7Q0ZMQUdTLy1EX0ZPUlRJRllfU09VUkNFPTIvfQorCUNYWEZMQUdTPSR7Q1hYRkxBR1MvLURf Rk9SVElGWV9TT1VSQ0U9Mi99CisKKwkjIGZvcmNlIEVMRnYyIGZvciBwcGM2NCBqdXN0IGluIGNh c2UKKwljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwkJcHBjNjQqKQorCQkJQ0ZMQUdT Kz0iIC1EQUJJX0VMRnYyIgorCQkJQ1hYRkxBR1MrPSIgLURBQklfRUxGdjIiCisJCQk7OworCWVz YWMKKworCWNvbmZpZ3VyZV9hcmdzPSR7Y29uZmlndXJlX2FyZ3MvLS13aXRoLWxpYnRvb2wtc3lz cm9vdD1cL3VzclwvW2EtejAtOV0qLWxpbnV4LVthLXpdKi99CisJaWYgWyAiJFhCUFNfQ0NBQ0hF IiBdOyB0aGVuCisJCWNvbmZpZ3VyZV9hcmdzKz0iIC0tZW5hYmxlLWNjYWNoZSIKKwlmaQorCUND PSIvdXNyL2Jpbi9jYyIKKwlDWFg9Ii91c3IvYmluL2MrKyIKKwkuL2NvbmZpZ3VyZSAke2NvbmZp Z3VyZV9hcmdzfSBcCisJCS0td2l0aC1leHRyYS1jZmxhZ3M9IiRDRkxBR1MiIFwKKwkJLS13aXRo LWV4dHJhLWN4eGZsYWdzPSIkQ1hYRkxBR1MiIFwKKwkJLS13aXRoLWV4dHJhLWxkZmxhZ3M9IiRM REZMQUdTIiBcCisJCVJFQURFTEY9JFJFQURFTEYgQVI9JEFSIFNUUklQPSRTVFJJUCBOTT0kTk0g XAorCQlPQkpEVU1QPSRPQkpEVU1QIE9CSkNPUFk9JE9CSkNPUFkKK30KKworcG9zdF9pbnN0YWxs KCkgeworCW12ICR7REVTVERJUn0vdXNyL2xpYi9qdm0vb3Blbmpkay0ke19iYXNlX3ZlcnNpb259 LWludGVybmFsICR7REVTVERJUn0vJF9qZGtfaG9tZQorCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9s aWIvYmluCisJcm0gLWYgJERFU1RESVIvJF9qZGtfaG9tZS9saWIvc3JjLnppcAorCXZsaWNlbnNl IEFTU0VNQkxZX0VYQ0VQVElPTgorCXZsaWNlbnNlIExJQ0VOU0UKK30KKworZG9fY2xlYW4oKSB7 CisJIyBjbGVhbiB1cCBndGVzdAorCXJtIC1yZiAke1hCUFNfQlVJTERESVJ9L2dvb2dsZXRlc3Qt cmVsZWFzZS0qCit9CgpGcm9tIDgzZDIxMzllNjE1MTAxNGZiMzEzOTZjMjFhODkyYTRkZTAzODky YTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IGNsYXNzYWJieWFtcCA8ZGV2QGtiNi5l ZT4KRGF0ZTogTW9uLCAxNyBKYW4gMjAyMiAwNjoyNjozMiAtMDUwMApTdWJqZWN0OiBbUEFUQ0gg Ni84XSBOZXcgcGFja2FnZTogb3BlbmpkazE2LWJvb3RzdHJhcC0xNi4wLjIrNwoKLS0tCiAuLi4v ZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaCAgICAgICAgICAgICAgfCAgMjEgKysrCiAuLi4v ZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoICAgICAgICAgICAgfCAxNzAgKysrKysrKysr KysrKysrKysrCiAuLi4vZmlsZXMvbXVzbF9wYXRjaGVzL3BwYy5wYXRjaCAgICAgICAgICAgICAg fCAgNDUgKysrKysKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoICAgICAgICAgICAg ICB8IDEzMCArKysrKysrKysrKysrKwogc3JjcGtncy9vcGVuamRrMTYtYm9vdHN0cmFwL3RlbXBs YXRlICAgICAgICAgIHwgMTE5ICsrKysrKysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCA0ODUgaW5z ZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazE2LWJvb3RzdHJh cC9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9vcGVuamRrMTYtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRjaAogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazE2LWJvb3RzdHJhcC9maWxlcy9tdXNsX3Bh dGNoZXMvcHBjLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTYtYm9v dHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL29wZW5qZGsxNi1ib290c3RyYXAvdGVtcGxhdGUKCmRpZmYgLS1naXQgYS9zcmNwa2dz L29wZW5qZGsxNi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaCBiL3NyY3Br Z3Mvb3BlbmpkazE2LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMTAyNDI4ZjEwZjMzCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTYtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hl cy9hcm0ucGF0Y2gKQEAgLTAsMCArMSwyMSBAQAorLS0tIGEvc3JjL2hvdHNwb3Qvb3NfY3B1L2xp bnV4X2FybS9vc19saW51eF9hcm0uY3BwCisrKysgYi9zcmMvaG90c3BvdC9vc19jcHUvbGludXhf YXJtL29zX2xpbnV4X2FybS5jcHAKK0BAIC03Myw2ICs3MywxOCBAQAorICMgaW5jbHVkZSA8dWNv bnRleHQuaD4KKyAjIGluY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKyAKKysvLyBTdHVwaWQgaGFjayBh cyB0aGUgb3JpZ2luIGlmIGJlbG93IGRvZXNudCBjb21waWxlIHdpdGggZ2NjIDguMi4wOgorKy8v CisrLy8gb3NfbGludXhfYXJtLmNwcDoxMTQ6NTogZXJyb3I6IG1pc3NpbmcgYmluYXJ5IG9wZXJh dG9yIGJlZm9yZSB0b2tlbiAiKCIKKysvLyAgI2lmIE5HUkVHID09IDE2CisrLy8gICAgICAgXn5+ fn4KKysvLworKy8vIFRoZSBOR1JFRyBpcyAxOCAoYml0cy9zaWduYWwuaDoxMCksIHNvIGZvcmNl IGl0IHRvIHRoYXQgdmFsdWUuCisrI2lmZGVmIE5HUkVHCisrIyAgdW5kZWYgTkdSRUcKKysjZW5k aWYKKysjZGVmaW5lIE5HUkVHIDE4CisrCisgI2RlZmluZSBTUEVMTF9SRUdfU1AgICJzcCIKKyAK KyAvLyBEb24ndCAjZGVmaW5lIFNQRUxMX1JFR19GUCBmb3IgdGh1bWIgYmVjYXVzZSBpdCBpcyBu b3Qgc2FmZSB0byB1c2UsIHNvIHRoaXMgbWFrZXMgc3VyZSB3ZSBuZXZlciBmZXRjaCBpdC4KZGlm ZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE2LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMv YnVpbGQucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsxNi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRj aGVzL2J1aWxkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u MTE1OGJhYmNkOTZkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTYtYm9vdHN0 cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRjaApAQCAtMCwwICsxLDE3MCBAQAorLS0t IGEvbWFrZS9ob3RzcG90L2xpYi9Db21waWxlSnZtLmdtaworKysrIGIvbWFrZS9ob3RzcG90L2xp Yi9Db21waWxlSnZtLmdtaworQEAgLTczLDYgKzczLDcgQEAgQ0ZMQUdTX1ZNX1ZFUlNJT04gOj0g XAorICAgICAtREhPVFNQT1RfQlVJTERfVVNFUj0nIiQoVVNFUk5BTUUpIicgXAorICAgICAtREhP VFNQT1RfVk1fRElTVFJPPSciJChIT1RTUE9UX1ZNX0RJU1RSTykiJyBcCisgICAgIC1EQ1BVPSci JChPUEVOSkRLX1RBUkdFVF9DUFVfVk1fVkVSU0lPTikiJyBcCisrICAgIC1ETElCQz0nIm11c2wi JyBcCisgICAgICMKKyAKKyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworLS0tIGEvbWFrZS9tb2R1 bGVzL2phdmEuYmFzZS9saWIvQ29yZUxpYnJhcmllcy5nbWsKKysrKyBiL21ha2UvbW9kdWxlcy9q YXZhLmJhc2UvbGliL0NvcmVMaWJyYXJpZXMuZ21rCitAQCAtMTkwLDYgKzE5MCw3IEBAIGlmZXEg KCQoY2FsbCBpc1RhcmdldE9zLCB3aW5kb3dzKSwgdHJ1ZSkKKyBlbmRpZgorIAorIExJQkpMSV9D RkxBR1MgKz0gJChMSUJaX0NGTEFHUykKKytMSUJKTElfQ0ZMQUdTICs9IC1ETElCQz1cIm11c2xc IgorIAorIGlmbmVxICgkKFVTRV9FWFRFUk5BTF9MSUJaKSwgdHJ1ZSkKKyAgIExJQkpMSV9FWFRS QV9GSUxFUyArPSBcCistLS0gYS9zcmMvaG90c3BvdC9vcy9saW51eC9vc19saW51eC5jcHAKKysr KyBiL3NyYy9ob3RzcG90L29zL2xpbnV4L29zX2xpbnV4LmNwcAorQEAgLTMxMTcsMjAgKzMxMjMs MzYgQEAgdm9pZCBvczo6TGludXg6OnNjaGVkX2dldGNwdV9pbml0KCkgeworIGV4dGVybiAiQyIg Sk5JRVhQT1JUIHZvaWQgbnVtYV93YXJuKGludCBudW1iZXIsIGNoYXIgKndoZXJlLCAuLi4pIHsg fQorIGV4dGVybiAiQyIgSk5JRVhQT1JUIHZvaWQgbnVtYV9lcnJvcihjaGFyICp3aGVyZSkgeyB9 CisgCisrc3RhdGljIHZvaWQqIGRsdnN5bV9pZl9hdmFpbGFibGUodm9pZCogaGFuZGxlLCBjb25z dCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiB2ZXJzaW9uKSB7CisrICB0eXBlZGVmIHZvaWQqICgq ZGx2c3ltX2Z1bmNfdHlwZSkodm9pZCogaGFuZGxlLCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBj aGFyKiB2ZXJzaW9uKTsKKysgIHN0YXRpYyBkbHZzeW1fZnVuY190eXBlIGRsdnN5bV9mdW5jOwor KyAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBmYWxzZTsKKysKKysgIGlmICghaW5pdGlhbGl6 ZWQpIHsKKysgICAgZGx2c3ltX2Z1bmMgPSAoZGx2c3ltX2Z1bmNfdHlwZSlkbHN5bShSVExEX05F WFQsICJkbHZzeW0iKTsKKysgICAgaW5pdGlhbGl6ZWQgPSB0cnVlOworKyAgfQorKworKyAgaWYg KGRsdnN5bV9mdW5jICE9IE5VTEwpIHsKKysgICAgdm9pZCAqZiA9IGRsdnN5bV9mdW5jKGhhbmRs ZSwgbmFtZSwgdmVyc2lvbik7CisrICAgIGlmIChmICE9IE5VTEwpIHsKKysgICAgICByZXR1cm4g ZjsKKysgICAgfQorKyAgfQorKworKyAgcmV0dXJuIGRsc3ltKGhhbmRsZSwgbmFtZSk7CisrfQor KworIC8vIEhhbmRsZSByZXF1ZXN0IHRvIGxvYWQgbGlibnVtYSBzeW1ib2wgdmVyc2lvbiAxLjEg KEFQSSB2MSkuIElmIGl0IGZhaWxzCisgLy8gbG9hZCBzeW1ib2wgZnJvbSBiYXNlIHZlcnNpb24g aW5zdGVhZC4KKyB2b2lkKiBvczo6TGludXg6OmxpYm51bWFfZGxzeW0odm9pZCogaGFuZGxlLCBj b25zdCBjaGFyICpuYW1lKSB7CistICB2b2lkICpmID0gZGx2c3ltKGhhbmRsZSwgbmFtZSwgImxp Ym51bWFfMS4xIik7CistICBpZiAoZiA9PSBOVUxMKSB7CistICAgIGYgPSBkbHN5bShoYW5kbGUs IG5hbWUpOworLSAgfQorLSAgcmV0dXJuIGY7CisrICByZXR1cm4gZGx2c3ltX2lmX2F2YWlsYWJs ZShoYW5kbGUsIG5hbWUsICJsaWJudW1hXzEuMSIpOworIH0KKyAKKyAvLyBIYW5kbGUgcmVxdWVz dCB0byBsb2FkIGxpYm51bWEgc3ltYm9sIHZlcnNpb24gMS4yIChBUEkgdjIpIG9ubHkuCisgLy8g UmV0dXJuIE5VTEwgaWYgdGhlIHN5bWJvbCBpcyBub3QgZGVmaW5lZCBpbiB0aGlzIHBhcnRpY3Vs YXIgdmVyc2lvbi4KKyB2b2lkKiBvczo6TGludXg6OmxpYm51bWFfdjJfZGxzeW0odm9pZCogaGFu ZGxlLCBjb25zdCBjaGFyKiBuYW1lKSB7CistICByZXR1cm4gZGx2c3ltKGhhbmRsZSwgbmFtZSwg ImxpYm51bWFfMS4yIik7CisrICByZXR1cm4gZGx2c3ltX2lmX2F2YWlsYWJsZShoYW5kbGUsIG5h bWUsICJsaWJudW1hXzEuMiIpOworIH0KKyAKKyBib29sIG9zOjpMaW51eDo6bGlibnVtYV9pbml0 KCkgeworLS0tIGEvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3g4Ni9vc19saW51eF94ODYuY3Bw CisrKysgYi9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKK0BA IC03NSw5ICs3NSw2IEBACisgIyBpbmNsdWRlIDxwd2QuaD4KKyAjIGluY2x1ZGUgPHBvbGwuaD4K KyAjIGluY2x1ZGUgPHVjb250ZXh0Lmg+CistI2lmbmRlZiBBTUQ2NAorLSMgaW5jbHVkZSA8ZnB1 X2NvbnRyb2wuaD4KKy0jZW5kaWYKKyAKKyAjaWZkZWYgQU1ENjQKKyAjZGVmaW5lIFJFR19TUCBS RUdfUlNQCistLS0gYS9zcmMvaG90c3BvdC9zaGFyZS9nYy9zaGFyZWQvZ2VuQ29sbGVjdGVkSGVh cC5jcHAKKysrKyBiL3NyYy9ob3RzcG90L3NoYXJlL2djL3NoYXJlZC9nZW5Db2xsZWN0ZWRIZWFw LmNwcAorQEAgLTExMTYsNyArMTExNiw3IEBAIEhlYXBXb3JkKiBHZW5Db2xsZWN0ZWRIZWFwOjph bGxvY2F0ZV9uZXdfdGxhYihzaXplX3QgbWluX3NpemUsCisgc3RhdGljIFNjcmF0Y2hCbG9jayAq cmVtb3ZlU21hbGxlc3RTY3JhdGNoKFNjcmF0Y2hCbG9jayAqKnByZXZfcHRyKSB7CisgICBib29s IGZpcnN0ID0gdHJ1ZTsKKyAgIHNpemVfdCBtaW5fc2l6ZSA9IDA7ICAgLy8gImZpcnN0IiBtYWtl cyB0aGlzIGNvbmNlcHR1YWxseSBpbmZpbml0ZS4KKy0gIFNjcmF0Y2hCbG9jayAqKnNtYWxsZXN0 X3B0ciwgKnNtYWxsZXN0OworKyAgU2NyYXRjaEJsb2NrICoqc21hbGxlc3RfcHRyID0gTlVMTCwg KnNtYWxsZXN0OworICAgU2NyYXRjaEJsb2NrICAqY3VyID0gKnByZXZfcHRyOworICAgd2hpbGUg KGN1cikgeworICAgICBhc3NlcnQoKnByZXZfcHRyID09IGN1ciwgImp1c3QgY2hlY2tpbmciKTsK Ky0tLSBhL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2YS9jaGlsZHByb2MuYworKysr IGIvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2NoaWxkcHJvYy5jCitAQCAtMjM1 LDcgKzIzNSwxMyBAQCBKREtfZXhlY3ZwZShpbnQgbW9kZSwgY29uc3QgY2hhciAqZmlsZSwKKyB7 CisgICAgIGlmIChlbnZwID09IE5VTEwgfHwgKGNoYXIgKiopIGVudnAgPT0gZW52aXJvbikgewor ICAgICAgICAgZXhlY3ZwKGZpbGUsIChjaGFyICoqKSBhcmd2KTsKKy0gICAgICAgIHJldHVybjsK KysgICAgICAgIC8vIEVOT0VYRUMgaW5kaWNhdGVzIHRoYXQgdGhlIGZpbGUgaGVhZGVyIHdhcyBu b3QgcmVjb2duaXplZC4gVGhlIG11c2wgQworKyAgICAgICAgLy8gbGlicmFyeSBkb2VzIG5vdCBp bXBsZW1lbnQgdGhlIGZhbGxiYWNrIHRvIC9iaW4vc2ggZm9yIHRoYXQgY2FzZSwgc28gZmFsbAor KyAgICAgICAgLy8gdGhyb3VnaCB0byB0aGUgY29kZSBiZWxvdyB3aGljaCBpbXBsZW1lbnRzIHRo YXQgZmFsbGJhY2sgdXNpbmcKKysgICAgICAgIC8vIGV4ZWN2ZV93aXRoX3NoZWxsX2ZhbGxiYWNr LgorKyAgICAgICAgaWYgKGVycm5vICE9IEVOT0VYRUMpIHsKKysgICAgICAgICAgICByZXR1cm47 CisrICAgICAgICB9CisgICAgIH0KKyAKKyAgICAgaWYgKCpmaWxlID09ICdcMCcpIHsKKy0tLSBh L3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamxpL2phdmFfbWQuYworKysrIGIvc3JjL2ph dmEuYmFzZS91bml4L25hdGl2ZS9saWJqbGkvamF2YV9tZC5jCitAQCAtMjM2LDYgKzIzNiwzOSBA QCBSZXF1aXJlc1NldGVudihjb25zdCBjaGFyICpqdm1wYXRoKSB7CisgICAgIGNoYXIgKmRtbGxw ID0gTlVMTDsKKyAgICAgY2hhciAqcDsgLyogYSB1dGlsaXR5IHBvaW50ZXIgKi8KKyAKKysjaWZk ZWYgX19saW51eAorKyNpZm5kZWYgTElCQworKyNlcnJvciAiTElCQyBub3Qgc2V0IgorKyNlbmRp ZgorKworKyAgICBpZiAoc3RyY21wKExJQkMsICJtdXNsIikgPT0gMCkgeworKyAgICAgIC8qCisr ICAgICAgICogVGhlIG11c2wgbGlicmFyeSBsb2FkZXIgcmVxdWlyZXMgTERfTElCUkFSWV9QQVRI IHRvIGJlIHNldCBpbgorKyAgICAgICAqIG9yZGVyIHRvIGNvcnJlY3RseSByZXNvbHZlIHRoZSBk ZXBlbmRlbmN5IGxpYmphdmEuc28gaGFzIG9uIGxpYmp2bS5zby4KKysgICAgICAgKgorKyAgICAg ICAqIFNwZWNpZmljYWxseSwgaXQgZGlmZmVycyBmcm9tIGdsaWJjIGluIHRoZSBzZW5zZSB0aGF0 IGV2ZW4gaWYKKysgICAgICAgKiBsaWJqdm0uc28gaGFzIGFscmVhZHkgYmVlbiBsb2FkZWQgaXQg d2lsbCBub3QgYmUgY29uc2lkZXJlZCBhCisrICAgICAgICogY2FuZGlkYXRlIGZvciByZXNvbHZp bmcgdGhlIGRlcGVuZGVuY3kgdW5sZXNzIHRoZSAqZnVsbCogcGF0aAorKyAgICAgICAqIG9mIHRo ZSBhbHJlYWR5IGxvYWRlZCBsaWJyYXJ5IG1hdGNoZXMgdGhlIGRlcGVuZGVuY3kgYmVpbmcgbG9h ZGVkLgorKyAgICAgICAqCisrICAgICAgICogbGlianZtLnNvIGlzIGJlaW5nIGxvYWRlZCBieSB0 aGUgbGF1bmNoZXIgdXNpbmcgYSBsb25nIHBhdGggdG8KKysgICAgICAgKiBkbG9wZW4sIG5vdCBq dXN0IHRoZSBiYXNlbmFtZSBvZiB0aGUgbGlicmFyeS4gVHlwaWNhbGx5IHRoaXMKKysgICAgICAg KiBpcyBzb21ldGhpbmcgbGlrZSAiLi4vbGliL3NlcnZlci9saWJqdm0uc28iLiBIb3dldmVyLCBp Zi93aGVuCisrICAgICAgICogbGlianZtLnNvIGxhdGVyIHRyaWVzIHRvIGRsb3BlbiBsaWJqYXZh LnNvICh3aGljaCBpdCBkb2VzIGluCisrICAgICAgICogb3JkZXIgdG8gZ2V0IGFjY2VzcyB0byBh IGZldyBmdW5jdGlvbnMgaW1wbGVtZW50ZWQgaW4KKysgICAgICAgKiBsaWJqYXZhLnNvKSB0aGUg bXVzbCBsb2FkZXIgd2lsbCwgYXMgcGFydCBvZiBsb2FkaW5nCisrICAgICAgICogZGVwZW5kZW50 IGxpYnJhcmllcywgdHJ5IHRvIGxvYWQgbGlianZtLnNvIHVzaW5nIG9ubHkgaXRzCisrICAgICAg ICogYmFzZW5hbWUgImxpYmp2bS5zbyIuIFNpbmNlIHRoaXMgZG9lcyBub3QgbWF0Y2ggdGhlIGxv bmdlcgorKyAgICAgICAqIHBhdGggcGF0aCBpdCB3YXMgZmlyc3QgbG9hZGVkIHdpdGgsIHRoZSBh bHJlYWR5IGxvYWRlZAorKyAgICAgICAqIGxpYnJhcnkgaXMgbm90IGNvbnNpZGVyZWQgYSBjYW5k aWRhdGUsIGFuZCB0aGUgbG9hZGVyIHdpbGwKKysgICAgICAgKiBpbnN0ZWFkIGxvb2sgZm9yIGxp Ymp2bS5zbyBlbHNld2hlcmUuIElmIGl0J3Mgbm90IGluCisrICAgICAgICogTERfTElCUkFSWV9Q QVRIIHRoZSBkZXBlbmRlbmN5IGxvYWQgd2lsbCBmYWlsLCBhbmQgbGliamF2YS5zbworKyAgICAg ICAqIHdpbGwgdGhlcmVmb3JlIGZhaWwgYXMgd2VsbC4KKysgICAgICAgKi8KKysgICAgICByZXR1 cm4gSk5JX1RSVUU7CisrICAgIH0KKysjZW5kaWYKKysKKyAjaWZkZWYgQUlYCisgICAgIC8qIFdl IGFsd2F5cyBoYXZlIHRvIHNldCB0aGUgTElCUEFUSCBvbiBBSVggYmVjYXVzZSBsZCBkb2Vzbid0 IHN1cHBvcnQgJE9SSUdJTi4gKi8KKyAgICAgcmV0dXJuIEpOSV9UUlVFOworLS0tIGEvc3JjL2pk ay5qZHdwLmFnZW50L3NoYXJlL25hdGl2ZS9saWJqZHdwL3V0aWwuaAorKysrIGIvc3JjL2pkay5q ZHdwLmFnZW50L3NoYXJlL25hdGl2ZS9saWJqZHdwL3V0aWwuaAorQEAgLTM1LDE1ICszNSwxNSBA QAorICNpZmRlZiBERUJVRworICAgICAvKiBKdXN0IHRvIG1ha2Ugc3VyZSB0aGVzZSBpbnRlcmZh Y2VzIGFyZSBub3QgdXNlZCBoZXJlLiAqLworICAgICAjdW5kZWYgZnJlZQorLSAgICAjZGVmaW5l IGZyZWUocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSBmcmVlIGRv X25vdF91c2VfdGhpc19pbnRlcmZhY2VfZnJlZQorICAgICAjdW5kZWYgbWFsbG9jCistICAgICNk ZWZpbmUgbWFsbG9jKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUg bWFsbG9jIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2VfbWFsbG9jCisgICAgICN1bmRlZiBjYWxs b2MKKy0gICAgI2RlZmluZSBjYWxsb2MocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysg ICAgI2RlZmluZSBjYWxsb2MgZG9fbm90X3VzZV90aGlzX2ludGVyZmFjZV9jYWxsb2MKKyAgICAg I3VuZGVmIHJlYWxsb2MKKy0gICAgI2RlZmluZSByZWFsbG9jKHApIERvIG5vdCB1c2UgdGhpcyBp bnRlcmZhY2UuCisrICAgICNkZWZpbmUgcmVhbGxvYyBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNl X3JlYWxsb2MKKyAgICAgI3VuZGVmIHN0cmR1cAorLSAgICAjZGVmaW5lIHN0cmR1cChwKSBEbyBu b3QgdXNlIHRoaXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIHN0cmR1cCBkb19ub3RfdXNlX3Ro aXNfaW50ZXJmYWNlX3N0cmR1cAorICNlbmRpZgorIAorICNpbmNsdWRlICJsb2dfbWVzc2FnZXMu aCIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5q ZGsxNi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3BwYy5wYXRjaCBiL3NyY3BrZ3Mvb3Bl bmpkazE2LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDMwNmQ1MDFlNGI4Ci0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9vcGVuamRrMTYtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMu cGF0Y2gKQEAgLTAsMCArMSw0NSBAQAorUGF0Y2hlcyBmb3IgbXVzbCB0YWtlbiBmcm9tIEFscGlu ZSBsaW51eDogaHR0cHM6Ly9naXQuYWxwaW5lbGludXgub3JnL2Fwb3J0cy9jb21taXQvP2lkPThh MWFlMTdkNGE5YWY1NDI4NWM3ODkxYTY4MDYyMGU3ZTI0YzYyODAKKy0tLSBvbGQvc3JjL2hvdHNw b3QvY3B1L3BwYy9tYWNyb0Fzc2VtYmxlcl9wcGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L2Nw dS9wcGMvbWFjcm9Bc3NlbWJsZXJfcHBjLmNwcAorQEAgLTQ3LDYgKzQ3LDggQEAKKyAjaW5jbHVk ZSAib3B0by9pbnRyaW5zaWNub2RlLmhwcCIKKyAjZW5kaWYKKyAKKysjaW5jbHVkZSA8YXNtL3B0 cmFjZS5oPgorKworICNpZmRlZiBQUk9EVUNUCisgI2RlZmluZSBCTE9DS19DT01NRU5UKHN0cikg Ly8gbm90aGluZworICNlbHNlCistLS0gb2xkL3NyYy9ob3RzcG90L2NwdS9wcGMvdm1fdmVyc2lv bl9wcGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L2NwdS9wcGMvdm1fdmVyc2lvbl9wcGMuY3Bw CitAQCAtODQ1LDcgKzg0NSw3IEBAIHZvaWQgVk1fVmVyc2lvbjo6ZGV0ZXJtaW5lX2ZlYXR1cmVz KCkgeworICAgdW5zaWduZWQgbG9uZyBhdXh2ID0gZ2V0YXV4dmFsKEFUX0hXQ0FQMik7CisgCisg ICBpZiAoYXV4diAmIFBQQ19GRUFUVVJFMl9IVE1fTk9TQykgeworLSAgICBpZiAoYXV4diAmIFBQ Q19GRUFUVVJFMl9IQVNfSFRNKSB7CisrICAgIGlmIChhdXh2ICYgUFBDX0ZFQVRVUkUyX0hUTSkg eworICAgICAgIC8vIFRNIG9uIFBPV0VSOCBhbmQgUE9XRVI5IGluIGNvbXBhdCBtb2RlIChWTSkg aXMgc3VwcG9ydGVkIGJ5IHRoZSBKVk0uCisgICAgICAgLy8gVE0gb24gUE9XRVI5IEREMi4xIE5W IChiYXJlbWV0YWwpIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIEpWTSAoVE0gb24KKyAgICAgICAv LyBQT1dFUjkgREQyLjEgTlYgaGFzIGEgZmV3IGlzc3VlcyB0aGF0IG5lZWQgYSBjb3VwbGUgb2Yg ZmlybXdhcmUKKy0tLSBvbGQvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3BwYy9vc19saW51eF9w cGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9wcGMvb3NfbGludXhfcHBj LmNwcAorQEAgLTc1LDcgKzc1LDcgQEAKKyAjIGluY2x1ZGUgPHB3ZC5oPgorICMgaW5jbHVkZSA8 cG9sbC5oPgorICMgaW5jbHVkZSA8dWNvbnRleHQuaD4KKy0KKysjIGluY2x1ZGUgPGFzbS9wdHJh Y2UuaD4KKyAKKyBhZGRyZXNzIG9zOjpjdXJyZW50X3N0YWNrX3BvaW50ZXIoKSB7CisgICBpbnRw dHJfdCogY3NwOworLS0tIG9sZC9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfcHBjL3RocmVhZF9s aW51eF9wcGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9wcGMvdGhyZWFk X2xpbnV4X3BwYy5jcHAKK0BAIC0yMyw2ICsyMyw4IEBACisgICoKKyAgKi8KKyAKKysjaW5jbHVk ZSA8YXNtL3B0cmFjZS5oPgorKworICNpbmNsdWRlICJwcmVjb21waWxlZC5ocHAiCisgI2luY2x1 ZGUgInJ1bnRpbWUvZnJhbWUuaW5saW5lLmhwcCIKKyAjaW5jbHVkZSAicnVudGltZS90aHJlYWQu aHBwIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTYtYm9vdHN0cmFwL2ZpbGVzL211c2xf cGF0Y2hlcy94ODYucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsxNi1ib290c3RyYXAvZmlsZXMvbXVz bF9wYXRjaGVzL3g4Ni5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLjljNjRjMTg5MDM2YQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE2LWJv b3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoCkBAIC0wLDAgKzEsMTMwIEBACitQ YXRjaGVzIGZvciBtdXNsIHRha2VuIGZyb20gQWxwaW5lIGxpbnV4OiBodHRwczovL2dpdC5hbHBp bmVsaW51eC5vcmcvYXBvcnRzL2NvbW1pdC8/aWQ9OGExYWUxN2Q0YTlhZjU0Mjg1Yzc4OTFhNjgw NjIwZTdlMjRjNjI4MAorLS0tIG9sZC9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xp bnV4X3g4Ni5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3g4Ni9vc19saW51 eF94ODYuY3BwCitAQCAtOTAsNiArOTAsMTI2IEBACisgI2RlZmluZSBTUEVMTF9SRUdfRlAgImVi cCIKKyAjZW5kaWYgLy8gQU1ENjQKKworKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKy8vIFRh a2VuIGZyb20gZ2xpYmMgMi4yOAorKy8vIHNvdXJjZTogaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9n aXQvP3A9Z2xpYmMuZ2l0O2E9YmxvYjtmPXN5c2RlcHMveDg2L2ZwdV9jb250cm9sLmg7aD00Y2I5 OGM1Njc5YjI4OTdmZjRlNTgyNmQyMjhjYmE2YmU1ODllMjRkO2hiPTNjMDNiYWNhMzdmZGNiNTJj Mzg4MWU2NTNjYTM5MmJiYTdhOTljMmIKKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysjaWZu ZGVmIEFNRDY0CisrLyogRlBVIGNvbnRyb2wgd29yZCBiaXRzLiAgeDg2IHZlcnNpb24uCisrICAg Q29weXJpZ2h0IChDKSAxOTkzLTIwMTggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisr ICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisrICAgQ29udHJpYnV0 ZWQgYnkgT2xhZiBGbGViYmUuCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrICAgbW9kaWZ5IGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorKyAg IHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor KyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisr ICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5l cmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYg bm90LCBzZWUKKysgICA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworKyNp Zm5kZWYgX0ZQVV9DT05UUk9MX0gKKysjZGVmaW5lIF9GUFVfQ09OVFJPTF9ICTEKKysKKysvKiBO b3RlIHRoYXQgdGhpcyBmaWxlIHNldHMgb24geDg2LTY0IG9ubHkgdGhlIHg4NyBGUFUsIGl0IGRv ZXMgbm90CisrICAgdG91Y2ggdGhlIFNTRSB1bml0LiAgKi8KKysKKysvKiBIZXJlIGlzIHRoZSBk aXJ0eSBwYXJ0LiBTZXQgdXAgeW91ciAzODcgdGhyb3VnaCB0aGUgY29udHJvbCB3b3JkCisrICog KGN3KSByZWdpc3Rlci4KKysgKgorKyAqICAgICAxNS0xMyAgICAxMiAgMTEtMTAgIDktOCAgICAg Ny02ICAgICA1ICAgIDQgICAgMyAgICAyICAgIDEgICAgMAorKyAqIHwgcmVzZXJ2ZWQgfCBJQyB8 IFJDICB8IFBDIHwgcmVzZXJ2ZWQgfCBQTSB8IFVNIHwgT00gfCBaTSB8IERNIHwgSU0KKysgKgor KyAqIElNOiBJbnZhbGlkIG9wZXJhdGlvbiBtYXNrCisrICogRE06IERlbm9ybWFsaXplZCBvcGVy YW5kIG1hc2sKKysgKiBaTTogWmVyby1kaXZpZGUgbWFzaworKyAqIE9NOiBPdmVyZmxvdyBtYXNr CisrICogVU06IFVuZGVyZmxvdyBtYXNrCisrICogUE06IFByZWNpc2lvbiAoaW5leGFjdCByZXN1 bHQpIG1hc2sKKysgKgorKyAqIE1hc2sgYml0IGlzIDEgbWVhbnMgbm8gaW50ZXJydXB0LgorKyAq CisrICogUEM6IFByZWNpc2lvbiBjb250cm9sCisrICogMTEgLSByb3VuZCB0byBleHRlbmRlZCBw cmVjaXNpb24KKysgKiAxMCAtIHJvdW5kIHRvIGRvdWJsZSBwcmVjaXNpb24KKysgKiAwMCAtIHJv dW5kIHRvIHNpbmdsZSBwcmVjaXNpb24KKysgKgorKyAqIFJDOiBSb3VuZGluZyBjb250cm9sCisr ICogMDAgLSByb3VuZGluZyB0byBuZWFyZXN0CisrICogMDEgLSByb3VuZGluZyBkb3duICh0b3dh cmQgLSBpbmZpbml0eSkKKysgKiAxMCAtIHJvdW5kaW5nIHVwICh0b3dhcmQgKyBpbmZpbml0eSkK KysgKiAxMSAtIHJvdW5kaW5nIHRvd2FyZCB6ZXJvCisrICoKKysgKiBJQzogSW5maW5pdHkgY29u dHJvbAorKyAqIFRoYXQgaXMgZm9yIDgwODcgYW5kIDgwMjg3IG9ubHkuCisrICoKKysgKiBUaGUg aGFyZHdhcmUgZGVmYXVsdCBpcyAweDAzN2Ygd2hpY2ggd2UgdXNlLgorKyAqLworKworKyNpbmNs dWRlIDxmZWF0dXJlcy5oPgorKworKy8qIG1hc2tpbmcgb2YgaW50ZXJydXB0cyAqLworKyNkZWZp bmUgX0ZQVV9NQVNLX0lNICAweDAxCisrI2RlZmluZSBfRlBVX01BU0tfRE0gIDB4MDIKKysjZGVm aW5lIF9GUFVfTUFTS19aTSAgMHgwNAorKyNkZWZpbmUgX0ZQVV9NQVNLX09NICAweDA4CisrI2Rl ZmluZSBfRlBVX01BU0tfVU0gIDB4MTAKKysjZGVmaW5lIF9GUFVfTUFTS19QTSAgMHgyMAorKwor Ky8qIHByZWNpc2lvbiBjb250cm9sICovCisrI2RlZmluZSBfRlBVX0VYVEVOREVEIDB4MzAwCS8q IGxpYm0gcmVxdWlyZXMgZG91YmxlIGV4dGVuZGVkIHByZWNpc2lvbi4gICovCisrI2RlZmluZSBf RlBVX0RPVUJMRSAgIDB4MjAwCisrI2RlZmluZSBfRlBVX1NJTkdMRSAgIDB4MAorKworKy8qIHJv dW5kaW5nIGNvbnRyb2wgKi8KKysjZGVmaW5lIF9GUFVfUkNfTkVBUkVTVCAweDAgICAgLyogUkVD T01NRU5ERUQgKi8KKysjZGVmaW5lIF9GUFVfUkNfRE9XTiAgICAweDQwMAorKyNkZWZpbmUgX0ZQ VV9SQ19VUCAgICAgIDB4ODAwCisrI2RlZmluZSBfRlBVX1JDX1pFUk8gICAgMHhDMDAKKysKKysj ZGVmaW5lIF9GUFVfUkVTRVJWRUQgMHhGMEMwICAvKiBSZXNlcnZlZCBiaXRzIGluIGN3ICovCisr CisrCisrLyogVGhlIGZkbGlibSBjb2RlIHJlcXVpcmVzIHN0cmljdCBJRUVFIGRvdWJsZSBwcmVj aXNpb24gYXJpdGhtZXRpYywKKysgICBhbmQgbm8gaW50ZXJydXB0cyBmb3IgZXhjZXB0aW9ucywg cm91bmRpbmcgdG8gbmVhcmVzdC4gICovCisrCisrI2RlZmluZSBfRlBVX0RFRkFVTFQgIDB4MDM3 ZgorKworKy8qIElFRUU6ICBzYW1lIGFzIGFib3ZlLiAgKi8KKysjZGVmaW5lIF9GUFVfSUVFRSAg ICAgMHgwMzdmCisrCisrLyogVHlwZSBvZiB0aGUgY29udHJvbCB3b3JkLiAgKi8KKyt0eXBlZGVm IHVuc2lnbmVkIGludCBmcHVfY29udHJvbF90IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoX19I SV9fKSkpOworKworKy8qIE1hY3JvcyBmb3IgYWNjZXNzaW5nIHRoZSBoYXJkd2FyZSBjb250cm9s IHdvcmQuICAiKiYiIGlzIHVzZWQgdG8KKysgICB3b3JrIGFyb3VuZCBhIGJ1ZyBpbiBvbGRlciB2 ZXJzaW9ucyBvZiBHQ0MuICBfX3ZvbGF0aWxlX18gaXMgdXNlZAorKyAgIHRvIHN1cHBvcnQgY29t YmluYXRpb24gb2Ygd3JpdGluZyB0aGUgY29udHJvbCByZWdpc3RlciBhbmQgcmVhZGluZworKyAg IGl0IGJhY2suICBXaXRob3V0IF9fdm9sYXRpbGVfXywgdGhlIG9sZCB2YWx1ZSBtYXkgYmUgdXNl ZCBmb3IgcmVhZGluZworKyAgIGJhY2sgdW5kZXIgY29tcGlsZXIgb3B0aW1pemF0aW9uLgorKwor KyAgIE5vdGUgdGhhdCB0aGUgdXNlIG9mIHRoZXNlIG1hY3JvcyBpcyBub3Qgc3VmZmljaWVudCBh bnltb3JlIHdpdGgKKysgICByZWNlbnQgaGFyZHdhcmUgbm9yIG9uIHg4Ni02NC4gIFNvbWUgZmxv YXRpbmcgcG9pbnQgb3BlcmF0aW9ucyBhcmUKKysgICBleGVjdXRlZCBpbiB0aGUgU1NFL1NTRTIg ZW5naW5lcyB3aGljaCBoYXZlIHRoZWlyIG93biBjb250cm9sIGFuZAorKyAgIHN0YXR1cyByZWdp c3Rlci4gICovCisrI2RlZmluZSBfRlBVX0dFVENXKGN3KSBfX2FzbV9fIF9fdm9sYXRpbGVfXyAo ImZuc3RjdyAlMCIgOiAiPW0iICgqJmN3KSkKKysjZGVmaW5lIF9GUFVfU0VUQ1coY3cpIF9fYXNt X18gX192b2xhdGlsZV9fICgiZmxkY3cgJTAiIDogOiAibSIgKComY3cpKQorKworKy8qIERlZmF1 bHQgY29udHJvbCB3b3JkIHNldCBhdCBzdGFydHVwLiAgKi8KKytleHRlcm4gZnB1X2NvbnRyb2xf dCBfX2ZwdV9jb250cm9sOworKworKyNlbmRpZgkvKiBmcHVfY29udHJvbC5oICovCisrCisrI2Vu ZGlmIC8vIEFNRDY0CisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrLy8gPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrCisgYWRkcmVzcyBvczo6Y3Vy cmVudF9zdGFja19wb2ludGVyKCkgeworICNpZmRlZiBTUEFSQ19XT1JLUworICAgcmVnaXN0ZXIg dm9pZCAqZXNwOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTYtYm9vdHN0cmFwL3RlbXBs YXRlIGIvc3JjcGtncy9vcGVuamRrMTYtYm9vdHN0cmFwL3RlbXBsYXRlCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYjE3MTMzYzRlOTdhCi0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9vcGVuamRrMTYtYm9vdHN0cmFwL3RlbXBsYXRlCkBAIC0wLDAgKzEsMTE5IEBA CisjIFRlbXBsYXRlIGZpbGUgZm9yICdvcGVuamRrMTYtYm9vdHN0cmFwJworX2phdmFfdmVyPTE2 CitfamF2YV9taW5fdmVyPTAKK19qYXZhX3NlY192ZXI9MgorX2pka191cGRhdGU9NworX2pka19o b21lPSJ1c3IvbGliL2p2bS9vcGVuamRrJHtfamF2YV92ZXJ9IgorX2Jhc2VfdmVyc2lvbj0iJHtf amF2YV92ZXJ9LiR7X2phdmFfbWluX3Zlcn0uJHtfamF2YV9zZWNfdmVyfSIKKworcGtnbmFtZT1v cGVuamRrMTYtYm9vdHN0cmFwCit2ZXJzaW9uPSIke19iYXNlX3ZlcnNpb259KyR7X2pka191cGRh dGV9IgorcmV2aXNpb249MQord3Jrc3JjPSJqZGske19qYXZhX3Zlcn11LWpkay0ke19iYXNlX3Zl cnNpb259LSR7X2pka191cGRhdGV9IgorYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQorY29uZmln dXJlX2FyZ3M9Ii0tZGlzYWJsZS13YXJuaW5ncy1hcy1lcnJvcnMKKyAtLWVuYWJsZS11bmxpbWl0 ZWQtY3J5cHRvCisgLS13aXRoLXpsaWI9c3lzdGVtCisgLS13aXRoLWxpYmpwZWc9c3lzdGVtCisg LS13aXRoLWdpZmxpYj1zeXN0ZW0KKyAtLXdpdGgtbGlicG5nPXN5c3RlbQorIC0td2l0aC1sY21z PXN5c3RlbQorIC0td2l0aC1qdHJlZz1ubworIC0td2l0aC1ndGVzdD0ke1hCUFNfQlVJTERESVJ9 L2dvb2dsZXRlc3QtcmVsZWFzZS0xLjguMQorIC0td2l0aC12ZXJzaW9uLWJ1aWxkPSR7X2phdmFf dmVyfQorIC0td2l0aC1qb2JzPSR7WEJQU19PUklHX01BS0VKT0JTfQorIC0td2l0aC12ZW5kb3It bmFtZT1Wb2lkCisgLS13aXRoLXZlbmRvci11cmw9aHR0cHM6Ly92b2lkbGludXgub3JnLworIC0t d2l0aC12ZW5kb3ItYnVnLXVybD1odHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBh Y2thZ2VzL2lzc3VlcworIC0td2l0aC12ZW5kb3Itdm0tYnVnLXVybD1odHRwczovL2dpdGh1Yi5j b20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2lzc3VlcworIC0td2l0aC1ib290LWpkaz0vdXNy L2xpYi9qdm0vb3BlbmpkazE1IgorbWFrZV9idWlsZF9hcmdzPSJpbWFnZXMiCittYWtlX2luc3Rh bGxfYXJncz0iSU5TVEFMTF9QUkVGSVg9XCIke1hCUFNfREVTVERJUn0vJHtwa2duYW1lfS0ke3Zl cnNpb259L3Vzci9saWJcIiIKK21ha2VfY2hlY2tfdGFyZ2V0PSJ0ZXN0LWhvdHNwb3QtZ3Rlc3Qi Citob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgYXV0b21ha2UgYXV0b2NvbmYgY3BpbyB0YXIg dW56aXAgemlwIGNhLWNlcnRpZmljYXRlcworIGxpYnJlc3NsIHpsaWItZGV2ZWwgd2hpY2ggbWFr ZS1jYSBvcGVuamRrMTUtYm9vdHN0cmFwIgorbWFrZWRlcGVuZHM9ImxpYlhyZW5kZXItZGV2ZWwg bGliWHRzdC1kZXZlbCBsaWJYdC1kZXZlbCBsaWJYcmFuZHItZGV2ZWwKKyBnaWZsaWItZGV2ZWwg bGlianBlZy10dXJiby1kZXZlbCBjdXBzLWRldmVsIGZyZWV0eXBlLWRldmVsIGFsc2EtbGliLWRl dmVsCisgZm9udGNvbmZpZy1kZXZlbCB6bGliLWRldmVsIGxjbXMyLWRldmVsIGhhcmZidXp6LWRl dmVsIG9wZW5qZGsxNS1ib290c3RyYXAiCitwcm92aWRlcz0iamF2YS1lbnZpcm9ubWVudC0ke3Zl cnNpb259XzEgamF2YS1ydW50aW1lLSR7dmVyc2lvbn1fMSIKK3Nob3J0X2Rlc2M9Ik9wZW5KREsg SmF2YSBEZXZlbG9wbWVudCBLaXQgKGJvb3RzdHJhcCB2ZXJzaW9uIDE2KSIKK21haW50YWluZXI9 ImNsYXNzYWJieWFtcCA8ZGV2QGtiNi5lZT4iCitsaWNlbnNlPSJHUEwtMi4wLW9ubHkgV0lUSCBD bGFzc3BhdGgtZXhjZXB0aW9uLTIuMCIKK2hvbWVwYWdlPSJodHRwOi8vb3Blbmpkay5qYXZhLm5l dC8iCitkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuamRrL2pkayR7X2phdmFfdmVy fXUvYXJjaGl2ZS9qZGstJHt2ZXJzaW9ufS50YXIuZ3oKKyBodHRwczovL2dpdGh1Yi5jb20vZ29v Z2xlL2dvb2dsZXRlc3QvYXJjaGl2ZS9yZWZzL3RhZ3MvcmVsZWFzZS0xLjguMS50YXIuZ3oiCitj aGVja3N1bT0iYjRhMGU3MWU0MWExMTE3NWU4YTdjMWRiYTg2ZWQ1YjBhYTg3ODQxMzE1OGM4ZDQ4 ODEzZGIxYjY0YWM5NTM2YworIDliZjFmZTUxODJhNjA0YjQxMzVlZGMxYTQyNWFlMzU2YzlhZDE1 ZTliMjNmOWYxMmEwMmU4MDE4NGMzYTI0OWMiCitub2Nyb3NzPXllcworCisjIEJ1aWxkIGlzIHN0 aWxsIHBhcmFsbGVsLCBidXQgZG9uJ3QgdXNlIC1qTi4KK2Rpc2FibGVfcGFyYWxsZWxfYnVpbGQ9 eWVzCisKKyMgbm8gaG90c3BvdCBKSVQgZm9yIHBwYzMyCitjYXNlICIkWEJQU19UQVJHRVRfTUFD SElORSIgaW4KKwlwcGM2NCopIDs7CisJcHBjKikgX3VzZV96ZXJvPXllcyA7OworZXNhYworCitp ZiBbIC1uICIkX3VzZV96ZXJvIiBdOyB0aGVuCisJbWFrZWRlcGVuZHMrPSIgbGliZmZpLWRldmVs IgorCWNvbmZpZ3VyZV9hcmdzKz0iIC0td2l0aC1qdm0tdmFyaWFudHM9emVybyIKKwljYXNlICIk WEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwkJcHBjKikgY29uZmlndXJlX2FyZ3MrPSIgLS13aXRo LWJvb3QtamRrLWp2bWFyZ3M9LVhYOlRocmVhZFN0YWNrU2l6ZT0yNTYwIjs7CisJZXNhYworZmkK KworcG9zdF9leHRyYWN0KCkgeworCWNobW9kICt4IGNvbmZpZ3VyZQorCWlmIFsgIiRYQlBTX1RB UkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCisJCXJtIC1yIHNyYy9qZGsuaG90c3BvdC5hZ2Vu dAorCWZpCit9CisKK3Bvc3RfcGF0Y2goKSB7CisJaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0g Im11c2wiIF07IHRoZW4KKwkJZm9yIGYgaW4gIiR7RklMRVNESVJ9Ii9tdXNsX3BhdGNoZXMvKi5w YXRjaDsgZG8KKwkJCW1zZ19ub3JtYWwgIkFwcGx5aW5nICR7ZiMkRklMRVNESVIvfVxuIgorCQkJ cGF0Y2ggLWxOcDEgLWkgIiRmIgorCQlkb25lCisJZmkKK30KKworZG9fY29uZmlndXJlKCkgewor CUNGTEFHUz0ke0NGTEFHUy8tRF9GT1JUSUZZX1NPVVJDRT0yL30KKwlDWFhGTEFHUz0ke0NYWEZM QUdTLy1EX0ZPUlRJRllfU09VUkNFPTIvfQorCisJIyBmb3JjZSBFTEZ2MiBmb3IgcHBjNjQganVz dCBpbiBjYXNlCisJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJCXBwYzY0KikKKwkJ CUNGTEFHUys9IiAtREFCSV9FTEZ2MiIKKwkJCUNYWEZMQUdTKz0iIC1EQUJJX0VMRnYyIgorCQkJ OzsKKwllc2FjCisKKwljb25maWd1cmVfYXJncz0ke2NvbmZpZ3VyZV9hcmdzLy0td2l0aC1saWJ0 b29sLXN5c3Jvb3Q9XC91c3JcL1thLXowLTldKi1saW51eC1bYS16XSovfQorCWlmIFsgIiRYQlBT X0NDQUNIRSIgXTsgdGhlbgorCQljb25maWd1cmVfYXJncys9IiAtLWVuYWJsZS1jY2FjaGUiCisJ ZmkKKwlDQz0iL3Vzci9iaW4vY2MiCisJQ1hYPSIvdXNyL2Jpbi9jKysiCisJLi9jb25maWd1cmUg JHtjb25maWd1cmVfYXJnc30gXAorCQktLXdpdGgtZXh0cmEtY2ZsYWdzPSIkQ0ZMQUdTIiBcCisJ CS0td2l0aC1leHRyYS1jeHhmbGFncz0iJENYWEZMQUdTIiBcCisJCS0td2l0aC1leHRyYS1sZGZs YWdzPSIkTERGTEFHUyIgXAorCQlSRUFERUxGPSRSRUFERUxGIEFSPSRBUiBTVFJJUD0kU1RSSVAg Tk09JE5NIFwKKwkJT0JKRFVNUD0kT0JKRFVNUCBPQkpDT1BZPSRPQkpDT1BZCit9CisKK3Bvc3Rf aW5zdGFsbCgpIHsKKwltdiAke0RFU1RESVJ9L3Vzci9saWIvanZtL29wZW5qZGstJHtfYmFzZV92 ZXJzaW9ufS1pbnRlcm5hbCAke0RFU1RESVJ9LyRfamRrX2hvbWUKKwlybSAtcmYgJHtERVNURElS fS91c3IvbGliL2JpbgorCXJtIC1mICRERVNURElSLyRfamRrX2hvbWUvbGliL3NyYy56aXAKKwl2 bGljZW5zZSBBU1NFTUJMWV9FWENFUFRJT04KKwl2bGljZW5zZSBMSUNFTlNFCit9CisKK2RvX2Ns ZWFuKCkgeworCSMgY2xlYW4gdXAgZ3Rlc3QKKwlybSAtcmYgJHtYQlBTX0JVSUxERElSfS9nb29n bGV0ZXN0LXJlbGVhc2UtKgorfQoKRnJvbSBkMTVjOWMwNGFiYzZhMDBjZmZhZTdlODgwZjkzYmQ1 NzE2ZDFlNWZhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBjbGFzc2FiYnlhbXAgPGRl dkBrYjYuZWU+CkRhdGU6IE1vbiwgMTcgSmFuIDIwMjIgMDY6MjY6NTkgLTA1MDAKU3ViamVjdDog W1BBVENIIDcvOF0gTmV3IHBhY2thZ2U6IG9wZW5qZGsxNy0xNy4wLjErMTIKCi0tLQogY29tbW9u L3NobGlicyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICsKIHNyY3BrZ3Mv b3BlbmpkazE3LWRvYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmNwa2dzL29w ZW5qZGsxNy1zcmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogLi4uL29wZW5qZGsx Ny9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoICAgIHwgIDIyICsrCiAuLi4vb3BlbmpkazE3 L2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRjaCAgfCAxNzAgKysrKysrKysrKysrKysKIC4u Li9vcGVuamRrMTcvZmlsZXMvbXVzbF9wYXRjaGVzL3BwYy5wYXRjaCAgICB8ICA0NSArKysrCiAu Li4vb3BlbmpkazE3L2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2ggICAgfCAxMzAgKysrKysr KysrKysKIHNyY3BrZ3Mvb3BlbmpkazE3L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICB8IDIx MCArKysrKysrKysrKysrKysrKysKIHNyY3BrZ3Mvb3BlbmpkazE3L3VwZGF0ZSAgICAgICAgICAg ICAgICAgICAgICB8ICAgMSArCiA5IGZpbGVzIGNoYW5nZWQsIDU4NiBpbnNlcnRpb25zKCspCiBj cmVhdGUgbW9kZSAxMjAwMDAgc3JjcGtncy9vcGVuamRrMTctZG9jCiBjcmVhdGUgbW9kZSAxMjAw MDAgc3JjcGtncy9vcGVuamRrMTctc3JjCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVu amRrMTcvZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3Mvb3BlbmpkazE3L2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRjaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazE3L2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2gK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNy9maWxlcy9tdXNsX3BhdGNoZXMv eDg2LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTcvdGVtcGxhdGUK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNy91cGRhdGUKCmRpZmYgLS1naXQg YS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCA3NmRmMTdlOGJhMTMuLjQyZjhh NGUxZTRiNSAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBA IC00MTAyLDMgKzQxMDIsOSBAQCBsaWJrYWRkcmVzc2Jvb2twcml2YXRlLnNvLjUga2FkZHJlc3Ni b29rLTIxLjA4LjNfMQogbGliY29kZWMyLnNvLjEuMCBjb2RlYzItMS4wLjFfMQogbGlieDg2ZW11 LnNvLjMgbGlieDg2ZW11LTMuNF8xCiBsaWJkZWZsYXRlLnNvLjAgbGliZGVmbGF0ZS0xLjhfMQor bGliamF3dC5zbyBvcGVuamRrMTctMTcuMC4xKzEyXzEKK2xpYmF3dC5zbyBvcGVuamRrMTctMTcu MC4xKzEyXzEKK2xpYmF3dF94YXd0LnNvIG9wZW5qZGsxNy0xNy4wLjErMTJfMQorbGliamF2YS5z byBvcGVuamRrMTctMTcuMC4xKzEyXzEKK2xpYmpsaS5zbyBvcGVuamRrMTctMTcuMC4xKzEyXzEK K2xpYmp2bS5zbyBvcGVuamRrMTctMTcuMC4xKzEyXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3Bl bmpkazE3LWRvYyBiL3NyY3BrZ3Mvb3BlbmpkazE3LWRvYwpuZXcgZmlsZSBtb2RlIDEyMDAwMApp bmRleCAwMDAwMDAwMDAwMDAuLjk5YWIxY2IxYjBkMgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3Mvb3BlbmpkazE3LWRvYwpAQCAtMCwwICsxIEBACitvcGVuamRrMTcKXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxNy1zcmMgYi9zcmNwa2dz L29wZW5qZGsxNy1zcmMKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAwLi45 OWFiMWNiMWIwZDIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxNy1zcmMKQEAg LTAsMCArMSBAQAorb3BlbmpkazE3ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9vcGVuamRrMTcvZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaCBiL3Ny Y3BrZ3Mvb3BlbmpkazE3L2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4zMmI0YjAxMDJhOGUKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL29wZW5qZGsxNy9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoCkBAIC0w LDAgKzEsMjIgQEAKKy0tLSBhL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9hcm0vb3NfbGludXhf YXJtLmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X2FybS9vc19saW51eF9hcm0u Y3BwCitAQCAtNzMsNyArNzMsMTggQEAKKyAjIGluY2x1ZGUgPHVjb250ZXh0Lmg+CistIyBpbmNs dWRlIDxmcHVfY29udHJvbC5oPgorICMgaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorIAorKy8vIFN0 dXBpZCBoYWNrIGFzIHRoZSBvcmlnaW4gaWYgYmVsb3cgZG9lc250IGNvbXBpbGUgd2l0aCBnY2Mg OC4yLjA6CisrLy8KKysvLyBvc19saW51eF9hcm0uY3BwOjExNDo1OiBlcnJvcjogbWlzc2luZyBi aW5hcnkgb3BlcmF0b3IgYmVmb3JlIHRva2VuICIoIgorKy8vICAjaWYgTkdSRUcgPT0gMTYKKysv LyAgICAgICBefn5+fgorKy8vCisrLy8gVGhlIE5HUkVHIGlzIDE4IChiaXRzL3NpZ25hbC5oOjEw KSwgc28gZm9yY2UgaXQgdG8gdGhhdCB2YWx1ZS4KKysjaWZkZWYgTkdSRUcKKysjICB1bmRlZiBO R1JFRworKyNlbmRpZgorKyNkZWZpbmUgTkdSRUcgMTgKKysKKyAjZGVmaW5lIFNQRUxMX1JFR19T UCAgInNwIgorIAorIC8vIERvbid0ICNkZWZpbmUgU1BFTExfUkVHX0ZQIGZvciB0aHVtYiBiZWNh dXNlIGl0IGlzIG5vdCBzYWZlIHRvIHVzZSwgc28gdGhpcyBtYWtlcyBzdXJlIHdlIG5ldmVyIGZl dGNoIGl0LgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTcvZmlsZXMvbXVzbF9wYXRjaGVz L2J1aWxkLnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTcvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxk LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMTE1OGJhYmNk OTZkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTcvZmlsZXMvbXVzbF9wYXRj aGVzL2J1aWxkLnBhdGNoCkBAIC0wLDAgKzEsMTcwIEBACistLS0gYS9tYWtlL2hvdHNwb3QvbGli L0NvbXBpbGVKdm0uZ21rCisrKysgYi9tYWtlL2hvdHNwb3QvbGliL0NvbXBpbGVKdm0uZ21rCitA QCAtNzMsNiArNzMsNyBAQCBDRkxBR1NfVk1fVkVSU0lPTiA6PSBcCisgICAgIC1ESE9UU1BPVF9C VUlMRF9VU0VSPSciJChVU0VSTkFNRSkiJyBcCisgICAgIC1ESE9UU1BPVF9WTV9ESVNUUk89JyIk KEhPVFNQT1RfVk1fRElTVFJPKSInIFwKKyAgICAgLURDUFU9JyIkKE9QRU5KREtfVEFSR0VUX0NQ VV9WTV9WRVJTSU9OKSInIFwKKysgICAgLURMSUJDPScibXVzbCInIFwKKyAgICAgIworIAorICMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCistLS0gYS9tYWtlL21vZHVsZXMvamF2YS5iYXNlL2xpYi9D b3JlTGlicmFyaWVzLmdtaworKysrIGIvbWFrZS9tb2R1bGVzL2phdmEuYmFzZS9saWIvQ29yZUxp YnJhcmllcy5nbWsKK0BAIC0xOTAsNiArMTkwLDcgQEAgaWZlcSAoJChjYWxsIGlzVGFyZ2V0T3Ms IHdpbmRvd3MpLCB0cnVlKQorIGVuZGlmCisgCisgTElCSkxJX0NGTEFHUyArPSAkKExJQlpfQ0ZM QUdTKQorK0xJQkpMSV9DRkxBR1MgKz0gLURMSUJDPVwibXVzbFwiCisgCisgaWZuZXEgKCQoVVNF X0VYVEVSTkFMX0xJQlopLCB0cnVlKQorICAgTElCSkxJX0VYVFJBX0ZJTEVTICs9IFwKKy0tLSBh L3NyYy9ob3RzcG90L29zL2xpbnV4L29zX2xpbnV4LmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvb3Mv bGludXgvb3NfbGludXguY3BwCitAQCAtMzExNywyMCArMzEyMywzNiBAQCB2b2lkIG9zOjpMaW51 eDo6c2NoZWRfZ2V0Y3B1X2luaXQoKSB7CisgZXh0ZXJuICJDIiBKTklFWFBPUlQgdm9pZCBudW1h X3dhcm4oaW50IG51bWJlciwgY2hhciAqd2hlcmUsIC4uLikgeyB9CisgZXh0ZXJuICJDIiBKTklF WFBPUlQgdm9pZCBudW1hX2Vycm9yKGNoYXIgKndoZXJlKSB7IH0KKyAKKytzdGF0aWMgdm9pZCog ZGx2c3ltX2lmX2F2YWlsYWJsZSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0 IGNoYXIqIHZlcnNpb24pIHsKKysgIHR5cGVkZWYgdm9pZCogKCpkbHZzeW1fZnVuY190eXBlKSh2 b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIHZlcnNpb24pOworKyAg c3RhdGljIGRsdnN5bV9mdW5jX3R5cGUgZGx2c3ltX2Z1bmM7CisrICBzdGF0aWMgYm9vbCBpbml0 aWFsaXplZCA9IGZhbHNlOworKworKyAgaWYgKCFpbml0aWFsaXplZCkgeworKyAgICBkbHZzeW1f ZnVuYyA9IChkbHZzeW1fZnVuY190eXBlKWRsc3ltKFJUTERfTkVYVCwgImRsdnN5bSIpOworKyAg ICBpbml0aWFsaXplZCA9IHRydWU7CisrICB9CisrCisrICBpZiAoZGx2c3ltX2Z1bmMgIT0gTlVM TCkgeworKyAgICB2b2lkICpmID0gZGx2c3ltX2Z1bmMoaGFuZGxlLCBuYW1lLCB2ZXJzaW9uKTsK KysgICAgaWYgKGYgIT0gTlVMTCkgeworKyAgICAgIHJldHVybiBmOworKyAgICB9CisrICB9Cisr CisrICByZXR1cm4gZGxzeW0oaGFuZGxlLCBuYW1lKTsKKyt9CisrCisgLy8gSGFuZGxlIHJlcXVl c3QgdG8gbG9hZCBsaWJudW1hIHN5bWJvbCB2ZXJzaW9uIDEuMSAoQVBJIHYxKS4gSWYgaXQgZmFp bHMKKyAvLyBsb2FkIHN5bWJvbCBmcm9tIGJhc2UgdmVyc2lvbiBpbnN0ZWFkLgorIHZvaWQqIG9z OjpMaW51eDo6bGlibnVtYV9kbHN5bSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIgKm5hbWUpIHsK Ky0gIHZvaWQgKmYgPSBkbHZzeW0oaGFuZGxlLCBuYW1lLCAibGlibnVtYV8xLjEiKTsKKy0gIGlm IChmID09IE5VTEwpIHsKKy0gICAgZiA9IGRsc3ltKGhhbmRsZSwgbmFtZSk7CistICB9CistICBy ZXR1cm4gZjsKKysgIHJldHVybiBkbHZzeW1faWZfYXZhaWxhYmxlKGhhbmRsZSwgbmFtZSwgImxp Ym51bWFfMS4xIik7CisgfQorIAorIC8vIEhhbmRsZSByZXF1ZXN0IHRvIGxvYWQgbGlibnVtYSBz eW1ib2wgdmVyc2lvbiAxLjIgKEFQSSB2Mikgb25seS4KKyAvLyBSZXR1cm4gTlVMTCBpZiB0aGUg c3ltYm9sIGlzIG5vdCBkZWZpbmVkIGluIHRoaXMgcGFydGljdWxhciB2ZXJzaW9uLgorIHZvaWQq IG9zOjpMaW51eDo6bGlibnVtYV92Ml9kbHN5bSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIqIG5h bWUpIHsKKy0gIHJldHVybiBkbHZzeW0oaGFuZGxlLCBuYW1lLCAibGlibnVtYV8xLjIiKTsKKysg IHJldHVybiBkbHZzeW1faWZfYXZhaWxhYmxlKGhhbmRsZSwgbmFtZSwgImxpYm51bWFfMS4yIik7 CisgfQorIAorIGJvb2wgb3M6OkxpbnV4OjpsaWJudW1hX2luaXQoKSB7CistLS0gYS9zcmMvaG90 c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKKysrKyBiL3NyYy9ob3RzcG90 L29zX2NwdS9saW51eF94ODYvb3NfbGludXhfeDg2LmNwcAorQEAgLTc1LDkgKzc1LDYgQEAKKyAj IGluY2x1ZGUgPHB3ZC5oPgorICMgaW5jbHVkZSA8cG9sbC5oPgorICMgaW5jbHVkZSA8dWNvbnRl eHQuaD4KKy0jaWZuZGVmIEFNRDY0CistIyBpbmNsdWRlIDxmcHVfY29udHJvbC5oPgorLSNlbmRp ZgorIAorICNpZmRlZiBBTUQ2NAorICNkZWZpbmUgUkVHX1NQIFJFR19SU1AKKy0tLSBhL3NyYy9o b3RzcG90L3NoYXJlL2djL3NoYXJlZC9nZW5Db2xsZWN0ZWRIZWFwLmNwcAorKysrIGIvc3JjL2hv dHNwb3Qvc2hhcmUvZ2Mvc2hhcmVkL2dlbkNvbGxlY3RlZEhlYXAuY3BwCitAQCAtMTExNiw3ICsx MTE2LDcgQEAgSGVhcFdvcmQqIEdlbkNvbGxlY3RlZEhlYXA6OmFsbG9jYXRlX25ld190bGFiKHNp emVfdCBtaW5fc2l6ZSwKKyBzdGF0aWMgU2NyYXRjaEJsb2NrICpyZW1vdmVTbWFsbGVzdFNjcmF0 Y2goU2NyYXRjaEJsb2NrICoqcHJldl9wdHIpIHsKKyAgIGJvb2wgZmlyc3QgPSB0cnVlOworICAg c2l6ZV90IG1pbl9zaXplID0gMDsgICAvLyAiZmlyc3QiIG1ha2VzIHRoaXMgY29uY2VwdHVhbGx5 IGluZmluaXRlLgorLSAgU2NyYXRjaEJsb2NrICoqc21hbGxlc3RfcHRyLCAqc21hbGxlc3Q7Cisr ICBTY3JhdGNoQmxvY2sgKipzbWFsbGVzdF9wdHIgPSBOVUxMLCAqc21hbGxlc3Q7CisgICBTY3Jh dGNoQmxvY2sgICpjdXIgPSAqcHJldl9wdHI7CisgICB3aGlsZSAoY3VyKSB7CisgICAgIGFzc2Vy dCgqcHJldl9wdHIgPT0gY3VyLCAianVzdCBjaGVja2luZyIpOworLS0tIGEvc3JjL2phdmEuYmFz ZS91bml4L25hdGl2ZS9saWJqYXZhL2NoaWxkcHJvYy5jCisrKysgYi9zcmMvamF2YS5iYXNlL3Vu aXgvbmF0aXZlL2xpYmphdmEvY2hpbGRwcm9jLmMKK0BAIC0yMzUsNyArMjM1LDEzIEBAIEpES19l eGVjdnBlKGludCBtb2RlLCBjb25zdCBjaGFyICpmaWxlLAorIHsKKyAgICAgaWYgKGVudnAgPT0g TlVMTCB8fCAoY2hhciAqKikgZW52cCA9PSBlbnZpcm9uKSB7CisgICAgICAgICBleGVjdnAoZmls ZSwgKGNoYXIgKiopIGFyZ3YpOworLSAgICAgICAgcmV0dXJuOworKyAgICAgICAgLy8gRU5PRVhF QyBpbmRpY2F0ZXMgdGhhdCB0aGUgZmlsZSBoZWFkZXIgd2FzIG5vdCByZWNvZ25pemVkLiBUaGUg bXVzbCBDCisrICAgICAgICAvLyBsaWJyYXJ5IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZmFsbGJh Y2sgdG8gL2Jpbi9zaCBmb3IgdGhhdCBjYXNlLCBzbyBmYWxsCisrICAgICAgICAvLyB0aHJvdWdo IHRvIHRoZSBjb2RlIGJlbG93IHdoaWNoIGltcGxlbWVudHMgdGhhdCBmYWxsYmFjayB1c2luZwor KyAgICAgICAgLy8gZXhlY3ZlX3dpdGhfc2hlbGxfZmFsbGJhY2suCisrICAgICAgICBpZiAoZXJy bm8gIT0gRU5PRVhFQykgeworKyAgICAgICAgICAgIHJldHVybjsKKysgICAgICAgIH0KKyAgICAg fQorIAorICAgICBpZiAoKmZpbGUgPT0gJ1wwJykgeworLS0tIGEvc3JjL2phdmEuYmFzZS91bml4 L25hdGl2ZS9saWJqbGkvamF2YV9tZC5jCisrKysgYi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZl L2xpYmpsaS9qYXZhX21kLmMKK0BAIC0yMzYsNiArMjM2LDM5IEBAIFJlcXVpcmVzU2V0ZW52KGNv bnN0IGNoYXIgKmp2bXBhdGgpIHsKKyAgICAgY2hhciAqZG1sbHAgPSBOVUxMOworICAgICBjaGFy ICpwOyAvKiBhIHV0aWxpdHkgcG9pbnRlciAqLworIAorKyNpZmRlZiBfX2xpbnV4CisrI2lmbmRl ZiBMSUJDCisrI2Vycm9yICJMSUJDIG5vdCBzZXQiCisrI2VuZGlmCisrCisrICAgIGlmIChzdHJj bXAoTElCQywgIm11c2wiKSA9PSAwKSB7CisrICAgICAgLyoKKysgICAgICAgKiBUaGUgbXVzbCBs aWJyYXJ5IGxvYWRlciByZXF1aXJlcyBMRF9MSUJSQVJZX1BBVEggdG8gYmUgc2V0IGluCisrICAg ICAgICogb3JkZXIgdG8gY29ycmVjdGx5IHJlc29sdmUgdGhlIGRlcGVuZGVuY3kgbGliamF2YS5z byBoYXMgb24gbGlianZtLnNvLgorKyAgICAgICAqCisrICAgICAgICogU3BlY2lmaWNhbGx5LCBp dCBkaWZmZXJzIGZyb20gZ2xpYmMgaW4gdGhlIHNlbnNlIHRoYXQgZXZlbiBpZgorKyAgICAgICAq IGxpYmp2bS5zbyBoYXMgYWxyZWFkeSBiZWVuIGxvYWRlZCBpdCB3aWxsIG5vdCBiZSBjb25zaWRl cmVkIGEKKysgICAgICAgKiBjYW5kaWRhdGUgZm9yIHJlc29sdmluZyB0aGUgZGVwZW5kZW5jeSB1 bmxlc3MgdGhlICpmdWxsKiBwYXRoCisrICAgICAgICogb2YgdGhlIGFscmVhZHkgbG9hZGVkIGxp YnJhcnkgbWF0Y2hlcyB0aGUgZGVwZW5kZW5jeSBiZWluZyBsb2FkZWQuCisrICAgICAgICoKKysg ICAgICAgKiBsaWJqdm0uc28gaXMgYmVpbmcgbG9hZGVkIGJ5IHRoZSBsYXVuY2hlciB1c2luZyBh IGxvbmcgcGF0aCB0bworKyAgICAgICAqIGRsb3Blbiwgbm90IGp1c3QgdGhlIGJhc2VuYW1lIG9m IHRoZSBsaWJyYXJ5LiBUeXBpY2FsbHkgdGhpcworKyAgICAgICAqIGlzIHNvbWV0aGluZyBsaWtl ICIuLi9saWIvc2VydmVyL2xpYmp2bS5zbyIuIEhvd2V2ZXIsIGlmL3doZW4KKysgICAgICAgKiBs aWJqdm0uc28gbGF0ZXIgdHJpZXMgdG8gZGxvcGVuIGxpYmphdmEuc28gKHdoaWNoIGl0IGRvZXMg aW4KKysgICAgICAgKiBvcmRlciB0byBnZXQgYWNjZXNzIHRvIGEgZmV3IGZ1bmN0aW9ucyBpbXBs ZW1lbnRlZCBpbgorKyAgICAgICAqIGxpYmphdmEuc28pIHRoZSBtdXNsIGxvYWRlciB3aWxsLCBh cyBwYXJ0IG9mIGxvYWRpbmcKKysgICAgICAgKiBkZXBlbmRlbnQgbGlicmFyaWVzLCB0cnkgdG8g bG9hZCBsaWJqdm0uc28gdXNpbmcgb25seSBpdHMKKysgICAgICAgKiBiYXNlbmFtZSAibGlianZt LnNvIi4gU2luY2UgdGhpcyBkb2VzIG5vdCBtYXRjaCB0aGUgbG9uZ2VyCisrICAgICAgICogcGF0 aCBwYXRoIGl0IHdhcyBmaXJzdCBsb2FkZWQgd2l0aCwgdGhlIGFscmVhZHkgbG9hZGVkCisrICAg ICAgICogbGlicmFyeSBpcyBub3QgY29uc2lkZXJlZCBhIGNhbmRpZGF0ZSwgYW5kIHRoZSBsb2Fk ZXIgd2lsbAorKyAgICAgICAqIGluc3RlYWQgbG9vayBmb3IgbGlianZtLnNvIGVsc2V3aGVyZS4g SWYgaXQncyBub3QgaW4KKysgICAgICAgKiBMRF9MSUJSQVJZX1BBVEggdGhlIGRlcGVuZGVuY3kg bG9hZCB3aWxsIGZhaWwsIGFuZCBsaWJqYXZhLnNvCisrICAgICAgICogd2lsbCB0aGVyZWZvcmUg ZmFpbCBhcyB3ZWxsLgorKyAgICAgICAqLworKyAgICAgIHJldHVybiBKTklfVFJVRTsKKysgICAg fQorKyNlbmRpZgorKworICNpZmRlZiBBSVgKKyAgICAgLyogV2UgYWx3YXlzIGhhdmUgdG8gc2V0 IHRoZSBMSUJQQVRIIG9uIEFJWCBiZWNhdXNlIGxkIGRvZXNuJ3Qgc3VwcG9ydCAkT1JJR0lOLiAq LworICAgICByZXR1cm4gSk5JX1RSVUU7CistLS0gYS9zcmMvamRrLmpkd3AuYWdlbnQvc2hhcmUv bmF0aXZlL2xpYmpkd3AvdXRpbC5oCisrKysgYi9zcmMvamRrLmpkd3AuYWdlbnQvc2hhcmUvbmF0 aXZlL2xpYmpkd3AvdXRpbC5oCitAQCAtMzUsMTUgKzM1LDE1IEBACisgI2lmZGVmIERFQlVHCisg ICAgIC8qIEp1c3QgdG8gbWFrZSBzdXJlIHRoZXNlIGludGVyZmFjZXMgYXJlIG5vdCB1c2VkIGhl cmUuICovCisgICAgICN1bmRlZiBmcmVlCistICAgICNkZWZpbmUgZnJlZShwKSBEbyBub3QgdXNl IHRoaXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIGZyZWUgZG9fbm90X3VzZV90aGlzX2ludGVy ZmFjZV9mcmVlCisgICAgICN1bmRlZiBtYWxsb2MKKy0gICAgI2RlZmluZSBtYWxsb2MocCkgRG8g bm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSBtYWxsb2MgZG9fbm90X3VzZV90 aGlzX2ludGVyZmFjZV9tYWxsb2MKKyAgICAgI3VuZGVmIGNhbGxvYworLSAgICAjZGVmaW5lIGNh bGxvYyhwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIGNhbGxvYyBk b19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX2NhbGxvYworICAgICAjdW5kZWYgcmVhbGxvYworLSAg ICAjZGVmaW5lIHJlYWxsb2MocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2Rl ZmluZSByZWFsbG9jIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2VfcmVhbGxvYworICAgICAjdW5k ZWYgc3RyZHVwCistICAgICNkZWZpbmUgc3RyZHVwKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZh Y2UuCisrICAgICNkZWZpbmUgc3RyZHVwIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2Vfc3RyZHVw CisgI2VuZGlmCisgCisgI2luY2x1ZGUgImxvZ19tZXNzYWdlcy5oIgpcIE5vIG5ld2xpbmUgYXQg ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE3L2ZpbGVzL211c2xfcGF0 Y2hlcy9wcGMucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsxNy9maWxlcy9tdXNsX3BhdGNoZXMvcHBj LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDMwNmQ1MDFl NGI4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTcvZmlsZXMvbXVzbF9wYXRj aGVzL3BwYy5wYXRjaApAQCAtMCwwICsxLDQ1IEBACitQYXRjaGVzIGZvciBtdXNsIHRha2VuIGZy b20gQWxwaW5lIGxpbnV4OiBodHRwczovL2dpdC5hbHBpbmVsaW51eC5vcmcvYXBvcnRzL2NvbW1p dC8/aWQ9OGExYWUxN2Q0YTlhZjU0Mjg1Yzc4OTFhNjgwNjIwZTdlMjRjNjI4MAorLS0tIG9sZC9z cmMvaG90c3BvdC9jcHUvcHBjL21hY3JvQXNzZW1ibGVyX3BwYy5jcHAKKysrKyBuZXcvc3JjL2hv dHNwb3QvY3B1L3BwYy9tYWNyb0Fzc2VtYmxlcl9wcGMuY3BwCitAQCAtNDcsNiArNDcsOCBAQAor ICNpbmNsdWRlICJvcHRvL2ludHJpbnNpY25vZGUuaHBwIgorICNlbmRpZgorIAorKyNpbmNsdWRl IDxhc20vcHRyYWNlLmg+CisrCisgI2lmZGVmIFBST0RVQ1QKKyAjZGVmaW5lIEJMT0NLX0NPTU1F TlQoc3RyKSAvLyBub3RoaW5nCisgI2Vsc2UKKy0tLSBvbGQvc3JjL2hvdHNwb3QvY3B1L3BwYy92 bV92ZXJzaW9uX3BwYy5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3QvY3B1L3BwYy92bV92ZXJzaW9u X3BwYy5jcHAKK0BAIC04NDUsNyArODQ1LDcgQEAgdm9pZCBWTV9WZXJzaW9uOjpkZXRlcm1pbmVf ZmVhdHVyZXMoKSB7CisgICB1bnNpZ25lZCBsb25nIGF1eHYgPSBnZXRhdXh2YWwoQVRfSFdDQVAy KTsKKyAKKyAgIGlmIChhdXh2ICYgUFBDX0ZFQVRVUkUyX0hUTV9OT1NDKSB7CistICAgIGlmIChh dXh2ICYgUFBDX0ZFQVRVUkUyX0hBU19IVE0pIHsKKysgICAgaWYgKGF1eHYgJiBQUENfRkVBVFVS RTJfSFRNKSB7CisgICAgICAgLy8gVE0gb24gUE9XRVI4IGFuZCBQT1dFUjkgaW4gY29tcGF0IG1v ZGUgKFZNKSBpcyBzdXBwb3J0ZWQgYnkgdGhlIEpWTS4KKyAgICAgICAvLyBUTSBvbiBQT1dFUjkg REQyLjEgTlYgKGJhcmVtZXRhbCkgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgSlZNIChUTSBvbgor ICAgICAgIC8vIFBPV0VSOSBERDIuMSBOViBoYXMgYSBmZXcgaXNzdWVzIHRoYXQgbmVlZCBhIGNv dXBsZSBvZiBmaXJtd2FyZQorLS0tIG9sZC9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfcHBjL29z X2xpbnV4X3BwYy5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3BwYy9vc19s aW51eF9wcGMuY3BwCitAQCAtNzUsNyArNzUsNyBAQAorICMgaW5jbHVkZSA8cHdkLmg+CisgIyBp bmNsdWRlIDxwb2xsLmg+CisgIyBpbmNsdWRlIDx1Y29udGV4dC5oPgorLQorKyMgaW5jbHVkZSA8 YXNtL3B0cmFjZS5oPgorIAorIGFkZHJlc3Mgb3M6OmN1cnJlbnRfc3RhY2tfcG9pbnRlcigpIHsK KyAgIGludHB0cl90KiBjc3A7CistLS0gb2xkL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9wcGMv dGhyZWFkX2xpbnV4X3BwYy5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3Bw Yy90aHJlYWRfbGludXhfcHBjLmNwcAorQEAgLTIzLDYgKzIzLDggQEAKKyAgKgorICAqLworIAor KyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisrCisgI2luY2x1ZGUgInByZWNvbXBpbGVkLmhwcCIK KyAjaW5jbHVkZSAicnVudGltZS9mcmFtZS5pbmxpbmUuaHBwIgorICNpbmNsdWRlICJydW50aW1l L3RocmVhZC5ocHAiCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxNy9maWxlcy9tdXNsX3Bh dGNoZXMveDg2LnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTcvZmlsZXMvbXVzbF9wYXRjaGVzL3g4 Ni5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjljNjRjMTg5 MDM2YQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE3L2ZpbGVzL211c2xfcGF0 Y2hlcy94ODYucGF0Y2gKQEAgLTAsMCArMSwxMzAgQEAKK1BhdGNoZXMgZm9yIG11c2wgdGFrZW4g ZnJvbSBBbHBpbmUgbGludXg6IGh0dHBzOi8vZ2l0LmFscGluZWxpbnV4Lm9yZy9hcG9ydHMvY29t bWl0Lz9pZD04YTFhZTE3ZDRhOWFmNTQyODVjNzg5MWE2ODA2MjBlN2UyNGM2MjgwCistLS0gb2xk L3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94ODYvb3NfbGludXhfeDg2LmNwcAorKysrIG5ldy9z cmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKK0BAIC05MCw2ICs5 MCwxMjYgQEAKKyAjZGVmaW5lIFNQRUxMX1JFR19GUCAiZWJwIgorICNlbmRpZiAvLyBBTUQ2NAor CisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrLy8gVGFrZW4gZnJvbSBnbGliYyAyLjI4Cisr Ly8gc291cmNlOiBodHRwczovL3NvdXJjZXdhcmUub3JnL2dpdC8/cD1nbGliYy5naXQ7YT1ibG9i O2Y9c3lzZGVwcy94ODYvZnB1X2NvbnRyb2wuaDtoPTRjYjk4YzU2NzliMjg5N2ZmNGU1ODI2ZDIy OGNiYTZiZTU4OWUyNGQ7aGI9M2MwM2JhY2EzN2ZkY2I1MmMzODgxZTY1M2NhMzkyYmJhN2E5OWMy YgorKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKyNpZm5kZWYgQU1ENjQKKysvKiBGUFUgY29u dHJvbCB3b3JkIGJpdHMuICB4ODYgdmVyc2lvbi4KKysgICBDb3B5cmlnaHQgKEMpIDE5OTMtMjAx OCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysgICBUaGlzIGZpbGUgaXMgcGFydCBv ZiB0aGUgR05VIEMgTGlicmFyeS4KKysgICBDb250cmlidXRlZCBieSBPbGFmIEZsZWJiZS4KKysK KysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IKKysgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg TGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisrICAgdmVyc2lvbiAyLjEgb2YgdGhlIExp Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhl IEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisrICAgTGVzc2VyIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5z ZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorKyAgIDxodHRwOi8v d3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2lmbmRlZiBfRlBVX0NPTlRST0xfSAor KyNkZWZpbmUgX0ZQVV9DT05UUk9MX0gJMQorKworKy8qIE5vdGUgdGhhdCB0aGlzIGZpbGUgc2V0 cyBvbiB4ODYtNjQgb25seSB0aGUgeDg3IEZQVSwgaXQgZG9lcyBub3QKKysgICB0b3VjaCB0aGUg U1NFIHVuaXQuICAqLworKworKy8qIEhlcmUgaXMgdGhlIGRpcnR5IHBhcnQuIFNldCB1cCB5b3Vy IDM4NyB0aHJvdWdoIHRoZSBjb250cm9sIHdvcmQKKysgKiAoY3cpIHJlZ2lzdGVyLgorKyAqCisr ICogICAgIDE1LTEzICAgIDEyICAxMS0xMCAgOS04ICAgICA3LTYgICAgIDUgICAgNCAgICAzICAg IDIgICAgMSAgICAwCisrICogfCByZXNlcnZlZCB8IElDIHwgUkMgIHwgUEMgfCByZXNlcnZlZCB8 IFBNIHwgVU0gfCBPTSB8IFpNIHwgRE0gfCBJTQorKyAqCisrICogSU06IEludmFsaWQgb3BlcmF0 aW9uIG1hc2sKKysgKiBETTogRGVub3JtYWxpemVkIG9wZXJhbmQgbWFzaworKyAqIFpNOiBaZXJv LWRpdmlkZSBtYXNrCisrICogT006IE92ZXJmbG93IG1hc2sKKysgKiBVTTogVW5kZXJmbG93IG1h c2sKKysgKiBQTTogUHJlY2lzaW9uIChpbmV4YWN0IHJlc3VsdCkgbWFzaworKyAqCisrICogTWFz ayBiaXQgaXMgMSBtZWFucyBubyBpbnRlcnJ1cHQuCisrICoKKysgKiBQQzogUHJlY2lzaW9uIGNv bnRyb2wKKysgKiAxMSAtIHJvdW5kIHRvIGV4dGVuZGVkIHByZWNpc2lvbgorKyAqIDEwIC0gcm91 bmQgdG8gZG91YmxlIHByZWNpc2lvbgorKyAqIDAwIC0gcm91bmQgdG8gc2luZ2xlIHByZWNpc2lv bgorKyAqCisrICogUkM6IFJvdW5kaW5nIGNvbnRyb2wKKysgKiAwMCAtIHJvdW5kaW5nIHRvIG5l YXJlc3QKKysgKiAwMSAtIHJvdW5kaW5nIGRvd24gKHRvd2FyZCAtIGluZmluaXR5KQorKyAqIDEw IC0gcm91bmRpbmcgdXAgKHRvd2FyZCArIGluZmluaXR5KQorKyAqIDExIC0gcm91bmRpbmcgdG93 YXJkIHplcm8KKysgKgorKyAqIElDOiBJbmZpbml0eSBjb250cm9sCisrICogVGhhdCBpcyBmb3Ig ODA4NyBhbmQgODAyODcgb25seS4KKysgKgorKyAqIFRoZSBoYXJkd2FyZSBkZWZhdWx0IGlzIDB4 MDM3ZiB3aGljaCB3ZSB1c2UuCisrICovCisrCisrI2luY2x1ZGUgPGZlYXR1cmVzLmg+CisrCisr LyogbWFza2luZyBvZiBpbnRlcnJ1cHRzICovCisrI2RlZmluZSBfRlBVX01BU0tfSU0gIDB4MDEK KysjZGVmaW5lIF9GUFVfTUFTS19ETSAgMHgwMgorKyNkZWZpbmUgX0ZQVV9NQVNLX1pNICAweDA0 CisrI2RlZmluZSBfRlBVX01BU0tfT00gIDB4MDgKKysjZGVmaW5lIF9GUFVfTUFTS19VTSAgMHgx MAorKyNkZWZpbmUgX0ZQVV9NQVNLX1BNICAweDIwCisrCisrLyogcHJlY2lzaW9uIGNvbnRyb2wg Ki8KKysjZGVmaW5lIF9GUFVfRVhURU5ERUQgMHgzMDAJLyogbGlibSByZXF1aXJlcyBkb3VibGUg ZXh0ZW5kZWQgcHJlY2lzaW9uLiAgKi8KKysjZGVmaW5lIF9GUFVfRE9VQkxFICAgMHgyMDAKKysj ZGVmaW5lIF9GUFVfU0lOR0xFICAgMHgwCisrCisrLyogcm91bmRpbmcgY29udHJvbCAqLworKyNk ZWZpbmUgX0ZQVV9SQ19ORUFSRVNUIDB4MCAgICAvKiBSRUNPTU1FTkRFRCAqLworKyNkZWZpbmUg X0ZQVV9SQ19ET1dOICAgIDB4NDAwCisrI2RlZmluZSBfRlBVX1JDX1VQICAgICAgMHg4MDAKKysj ZGVmaW5lIF9GUFVfUkNfWkVSTyAgICAweEMwMAorKworKyNkZWZpbmUgX0ZQVV9SRVNFUlZFRCAw eEYwQzAgIC8qIFJlc2VydmVkIGJpdHMgaW4gY3cgKi8KKysKKysKKysvKiBUaGUgZmRsaWJtIGNv ZGUgcmVxdWlyZXMgc3RyaWN0IElFRUUgZG91YmxlIHByZWNpc2lvbiBhcml0aG1ldGljLAorKyAg IGFuZCBubyBpbnRlcnJ1cHRzIGZvciBleGNlcHRpb25zLCByb3VuZGluZyB0byBuZWFyZXN0LiAg Ki8KKysKKysjZGVmaW5lIF9GUFVfREVGQVVMVCAgMHgwMzdmCisrCisrLyogSUVFRTogIHNhbWUg YXMgYWJvdmUuICAqLworKyNkZWZpbmUgX0ZQVV9JRUVFICAgICAweDAzN2YKKysKKysvKiBUeXBl IG9mIHRoZSBjb250cm9sIHdvcmQuICAqLworK3R5cGVkZWYgdW5zaWduZWQgaW50IGZwdV9jb250 cm9sX3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX0hJX18pKSk7CisrCisrLyogTWFjcm9z IGZvciBhY2Nlc3NpbmcgdGhlIGhhcmR3YXJlIGNvbnRyb2wgd29yZC4gICIqJiIgaXMgdXNlZCB0 bworKyAgIHdvcmsgYXJvdW5kIGEgYnVnIGluIG9sZGVyIHZlcnNpb25zIG9mIEdDQy4gIF9fdm9s YXRpbGVfXyBpcyB1c2VkCisrICAgdG8gc3VwcG9ydCBjb21iaW5hdGlvbiBvZiB3cml0aW5nIHRo ZSBjb250cm9sIHJlZ2lzdGVyIGFuZCByZWFkaW5nCisrICAgaXQgYmFjay4gIFdpdGhvdXQgX192 b2xhdGlsZV9fLCB0aGUgb2xkIHZhbHVlIG1heSBiZSB1c2VkIGZvciByZWFkaW5nCisrICAgYmFj ayB1bmRlciBjb21waWxlciBvcHRpbWl6YXRpb24uCisrCisrICAgTm90ZSB0aGF0IHRoZSB1c2Ug b2YgdGhlc2UgbWFjcm9zIGlzIG5vdCBzdWZmaWNpZW50IGFueW1vcmUgd2l0aAorKyAgIHJlY2Vu dCBoYXJkd2FyZSBub3Igb24geDg2LTY0LiAgU29tZSBmbG9hdGluZyBwb2ludCBvcGVyYXRpb25z IGFyZQorKyAgIGV4ZWN1dGVkIGluIHRoZSBTU0UvU1NFMiBlbmdpbmVzIHdoaWNoIGhhdmUgdGhl aXIgb3duIGNvbnRyb2wgYW5kCisrICAgc3RhdHVzIHJlZ2lzdGVyLiAgKi8KKysjZGVmaW5lIF9G UFVfR0VUQ1coY3cpIF9fYXNtX18gX192b2xhdGlsZV9fICgiZm5zdGN3ICUwIiA6ICI9bSIgKCom Y3cpKQorKyNkZWZpbmUgX0ZQVV9TRVRDVyhjdykgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJmbGRj dyAlMCIgOiA6ICJtIiAoKiZjdykpCisrCisrLyogRGVmYXVsdCBjb250cm9sIHdvcmQgc2V0IGF0 IHN0YXJ0dXAuICAqLworK2V4dGVybiBmcHVfY29udHJvbF90IF9fZnB1X2NvbnRyb2w7CisrCisr I2VuZGlmCS8qIGZwdV9jb250cm9sLmggKi8KKysKKysjZW5kaWYgLy8gQU1ENjQKKysvLyA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysvLyA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKysKKyBhZGRyZXNzIG9zOjpjdXJyZW50X3N0YWNrX3BvaW50ZXIoKSB7 CisgI2lmZGVmIFNQQVJDX1dPUktTCisgICByZWdpc3RlciB2b2lkICplc3A7CmRpZmYgLS1naXQg YS9zcmNwa2dzL29wZW5qZGsxNy90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3BlbmpkazE3L3RlbXBsYXRl Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYmFjM2Q1MDJkNzgzCi0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTcvdGVtcGxhdGUKQEAgLTAsMCArMSwy MTAgQEAKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ29wZW5qZGsxNycKKyMgVE9ETzogc3BsaXQgb2Zm IC1qcmUgYW5kIC1qcmUtaGVhZGxlc3Mgc3VicGFja2FnZXMKK19qYXZhX3Zlcj0xNworX2phdmFf bWluX3Zlcj0wCitfamF2YV9zZWNfdmVyPTEKK19qZGtfdXBkYXRlPTEyCitfamRrX2hvbWU9InVz ci9saWIvanZtL29wZW5qZGske19qYXZhX3Zlcn0iCitfYmFzZV92ZXJzaW9uPSIke19qYXZhX3Zl cn0uJHtfamF2YV9taW5fdmVyfS4ke19qYXZhX3NlY192ZXJ9IgorCitwa2duYW1lPW9wZW5qZGsx NwordmVyc2lvbj0iJHtfYmFzZV92ZXJzaW9ufSske19qZGtfdXBkYXRlfSIKK3JldmlzaW9uPTEK K3dya3NyYz0iamRrJHtfamF2YV92ZXJ9dS1qZGstJHtfYmFzZV92ZXJzaW9ufS0ke19qZGtfdXBk YXRlfSIKK2J1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKK2NvbmZpZ3VyZV9hcmdzPSItLWRpc2Fi bGUtd2FybmluZ3MtYXMtZXJyb3JzCisgLS1lbmFibGUtdW5saW1pdGVkLWNyeXB0bworIC0td2l0 aC16bGliPXN5c3RlbQorIC0td2l0aC1saWJqcGVnPXN5c3RlbQorIC0td2l0aC1naWZsaWI9c3lz dGVtCisgLS13aXRoLWxpYnBuZz1zeXN0ZW0KKyAtLXdpdGgtbGNtcz1zeXN0ZW0KKyAtLXdpdGgt anRyZWc9bm8KKyAtLXdpdGgtZ3Rlc3Q9JHtYQlBTX0JVSUxERElSfS9nb29nbGV0ZXN0LXJlbGVh c2UtMS44LjEKKyAtLXdpdGgtdmVyc2lvbi1idWlsZD0ke19qYXZhX3Zlcn0KKyAtLXdpdGgtam9i cz0ke1hCUFNfT1JJR19NQUtFSk9CU30KKyAtLXdpdGgtdmVuZG9yLW5hbWU9Vm9pZAorIC0td2l0 aC12ZW5kb3ItdXJsPWh0dHBzOi8vdm9pZGxpbnV4Lm9yZy8KKyAtLXdpdGgtdmVuZG9yLWJ1Zy11 cmw9aHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9pc3N1ZXMKKyAt LXdpdGgtdmVuZG9yLXZtLWJ1Zy11cmw9aHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9p ZC1wYWNrYWdlcy9pc3N1ZXMiCittYWtlX2J1aWxkX2FyZ3M9ImltYWdlcyAkKHZvcHRfaWYgZG9j cyBkb2NzKSIKK21ha2VfaW5zdGFsbF9hcmdzPSJJTlNUQUxMX1BSRUZJWD1cIiR7REVTVERJUn0v dXNyL2xpYlwiIgorbWFrZV9jaGVja190YXJnZXQ9InRlc3QtaG90c3BvdC1ndGVzdCIKK2hvc3Rt YWtlZGVwZW5kcz0icGtnLWNvbmZpZyBhdXRvbWFrZSBhdXRvY29uZiBjcGlvIHRhciB1bnppcCB6 aXAgY2EtY2VydGlmaWNhdGVzCisgbGlicmVzc2wgemxpYi1kZXZlbCB3aGljaCBtYWtlLWNhIgor bWFrZWRlcGVuZHM9ImxpYlhyZW5kZXItZGV2ZWwgbGliWHRzdC1kZXZlbCBsaWJYdC1kZXZlbCBs aWJYcmFuZHItZGV2ZWwKKyBnaWZsaWItZGV2ZWwgbGlianBlZy10dXJiby1kZXZlbCBjdXBzLWRl dmVsIGZyZWV0eXBlLWRldmVsIGFsc2EtbGliLWRldmVsCisgZm9udGNvbmZpZy1kZXZlbCB6bGli LWRldmVsIGxjbXMyLWRldmVsIgorcHJvdmlkZXM9ImphdmEtZW52aXJvbm1lbnQtJHt2ZXJzaW9u fV8xIGphdmEtcnVudGltZS0ke3ZlcnNpb259XzEiCitzaG9ydF9kZXNjPSJPcGVuSkRLIEphdmEg RGV2ZWxvcG1lbnQgS2l0ICh2ZXJzaW9uICR7X2phdmFfdmVyfSkiCittYWludGFpbmVyPSJjbGFz c2FiYnlhbXAgPGRldkBrYjYuZWU+IgorbGljZW5zZT0iR1BMLTIuMC1vbmx5IFdJVEggQ2xhc3Nw YXRoLWV4Y2VwdGlvbi0yLjAiCitob21lcGFnZT0iaHR0cDovL29wZW5qZGsuamF2YS5uZXQvIgor ZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vb3Blbmpkay9qZGske19qYXZhX3Zlcn11L2Fy Y2hpdmUvamRrLSR7dmVyc2lvbn0udGFyLmd6CisgaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9n b29nbGV0ZXN0L2FyY2hpdmUvcmVmcy90YWdzL3JlbGVhc2UtMS44LjEudGFyLmd6IgorY2hlY2tz dW09IjhjMDc2MjAzYTZmODVhYjkxNmIzZTU0ZGUxOTkyYmNiY2M1ZmZlNTgwYzUyYjFhYzhkNTJj YTdhZmI5ZjAyZDEKKyA5YmYxZmU1MTgyYTYwNGI0MTM1ZWRjMWE0MjVhZTM1NmM5YWQxNWU5YjIz ZjlmMTJhMDJlODAxODRjM2EyNDljIgorc2hsaWJfcHJvdmlkZXM9ImxpYmF3dC5zbyBsaWJhd3Rf eGF3dC5zbyBsaWJqYXZhLnNvIGxpYmpsaS5zbyBsaWJqdm0uc28gbGliamF3dC5zbyIKKworIyBC dWlsZCBpcyBzdGlsbCBwYXJhbGxlbCwgYnV0IGRvbid0IHVzZSAtak4uCitkaXNhYmxlX3BhcmFs bGVsX2J1aWxkPXllcworYnVpbGRfb3B0aW9ucz0iZG9jcyIKKworIyBubyBob3RzcG90IEpJVCBm b3IgcHBjMzIKK2Nhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCXBwYzY0KikgOzsKKwlw cGMqKSBfdXNlX3plcm89eWVzIDs7Citlc2FjCisKK2lmIFsgLW4gIiRfdXNlX3plcm8iIF07IHRo ZW4KKwltYWtlZGVwZW5kcys9IiBsaWJmZmktZGV2ZWwiCisJY29uZmlndXJlX2FyZ3MrPSIgLS13 aXRoLWp2bS12YXJpYW50cz16ZXJvIgorCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgor CXBwYyopIGNvbmZpZ3VyZV9hcmdzKz0iIC0td2l0aC1ib290LWpkay1qdm1hcmdzPS1YWDpUaHJl YWRTdGFja1NpemU9MjU2MCI7OworCWVzYWMKK2ZpCitjb25maWd1cmVfYXJncys9IiAtLXdpdGgt Ym9vdC1qZGstanZtYXJncz0tWGxvZzpkaXNhYmxlIgorCitjYXNlICIkWEJQU19UQVJHRVRfTElC QyIgaW4KKwlnbGliYykgYnVpbGRfb3B0aW9uc19kZWZhdWx0Kz0iIGRvY3MiOzsKK2VzYWMKKwor aWYgWyAhICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KKwlob3N0bWFrZWRlcGVuZHMrPSIgb3Blbmpk azE2LWJvb3RzdHJhcCIKKwljb25maWd1cmVfYXJncys9IiAtLXdpdGgtYm9vdC1qZGs9L3Vzci9s aWIvanZtL29wZW5qZGsxNiIKK2Vsc2UKKwlob3N0bWFrZWRlcGVuZHMrPSIgb3BlbmpkazE3Igor CWNvbmZpZ3VyZV9hcmdzKz0iIC0td2l0aC1ib290LWpkaz0vdXNyL2xpYi9qdm0vb3BlbmpkazE3 IgorZmkKKworYWx0ZXJuYXRpdmVzPSIKKyBqYXZhOi91c3IvYmluL2phdmE6LyR7X2pka19ob21l fS9iaW4vamF2YQorIGphdmE6L3Vzci9iaW4vampzOi8ke19qZGtfaG9tZX0vYmluL2pqcworIGph dmE6L3Vzci9iaW4va2V5dG9vbDovJHtfamRrX2hvbWV9L2Jpbi9rZXl0b29sCisgamF2YTovdXNy L2Jpbi9wYWNrMjAwOi8ke19qZGtfaG9tZX0vYmluL3BhY2syMDAKKyBqYXZhOi91c3IvYmluL3Jt aWQ6LyR7X2pka19ob21lfS9iaW4vcm1pZAorIGphdmE6L3Vzci9iaW4vcm1pcmVnaXN0cnk6LyR7 X2pka19ob21lfS9iaW4vcm1pcmVnaXN0cnkKKyBqYXZhOi91c3IvYmluL3VucGFjazIwMDovJHtf amRrX2hvbWV9L2Jpbi91bnBhY2syMDAKKworIGpkazovdXNyL2Jpbi9qYW90YzovJHtfamRrX2hv bWV9L2Jpbi9qYW90YworIGpkazovdXNyL2Jpbi9qYXI6LyR7X2pka19ob21lfS9iaW4vamFyCisg amRrOi91c3IvYmluL2phcnNpZ25lcjovJHtfamRrX2hvbWV9L2Jpbi9qYXJzaWduZXIKKyBqZGs6 L3Vzci9iaW4vamF2YTovJHtfamRrX2hvbWV9L2Jpbi9qYXZhCisgamRrOi91c3IvYmluL2phdmFj Oi8ke19qZGtfaG9tZX0vYmluL2phdmFjCisgamRrOi91c3IvYmluL2phdmFkb2M6LyR7X2pka19o b21lfS9iaW4vamF2YWRvYworIGpkazovdXNyL2Jpbi9qYXZhcDovJHtfamRrX2hvbWV9L2Jpbi9q YXZhcAorIGpkazovdXNyL2Jpbi9qY21kOi8ke19qZGtfaG9tZX0vYmluL2pjbWQKKyBqZGs6L3Vz ci9iaW4vamNvbnNvbGU6LyR7X2pka19ob21lfS9iaW4vamNvbnNvbGUKKyBqZGs6L3Vzci9iaW4v amRiOi8ke19qZGtfaG9tZX0vYmluL2pkYgorIGpkazovdXNyL2Jpbi9qZGVwcnNjYW46LyR7X2pk a19ob21lfS9iaW4vamRlcHJzY2FuCisgamRrOi91c3IvYmluL2pkZXBzOi8ke19qZGtfaG9tZX0v YmluL2pkZXBzCisgamRrOi91c3IvYmluL2poc2RiOi8ke19qZGtfaG9tZX0vYmluL2poc2RiCisg amRrOi91c3IvYmluL2ppbWFnZTovJHtfamRrX2hvbWV9L2Jpbi9qaW1hZ2UKKyBqZGs6L3Vzci9i aW4vamluZm86LyR7X2pka19ob21lfS9iaW4vamluZm8KKyBqZGs6L3Vzci9iaW4vampzOi8ke19q ZGtfaG9tZX0vYmluL2pqcworIGpkazovdXNyL2Jpbi9qbGluazovJHtfamRrX2hvbWV9L2Jpbi9q bGluaworIGpkazovdXNyL2Jpbi9qbWFwOi8ke19qZGtfaG9tZX0vYmluL2ptYXAKKyBqZGs6L3Vz ci9iaW4vam1vZDovJHtfamRrX2hvbWV9L2Jpbi9qbW9kCisgamRrOi91c3IvYmluL2pwczovJHtf amRrX2hvbWV9L2Jpbi9qcHMKKyBqZGs6L3Vzci9iaW4vanJ1bnNjcmlwdDovJHtfamRrX2hvbWV9 L2Jpbi9qcnVuc2NyaXB0CisgamRrOi91c3IvYmluL2pzaGVsbDovJHtfamRrX2hvbWV9L2Jpbi9q c2hlbGwKKyBqZGs6L3Vzci9iaW4vanN0YWNrOi8ke19qZGtfaG9tZX0vYmluL2pzdGFjaworIGpk azovdXNyL2Jpbi9qc3RhdDovJHtfamRrX2hvbWV9L2Jpbi9qc3RhdAorIGpkazovdXNyL2Jpbi9q c3RhdGQ6LyR7X2pka19ob21lfS9iaW4vanN0YXRkCisgamRrOi91c3IvYmluL2tleXRvb2w6LyR7 X2pka19ob21lfS9iaW4va2V5dG9vbAorIGpkazovdXNyL2Jpbi9wYWNrMjAwOi8ke19qZGtfaG9t ZX0vYmluL3BhY2syMDAKKyBqZGs6L3Vzci9iaW4vcm1pYzovJHtfamRrX2hvbWV9L2Jpbi9ybWlj CisgamRrOi91c3IvYmluL3JtaWQ6LyR7X2pka19ob21lfS9iaW4vcm1pZAorIGpkazovdXNyL2Jp bi9ybWlyZWdpc3RyeTovJHtfamRrX2hvbWV9L2Jpbi9ybWlyZWdpc3RyeQorIGpkazovdXNyL2Jp bi9zZXJpYWx2ZXI6LyR7X2pka19ob21lfS9iaW4vc2VyaWFsdmVyCisgamRrOi91c3IvYmluL3Vu cGFjazIwMDovJHtfamRrX2hvbWV9L2Jpbi91bnBhY2syMDAKKyIKKworcG9zdF9leHRyYWN0KCkg eworCWNobW9kICt4IGNvbmZpZ3VyZQorCWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNs IiBdOyB0aGVuCisJCXJtIC1yIHNyYy9qZGsuaG90c3BvdC5hZ2VudAorCWZpCit9CisKK3Bvc3Rf cGF0Y2goKSB7CisJaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gIm11c2wiIF07IHRoZW4KKwkJ Zm9yIGYgaW4gIiR7RklMRVNESVJ9Ii9tdXNsX3BhdGNoZXMvKi5wYXRjaDsgZG8KKwkJCW1zZ19u b3JtYWwgIkFwcGx5aW5nICR7ZiMkRklMRVNESVIvfVxuIgorCQkJcGF0Y2ggLWxOcDEgLWkgIiRm IgorCQlkb25lCisJZmkKK30KKworZG9fY29uZmlndXJlKCkgeworCUNGTEFHUz0ke0NGTEFHUy8t RF9GT1JUSUZZX1NPVVJDRT0yL30KKwlDWFhGTEFHUz0ke0NYWEZMQUdTLy1EX0ZPUlRJRllfU09V UkNFPTIvfQorCisJIyBmb3JjZSBFTEZ2MiBmb3IgcHBjNjQganVzdCBpbiBjYXNlCisJY2FzZSAi JFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJCXBwYzY0KikKKwkJCUNGTEFHUys9IiAtREFCSV9F TEZ2MiIKKwkJCUNYWEZMQUdTKz0iIC1EQUJJX0VMRnYyIgorCQkJOzsKKwllc2FjCisKKwljb25m aWd1cmVfYXJncz0ke2NvbmZpZ3VyZV9hcmdzLy0td2l0aC1saWJ0b29sLXN5c3Jvb3Q9JFhCUFNf Q1JPU1NfQkFTRX0KKwlpZiBbICIkWEJQU19DQ0FDSEUiIF0gJiYgWyAteiAiJENST1NTX0JVSUxE IiBdOyB0aGVuCisJCWNvbmZpZ3VyZV9hcmdzKz0iIC0tZW5hYmxlLWNjYWNoZSIKKwkJQ0M9Ii91 c3IvYmluL2NjIgorCQlDWFg9Ii91c3IvYmluL2MrKyIKKwlmaQorCS4vY29uZmlndXJlICR7Y29u ZmlndXJlX2FyZ3N9IFwKKwkJLS13aXRoLWV4dHJhLWNmbGFncz0iJENGTEFHUyIgXAorCQktLXdp dGgtZXh0cmEtY3h4ZmxhZ3M9IiRDWFhGTEFHUyIgXAorCQktLXdpdGgtZXh0cmEtbGRmbGFncz0i JExERkxBR1MiIFwKKwkJUkVBREVMRj0kUkVBREVMRiBBUj0kQVIgU1RSSVA9JFNUUklQIE5NPSRO TSBcCisJCU9CSkRVTVA9JE9CSkRVTVAgT0JKQ09QWT0kT0JKQ09QWQorfQorCitwb3N0X2luc3Rh bGwoKSB7CisJcm0gLXJmICR7REVTVERJUn0vdXNyL2xpYi9iaW4KKwltdiAke0RFU1RESVJ9L3Vz ci9saWIvanZtL29wZW5qZGstJHtfYmFzZV92ZXJzaW9ufS1pbnRlcm5hbCAke0RFU1RESVJ9LyRf amRrX2hvbWUKKwl2bWtkaXIgJF9qZGtfaG9tZS9saWIvc2VjdXJpdHkKKwltYWtlLWNhIC1nIC1m IC0tZGVzdGRpciAiJHtQV0R9L2NhIiAtayAiJHtERVNURElSfS8kX2pka19ob21lL2Jpbi9rZXl0 b29sIgorCW12IC4vY2EvZXRjL3BraS90bHMvamF2YS9jYWNlcnRzICR7REVTVERJUn0vJF9qZGtf aG9tZS9saWIvc2VjdXJpdHkvCisJY2htb2QgLVIgdWdvK3J3IC4vY2EKKwlybSAtcmYgLi9jYQor CXZta2RpciBldGMvcHJvZmlsZS5kCisJY2F0ID4+JHtERVNURElSfS9ldGMvcHJvZmlsZS5kLzEw X29wZW5qZGsxNy5zaCA8PC1FT0YKKwlleHBvcnQgSkFWQV9IT01FPVwke0pBVkFfSE9NRT0vJF9q ZGtfaG9tZX0KKwlFT0YKKwl2bGljZW5zZSBBU1NFTUJMWV9FWENFUFRJT04KKwl2bGljZW5zZSBM SUNFTlNFCit9CisKK2RvX2NsZWFuKCkgeworCSMgY2xlYW4gdXAgZ3Rlc3QKKwlybSAtcmYgJHtY QlBTX0JVSUxERElSfS9nb29nbGV0ZXN0LXJlbGVhc2UtKgorfQorCitvcGVuamRrMTctZG9jX3Bh Y2thZ2UoKSB7CisJbm9zdHJpcD15ZXMKKwlub3ZlcmlmeXJkZXBzPXllcworCW5vc2hsaWJwcm92 aWRlcz15ZXMKKwlzaG9ydF9kZXNjKz0iIC0gZG9jdW1lbnRhdGlvbiIKKwlwa2dfaW5zdGFsbCgp IHsKKwkJY2QgJHt3cmtzcmN9CisJCWlmIFsgIiRidWlsZF9vcHRpb25fZG9jcyIgXTsgdGhlbgor CQkJbG9jYWwgX2RvY2Rpcj11c3Ivc2hhcmUvZG9jL29wZW5qZGskX2phdmFfdmVyCisJCQl2bWtk aXIgJF9kb2NkaXIKKwkJCWNwIC1hIGJ1aWxkL2xpbnV4LSovaW1hZ2VzL2RvY3MvKiAke1BLR0RF U1RESVJ9LyRfZG9jZGlyCisJCWZpCisJCXZtb3ZlICRfamRrX2hvbWUvbWFuL21hbjEKKwl9Cit9 CisKK29wZW5qZGsxNy1zcmNfcGFja2FnZSgpIHsKKwlub3N0cmlwPXllcworCW5vdmVyaWZ5cmRl cHM9eWVzCisJbm9zaGxpYnByb3ZpZGVzPXllcworCXNob3J0X2Rlc2MrPSIgLSBzb3VyY2UgY29k ZSIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgIiRfamRrX2hvbWUvbGliL3NyYy56aXAiCisJ fQorfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTcvdXBkYXRlIGIvc3JjcGtncy9vcGVu amRrMTcvdXBkYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYmFh MTNhMjJmMzU4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTcvdXBkYXRlCkBA IC0wLDAgKzEgQEAKK3BhdHRlcm49J2pkay1cSzE3XC5bXGQuK10rJwpcIE5vIG5ld2xpbmUgYXQg ZW5kIG9mIGZpbGUKCkZyb20gNjQ2NmZhNDNmNjFiNThjZDMwNjUxYzUwZmI4Zjg2M2QxMmIwM2E4 MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogY2xhc3NhYmJ5YW1wIDxkZXZAa2I2LmVl PgpEYXRlOiBUdWUsIDEgRmViIDIwMjIgMTg6MDA6MzcgLTA1MDAKU3ViamVjdDogW1BBVENIIDgv OF0gb3BlbmpkazE3OiBURU1QCgotLS0KIHNyY3BrZ3Mvb3BlbmpkazEyLWJvb3RzdHJhcC90ZW1w bGF0ZSB8IDExICsrKystCiBzcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvdGVtcGxhdGUgfCAz MCArKysrKysrKysrKystCiBzcmNwa2dzL29wZW5qZGsxNC1ib290c3RyYXAvdGVtcGxhdGUgfCAx MSArKysrLQogc3JjcGtncy9vcGVuamRrMTUtYm9vdHN0cmFwL3RlbXBsYXRlIHwgMTEgKysrKy0K IHNyY3BrZ3Mvb3BlbmpkazE2LWJvb3RzdHJhcC90ZW1wbGF0ZSB8IDExICsrKystCiBzcmNwa2dz L29wZW5qZGsxNy1qcmUgICAgICAgICAgICAgICAgfCAgMSArCiBzcmNwa2dzL29wZW5qZGsxNy90 ZW1wbGF0ZSAgICAgICAgICAgfCA2NiArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCiA3IGZp bGVzIGNoYW5nZWQsIDExMCBpbnNlcnRpb25zKCspLCAzMSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBt b2RlIDEyMDAwMCBzcmNwa2dzL29wZW5qZGsxNy1qcmUKCmRpZmYgLS1naXQgYS9zcmNwa2dzL29w ZW5qZGsxMi1ib290c3RyYXAvdGVtcGxhdGUgYi9zcmNwa2dzL29wZW5qZGsxMi1ib290c3RyYXAv dGVtcGxhdGUKaW5kZXggODEzYTY3YWM1MGEzLi5lZWI5MjhhZjhhYzEgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3Mvb3BlbmpkazEyLWJvb3RzdHJhcC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL29wZW5qZGsx Mi1ib290c3RyYXAvdGVtcGxhdGUKQEAgLTIwLDggKzIwLDExIEBAIGNvbmZpZ3VyZV9hcmdzPSIt LWRpc2FibGUtd2FybmluZ3MtYXMtZXJyb3JzCiAgLS13aXRoLWxpYnBuZz1zeXN0ZW0KICAtLXdp dGgtbGNtcz1zeXN0ZW0KICAtLXdpdGgtanRyZWc9bm8KLSAtLXdpdGgtdmVyc2lvbi1idWlsZD0k e19qYXZhX3Zlcn0KKyAtLXdpdGgtZGVidWctbGV2ZWw9cmVsZWFzZQogIC0td2l0aC1qb2JzPSR7 WEJQU19PUklHX01BS0VKT0JTfQorIC0td2l0aC12ZXJzaW9uLXByZT0KKyAtLXdpdGgtdmVyc2lv bi1idWlsZD0ke19qZGtfdXBkYXRlfQorIC0td2l0aC12ZXJzaW9uLW9wdD12b2lkLXIke3Jldmlz aW9ufQogIC0td2l0aC12ZW5kb3ItbmFtZT1Wb2lkCiAgLS13aXRoLXZlbmRvci11cmw9aHR0cHM6 Ly92b2lkbGludXgub3JnLwogIC0td2l0aC12ZW5kb3ItYnVnLXVybD1odHRwczovL2dpdGh1Yi5j b20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2lzc3VlcwpAQCAtNjEsNiArNjQsMTAgQEAgaWYg WyAtbiAiJF91c2VfemVybyIgXTsgdGhlbgogCWVzYWMKIGZpCiAKK2lmIFsgLW4gIiRYQlBTX0RF QlVHX1BLR1MiIF07IHRoZW4KKwljb25maWd1cmVfYXJncys9IiAtLXdpdGgtbmF0aXZlLWRlYnVn LXN5bWJvbHM9aW50ZXJuYWwiCitmaQorCiBwb3N0X2V4dHJhY3QoKSB7CiAJY2htb2QgK3ggY29u ZmlndXJlCiAKQEAgLTEwOSw3ICsxMTYsNyBAQCBkb19jb25maWd1cmUoKSB7CiB9CiAKIHBvc3Rf aW5zdGFsbCgpIHsKLQltdiAke0RFU1RESVJ9L3Vzci9saWIvanZtL29wZW5qZGstJHtfYmFzZV92 ZXJzaW9ufS1pbnRlcm5hbCAke0RFU1RESVJ9LyRfamRrX2hvbWUKKwltdiAke0RFU1RESVJ9L3Vz ci9saWIvanZtL29wZW5qZGstJHtfYmFzZV92ZXJzaW9ufSAke0RFU1RESVJ9LyRfamRrX2hvbWUK IAlybSAtcmYgJHtERVNURElSfS91c3IvbGliL2JpbgogCXJtIC1mICRERVNURElSLyRfamRrX2hv bWUvbGliL3NyYy56aXAKIAl2bGljZW5zZSBBU1NFTUJMWV9FWENFUFRJT04KZGlmZiAtLWdpdCBh L3NyY3BrZ3Mvb3BlbmpkazEzLWJvb3RzdHJhcC90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3BlbmpkazEz LWJvb3RzdHJhcC90ZW1wbGF0ZQppbmRleCAwMWM1YzQ1ODgzZTguLmZhYzcwNDNiNjQzOSAxMDA2 NDQKLS0tIGEvc3JjcGtncy9vcGVuamRrMTMtYm9vdHN0cmFwL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3Mvb3BlbmpkazEzLWJvb3RzdHJhcC90ZW1wbGF0ZQpAQCAtMjAsOCArMjAsMTEgQEAgY29uZmln dXJlX2FyZ3M9Ii0tZGlzYWJsZS13YXJuaW5ncy1hcy1lcnJvcnMKICAtLXdpdGgtbGlicG5nPXN5 c3RlbQogIC0td2l0aC1sY21zPXN5c3RlbQogIC0td2l0aC1qdHJlZz1ubwotIC0td2l0aC12ZXJz aW9uLWJ1aWxkPSR7X2phdmFfdmVyfQorIC0td2l0aC1kZWJ1Zy1sZXZlbD1yZWxlYXNlCiAgLS13 aXRoLWpvYnM9JHtYQlBTX09SSUdfTUFLRUpPQlN9CisgLS13aXRoLXZlcnNpb24tcHJlPQorIC0t d2l0aC12ZXJzaW9uLWJ1aWxkPSR7X2pka191cGRhdGV9CisgLS13aXRoLXZlcnNpb24tb3B0PXZv aWQtciR7cmV2aXNpb259CiAgLS13aXRoLXZlbmRvci1uYW1lPVZvaWQKICAtLXdpdGgtdmVuZG9y LXVybD1odHRwczovL3ZvaWRsaW51eC5vcmcvCiAgLS13aXRoLXZlbmRvci1idWctdXJsPWh0dHBz Oi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvaXNzdWVzCkBAIC02MSw2ICs2 NCwxMCBAQCBpZiBbIC1uICIkX3VzZV96ZXJvIiBdOyB0aGVuCiAJZXNhYwogZmkKIAoraWYgWyAt biAiJFhCUFNfREVCVUdfUEtHUyIgXTsgdGhlbgorCWNvbmZpZ3VyZV9hcmdzKz0iIC0td2l0aC1u YXRpdmUtZGVidWctc3ltYm9scz1pbnRlcm5hbCIKK2ZpCisKIHBvc3RfZXh0cmFjdCgpIHsKIAlj aG1vZCAreCBjb25maWd1cmUKIAlpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsg dGhlbgpAQCAtMTA3LDggKzExNCwyNyBAQCBkb19jb25maWd1cmUoKSB7CiAJCU9CSkRVTVA9JE9C SkRVTVAgT0JKQ09QWT0kT0JKQ09QWQogfQogCitkb19idWlsZCgpIHsKKwlmb3IgX3RyeSBpbiAx IDIgMzsgZG8KKwkJbXNnX25vcm1hbCAiQXR0ZW1wdCAkX3RyeSAuLi5cbiIKKworCQkjIGFkYXB0 ZWQgZnJvbSBidWlsZCBzdHlsZQorCQk6ICR7bWFrZV9jbWQ6PW1ha2V9CisKKwkJZXhwb3J0IGx0 X2N2X3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYjY0IC91c3IvbGliMzIgL3Vz ci9saWIgL2xpYiAvdXNyL2xvY2FsL2xpYiIKKwkJJHttYWtlX2NtZH0gJHttYWtlam9ic30gJHtt YWtlX2J1aWxkX2FyZ3N9ICR7bWFrZV9idWlsZF90YXJnZXR9ICYmIGJyZWFrCisJCSMgZW5kIGFk YXB0ZWQgZnJvbSBidWlsZCBzdHlsZQorCisJCWlmIFsgJF90cnkgLWx0IDMgXTsgdGhlbgorCQkJ bXNnX3dhcm4gIkJ1aWxkIGZhaWxlZCwgcmV0cnlpbmcgLi4uXG4iCisJCWVsc2UKKwkJCW1zZ193 YXJuICJCdWlsZCBmYWlsZWQsIG91dCBvZiBhdHRlbXB0c1xuIgorCQlmaQorCWRvbmUKK30KKwog cG9zdF9pbnN0YWxsKCkgewotCW12ICR7REVTVERJUn0vdXNyL2xpYi9qdm0vb3Blbmpkay0ke19i YXNlX3ZlcnNpb259LWludGVybmFsICR7REVTVERJUn0vJF9qZGtfaG9tZQorCW12ICR7REVTVERJ Un0vdXNyL2xpYi9qdm0vb3Blbmpkay0ke19iYXNlX3ZlcnNpb259ICR7REVTVERJUn0vJF9qZGtf aG9tZQogCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9saWIvYmluCiAJcm0gLWYgJERFU1RESVIvJF9q ZGtfaG9tZS9saWIvc3JjLnppcAogCXZsaWNlbnNlIEFTU0VNQkxZX0VYQ0VQVElPTgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL3RlbXBsYXRlIGIvc3JjcGtncy9vcGVu amRrMTQtYm9vdHN0cmFwL3RlbXBsYXRlCmluZGV4IDgzNzM3NWIzNjQ3Mi4uZGM2MWFkOWM0NjZm IDEwMDY0NAotLS0gYS9zcmNwa2dzL29wZW5qZGsxNC1ib290c3RyYXAvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL3RlbXBsYXRlCkBAIC0yMCw4ICsyMCwxMSBAQCBj b25maWd1cmVfYXJncz0iLS1kaXNhYmxlLXdhcm5pbmdzLWFzLWVycm9ycwogIC0td2l0aC1saWJw bmc9c3lzdGVtCiAgLS13aXRoLWxjbXM9c3lzdGVtCiAgLS13aXRoLWp0cmVnPW5vCi0gLS13aXRo LXZlcnNpb24tYnVpbGQ9JHtfamF2YV92ZXJ9CisgLS13aXRoLWRlYnVnLWxldmVsPXJlbGVhc2UK ICAtLXdpdGgtam9icz0ke1hCUFNfT1JJR19NQUtFSk9CU30KKyAtLXdpdGgtdmVyc2lvbi1wcmU9 CisgLS13aXRoLXZlcnNpb24tYnVpbGQ9JHtfamRrX3VwZGF0ZX0KKyAtLXdpdGgtdmVyc2lvbi1v cHQ9dm9pZC1yJHtyZXZpc2lvbn0KICAtLXdpdGgtdmVuZG9yLW5hbWU9Vm9pZAogIC0td2l0aC12 ZW5kb3ItdXJsPWh0dHBzOi8vdm9pZGxpbnV4Lm9yZy8KICAtLXdpdGgtdmVuZG9yLWJ1Zy11cmw9 aHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9pc3N1ZXMKQEAgLTYw LDYgKzYzLDEwIEBAIGlmIFsgLW4gIiRfdXNlX3plcm8iIF07IHRoZW4KIAllc2FjCiBmaQogCitp ZiBbIC1uICIkWEJQU19ERUJVR19QS0dTIiBdOyB0aGVuCisJY29uZmlndXJlX2FyZ3MrPSIgLS13 aXRoLW5hdGl2ZS1kZWJ1Zy1zeW1ib2xzPWludGVybmFsIgorZmkKKwogcG9zdF9leHRyYWN0KCkg ewogCWNobW9kICt4IGNvbmZpZ3VyZQogCWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNs IiBdOyB0aGVuCkBAIC0xMTYsNyArMTIzLDcgQEAgZG9fY29uZmlndXJlKCkgewogfQogCiBwb3N0 X2luc3RhbGwoKSB7Ci0JbXYgJHtERVNURElSfS91c3IvbGliL2p2bS9vcGVuamRrLSR7X2Jhc2Vf dmVyc2lvbn0taW50ZXJuYWwgJHtERVNURElSfS8kX2pka19ob21lCisJbXYgJHtERVNURElSfS91 c3IvbGliL2p2bS9vcGVuamRrLSR7X2Jhc2VfdmVyc2lvbn0gJHtERVNURElSfS8kX2pka19ob21l CiAJcm0gLXJmICR7REVTVERJUn0vdXNyL2xpYi9iaW4KIAlybSAtZiAkREVTVERJUi8kX2pka19o b21lL2xpYi9zcmMuemlwCiAJdmxpY2Vuc2UgQVNTRU1CTFlfRVhDRVBUSU9OCmRpZmYgLS1naXQg YS9zcmNwa2dzL29wZW5qZGsxNS1ib290c3RyYXAvdGVtcGxhdGUgYi9zcmNwa2dzL29wZW5qZGsx NS1ib290c3RyYXAvdGVtcGxhdGUKaW5kZXggYzM0Yjc3YWI2ZTY4Li5hNmQ2NWE2YjQzMDAgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJhcC90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL29wZW5qZGsxNS1ib290c3RyYXAvdGVtcGxhdGUKQEAgLTIxLDggKzIxLDExIEBAIGNvbmZp Z3VyZV9hcmdzPSItLWRpc2FibGUtd2FybmluZ3MtYXMtZXJyb3JzCiAgLS13aXRoLWxjbXM9c3lz dGVtCiAgLS13aXRoLWp0cmVnPW5vCiAgLS13aXRoLWd0ZXN0PSR7WEJQU19CVUlMRERJUn0vZ29v Z2xldGVzdC1yZWxlYXNlLTEuOC4xCi0gLS13aXRoLXZlcnNpb24tYnVpbGQ9JHtfamF2YV92ZXJ9 CisgLS13aXRoLWRlYnVnLWxldmVsPXJlbGVhc2UKICAtLXdpdGgtam9icz0ke1hCUFNfT1JJR19N QUtFSk9CU30KKyAtLXdpdGgtdmVyc2lvbi1wcmU9CisgLS13aXRoLXZlcnNpb24tYnVpbGQ9JHtf amRrX3VwZGF0ZX0KKyAtLXdpdGgtdmVyc2lvbi1vcHQ9dm9pZC1yJHtyZXZpc2lvbn0KICAtLXdp dGgtdmVuZG9yLW5hbWU9Vm9pZAogIC0td2l0aC12ZW5kb3ItdXJsPWh0dHBzOi8vdm9pZGxpbnV4 Lm9yZy8KICAtLXdpdGgtdmVuZG9yLWJ1Zy11cmw9aHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGlu dXgvdm9pZC1wYWNrYWdlcy9pc3N1ZXMKQEAgLTYzLDYgKzY2LDEwIEBAIGlmIFsgLW4gIiRfdXNl X3plcm8iIF07IHRoZW4KIAllc2FjCiBmaQogCitpZiBbIC1uICIkWEJQU19ERUJVR19QS0dTIiBd OyB0aGVuCisJY29uZmlndXJlX2FyZ3MrPSIgLS13aXRoLW5hdGl2ZS1kZWJ1Zy1zeW1ib2xzPWlu dGVybmFsIgorZmkKKwogcG9zdF9leHRyYWN0KCkgewogCWNobW9kICt4IGNvbmZpZ3VyZQogCWlm IFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCkBAIC0xMDYsNyArMTEzLDcg QEAgZG9fY29uZmlndXJlKCkgewogfQogCiBwb3N0X2luc3RhbGwoKSB7Ci0JbXYgJHtERVNURElS fS91c3IvbGliL2p2bS9vcGVuamRrLSR7X2Jhc2VfdmVyc2lvbn0taW50ZXJuYWwgJHtERVNURElS fS8kX2pka19ob21lCisJbXYgJHtERVNURElSfS91c3IvbGliL2p2bS9vcGVuamRrLSR7X2Jhc2Vf dmVyc2lvbn0gJHtERVNURElSfS8kX2pka19ob21lCiAJcm0gLXJmICR7REVTVERJUn0vdXNyL2xp Yi9iaW4KIAlybSAtZiAkREVTVERJUi8kX2pka19ob21lL2xpYi9zcmMuemlwCiAJdmxpY2Vuc2Ug QVNTRU1CTFlfRVhDRVBUSU9OCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxNi1ib290c3Ry YXAvdGVtcGxhdGUgYi9zcmNwa2dzL29wZW5qZGsxNi1ib290c3RyYXAvdGVtcGxhdGUKaW5kZXgg YjE3MTMzYzRlOTdhLi4wODVlOTI5MGNmZWIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvb3BlbmpkazE2 LWJvb3RzdHJhcC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL29wZW5qZGsxNi1ib290c3RyYXAvdGVt cGxhdGUKQEAgLTIwLDggKzIwLDExIEBAIGNvbmZpZ3VyZV9hcmdzPSItLWRpc2FibGUtd2Fybmlu Z3MtYXMtZXJyb3JzCiAgLS13aXRoLWxjbXM9c3lzdGVtCiAgLS13aXRoLWp0cmVnPW5vCiAgLS13 aXRoLWd0ZXN0PSR7WEJQU19CVUlMRERJUn0vZ29vZ2xldGVzdC1yZWxlYXNlLTEuOC4xCi0gLS13 aXRoLXZlcnNpb24tYnVpbGQ9JHtfamF2YV92ZXJ9CisgLS13aXRoLWRlYnVnLWxldmVsPXJlbGVh c2UKICAtLXdpdGgtam9icz0ke1hCUFNfT1JJR19NQUtFSk9CU30KKyAtLXdpdGgtdmVyc2lvbi1w cmU9CisgLS13aXRoLXZlcnNpb24tYnVpbGQ9JHtfamRrX3VwZGF0ZX0KKyAtLXdpdGgtdmVyc2lv bi1vcHQ9dm9pZC1yJHtyZXZpc2lvbn0KICAtLXdpdGgtdmVuZG9yLW5hbWU9Vm9pZAogIC0td2l0 aC12ZW5kb3ItdXJsPWh0dHBzOi8vdm9pZGxpbnV4Lm9yZy8KICAtLXdpdGgtdmVuZG9yLWJ1Zy11 cmw9aHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9pc3N1ZXMKQEAg LTYzLDYgKzY2LDEwIEBAIGlmIFsgLW4gIiRfdXNlX3plcm8iIF07IHRoZW4KIAllc2FjCiBmaQog CitpZiBbIC1uICIkWEJQU19ERUJVR19QS0dTIiBdOyB0aGVuCisJY29uZmlndXJlX2FyZ3MrPSIg LS13aXRoLW5hdGl2ZS1kZWJ1Zy1zeW1ib2xzPWludGVybmFsIgorZmkKKwogcG9zdF9leHRyYWN0 KCkgewogCWNobW9kICt4IGNvbmZpZ3VyZQogCWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJt dXNsIiBdOyB0aGVuCkBAIC0xMDYsNyArMTEzLDcgQEAgZG9fY29uZmlndXJlKCkgewogfQogCiBw b3N0X2luc3RhbGwoKSB7Ci0JbXYgJHtERVNURElSfS91c3IvbGliL2p2bS9vcGVuamRrLSR7X2Jh c2VfdmVyc2lvbn0taW50ZXJuYWwgJHtERVNURElSfS8kX2pka19ob21lCisJbXYgJHtERVNURElS fS91c3IvbGliL2p2bS9vcGVuamRrLSR7X2Jhc2VfdmVyc2lvbn0gJHtERVNURElSfS8kX2pka19o b21lCiAJcm0gLXJmICR7REVTVERJUn0vdXNyL2xpYi9iaW4KIAlybSAtZiAkREVTVERJUi8kX2pk a19ob21lL2xpYi9zcmMuemlwCiAJdmxpY2Vuc2UgQVNTRU1CTFlfRVhDRVBUSU9OCmRpZmYgLS1n aXQgYS9zcmNwa2dzL29wZW5qZGsxNy1qcmUgYi9zcmNwa2dzL29wZW5qZGsxNy1qcmUKbmV3IGZp bGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAwLi45OWFiMWNiMWIwZDIKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxNy1qcmUKQEAgLTAsMCArMSBAQAorb3BlbmpkazE3 ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRr MTcvdGVtcGxhdGUgYi9zcmNwa2dzL29wZW5qZGsxNy90ZW1wbGF0ZQppbmRleCBiYWMzZDUwMmQ3 ODMuLjViOGI4MDE1MTNjYiAxMDA2NDQKLS0tIGEvc3JjcGtncy9vcGVuamRrMTcvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9vcGVuamRrMTcvdGVtcGxhdGUKQEAgLTEsNSArMSw0IEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdvcGVuamRrMTcnCi0jIFRPRE86IHNwbGl0IG9mZiAtanJlIGFuZCAtanJl LWhlYWRsZXNzIHN1YnBhY2thZ2VzCiBfamF2YV92ZXI9MTcKIF9qYXZhX21pbl92ZXI9MAogX2ph dmFfc2VjX3Zlcj0xCkBAIC0yMSw4ICsyMCwxMSBAQCBjb25maWd1cmVfYXJncz0iLS1kaXNhYmxl LXdhcm5pbmdzLWFzLWVycm9ycwogIC0td2l0aC1sY21zPXN5c3RlbQogIC0td2l0aC1qdHJlZz1u bwogIC0td2l0aC1ndGVzdD0ke1hCUFNfQlVJTERESVJ9L2dvb2dsZXRlc3QtcmVsZWFzZS0xLjgu MQotIC0td2l0aC12ZXJzaW9uLWJ1aWxkPSR7X2phdmFfdmVyfQorIC0td2l0aC1kZWJ1Zy1sZXZl bD1yZWxlYXNlCiAgLS13aXRoLWpvYnM9JHtYQlBTX09SSUdfTUFLRUpPQlN9CisgLS13aXRoLXZl cnNpb24tcHJlPQorIC0td2l0aC12ZXJzaW9uLWJ1aWxkPSR7X2pka191cGRhdGV9CisgLS13aXRo LXZlcnNpb24tb3B0PXZvaWQtciR7cmV2aXNpb259CiAgLS13aXRoLXZlbmRvci1uYW1lPVZvaWQK ICAtLXdpdGgtdmVuZG9yLXVybD1odHRwczovL3ZvaWRsaW51eC5vcmcvCiAgLS13aXRoLXZlbmRv ci1idWctdXJsPWh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvaXNz dWVzCkBAIC0zNSw3ICszNyw4IEBAIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBhdXRvbWFr ZSBhdXRvY29uZiBjcGlvIHRhciB1bnppcCB6aXAgY2EtY2VydGlmaWNhdGVzCiBtYWtlZGVwZW5k cz0ibGliWHJlbmRlci1kZXZlbCBsaWJYdHN0LWRldmVsIGxpYlh0LWRldmVsIGxpYlhyYW5kci1k ZXZlbAogIGdpZmxpYi1kZXZlbCBsaWJqcGVnLXR1cmJvLWRldmVsIGN1cHMtZGV2ZWwgZnJlZXR5 cGUtZGV2ZWwgYWxzYS1saWItZGV2ZWwKICBmb250Y29uZmlnLWRldmVsIHpsaWItZGV2ZWwgbGNt czItZGV2ZWwiCi1wcm92aWRlcz0iamF2YS1lbnZpcm9ubWVudC0ke3ZlcnNpb259XzEgamF2YS1y dW50aW1lLSR7dmVyc2lvbn1fMSIKK2RlcGVuZHM9IiR7cGtnbmFtZX0tanJlLSR7dmVyc2lvbn1f JHtyZXZpc2lvbn0iCitwcm92aWRlcz0iamF2YS1lbnZpcm9ubWVudC0ke3ZlcnNpb259XzEiCiBz aG9ydF9kZXNjPSJPcGVuSkRLIEphdmEgRGV2ZWxvcG1lbnQgS2l0ICh2ZXJzaW9uICR7X2phdmFf dmVyfSkiCiBtYWludGFpbmVyPSJjbGFzc2FiYnlhbXAgPGRldkBrYjYuZWU+IgogbGljZW5zZT0i R1BMLTIuMC1vbmx5IFdJVEggQ2xhc3NwYXRoLWV4Y2VwdGlvbi0yLjAiCkBAIC00NCw3ICs0Nyw2 IEBAIGRpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL29wZW5qZGsvamRrJHtfamF2YV92ZXJ9 dS9hcmNoaXZlL2pkay0ke3ZlcnNpb259LnRhCiAgaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9n b29nbGV0ZXN0L2FyY2hpdmUvcmVmcy90YWdzL3JlbGVhc2UtMS44LjEudGFyLmd6IgogY2hlY2tz dW09IjhjMDc2MjAzYTZmODVhYjkxNmIzZTU0ZGUxOTkyYmNiY2M1ZmZlNTgwYzUyYjFhYzhkNTJj YTdhZmI5ZjAyZDEKICA5YmYxZmU1MTgyYTYwNGI0MTM1ZWRjMWE0MjVhZTM1NmM5YWQxNWU5YjIz ZjlmMTJhMDJlODAxODRjM2EyNDljIgotc2hsaWJfcHJvdmlkZXM9ImxpYmF3dC5zbyBsaWJhd3Rf eGF3dC5zbyBsaWJqYXZhLnNvIGxpYmpsaS5zbyBsaWJqdm0uc28gbGliamF3dC5zbyIKIAogIyBC dWlsZCBpcyBzdGlsbCBwYXJhbGxlbCwgYnV0IGRvbid0IHVzZSAtak4uCiBkaXNhYmxlX3BhcmFs bGVsX2J1aWxkPXllcwpAQCAtNzcsMTYgKzc5LDE2IEBAIGVsc2UKIAljb25maWd1cmVfYXJncys9 IiAtLXdpdGgtYm9vdC1qZGs9L3Vzci9saWIvanZtL29wZW5qZGsxNyIKIGZpCiAKK2lmIFsgLW4g IiRYQlBTX0RFQlVHX1BLR1MiIF07IHRoZW4KKwljb25maWd1cmVfYXJncys9IiAtLXdpdGgtbmF0 aXZlLWRlYnVnLXN5bWJvbHM9aW50ZXJuYWwiCitmaQorCiBhbHRlcm5hdGl2ZXM9IgogIGphdmE6 L3Vzci9iaW4vamF2YTovJHtfamRrX2hvbWV9L2Jpbi9qYXZhCi0gamF2YTovdXNyL2Jpbi9qanM6 LyR7X2pka19ob21lfS9iaW4vampzCisgamF2YTovdXNyL2Jpbi9qZnI6LyR7X2pka19ob21lfS9i aW4vamZyCiAgamF2YTovdXNyL2Jpbi9rZXl0b29sOi8ke19qZGtfaG9tZX0vYmluL2tleXRvb2wK LSBqYXZhOi91c3IvYmluL3BhY2syMDA6LyR7X2pka19ob21lfS9iaW4vcGFjazIwMAotIGphdmE6 L3Vzci9iaW4vcm1pZDovJHtfamRrX2hvbWV9L2Jpbi9ybWlkCiAgamF2YTovdXNyL2Jpbi9ybWly ZWdpc3RyeTovJHtfamRrX2hvbWV9L2Jpbi9ybWlyZWdpc3RyeQotIGphdmE6L3Vzci9iaW4vdW5w YWNrMjAwOi8ke19qZGtfaG9tZX0vYmluL3VucGFjazIwMAogCi0gamRrOi91c3IvYmluL2phb3Rj Oi8ke19qZGtfaG9tZX0vYmluL2phb3RjCiAgamRrOi91c3IvYmluL2phcjovJHtfamRrX2hvbWV9 L2Jpbi9qYXIKICBqZGs6L3Vzci9iaW4vamFyc2lnbmVyOi8ke19qZGtfaG9tZX0vYmluL2phcnNp Z25lcgogIGpkazovdXNyL2Jpbi9qYXZhOi8ke19qZGtfaG9tZX0vYmluL2phdmEKQEAgLTk4LDEz ICsxMDAsMTQgQEAgYWx0ZXJuYXRpdmVzPSIKICBqZGs6L3Vzci9iaW4vamRiOi8ke19qZGtfaG9t ZX0vYmluL2pkYgogIGpkazovdXNyL2Jpbi9qZGVwcnNjYW46LyR7X2pka19ob21lfS9iaW4vamRl cHJzY2FuCiAgamRrOi91c3IvYmluL2pkZXBzOi8ke19qZGtfaG9tZX0vYmluL2pkZXBzCisgamRr Oi91c3IvYmluL2pmcjovJHtfamRrX2hvbWV9L2Jpbi9qZnIKICBqZGs6L3Vzci9iaW4vamhzZGI6 LyR7X2pka19ob21lfS9iaW4vamhzZGIKICBqZGs6L3Vzci9iaW4vamltYWdlOi8ke19qZGtfaG9t ZX0vYmluL2ppbWFnZQogIGpkazovdXNyL2Jpbi9qaW5mbzovJHtfamRrX2hvbWV9L2Jpbi9qaW5m bwotIGpkazovdXNyL2Jpbi9qanM6LyR7X2pka19ob21lfS9iaW4vampzCiAgamRrOi91c3IvYmlu L2psaW5rOi8ke19qZGtfaG9tZX0vYmluL2psaW5rCiAgamRrOi91c3IvYmluL2ptYXA6LyR7X2pk a19ob21lfS9iaW4vam1hcAogIGpkazovdXNyL2Jpbi9qbW9kOi8ke19qZGtfaG9tZX0vYmluL2pt b2QKKyBqZGs6L3Vzci9iaW4vanBhY2thZ2U6LyR7X2pka19ob21lfS9iaW4vanBhY2thZ2UKICBq ZGs6L3Vzci9iaW4vanBzOi8ke19qZGtfaG9tZX0vYmluL2pwcwogIGpkazovdXNyL2Jpbi9qcnVu c2NyaXB0Oi8ke19qZGtfaG9tZX0vYmluL2pydW5zY3JpcHQKICBqZGs6L3Vzci9iaW4vanNoZWxs Oi8ke19qZGtfaG9tZX0vYmluL2pzaGVsbApAQCAtMTEyLDEyICsxMTUsOCBAQCBhbHRlcm5hdGl2 ZXM9IgogIGpkazovdXNyL2Jpbi9qc3RhdDovJHtfamRrX2hvbWV9L2Jpbi9qc3RhdAogIGpkazov dXNyL2Jpbi9qc3RhdGQ6LyR7X2pka19ob21lfS9iaW4vanN0YXRkCiAgamRrOi91c3IvYmluL2tl eXRvb2w6LyR7X2pka19ob21lfS9iaW4va2V5dG9vbAotIGpkazovdXNyL2Jpbi9wYWNrMjAwOi8k e19qZGtfaG9tZX0vYmluL3BhY2syMDAKLSBqZGs6L3Vzci9iaW4vcm1pYzovJHtfamRrX2hvbWV9 L2Jpbi9ybWljCi0gamRrOi91c3IvYmluL3JtaWQ6LyR7X2pka19ob21lfS9iaW4vcm1pZAogIGpk azovdXNyL2Jpbi9ybWlyZWdpc3RyeTovJHtfamRrX2hvbWV9L2Jpbi9ybWlyZWdpc3RyeQogIGpk azovdXNyL2Jpbi9zZXJpYWx2ZXI6LyR7X2pka19ob21lfS9iaW4vc2VyaWFsdmVyCi0gamRrOi91 c3IvYmluL3VucGFjazIwMDovJHtfamRrX2hvbWV9L2Jpbi91bnBhY2syMDAKICIKIAogcG9zdF9l eHRyYWN0KCkgewpAQCAtMTY0LDE4ICsxNjMsMTIgQEAgZG9fY29uZmlndXJlKCkgewogCiBwb3N0 X2luc3RhbGwoKSB7CiAJcm0gLXJmICR7REVTVERJUn0vdXNyL2xpYi9iaW4KLQltdiAke0RFU1RE SVJ9L3Vzci9saWIvanZtL29wZW5qZGstJHtfYmFzZV92ZXJzaW9ufS1pbnRlcm5hbCAke0RFU1RE SVJ9LyRfamRrX2hvbWUKKwltdiAke0RFU1RESVJ9L3Vzci9saWIvanZtL29wZW5qZGstJHtfYmFz ZV92ZXJzaW9ufSAke0RFU1RESVJ9LyRfamRrX2hvbWUKIAl2bWtkaXIgJF9qZGtfaG9tZS9saWIv c2VjdXJpdHkKIAltYWtlLWNhIC1nIC1mIC0tZGVzdGRpciAiJHtQV0R9L2NhIiAtayAiJHtERVNU RElSfS8kX2pka19ob21lL2Jpbi9rZXl0b29sIgogCW12IC4vY2EvZXRjL3BraS90bHMvamF2YS9j YWNlcnRzICR7REVTVERJUn0vJF9qZGtfaG9tZS9saWIvc2VjdXJpdHkvCiAJY2htb2QgLVIgdWdv K3J3IC4vY2EKIAlybSAtcmYgLi9jYQotCXZta2RpciBldGMvcHJvZmlsZS5kCi0JY2F0ID4+JHtE RVNURElSfS9ldGMvcHJvZmlsZS5kLzEwX29wZW5qZGsxNy5zaCA8PC1FT0YKLQlleHBvcnQgSkFW QV9IT01FPVwke0pBVkFfSE9NRT0vJF9qZGtfaG9tZX0KLQlFT0YKLQl2bGljZW5zZSBBU1NFTUJM WV9FWENFUFRJT04KLQl2bGljZW5zZSBMSUNFTlNFCiB9CiAKIGRvX2NsZWFuKCkgewpAQCAtMTgz LDYgKzE3NiwzNyBAQCBkb19jbGVhbigpIHsKIAlybSAtcmYgJHtYQlBTX0JVSUxERElSfS9nb29n bGV0ZXN0LXJlbGVhc2UtKgogfQogCitzdWJwYWNrYWdlcz0ib3BlbmpkazE3LXNyYyBvcGVuamRr MTctanJlIG9wZW5qZGsxNy1kb2MiCisKK29wZW5qZGsxNy1qcmVfcGFja2FnZSgpIHsKKwlzaGxp Yl9wcm92aWRlcz0ibGliYXd0LnNvIGxpYmF3dF94YXd0LnNvIGxpYmphdmEuc28gbGliamxpLnNv IGxpYmp2bS5zbyBsaWJqYXd0LnNvIgorCXNob3J0X2Rlc2MrPSIgLSBydW50aW1lIGNvbXBvbmVu dHMiCisJcHJvdmlkZXM9ImphdmEtcnVudGltZS0ke3ZlcnNpb259XzEiCisJYWx0ZXJuYXRpdmVz PSIKKwkgamF2YTovdXNyL2Jpbi9qYXZhOi8ke19qZGtfaG9tZX0vYmluL2phdmEKKwkgamF2YTov dXNyL2Jpbi9qZnI6LyR7X2pka19ob21lfS9iaW4vamZyCisJIGphdmE6L3Vzci9iaW4va2V5dG9v bDovJHtfamRrX2hvbWV9L2Jpbi9rZXl0b29sCisJIGphdmE6L3Vzci9iaW4vcm1pcmVnaXN0cnk6 LyR7X2pka19ob21lfS9iaW4vcm1pcmVnaXN0cnkKKwkiCisJcGtnX2luc3RhbGwoKSB7CisJCWZv ciBiZiBpbiBqYXZhIGpmciBrZXl0b29sIHJtaXJlZ2lzdHJ5OyBkbworCQkJdm1vdmUgJF9qZGtf aG9tZS9iaW4vJGJmCisJCWRvbmUKKworCQlmb3IgZiBpbiBsaWIgbGVnYWwgY29uZiByZWxlYXNl OyBkbworCQkJdm1vdmUgJF9qZGtfaG9tZS8kZgorCQlkb25lCisKKwkJdm1rZGlyIGV0Yy9wcm9m aWxlLmQKKwkJY2F0ID4+JHtQS0dERVNURElSfS9ldGMvcHJvZmlsZS5kLzEwX29wZW5qZGsxNy5z aCA8PC1FT0YKK2V4cG9ydCBKQVZBX0hPTUU9XCR7SkFWQV9IT01FPS8kX2pka19ob21lfQorRU9G CisKKwkJdmxpY2Vuc2UgQVNTRU1CTFlfRVhDRVBUSU9OCisJCXZsaWNlbnNlIExJQ0VOU0UKKwl9 Cit9CisKIG9wZW5qZGsxNy1kb2NfcGFja2FnZSgpIHsKIAlub3N0cmlwPXllcwogCW5vdmVyaWZ5 cmRlcHM9eWVzCg== --===============4475748501054359743==--