From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Kevin Buettner To: git-commits@fedoraproject.org Subject: [rpms/gdb] gdb-17.2-rebase-f44: Merge #25 `tests/gdb-testsuite-sanity: add testcase` Date: Sun, 28 Jun 2026 00:00:32 GMT Message-ID: <178260483242.1.4499092742201220188.rpms-gdb-e66c7e71e79e@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: e66c7e71e79e473ffc278879bd042ebdf2123aad QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2RiCkJyYW5jaCA6 IGdkYi0xNy4yLXJlYmFzZS1mNDQKQ29tbWl0IDogZTY2YzdlNzFlNzllNDczZmZjMjc4ODc5YmQw NDJlYmRmMjEyM2FhZApBdXRob3IgOiBLZXZpbiBCdWV0dG5lciA8a2V2aW5iQHJlZGhhdC5jb20+ CkRhdGUgICA6IDIwMjItMDEtMTdUMTY6NDQ6NTArMDA6MDAKU3RhdHMgIDogKzM3MjkvLTc2MjUg aW4gNjAgZmlsZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1z L2dkYi9jL2U2NmM3ZTcxZTc5ZTQ3M2ZmYzI3ODg3OWJkMDQyZWJkZjIxMjNhYWQ/YnJhbmNoPWdk Yi0xNy4yLXJlYmFzZS1mNDQKCkxvZzoKTWVyZ2UgIzI1IGB0ZXN0cy9nZGItdGVzdHN1aXRlLXNh bml0eTogYWRkIHRlc3RjYXNlYAoKLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9nZGItdGVzdHN1aXRl LXNhbml0eS9NYWtlZmlsZSBiL3Rlc3RzL2dkYi10ZXN0c3VpdGUtc2FuaXR5L01ha2VmaWxlCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3NGE5MjIKLS0tIC9kZXYvbnVsbAor KysgYi90ZXN0cy9nZGItdGVzdHN1aXRlLXNhbml0eS9NYWtlZmlsZQpAQCAtMCwwICsxLDY4IEBA CisjIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+CisjCisjICAgTWFrZWZpbGUgb2YgL3Rvb2xzL2dkYi9TYW5pdHkvZ2Ri LXRlc3RzdWl0ZS1zYW5pdHkKKyMgICBEZXNjcmlwdGlvbjogZ2RiIHRlc3RpbmcgYnkgdXBzdHJl YW0gdGVzdHN1aXRlCisjICAgQXV0aG9yOiBNaWNoYWwgS29sYXIgPG1rb2xhckByZWRoYXQuY29t PgorIworIyB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fgorIworIyAgIENvcHlyaWdodCAoYykgMjAyMSBSZWQgSGF0LCBJ bmMuCisjCisjICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vcgorIyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisjICAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDIgb2YKKyMgICB0aGUgTGljZW5zZSwg b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgICBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlCisjICAgdXNlZnVs LCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZAorIyAg IHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK KyMgICBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgorIworIyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0u IElmIG5vdCwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8uCisjCisjIH5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+CisKK2V4cG9ydCBURVNUPS90b29scy9nZGIvU2FuaXR5L2dkYi10ZXN0c3VpdGUtc2FuaXR5 CitleHBvcnQgVEVTVFZFUlNJT049MS4wCisKK0JVSUxUX0ZJTEVTPQorCitGSUxFUz0kKE1FVEFE QVRBKSBydW50ZXN0LnNoIE1ha2VmaWxlIFBVUlBPU0UgcmVmCisKKy5QSE9OWTogYWxsIGluc3Rh bGwgZG93bmxvYWQgY2xlYW4KKworcnVuOiAkKEZJTEVTKSBidWlsZAorCS4vcnVudGVzdC5zaAor CitidWlsZDogJChCVUlMVF9GSUxFUykKKwl0ZXN0IC14IHJ1bnRlc3Quc2ggfHwgY2htb2QgYSt4 IHJ1bnRlc3Quc2gKKworLlNJTEVOVDogcmVmX2ZpbGUKK3JlZl9maWxlOiAuL3JlZi9nZW4uc2gK Kwl0ZXN0IC14IC4vcmVmL2dlbi5zaCB8fCBjaG1vZCBhK3ggLi9yZWYvZ2VuLnNoCisJLi9yZWYv Z2VuLnNoCisKK2NsZWFuOgorCXJtIC1mICp+ICQoQlVJTFRfRklMRVMpCisKKworaW5jbHVkZSAv dXNyL3NoYXJlL3JodHMvbGliL3JodHMtbWFrZS5pbmNsdWRlCisKKyQoTUVUQURBVEEpOiBNYWtl ZmlsZQorCUBlY2hvICJPd25lcjogICAgICAgICAgIE1pY2hhbCBLb2xhciA8bWtvbGFyQHJlZGhh dC5jb20+IiA+ICQoTUVUQURBVEEpCisJQGVjaG8gIk5hbWU6ICAgICAgICAgICAgJChURVNUKSIg Pj4gJChNRVRBREFUQSkKKwlAZWNobyAiVGVzdFZlcnNpb246ICAgICAkKFRFU1RWRVJTSU9OKSIg Pj4gJChNRVRBREFUQSkKKwlAZWNobyAiUGF0aDogICAgICAgICAgICAkKFRFU1RfRElSKSIgPj4g JChNRVRBREFUQSkKKwlAZWNobyAiRGVzY3JpcHRpb246ICAgICBnZGIgdGVzdGluZyBieSB1cHN0 cmVhbSB0ZXN0c3VpdGUiID4+ICQoTUVUQURBVEEpCisJQGVjaG8gIlR5cGU6ICAgICAgICAgICAg U2FuaXR5IiA+PiAkKE1FVEFEQVRBKQorCUBlY2hvICJUZXN0VGltZTogICAgICAgIDFoIiA+PiAk KE1FVEFEQVRBKQorCUBlY2hvICJSdW5Gb3I6ICAgICAgICAgIGdkYiIgPj4gJChNRVRBREFUQSkK KwlAZWNobyAiUmVxdWlyZXM6ICAgICAgICBnZGIgcnBtLWJ1aWxkIHl1bS11dGlscyBkZWphZ251 IG1ha2UgZ2NjIGdjYy1nZm9ydHJhbiBnbGliYyIgPj4gJChNRVRBREFUQSkKKwlAZWNobyAiUHJp b3JpdHk6ICAgICAgICBOb3JtYWwiID4+ICQoTUVUQURBVEEpCisJQGVjaG8gIkxpY2Vuc2U6ICAg ICAgICAgR1BMdjIrIiA+PiAkKE1FVEFEQVRBKQorCUBlY2hvICJDb25maWRlbnRpYWw6ICAgIG5v IiA+PiAkKE1FVEFEQVRBKQorCUBlY2hvICJEZXN0cnVjdGl2ZTogICAgIG5vIiA+PiAkKE1FVEFE QVRBKQorCUBlY2hvICJSZWxlYXNlczogICAgICAgIC1SSEVMNCAtUkhFTENsaWVudDUgLVJIRUxT ZXJ2ZXI1IC1SSEVMNiAtUkhFTDciID4+ICQoTUVUQURBVEEpCisKKwlyaHRzLWxpbnQgJChNRVRB REFUQSkKCmRpZmYgLS1naXQgYS90ZXN0cy9nZGItdGVzdHN1aXRlLXNhbml0eS9QVVJQT1NFIGIv dGVzdHMvZ2RiLXRlc3RzdWl0ZS1zYW5pdHkvUFVSUE9TRQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi44M2Q4NjhmCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvZ2RiLXRlc3Rz dWl0ZS1zYW5pdHkvUFVSUE9TRQpAQCAtMCwwICsxLDMwIEBACitQVVJQT1NFIG9mIC90b29scy9n ZGIvU2FuaXR5L2dkYi10ZXN0c3VpdGUtc2FuaXR5CitEZXNjcmlwdGlvbjogZ2RiIHRlc3Rpbmcg YnkgdXBzdHJlYW0gdGVzdHN1aXRlCitBdXRob3I6IE1pY2hhbCBLb2xhciA8bWtvbGFyQHJlZGhh dC5jb20+CisKK0J5IGRlZmF1bHQsIHRlc3RzdWl0ZSBpcyBleGVjdXRlZCB3aXRoIGRlZmF1bHQg b3B0aW9ucyBmb3IgdGhlIHBhY2thZ2UgdGhhdAorY29ycmVzcG9uZHMgdG8gdGhlIGdkYiBjb21t YW5kIGJ5IG5ld2x5IGNyZWF0ZWQgb3JkaW5hcnkgdXNlci4gQmVmb3JlCitleGVjdXRpbmcsIHRo ZSB0ZXN0c3VpdGUgaXMgcmVkdWNlZCBieSB0aGUgYXBwcm9wcmlhdGUgcmVmZXJlbmNlIGZpbGUg dGhhdAorZGVmaW5lcyB0aGUgYWxsb3dlZCB0ZXN0IHJhbmdlLgorCitFeGVjdXRpbmcgY2FuIGJl IG1vZGlmaWVkIGJ5IHRoZXNlIHZhcmlhYmxlczoKKyAgKiBCVUlMRF9VU0VSICAgICAgLS0gdXNl ciB3aGljaCB3aWxsIGJlIHVzZWQgZm9yIGJ1aWxkaW5nIGFuZCB0ZXN0aW5nIGdkYgorICAqIFBB Q0tBR0UgICAgICAgICAtLSBleHBsaWNpdGx5IGRlZmluZXMgd2hpY2ggcnBtIHBhY2thZ2Ugc2hv dWxkIGJlIHRlc3RlZAorICAqIFJVTlRFU1RGTEFHUyAgICAtLSB2YXJpYWJsZSB3aGljaCB3aWxs IGJlIGZvcndhcmRlZCB0byAnbWFrZSBjaGVjaycgY29tbWFuZAorICAgICAgICAgICAgICAgICAg ICAgICBhbmQgY2FuIGJlIHVzZWQgdG8gcmVkdWNlIHRoZSByYW5nZSBvZiB0ZXN0aW5nCisgICog VEVTVFNfQ09VTlRfTUlOIC0tIG1pbmltdW0gbnVtYmVyIG9mIGNhc2VzIHRoYXQgc2hvdWxkIGJl IHRlc3RlZCAoZG9lcyBub3QKKyAgICAgICAgICAgICAgICAgICAgICAgYWZmZWN0IHRoZSB0cmln Z2VyaW5nIG9mIHRlc3RjYXNlcywgaXQgb25seSBzZXRzIHRoZQorICAgICAgICAgICAgICAgICAg ICAgICB2YWx1ZSBvZiB0aGUgcmVmZXJlbmNlIGNvbXBhcmF0b3IpCisKK0V4YW1wbGU6CisgICQg QlVJTERfVVNFUj1yb290IFwKKyAgICBQQUNLQUdFPWdkYiBcCisgICAgUlVOVEVTVEZMQUdTPSdH REI9L3Vzci9iaW4vZ2RiIGdkYi5iYXNlL2JyZWFrKi5leHAnIFwKKyAgICBURVNUU19DT1VOVF9N SU49MzIgbWFrZSBydW4KKworUmVmZXJlbmNlIGZpbGVzIGluc3RydWN0aW9uczoKKyAgKiBwYXRo IG9mIHJlZmVyZW5jZSBmaWxlIGZvciBjdXJyZW50IHBhY2thZ2UsIGRpc3RyaWJ1dGlvbiBhbmQg YXJjaGl0ZWN0dXJlCisgICAgY2FuIGJlIGdlbmVyYXRlZCBieToKKyAgICAgICQgbWFrZSByZWZf ZmlsZQorICAgIG9yIGRpcmVjdGx5IGJ5OgorICAgICAgJCAuL3JlZi9nZW4uc2gKCmRpZmYgLS1n aXQgYS90ZXN0cy9nZGItdGVzdHN1aXRlLXNhbml0eS9tYWluLmZtZiBiL3Rlc3RzL2dkYi10ZXN0 c3VpdGUtc2FuaXR5L21haW4uZm1mCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjMyZjAzNTEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9nZGItdGVzdHN1aXRlLXNhbml0eS9t YWluLmZtZgpAQCAtMCwwICsxLDQ1IEBACitzdW1tYXJ5OiBnZGIgdGVzdGluZyBieSB1cHN0cmVh bSB0ZXN0c3VpdGUKK2Rlc2NyaXB0aW9uOiB8CisgICAgQnkgZGVmYXVsdCwgdGVzdHN1aXRlIGlz IGV4ZWN1dGVkIHdpdGggZGVmYXVsdCBvcHRpb25zIGZvciB0aGUgcGFja2FnZSB0aGF0CisgICAg Y29ycmVzcG9uZHMgdG8gdGhlIGdkYiBjb21tYW5kIGJ5IG5ld2x5IGNyZWF0ZWQgb3JkaW5hcnkg dXNlci4gQmVmb3JlCisgICAgZXhlY3V0aW5nLCB0aGUgdGVzdHN1aXRlIGlzIHJlZHVjZWQgYnkg dGhlIGFwcHJvcHJpYXRlIHJlZmVyZW5jZSBmaWxlIHRoYXQKKyAgICBkZWZpbmVzIHRoZSBhbGxv d2VkIHRlc3QgcmFuZ2UuCisKKyAgICBFeGVjdXRpbmcgY2FuIGJlIG1vZGlmaWVkIGJ5IHRoZXNl IHZhcmlhYmxlczoKKyAgICAgICogQlVJTERfVVNFUiAgICAgIC0tIHVzZXIgd2hpY2ggd2lsbCBi ZSB1c2VkIGZvciBidWlsZGluZyBhbmQgdGVzdGluZyBnZGIKKyAgICAgICogUEFDS0FHRSAgICAg ICAgIC0tIGV4cGxpY2l0bHkgZGVmaW5lcyB3aGljaCBycG0gcGFja2FnZSBzaG91bGQgYmUgdGVz dGVkCisgICAgICAqIFJVTlRFU1RGTEFHUyAgICAtLSB2YXJpYWJsZSB3aGljaCB3aWxsIGJlIGZv cndhcmRlZCB0byAnbWFrZSBjaGVjaycgY29tbWFuZAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgYW5kIGNhbiBiZSB1c2VkIHRvIHJlZHVjZSB0aGUgcmFuZ2Ugb2YgdGVzdGluZworICAgICAg KiBURVNUU19DT1VOVF9NSU4gLS0gbWluaW11bSBudW1iZXIgb2YgY2FzZXMgdGhhdCBzaG91bGQg YmUgdGVzdGVkIChkb2VzIG5vdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgYWZmZWN0IHRo ZSB0cmlnZ2VyaW5nIG9mIHRlc3RjYXNlcywgaXQgb25seSBzZXRzIHRoZQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgdmFsdWUgb2YgdGhlIHJlZmVyZW5jZSBjb21wYXJhdG9yKQorCisgICAg RXhhbXBsZToKKyAgICAgICQgQlVJTERfVVNFUj1yb290IFwKKyAgICAgICAgUEFDS0FHRT1nZGIg XAorICAgICAgICBSVU5URVNURkxBR1M9J0dEQj0vdXNyL2Jpbi9nZGIgZ2RiLmJhc2UvYnJlYWsq LmV4cCcgXAorICAgICAgICBURVNUU19DT1VOVF9NSU49MzIgbWFrZSBydW4KKworICAgIFJlZmVy ZW5jZSBmaWxlcyBpbnN0cnVjdGlvbnM6CisgICAgICAqIHBhdGggb2YgcmVmZXJlbmNlIGZpbGUg Zm9yIGN1cnJlbnQgcGFja2FnZSwgZGlzdHJpYnV0aW9uIGFuZCBhcmNoaXRlY3R1cmUKKyAgICAg ICAgY2FuIGJlIGdlbmVyYXRlZCBieToKKyAgICAgICAgICAkIG1ha2UgcmVmX2ZpbGUKKyAgICAg ICAgb3IgZGlyZWN0bHkgYnk6CisgICAgICAgICAgJCAuL3JlZi9nZW4uc2gKK2NvbnRhY3Q6IE1p Y2hhbCBLb2xhciA8bWtvbGFyQHJlZGhhdC5jb20+Citjb21wb25lbnQ6CistIGdkYgordGVzdDog Li9ydW50ZXN0LnNoCitmcmFtZXdvcms6IGJlYWtlcmxpYgorcmVjb21tZW5kOgorLSBnZGIKKy0g cnBtLWJ1aWxkCistIHl1bS11dGlscworLSBkZWphZ251CistIG1ha2UKKy0gZ2NjCistIGdjYy1n Zm9ydHJhbgorLSBnbGliYworZHVyYXRpb246IDFoCitleHRyYS1zdW1tYXJ5OiAvdG9vbHMvZ2Ri L1Nhbml0eS9nZGItdGVzdHN1aXRlLXNhbml0eQorZXh0cmEtdGFzazogL3Rvb2xzL2dkYi9TYW5p dHkvZ2RiLXRlc3RzdWl0ZS1zYW5pdHkKCmRpZmYgLS1naXQgYS90ZXN0cy9nZGItdGVzdHN1aXRl LXNhbml0eS9yZWYvZGVmYXVsdCBiL3Rlc3RzL2dkYi10ZXN0c3VpdGUtc2FuaXR5L3JlZi9kZWZh dWx0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3ODYwYTUKLS0tIC9kZXYv bnVsbAorKysgYi90ZXN0cy9nZGItdGVzdHN1aXRlLXNhbml0eS9yZWYvZGVmYXVsdApAQCAtMCww ICsxLDQzMSBAQAorZ2RiLmJhc2UvYWR2YW5jZS11bnRpbC1tdWx0aXBsZS1sb2NhdGlvbnMuZXhw CitnZGIuYmFzZS9hbGlhcy5leHAKK2dkYi5iYXNlL2FsaWduLWMuZXhwCitnZGIuYmFzZS9hbm5v dGEtaW5wdXQtd2hpbGUtcnVubmluZy5leHAKK2dkYi5iYXNlL2Fub24uZXhwCitnZGIuYmFzZS9h cmdzLmV4cAorZ2RiLmJhc2UvYXJyYXlpZHguZXhwCitnZGIuYmFzZS9hdHRhY2gtbm9uLXBncnAt bGVhZGVyLmV4cAorZ2RiLmJhc2UvYXR0YWNoLXBpZS1ub2V4ZWMuZXhwCitnZGIuYmFzZS9hdHRh Y2gtdHdpY2UuZXhwCitnZGIuYmFzZS9hdHRhY2gtd2FpdC1pbnB1dC5leHAKK2dkYi5iYXNlL2F1 dG8tbG9hZC5leHAKK2dkYi5iYXNlL2JhbmcuZXhwCitnZGIuYmFzZS9iYXRjaC1leGl0LXN0YXR1 cy5leHAKK2dkYi5iYXNlL2JmcC10ZXN0LmV4cAorZ2RiLmJhc2UvYmctZXhlY3V0aW9uLXJlcGVh dC5leHAKK2dkYi5iYXNlL2JpdGZpZWxkczIuZXhwCitnZGIuYmFzZS9iaXRmaWVsZHMuZXhwCitn ZGIuYmFzZS9iaXRvcHMuZXhwCitnZGIuYmFzZS9icC1jbWRzLWV4ZWN1dGlvbi14LXNjcmlwdC5l eHAKK2dkYi5iYXNlL2JyYW5jaC10by1zZWxmLmV4cAorZ2RiLmJhc2UvYnJlYWstYWx3YXlzLmV4 cAorZ2RiLmJhc2UvYnJlYWstY2FsbGVyLWxpbmUuZXhwCitnZGIuYmFzZS9icmVhay1pbmNsdWRl LmV4cAorZ2RiLmJhc2UvYnJlYWstaW5saW5lLmV4cAorZ2RiLmJhc2UvYnJlYWstbWFpbi1maWxl LXJlbW92ZS1mYWlsLmV4cAorZ2RiLmJhc2UvYnJlYWstb24tbGlua2VyLWdjZC1mdW5jdGlvbi5l eHAKK2dkYi5iYXNlL2JyZWFrcG9pbnQtc2hhZG93LmV4cAorZ2RiLmJhc2UvYnJlYWstcHJvYmVz LmV4cAorZ2RiLmJhc2UvY2FjaGVkLXNvdXJjZS1maWxlLmV4cAorZ2RiLmJhc2UvY2FsbGV4aXQu ZXhwCitnZGIuYmFzZS9jYWxsLXN0cnMuZXhwCitnZGIuYmFzZS9jYXRjaC1mb2xsb3ctZXhlYy5l eHAKK2dkYi5iYXNlL2NhdGNoLWdkYi1jYXVzZWQtc2lnbmFscy5leHAKK2dkYi5iYXNlL2NhdGNo LXNpZ25hbC1mb3JrLmV4cAorZ2RiLmJhc2UvY2F0Y2gtc2lnbmFsLXNpZ2luZm8tY29uZC5leHAK K2dkYi5iYXNlL2NoZWNrLXBzeW10YWIuZXhwCitnZGIuYmFzZS9jLWxpbmthZ2UtbmFtZS5leHAK K2dkYi5iYXNlL2NvZGVfZWxpbS5leHAKK2dkYi5iYXNlL2NvbW1hbmQtbGluZS1pbnB1dC5leHAK K2dkYi5iYXNlL2NvbXBhcmUtc2VjdGlvbnMuZXhwCitnZGIuYmFzZS9jb21wbGV4LmV4cAorZ2Ri LmJhc2UvY29tcHJkZWJ1Zy5leHAKK2dkYi5iYXNlL2NvbnNlY3V0aXZlLXN0ZXAtb3Zlci5leHAK K2dkYi5iYXNlL2NvbnRpbnVlLWFsbC1hbHJlYWR5LXJ1bm5pbmcuZXhwCitnZGIuYmFzZS9jb3Jl ZHVtcC1maWx0ZXIuZXhwCitnZGIuYmFzZS9jb3JlZmlsZTIuZXhwCitnZGIuYmFzZS9jb3JlZmls ZS1idWlsZGlkLmV4cAorZ2RiLmJhc2UvY3Vyc2FsLmV4cAorZ2RiLmJhc2UvZGF0YWxpYi5leHAK K2dkYi5iYXNlL2RjYWNoZS1saW5lLXJlYWQtZXJyb3IuZXhwCitnZGIuYmFzZS9kZWZhdWx0LWFy Z3MuZXhwCitnZGIuYmFzZS9kZWZpbmUuZXhwCitnZGIuYmFzZS9kaXNhYmxlZC1sb2NhdGlvbi5l eHAKK2dkYi5iYXNlL2Rpc2FzbS1lbmQtY3UuZXhwCitnZGIuYmFzZS9kaXNhc20tb3B0aW0uZXhw CitnZGIuYmFzZS9kb3VibGUtcHJvbXB0LXRhcmdldC1ldmVudC1lcnJvci5leHAKK2dkYi5iYXNl L2RwcmludGYtZGV0YWNoLmV4cAorZ2RiLmJhc2UvZHByaW50Zi1uZXh0LmV4cAorZ2RiLmJhc2Uv ZHByaW50Zi1ub24tc3RvcC5leHAKK2dkYi5iYXNlL2RwcmludGYtcGVuZGluZy5leHAKK2dkYi5i YXNlL2RzbzJkc28uZXhwCitnZGIuYmFzZS9kdW1wLmV4cAorZ2RiLmJhc2UvZHVwLXNlY3QuZXhw CitnZGIuYmFzZS9lY2hvLmV4cAorZ2RiLmJhc2UvZW1wdHlfZXhlLmV4cAorZ2RiLmJhc2UvZW5k aWFuLmV4cAorZ2RiLmJhc2UvZW5kaWFuaXR5LmV4cAorZ2RiLmJhc2UvZW51bXZhbC5leHAKK2dk Yi5iYXNlL2Vudmlyb24uZXhwCitnZGIuYmFzZS9ldS1zdHJpcC1pbmZjYWxsLmV4cAorZ2RiLmJh c2UvZXZhbC5leHAKK2dkYi5iYXNlL2V4YW1pbmUtYmFja3dhcmQuZXhwCitnZGIuYmFzZS9leGVj LWludmFsaWQtc3lzcm9vdC5leHAKK2dkYi5iYXNlL2V4ZWN1dGlvbi10ZXJtaW9zLmV4cAorZ2Ri LmJhc2UvZXhlLWxvY2suZXhwCitnZGIuYmFzZS9leGl0c2lnbmFsLmV4cAorZ2RiLmJhc2UvZXhw YW5kLXBzeW10YWJzLmV4cAorZ2RiLmJhc2UvZmlsZXN5bS5leHAKK2dkYi5iYXNlL2ZpbmQtdW5t YXBwZWQuZXhwCitnZGIuYmFzZS9maXhzZWN0aW9uLmV4cAorZ2RiLmJhc2UvZmxleGlibGUtYXJy YXktbWVtYmVyLmV4cAorZ2RiLmJhc2UvZmxvYXQuZXhwCitnZGIuYmFzZS9mbG9hdG4uZXhwCitn ZGIuYmFzZS9mb2N1cy1jbWQtcHJldi5leHAKK2dkYi5iYXNlL2ZvbGwtZXhlYy5leHAKK2dkYi5i YXNlL2ZvbGwtZXhlYy1tb2RlLmV4cAorZ2RiLmJhc2UvZm9ydHJhbi1zeW0tY2FzZS5leHAKK2dk Yi5iYXNlL2ZyYW1lLXNlbGVjdGlvbi5leHAKK2dkYi5iYXNlL2ZyZWVicGNtZC5leHAKK2dkYi5i YXNlL2Z1bGxuYW1lLmV4cAorZ2RiLmJhc2UvZnVsbHBhdGgtZXhwYW5kLmV4cAorZ2RiLmJhc2Uv ZnVuYy1wdHIuZXhwCitnZGIuYmFzZS9nY29yZS1idWZmZXItb3ZlcmZsb3cuZXhwCitnZGIuYmFz ZS9nY29yZS1yZWxyby5leHAKK2dkYi5iYXNlL2dkYjEwNTYuZXhwCitnZGIuYmFzZS9nZGIxMDkw LmV4cAorZ2RiLmJhc2UvZ2RiMTE1MzAuZXhwCitnZGIuYmFzZS9nZGIxMTUzMS5leHAKK2dkYi5i YXNlL2dkYjEyNTAuZXhwCitnZGIuYmFzZS9nZGIxNTU1LmV4cAorZ2RiLmJhc2UvZ2RiMTgyMS5l eHAKK2dkYi5iYXNlL2dkYmhpc3RzaXplLWhpc3RvcnkuZXhwCitnZGIuYmFzZS9nZGItc2lndGVy bS0yLmV4cAorZ2RiLmJhc2UvaGFzaGxpbmUyLmV4cAorZ2RiLmJhc2UvaGFzaGxpbmUzLmV4cAor Z2RiLmJhc2UvaGJyZWFrLmV4cAorZ2RiLmJhc2UvaGJyZWFrLXVubWFwcGVkLmV4cAorZ2RiLmJh c2UvaGVscC5leHAKK2dkYi5iYXNlL2hpc3RvcnktZHVwbGljYXRlcy5leHAKK2dkYi5iYXNlL2hv b2stc3RvcC5leHAKK2dkYi5iYXNlL2h1Z2UuZXhwCitnZGIuYmFzZS9ody1zdy1icmVhay1zYW1l LWFkZHJlc3MuZXhwCitnZGIuYmFzZS9pZmVsc2UuZXhwCitnZGIuYmFzZS9pbmRleC1jYWNoZS5l eHAKK2dkYi5iYXNlL2luZmNhbGwtaW5wdXQuZXhwCitnZGIuYmFzZS9pbmZjYWxsLW5lc3RlZC1z dHJ1Y3RzLWMrKy5leHAKK2dkYi5iYXNlL2luZmNhbGwtbmVzdGVkLXN0cnVjdHMtYy5leHAKK2dk Yi5iYXNlL2luZm5hbi5leHAKK2dkYi5iYXNlL2luZm9saW5lLmV4cAorZ2RiLmJhc2UvaW5mby1s b2NhbHMtdW51c2VkLXN0YXRpYy12YXIuZXhwCitnZGIuYmFzZS9pbmZvX21pbnN5bS5leHAKK2dk Yi5iYXNlL2luZm8tcHJvYy5leHAKK2dkYi5iYXNlL2luZm8tcHJvZ3JhbS5leHAKK2dkYi5iYXNl L2luZm9fcXQuZXhwCitnZGIuYmFzZS9pbmZvLXNoYXJlZC5leHAKK2dkYi5iYXNlL2luZm9fc291 cmNlcy5leHAKK2dkYi5iYXNlL2luZm8tdGFyZ2V0LmV4cAorZ2RiLmJhc2UvaW5mby10eXBlcy1j KysuZXhwCitnZGIuYmFzZS9pbmZvLXR5cGVzLWMuZXhwCitnZGIuYmFzZS9pbmZvLXZhci5leHAK K2dkYi5iYXNlL2ludGVyYWN0LmV4cAorZ2RiLmJhc2UvaW50ZXJydXB0LWRhZW1vbi1hdHRhY2gu ZXhwCitnZGIuYmFzZS9pbnRlcnJ1cHQtZGFlbW9uLmV4cAorZ2RiLmJhc2UvaW50ZXJydXB0LW5v dGVybS5leHAKK2dkYi5iYXNlL2ppdC1hdHRhY2gtcGllLmV4cAorZ2RiLmJhc2Uvaml0LXJlYWRl ci1leGVjLmV4cAorZ2RiLmJhc2Uvaml0LXJlYWRlci1zaW1wbGUuZXhwCitnZGIuYmFzZS9qdW1w LmV4cAorZ2RiLmJhc2Uva2lsbC1kZXRhY2gtaW5mZXJpb3JzLWNtZC5leHAKK2dkYi5iYXNlL2tp bGxlZC1vdXRzaWRlLmV4cAorZ2RiLmJhc2UvbGFiZWwuZXhwCitnZGIuYmFzZS9sYWJlbC13aXRo b3V0LWFkZHJlc3MuZXhwCitnZGIuYmFzZS9sYXJnZWNvcmUtbGFzdC1hZGRyZXNzLWxvY2suZXhw CitnZGIuYmFzZS9saW5laW5jLmV4cAorZ2RiLmJhc2UvbGluZW5vLW1ha2V1cC5leHAKK2dkYi5i YXNlL2xpbmVzcGVjcy5leHAKK2dkYi5iYXNlL2xpbmUtc3ltdGFicy5leHAKK2dkYi5iYXNlL2xp c3QtYW1iaWd1b3VzLmV4cAorZ2RiLmJhc2UvbGlzdC1taXNzaW5nLXNvdXJjZS5leHAKK2dkYi5i YXNlL2xvZ2ljYWwuZXhwCitnZGIuYmFzZS9sb25nZXN0LXR5cGVzLmV4cAorZ2RiLmJhc2UvbG9u Z2ptcC5leHAKK2dkYi5iYXNlL2xvbmdfbG9uZy5leHAKK2dkYi5iYXNlL21haW50LWV4cGFuZC1z eW1ib2xzLWhlYWRlci1maWxlLmV4cAorZ2RiLmJhc2UvbWFpbnQtdGFyZ2V0LWFzeW5jLW9mZi5l eHAKK2dkYi5iYXNlL21hbnktY29tcGxldGlvbnMuZXhwCitnZGIuYmFzZS9tYW55LWhlYWRlcnMu ZXhwCitnZGIuYmFzZS9tYXgtZGVwdGgtYysrLmV4cAorZ2RiLmJhc2UvbWF4LWRlcHRoLWMuZXhw CitnZGIuYmFzZS9tYXgtdmFsdWUtc2l6ZS5leHAKK2dkYi5iYXNlL21lbWF0dHIuZXhwCitnZGIu YmFzZS9taXBzX3Byby5leHAKK2dkYi5iYXNlL21vdmUtZGlyLmV4cAorZ2RiLmJhc2UvbXN5bS1s YW5nLmV4cAorZ2RiLmJhc2UvbmVzdGVkLWFkZHIuZXhwCitnZGIuYmFzZS9uZXh0b3ZlcmV4aXQu ZXhwCitnZGIuYmFzZS9ub2RlYnVnLmV4cAorZ2RiLmJhc2Uvbm9yZXR1cm4tZmluaXNoLmV4cAor Z2RiLmJhc2Uvbm9yZXR1cm4tcmV0dXJuLmV4cAorZ2RiLmJhc2Uvb2Zmc2V0cy5leHAKK2dkYi5i YXNlL29zYWJpLmV4cAorZ2RiLmJhc2Uvb3ZlcmxheXMuZXhwCitnZGIuYmFzZS9wYWdlLmV4cAor Z2RiLmJhc2UvcGFnaW5hdGUtYWZ0ZXItY3RybC1jLXJ1bm5pbmcuZXhwCitnZGIuYmFzZS9wYWdp bmF0ZS1iZy1leGVjdXRpb24uZXhwCitnZGIuYmFzZS9wYWdpbmF0ZS1leGVjdXRpb24tc3RhcnR1 cC5leHAKK2dkYi5iYXNlL3BhZ2luYXRlLWluZmVyaW9yLWV4aXQuZXhwCitnZGIuYmFzZS9wYy1m cC5leHAKK2dkYi5iYXNlL3Blcm1pc3Npb25zLmV4cAorZ2RiLmJhc2UvcHIxMDE3OS5leHAKK2dk Yi5iYXNlL3ByZXR0eS1wcmludC5leHAKK2dkYi5iYXNlL3Byb2xvZ3VlLmV4cAorZ2RiLmJhc2Uv cHJvbG9ndWUtaW5jbHVkZS5leHAKK2dkYi5iYXNlL3BzeW0tZXh0ZXJuYWwtZGVjbC5leHAKK2dk Yi5iYXNlL3BzeW10YWIuZXhwCitnZGIuYmFzZS9wdHItdHlwZWRlZi5leHAKK2dkYi5iYXNlL3F1 aXQuZXhwCitnZGIuYmFzZS9xdWl0LWxpdmUuZXhwCitnZGIuYmFzZS9yYW5kb21pemUuZXhwCitn ZGIuYmFzZS9yYW5kb20tc2lnbmFsLmV4cAorZ2RiLmJhc2UvcmVhZGxpbmUtb3ZlcmZsb3cuZXhw CitnZGIuYmFzZS9yZWdncm91cHMuZXhwCitnZGIuYmFzZS9yZW1vdGUtZXhlYy1maWxlLmV4cAor Z2RiLmJhc2UvcmVtb3RlLmV4cAorZ2RiLmJhc2UvcmVtb3RldGltZW91dC5leHAKK2dkYi5iYXNl L3JlcmVhZC1yZWFkc3ltLmV4cAorZ2RiLmJhc2UvcmV0dXJuLmV4cAorZ2RiLmJhc2UvcmV0dXJu LW5vZGVidWcuZXhwCitnZGIuYmFzZS9ydW4tYWZ0ZXItYXR0YWNoLmV4cAorZ2RiLmJhc2Uvc2F2 ZS1icC5leHAKK2dkYi5iYXNlL3NlY3QtY21kLmV4cAorZ2RiLmJhc2Uvc2VwLmV4cAorZ2RiLmJh c2Uvc2Vwc3ltdGFiLmV4cAorZ2RiLmJhc2Uvc2VydmVyLWRlbC1icmVhay5leHAKK2dkYi5iYXNl L3NldC1pbmZlcmlvci10dHkuZXhwCitnZGIuYmFzZS9zZXQtbGFuZy1hdXRvLmV4cAorZ2RiLmJh c2Uvc2V0LW5vYXNzaWduLmV4cAorZ2RiLmJhc2Uvc2V0LXNvbGliLWFic29sdXRlLXByZWZpeC5l eHAKK2dkYi5iYXNlL3NoZWxsLmV4cAorZ2RiLmJhc2Uvc2hyZWxvYy5leHAKK2dkYi5iYXNlL3Np Z2FsbC5leHAKK2dkYi5iYXNlL3NpZ2NobGQuZXhwCitnZGIuYmFzZS9zaWduZXN0LmV4cAorZ2Ri LmJhc2Uvc2lncmVwZWF0LmV4cAorZ2RiLmJhc2Uvc2tpcC1pbmxpbmUuZXhwCitnZGIuYmFzZS9z b2xpYi1kaXNjLmV4cAorZ2RiLmJhc2Uvc29saWItbm9kaXIuZXhwCitnZGIuYmFzZS9zb2xpYi1w cm9iZXMtbm9zaGFyZWRsaWJyYXJ5LmV4cAorZ2RiLmJhc2Uvc29saWItdmFuaXNoLmV4cAorZ2Ri LmJhc2Uvc291cmNlLWV4ZWN1dGlvbi5leHAKK2dkYi5iYXNlL3NvdXJjZS5leHAKK2dkYi5iYXNl L3Nzcy1icC1vbi11c2VyLWJwLmV4cAorZ2RiLmJhc2Uvc3RhbGUtaW5mY2FsbC5leHAKK2dkYi5i YXNlL3N0YXJ0LmV4cAorZ2RiLmJhc2Uvc3RhcnR1cC13aXRoLXNoZWxsLmV4cAorZ2RiLmJhc2Uv c3RhdGlzdGljcy5leHAKK2dkYi5iYXNlL3N0ZXAtcmVzdW1lLWluZmNhbGwuZXhwCitnZGIuYmFz ZS9zdGVwLXN3LWJyZWFrcG9pbnQtYWRqdXN0LXBjLmV4cAorZ2RiLmJhc2Uvc3RlcC1zeW1sZXNz LmV4cAorZ2RiLmJhc2Uvc3RlcC10ZXN0LmV4cAorZ2RiLmJhc2Uvc3RydWN0czIuZXhwCitnZGIu YmFzZS9zdHJ1Y3RzMy5leHAKK2dkYi5iYXNlL3N0eWxlLmV4cAorZ2RiLmJhc2Uvc3R5bGUtbG9n Z2luZy5leHAKK2dkYi5iYXNlL3N5bWJvbC1hbGlhcy5leHAKK2dkYi5iYXNlL3N5bS1maWxlLmV4 cAorZ2RiLmJhc2Uvc3ltZmlsZS13YXJuLmV4cAorZ2RiLmJhc2Uvc3ltbGluay1zb3VyY2VmaWxl LmV4cAorZ2RiLmJhc2Uvc3ltdGFiLXNlYXJjaC1vcmRlci5leHAKK2dkYi5iYXNlL3RhYi1jcmFz aC5leHAKK2dkYi5iYXNlL3Rlcm0uZXhwCitnZGIuYmFzZS90ZXN0ZW52LmV4cAorZ2RiLmJhc2Uv dHJhY2UtY29tbWFuZHMuZXhwCitnZGIuYmFzZS90cmFjZWZvcmstem9tYmllLmV4cAorZ2RiLmJh c2UvdHdpY2UuZXhwCitnZGIuYmFzZS90eXBlLW9wYXF1ZS5leHAKK2dkYi5iYXNlL3VudGlsLmV4 cAorZ2RiLmJhc2UvdmFsdWUtZG91YmxlLWZyZWUuZXhwCitnZGIuYmFzZS92ZHNvLXdhcm5pbmcu ZXhwCitnZGIuYmFzZS92bGEtcHRyLmV4cAorZ2RiLmJhc2Uvd2FybmluZy5leHAKK2dkYi5iYXNl L3dhdGNoLWNvbmQtaW5mY2FsbC5leHAKK2dkYi5iYXNlL3dhdGNoLW5vbi1tZW0uZXhwCitnZGIu YmFzZS93YXRjaHBvaW50LWNvbmQtZ29uZS5leHAKK2dkYi5iYXNlL3dhdGNocG9pbnQtZGVsZXRl LmV4cAorZ2RiLmJhc2Uvd2F0Y2hwb2ludC1kdXJpbmctc3RlcC5leHAKK2dkYi5iYXNlL3dhdGNo LXZmb3JrLmV4cAorZ2RiLmJhc2Uvd2NoYXIuZXhwCitnZGIuYmFzZS93aXRoLmV4cAorZ2RiLmJh c2Uvd2l0aC1tZi5leHAKK2dkYi5jcC9hYnN0cmFjdC1vcmlnaW4uZXhwCitnZGIuY3AvYW1iaWd1 b3VzLmV4cAorZ2RiLmNwL2Fub24tbnMuZXhwCitnZGIuY3AvYW5vbi1zdHJ1Y3QuZXhwCitnZGIu Y3AvYW5vbi11bmlvbi5leHAKK2dkYi5jcC9hcmctcmVmZXJlbmNlLmV4cAorZ2RiLmNwL2IxNDY4 MzUuZXhwCitnZGIuY3AvYmFzZWVudW0uZXhwCitnZGIuY3AvYm9vbC5leHAKK2dkYi5jcC9icmVh a3BvaW50LWxvY3MuZXhwCitnZGIuY3AvYnMxNTUwMy5leHAKK2dkYi5jcC9jYWxsLWMuZXhwCitn ZGIuY3AvY2hhaW5lZC1jYWxscy5leHAKK2dkYi5jcC9jbGFzczIuZXhwCitnZGIuY3AvY21wZC1t aW5zeW1zLmV4cAorZ2RiLmNwL2NvbnZlcnRzLmV4cAorZ2RiLmNwL2NwY29tcGxldGlvbi5leHAK K2dkYi5jcC9jcGV4cHJzLWRlYnVnLXR5cGVzLmV4cAorZ2RiLmNwL2NwbGFiZWwuZXhwCitnZGIu Y3AvY3BzaXplb2YuZXhwCitnZGIuY3AvY3R0aS5leHAKK2dkYi5jcC9kZWJ1Zy1leHByLmV4cAor Z2RiLmNwL2RlbWFuZ2xlLmV4cAorZ2RiLmNwL2Rlcml2YXRpb24uZXhwCitnZGIuY3AvZGVzdHJw cmludC5leHAKK2dkYi5jcC9kaXNhc20tZnVuYy1uYW1lLmV4cAorZ2RiLmNwL2Rpc3BjeHguZXhw CitnZGIuY3AvZW5hLWRpcy1ici1yYW5nZS5leHAKK2dkYi5jcC9lbnVtLWNsYXNzLmV4cAorZ2Ri LmNwL2V4Y2VwdGlvbi5leHAKK2dkYi5jcC9leGNlcHRwcmludC5leHAKK2dkYi5jcC9leHBhbmQt cHN5bXRhYnMtY3h4LmV4cAorZ2RiLmNwL2V4cGFuZC1zYWxzLmV4cAorZ2RiLmNwL2V4dGVybi1j LmV4cAorZ2RiLmNwL2Zvcm1hdHRlZC1yZWYuZXhwCitnZGIuY3AvZnBvaW50ZXIuZXhwCitnZGIu Y3AvZ2RiMTM1NS5leHAKK2dkYi5jcC9oYW5nLmV4cAorZ2RiLmNwL2ltcGwtdGhpcy5leHAKK2dk Yi5jcC9pbmZjYWxsLWRsb3Blbi5leHAKK2dkYi5jcC9pbmZjYWxsLW5vZGVidWctYysrLWQwLmV4 cAorZ2RiLmNwL2luZmNhbGwtbm9kZWJ1Zy1jLWQwLmV4cAorZ2RiLmNwL2luZmNhbGwtbm9kZWJ1 Zy1jKystZDEuZXhwCitnZGIuY3AvaW5mY2FsbC1ub2RlYnVnLWMtZDEuZXhwCitnZGIuY3AvaW9z dHJlYW0uZXhwCitnZGIuY3AvbG9jYWwtc3RhdGljLmV4cAorZ2RiLmNwL21iLWlubGluZS5leHAK K2dkYi5jcC9tYi10ZW1wbGF0ZXMuZXhwCitnZGIuY3AvbS1kYXRhLmV4cAorZ2RiLmNwL21lbWJl ci1uYW1lLmV4cAorZ2RiLmNwL21lbWJlci1wdHIuZXhwCitnZGIuY3AvbWV0aG9kMi5leHAKK2dk Yi5jcC9tZXRob2QuZXhwCitnZGIuY3AvbWV0aC10eXBlZGVmcy5leHAKK2dkYi5jcC9uYW1lbGVz c2NsYXNzLmV4cAorZ2RiLmNwL25hbWVzcGFjZS1lbnVtLmV4cAorZ2RiLmNwL25hbWVzcGFjZS5l eHAKK2dkYi5jcC9uYW1lc3BhY2UtbmVzdGVkLWltcG9ydC5leHAKK2dkYi5jcC9uZXN0ZWQtdHlw ZXMuZXhwCitnZGIuY3AvbmV4dG92ZXJ0aHJvdy5leHAKK2dkYi5jcC9ub24tdHJpdmlhbC1yZXR2 YWwuZXhwCitnZGIuY3Avbm9wYXJhbS5leHAKK2dkYi5jcC9uc2FsaWFzLmV4cAorZ2RiLmNwL25z ZGVjbC5leHAKK2dkYi5jcC9uc2ltcG9ydC5leHAKK2dkYi5jcC9uc25vaW1wb3J0cy5leHAKK2dk Yi5jcC9uc3JlY3Vycy5leHAKK2dkYi5jcC9uc3N0cmVzcy5leHAKK2dkYi5jcC9vcGVyYXRvci5l eHAKK2dkYi5jcC9vdmVybG9hZC1jb25zdC5leHAKK2dkYi5jcC9vdmVybG9hZC5leHAKK2dkYi5j cC9vdnNyY2guZXhwCitnZGIuY3AvcGFyZW4tdHlwZS5leHAKK2dkYi5jcC9wYXJzZS1sYW5nLmV4 cAorZ2RiLmNwL3Bhc3MtYnktcmVmLTIuZXhwCitnZGIuY3AvcGFzcy1ieS1yZWYuZXhwCitnZGIu Y3AvcHItMTAyMy5leHAKK2dkYi5jcC9wcjEwNjg3LmV4cAorZ2RiLmNwL3ByMTA3MjguZXhwCitn ZGIuY3AvcHIxMTczNC5leHAKK2dkYi5jcC9wcjEyMDI4LmV4cAorZ2RiLmNwL3ByLTEyMTAuZXhw CitnZGIuY3AvcHIxMjI3My5leHAKK2dkYi5jcC9wcjE3MTMyLmV4cAorZ2RiLmNwL3ByOTA2Ny5l eHAKK2dkYi5jcC9wcjk2MzEuZXhwCitnZGIuY3AvcHJpbnQtZGVtYW5nbGUuZXhwCitnZGIuY3Av cHJpbnRtZXRob2QuZXhwCitnZGIuY3AvcHNtYW5nLmV4cAorZ2RiLmNwL3BzeW10YWItcGFyYW1l dGVyLmV4cAorZ2RiLmNwL3B0eXBlLWN2LWNwLmV4cAorZ2RiLmNwL3B0eXBlLWZsYWdzLmV4cAor Z2RiLmNwL3B1bmN0dWF0b3IuZXhwCitnZGIuY3AvcmVhZG5vdy1sYW5ndWFnZS5leHAKK2dkYi5j cC9yZWYtcGFyYW1zLmV4cAorZ2RiLmNwL3JlLXNldC1vdmVybG9hZGVkLmV4cAorZ2RiLmNwL3J0 dGkuZXhwCitnZGIuY3AvcnZhbHVlLXJlZi1jYXN0cy5leHAKK2dkYi5jcC9ydmFsdWUtcmVmLXBh cmFtcy5leHAKK2dkYi5jcC9ydmFsdWUtcmVmLXNpemVvZi5leHAKK2dkYi5jcC9ydmFsdWUtcmVm LXR5cGVzLmV4cAorZ2RiLmNwL3NhdmUtYnAtcXVhbGlmaWVkLmV4cAorZ2RiLmNwL3Njb3BlLWVy ci5leHAKK2dkYi5jcC9zaGFkb3cuZXhwCitnZGIuY3Avc21hcnRwLmV4cAorZ2RiLmNwL3N0YXRp Yy1tZXRob2QuZXhwCitnZGIuY3Avc3RhdGljLXByaW50LXF1aXQuZXhwCitnZGIuY3Avc3RhdGlj LXR5cGVkZWYtcHJpbnQuZXhwCitnZGIuY3Avc3R1Yi1hcnJheS1zaXplLmV4cAorZ2RiLmNwL3N1 YnR5cGVzLmV4cAorZ2RiLmNwL3RyeV9jYXRjaC5leHAKK2dkYi5jcC90eXBlZGVmLWJhc2UuZXhw CitnZGIuY3AvdHlwZWRlZi1vcGVyYXRvci5leHAKK2dkYi5jcC90eXBlZC1lbnVtLmV4cAorZ2Ri LmNwL3VzZXJkZWYuZXhwCitnZGIuY3AvdXNpbmctY3Jhc2guZXhwCitnZGIuY3AvdmlydGJhc2Uy LmV4cAorZ2RiLmNwL3ZpcnRiYXNlLmV4cAorZ2RiLmNwL3ZpcnRmdW5jMi5leHAKK2dkYi5jcC93 aWRlX2NoYXJfdHlwZXMuZXhwCitnZGIuZm9ydHJhbi9hcnJheS1ib3VuZHMuZXhwCitnZGIuZm9y dHJhbi9hcnJheS1ib3VuZHMtaGlnaC5leHAKK2dkYi5mb3J0cmFuL2FycmF5LWVsZW1lbnQuZXhw CitnZGIuZm9ydHJhbi9hcnJheS1zbGljZXMtYmFkLmV4cAorZ2RiLmZvcnRyYW4vYXJyYXktc2xp Y2VzLXN1Yi1zbGljZXMuZXhwCitnZGIuZm9ydHJhbi9ibG9jay1kYXRhLmV4cAorZ2RiLmZvcnRy YW4vY2hhcnNldC5leHAKK2dkYi5mb3J0cmFuL2NsYXNzLWFsbG9jYXRhYmxlLWFycmF5LmV4cAor Z2RiLmZvcnRyYW4vY29tbW9uLWJsb2NrLmV4cAorZ2RiLmZvcnRyYW4vY29tcGxleC5leHAKK2dk Yi5mb3J0cmFuL2Rlcml2ZWQtdHlwZS5leHAKK2dkYi5mb3J0cmFuL2Rlcml2ZWQtdHlwZS1mdW5j dGlvbi5leHAKK2dkYi5mb3J0cmFuL2Rlcml2ZWQtdHlwZS1zdHJpZGluZy5leHAKK2dkYi5mb3J0 cmFuL2RvdC1vcHMuZXhwCitnZGIuZm9ydHJhbi9leHBycy5leHAKK2dkYi5mb3J0cmFuL2luZm8t bW9kdWxlcy5leHAKK2dkYi5mb3J0cmFuL2luZm8tdHlwZXMuZXhwCitnZGIuZm9ydHJhbi9pbnRy aW5zaWNzLmV4cAorZ2RiLmZvcnRyYW4vbGlicmFyeS1tb2R1bGUuZXhwCitnZGIuZm9ydHJhbi9s b2dpY2FsLmV4cAorZ2RiLmZvcnRyYW4vbWF4LWRlcHRoLmV4cAorZ2RiLmZvcnRyYW4vbWl4ZWQt bGFuZy1zdGFjay5leHAKK2dkYi5mb3J0cmFuL21vZHVsZS5leHAKK2dkYi5mb3J0cmFuL211bHRp LWRpbS5leHAKK2dkYi5mb3J0cmFuL25lc3RlZC1mdW5jcy0yLmV4cAorZ2RiLmZvcnRyYW4vbmVz dGVkLWZ1bmNzLmV4cAorZ2RiLmZvcnRyYW4vcG9pbnRlci10by1wb2ludGVyLmV4cAorZ2RiLmZv cnRyYW4vcHJpbnQtZm9ybWF0dGVkLmV4cAorZ2RiLmZvcnRyYW4vcHJpbnRpbmctdHlwZXMuZXhw CitnZGIuZm9ydHJhbi9wcmludF90eXBlLmV4cAorZ2RiLmZvcnRyYW4vcHRyLWluZGVudGF0aW9u LmV4cAorZ2RiLmZvcnRyYW4vcHR5cGUtb24tZnVuY3Rpb25zLmV4cAorZ2RiLmZvcnRyYW4vc2hv cnQtY2lyY3VpdC1hcmd1bWVudC1saXN0LmV4cAorZ2RiLmZvcnRyYW4vc3ViYXJyYXkuZXhwCitn ZGIuZm9ydHJhbi90eXBlLWtpbmRzLmV4cAorZ2RiLmZvcnRyYW4vdHlwZXMuZXhwCitnZGIuZm9y dHJhbi92bGEtYWxsb2MtYXNzb2MuZXhwCitnZGIuZm9ydHJhbi92bGEtZGF0YXR5cGVzLmV4cAor Z2RiLmZvcnRyYW4vdmxhLWhpc3RvcnkuZXhwCitnZGIuZm9ydHJhbi92bGEtcHRyLWluZm8uZXhw CitnZGIuZm9ydHJhbi92bGEtcHR5cGUuZXhwCitnZGIuZm9ydHJhbi92bGEtcHR5cGUtc3ViLmV4 cAorZ2RiLmZvcnRyYW4vdmxhLXNpemVvZi5leHAKK2dkYi5mb3J0cmFuL3ZsYS10eXBlLmV4cAor Z2RiLmZvcnRyYW4vdmxhLXZhbHVlLmV4cAorZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLXN1Yi1hcmJp dHJhcnkuZXhwCitnZGIuZm9ydHJhbi92bGEtdmFsdWUtc3ViLmV4cAorZ2RiLmZvcnRyYW4vdmxh LXZhbHVlLXN1Yi1maW5pc2guZXhwCitnZGIuZm9ydHJhbi93aGF0aXNfdHlwZS5leHAKK2dkYi5m b3J0cmFuL3hsZi12YXJpYWJsZS5leHAKCmRpZmYgLS1naXQgYS90ZXN0cy9nZGItdGVzdHN1aXRl LXNhbml0eS9yZWYvZ2VuLnNoIGIvdGVzdHMvZ2RiLXRlc3RzdWl0ZS1zYW5pdHkvcmVmL2dlbi5z aApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wOTI2YTcxCi0tLSAvZGV2L251 bGwKKysrIGIvdGVzdHMvZ2RiLXRlc3RzdWl0ZS1zYW5pdHkvcmVmL2dlbi5zaApAQCAtMCwwICsx LDExIEBACisjIS9iaW4vYmFzaAorCitCSU49YHdoaWNoIGdkYmAgJiYKK1BBQ0tBR0U9YHJwbSAt cWYgLS1xZj0nJXtuYW1lfVxuJyAke0JJTn1gICYmCitTWVNURU09YHVuYW1lIC1yIHwgZ3JlcCAt byAtRSAnZWxbMC05XSthP3xmY1swLTldKydgICYmCitBUkNIPWBhcmNoYCAmJgorZWNobyAiLi9y ZWYvJHtQQUNLQUdFfS8ke1NZU1RFTX0uJHtBUkNIfSIgJiYKK2V4aXQgMAorCitlY2hvICJFUlJP UiIgPiYyCitleGl0IDEKCmRpZmYgLS1naXQgYS90ZXN0cy9nZGItdGVzdHN1aXRlLXNhbml0eS9y dW50ZXN0LnNoIGIvdGVzdHMvZ2RiLXRlc3RzdWl0ZS1zYW5pdHkvcnVudGVzdC5zaApuZXcgZmls ZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iMzRkNWQ0Ci0tLSAvZGV2L251bGwKKysrIGIv dGVzdHMvZ2RiLXRlc3RzdWl0ZS1zYW5pdHkvcnVudGVzdC5zaApAQCAtMCwwICsxLDEzNiBAQAor IyEvYmluL2Jhc2gKKyMgdmltOiBkaWN0Kz0vdXNyL3NoYXJlL2JlYWtlcmxpYi9kaWN0aW9uYXJ5 LnZpbSBjcHQ9Lix3LGIsdSx0LGksaworIyB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorIworIyAgIHJ1bnRlc3Quc2gg b2YgL3Rvb2xzL2dkYi9TYW5pdHkvZ2RiLXRlc3RzdWl0ZS1zYW5pdHkKKyMgICBEZXNjcmlwdGlv bjogZ2RiIHRlc3RpbmcgYnkgdXBzdHJlYW0gdGVzdHN1aXRlCisjICAgQXV0aG9yOiBNaWNoYWwg S29sYXIgPG1rb2xhckByZWRoYXQuY29tPgorIworIyB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorIworIyAgIENvcHly aWdodCAoYykgMjAyMSBSZWQgSGF0LCBJbmMuCisjCisjICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUg c29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyAgIG1vZGlmeSBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisjICAg cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9u IDIgb2YKKyMgICB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KKyMKKyMgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlCisjICAgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZAorIyAgIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgICBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyAgIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjICAg YWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8uCisjCisjIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKKyMgSW5jbHVkZSBCZWFrZXIgZW52aXJvbm1l bnQKKy4gL3Vzci9zaGFyZS9iZWFrZXJsaWIvYmVha2VybGliLnNoIHx8IGV4aXQgMQorCitCVUlM RF9VU0VSPSR7QlVJTERfVVNFUjotZ2RiYmxkfQorZXhwb3J0IFBBQ0tBR0U9IiR7UEFDS0FHRTot JChycG0gLXFmIC0tcWY9JyV7bmFtZX1cbicgYHdoaWNoIGdkYmApfSIKK1JVTlRFU1RGTEFHUz0k e1JVTlRFU1RGTEFHUzotR0RCPWBycG0gLXFsICRQQUNLQUdFIHwgZ3JlcCAtRSAnYmluL2dkYiQn YH0KK1RFU1RTX0NPVU5UX01JTj0ke1RFU1RTX0NPVU5UX01JTjotNDAwMH0KK1JFUVVJUkVTPSIk UEFDS0FHRSBycG0tYnVpbGQgZGVqYWdudSBtYWtlIGdjYyBnbGliYyIKK2lmIHJsSXNGZWRvcmE7 IHRoZW4KKyAgUkVRVUlSRVM9IiRSRVFVSVJFUyBkbmYtdXRpbHMiCitlbHNlCisgIFJFUVVJUkVT PSIkUkVRVUlSRVMgeXVtLXV0aWxzIgorZmkKKworcmxKb3VybmFsU3RhcnQKKyAgcmxQaGFzZVN0 YXJ0U2V0dXAKKyAgICBybFNob3dSdW5uaW5nS2VybmVsCisgICAgcmxBc3NlcnRScG0gLS1hbGwK KyAgICBybFJ1biAiVG1wRGlyPVwkKG1rdGVtcCAtZCkiCisgICAgcmxSdW4gImNwIC1yIC4vcmVm ICRUbXBEaXIiCisgICAgcmxSdW4gInB1c2hkICRUbXBEaXIiCisgICAgcmxGZXRjaFNyY0Zvcklu c3RhbGxlZCAkUEFDS0FHRQorICAgIHJsUnVuICJ1c2VyYWRkIC1NIC1OICRCVUlMRF9VU0VSIiAw LDkKKyAgICBbICQ/IC1lcSAwIF0gJiYgcmxSdW4gImRlbD15ZXMiCisgICAgcmxSdW4gImNob3du IC1SICRCVUlMRF9VU0VSOnVzZXJzICRUbXBEaXIiCisgICAgcmxSdW4gImNwIC9wcm9jL3N5cy9r ZXJuZWwvY29yZV9wYXR0ZXJuICRUbXBEaXIvY29yZV9wYXR0ZXJuLmJja3AiCisgICAgcmxSdW4g ImVjaG8gJ2NvcmUuJXAnID4vcHJvYy9zeXMva2VybmVsL2NvcmVfcGF0dGVybiIKKyAgICBybFJ1 biAidWxpbWl0IC1jIHVubGltaXRlZCIKKyAgcmxQaGFzZUVuZAorCisgIHJsUGhhc2VTdGFydFNl dHVwICJidWlsZCBnZGIiCisgICAgcmxSdW4gInN1IC1jICdycG0gLUQgXCJfdG9wZGlyICRUbXBE aXJcIiAtVSAqLnNyYy5ycG0gJj5ycG0ubG9nJyAkQlVJTERfVVNFUiIKKyAgICBybFJ1biAicmxG aWxlU3VibWl0ICRUbXBEaXIvcnBtLmxvZyBycG0ubG9nIgorICAgIHJsUnVuICJzdSAtYyAncnBt YnVpbGQgLUQgXCJfdG9wZGlyICRUbXBEaXJcIiAtYnMgLS13aXRoIHRlc3RzdWl0ZSAkVG1wRGly L1NQRUNTLyouc3BlYyAmPnJwbWJ1aWxkLWJzLmxvZycgJEJVSUxEX1VTRVIiCisgICAgcmxSdW4g InJsRmlsZVN1Ym1pdCAkVG1wRGlyL3JwbWJ1aWxkLWJzLmxvZyBycG1idWlsZC1icy5sb2ciCisg ICAgcmxSdW4gInl1bS1idWlsZGRlcCAteSAtRCBcIl90b3BkaXIgJFRtcERpclwiICRUbXBEaXIv U1JQTVMvKi5zcmMucnBtICY+JFRtcERpci95dW0tYnVpbGRkZXAubG9nIiAwLDE7IHJldD0kPwor ICAgIHJsUnVuICJybEZpbGVTdWJtaXQgJFRtcERpci95dW0tYnVpbGRkZXAubG9nIHl1bS1idWls ZGRlcC5sb2ciCisgICAgaWYgWyAkcmV0IC1uZSAwIF07IHRoZW4KKyAgICAgIHJsTG9nV2Fybmlu ZyAiRGVwZW5kZW5jaWVzIHdhcyBub3Qgc3VjY2Vzc2Z1bGx5IGluc3RhbGxlZCIKKyAgICAgIHJs TG9nSW5mbyAiVHJ5aW5nIHRvIGluc3RhbGwgZGVwZW5kZW5jaWVzIG9mIGJhcmUgU1BFQyBmaWxl IC4uLiIKKyAgICAgIHJsUnVuICJ5dW0tYnVpbGRkZXAgLXkgLUQgXCJfdG9wZGlyICRUbXBEaXJc IiAkVG1wRGlyL1NQRUNTLyouc3BlYyAmPiRUbXBEaXIveXVtLWJ1aWxkZGVwLXNwZWMubG9nIgor ICAgICAgcmxSdW4gInJsRmlsZVN1Ym1pdCAkVG1wRGlyL3l1bS1idWlsZGRlcC1zcGVjLmxvZyB5 dW0tYnVpbGRkZXAtc3BlYy5sb2ciCisgICAgZmkKKyAgICBybFJ1biAic3UgLWMgJ3JwbWJ1aWxk IC1EIFwiX3RvcGRpciAkVG1wRGlyXCIgLWJwICRUbXBEaXIvU1BFQ1MvKi5zcGVjICY+JFRtcERp ci9ycG1idWlsZC1icC5sb2cnICRCVUlMRF9VU0VSIgorICAgIHJsUnVuICJybEZpbGVTdWJtaXQg JFRtcERpci9ycG1idWlsZC1icC5sb2cgcnBtYnVpbGQtYnAubG9nIgorICAgIGlmIHRlc3QgLWUg JFRtcERpci9CVUlMRC9nZGItKi9nbnVsaWIvY29uZmlndXJlOyB0aGVuCisgICAgICBybFJ1biAi Y2QgJFRtcERpci9CVUlMRC9nZGItKi9nbnVsaWIiCisgICAgICBybFJ1biAic3UgLWMgJ2Jhc2gg Li9jb25maWd1cmUgJj4kVG1wRGlyL2NvbmZpZ3VyZS1nbnVsaWIubG9nJyAkQlVJTERfVVNFUiIK KyAgICAgIHJsUnVuICJybEZpbGVTdWJtaXQgJFRtcERpci9jb25maWd1cmUtZ251bGliLmxvZyBj b25maWd1cmUtZ251bGliLmxvZyIKKyAgICBmaQorICAgIHJsUnVuICJjb25maWd1cmVfZmxhZ3M9 XCQocnBtc3BlYyAtRCBcIl90b3BkaXIgJFRtcERpclwiIC1QICRUbXBEaXIvU1BFQ1MvKi5zcGVj IHwgZ3JlcCAtbyAtRSAnXC1cLShwcmVmaXh8d2l0aFwtZ2RiXC1kYXRhZGlyfHdpdGhcLXNlcGFy YXRlXC1kZWJ1Z1wtZGlyfHdpdGhcLXB5dGhvbik9XFMrJyB8IHRyICdcbicgJyAnKSIKKyAgICBy bFJ1biAiY2QgJFRtcERpci9CVUlMRC9nZGItKi9nZGIiCisgICAgcmxSdW4gInN1IC1jICcuL2Nv bmZpZ3VyZSAkY29uZmlndXJlX2ZsYWdzICY+JFRtcERpci9jb25maWd1cmUubG9nJyAkQlVJTERf VVNFUiIKKyAgICBybFJ1biAicmxGaWxlU3VibWl0ICRUbXBEaXIvY29uZmlndXJlLmxvZyBjb25m aWd1cmUubG9nIgorICAgIHJsUnVuICJEQVRBRElSPWBnZGIgLWV4ICdzaG93IGRhdGEtZGlyZWN0 b3J5JyAtYmF0Y2ggfCBncmVwIC1vIC1FICcvW15cIl0rJ2AiCisgICAgcmxSdW4gIm12IGRhdGEt ZGlyZWN0b3J5IGRhdGEtZGlyZWN0b3J5Lm9yaWciCisgICAgcmxSdW4gImxuIC1zICREQVRBRElS IC4vZGF0YS1kaXJlY3RvcnkiCisgIHJsUGhhc2VFbmQKKworICBybFBoYXNlU3RhcnRTZXR1cCAi ZmlsdGVyIHRlc3RzdWl0ZSIKKyAgICBybFJ1biAic3lzdGVtPWB1bmFtZSAtciB8IGdyZXAgLW8g LUUgJ2VsWzAtOV0rYT98ZmNbMC05XSsnYCAmJiBbWyAhIC16IFwkc3lzdGVtIF1dIgorICAgIHJs UnVuICJyZWZfZmlsZT0kVG1wRGlyL3JlZi8kUEFDS0FHRS8kc3lzdGVtLmBhcmNoYCIKKyAgICBp ZiAhIHRlc3QgLWUgJHJlZl9maWxlOyB0aGVuCisgICAgICBybExvZ1dhcm5pbmcgIlJlZmVyZW5j ZSBmaWxlICRyZWZfZmlsZSBub3QgZm91bmQiCisgICAgICBybExvZ0luZm8gIlVzaW5nIGRlZmF1 bHQgcmVmZXJlbmNlIGZpbGUgLi4uIgorICAgICAgcmxSdW4gInJlZl9maWxlPSRUbXBEaXIvcmVm L2RlZmF1bHQiCisgICAgZmkKKyAgICBybFJ1biAidGVzdCAtZSAkcmVmX2ZpbGUiCisgICAgcmxS dW4gImNkIHRlc3RzdWl0ZSIKKyAgICBybFJ1biAiZmluZCAuIC1yZWdleCAnXi4vZ2RiXC4uK1wu ZXhwJCcgLXR5cGUgZiAtcHJpbnRmICclUFxuJyB8IHNvcnQgPiRUbXBEaXIvdGVzdF9saXN0Igor ICAgIHJsUnVuICJjb21tIC0yMyAkVG1wRGlyL3Rlc3RfbGlzdCAkcmVmX2ZpbGUgPiRUbXBEaXIv ZGlzYWJsZV9saXN0IiAgIyBkaXNhYmxlIHRlc3RzIHRoYXQgYXJlIG5vdCBpbmNsdWRlZCBpbiB0 aGUgcmVmZXJlbmNlIGZpbGUKKyAgICBybExvZ0luZm8gIlRlc3RjYXNlIGRpc2FibGluZyAuLi4i CisgICAgd2hpbGUgcmVhZCBmaWxlOyBkbworICAgICAgbXYgIiRmaWxlIiAiJGZpbGUuZGlzYWJs ZWQiCisgICAgZG9uZSA8JFRtcERpci9kaXNhYmxlX2xpc3QKKyAgICBybFJ1biAiY2QgJFRtcERp ci9CVUlMRC9nZGItKi9nZGIiCisgIHJsUGhhc2VFbmQKKworICBybFBoYXNlU3RhcnRUZXN0ICJy dW4gdGVzdHN1aXRlIgorICAgIHJsUnVuICJzdSAtYyAnbWFrZSBjaGVjayBSVU5URVNURkxBR1M9 XCIke1JVTlRFU1RGTEFHU31cIiB8JiB0ZWUgJFRtcERpci90ZXN0c3VpdGUubG9nIHwgZ3JlcCAt RSBcIl5SdW5uaW5nLitcLmV4cCAuLi4kXCI7IHRlc3QgXCR7UElQRVNUQVRVU1swXX0gLWVxIDAn ICRCVUlMRF9VU0VSIgorICAgIHJsUnVuICJybEZpbGVTdWJtaXQgJFRtcERpci90ZXN0c3VpdGUu bG9nIHRlc3RzdWl0ZS5sb2ciCisgICAgcmxSdW4gInJsRmlsZVN1Ym1pdCB0ZXN0c3VpdGUvZ2Ri LnN1bSBnZGIuc3VtIgorICAgIHJsUnVuICJybEZpbGVTdWJtaXQgdGVzdHN1aXRlL2dkYi5sb2cg Z2RiLmxvZyIKKyAgICBybExvZ0luZm8gImBhd2sgJy89PT0gZ2RiIFN1bW1hcnkgPT09LywwJyB0 ZXN0c3VpdGUvZ2RiLnN1bWAiCisgIHJsUGhhc2VFbmQKKworICBybFBoYXNlU3RhcnRUZXN0ICJl dmFsdWF0ZSByZXN1bHRzIgorICAgIHJsUnVuICJ0ZXN0c19jb3VudD1cJChncmVwIC1FICdeUEFT UzonIHRlc3RzdWl0ZS9nZGIuc3VtIHwgd2MgLWwpIgorICAgIFsgIiR0ZXN0c19jb3VudCIgLWdl ICIkVEVTVFNfQ09VTlRfTUlOIiBdICYmIHJsTG9nSW5mbyAiVGVzdCBjb3VudGVyOiAkdGVzdHNf Y291bnQiIHx8IHJsRmFpbCAiVGVzdCBjb3VudGVyICR0ZXN0c19jb3VudCBzaG91bGQgYmUgZ3Jl YXRlciB0aGFuIG9yIGVxdWFsIHRvICRURVNUU19DT1VOVF9NSU4iCisgICAgcmxSdW4gImF3ayAn QkVHSU4geyBSUz1cIlJ1bm5pbmcgL3RtcC9bXi9dKy9CVUlMRC9nZGItW14vXSsvZ2RiL3Rlc3Rz dWl0ZS9cIiB9IC9cc0VSUk9SOnxcc0ZBSUw6fFxzS1BBU1M6fFxzVU5SRVNPTFZFRDp8XHNYUEFT UzovIHsgcHJpbnQgXCQwIH0nIHRlc3RzdWl0ZS9nZGIuc3VtID4kVG1wRGlyL2Vycm9yLmxvZyIg ICMgY2hlY2sgZm9yIGVycm9ycywgdW5yZXNvbHZlZCB0ZXN0Y2FzZXMsIHVuZXhwZWN0ZWQgZmFp bHVyZXMgYW5kIHVuZXhwZWN0ZWQgc3VjY2Vzc2VzCisgICAgaWYgWyAtcyAkVG1wRGlyL2Vycm9y LmxvZyBdOyB0aGVuCisgICAgICBybEZhaWwgIkVycm9ycyBvYnNlcnZlZCI7CisgICAgICBybFJ1 biAicmxGaWxlU3VibWl0ICRUbXBEaXIvZXJyb3IubG9nIGVycm9yLmxvZyIKKyAgICAgIHJsUnVu ICJhd2sgJ0JFR0lOIHsgUlM9XCJSdW5uaW5nIC90bXAvW14vXSsvQlVJTEQvZ2RiLVteL10rL2dk Yi90ZXN0c3VpdGUvXCIgfSAvXHNFUlJPUjp8XHNGQUlMOnxcc0tQQVNTOnxcc1VOUkVTT0xWRUQ6 fFxzWFBBU1M6LyB7IHByaW50IFwkMSB9JyB0ZXN0c3VpdGUvZ2RiLnN1bSA+JFRtcERpci9hZmZl Y3RlZF90ZXN0Y2FzZXMubG9nIgorICAgICAgcmxMb2dJbmZvICJgZWNobyAnQWZmZWN0ZWQgdGVz dGNhc2VzOic7Y2F0ICRUbXBEaXIvYWZmZWN0ZWRfdGVzdGNhc2VzLmxvZ2AiCisgICAgICBybFJ1 biAicmxGaWxlU3VibWl0ICRUbXBEaXIvYWZmZWN0ZWRfdGVzdGNhc2VzLmxvZyBhZmZlY3RlZF90 ZXN0Y2FzZXMubG9nIgorICAgIGVsc2UKKyAgICAgIHJsUGFzcyAiTm8gZXJyb3JzIG9ic2VydmVk IgorICAgIGZpCisgIHJsUGhhc2VFbmQKKworICBybFBoYXNlU3RhcnRDbGVhbnVwCisgICAgcmxS dW4gImNhdCAkVG1wRGlyL2NvcmVfcGF0dGVybi5iY2twID4vcHJvYy9zeXMva2VybmVsL2NvcmVf cGF0dGVybiIKKyAgICBybFJ1biAicG9wZCIKKyAgICBybFJ1biAicm0gLXIgJFRtcERpciIKKyAg ICBbICIkZGVsIiA9ICJ5ZXMiIF0gJiYgcmxSdW4gInVzZXJkZWwgLWYgJEJVSUxEX1VTRVIiCisg IHJsUGhhc2VFbmQKK3JsSm91cm5hbFByaW50VGV4dAorcmxKb3VybmFsRW5kCgpkaWZmIC0tZ2l0 IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmUKaW5kZXggNWY0YTQwYy4uZThhM2JhOCAxMDA2NDQK LS0tIGEvLmdpdGlnbm9yZQorKysgYi8uZ2l0aWdub3JlCkBAIC0xLDQgKzEsNCBAQAogL25ldy1m ZWRvcmEtcmVsZWFzZQogL2dkYi1saWJzdGRjKystdjMtcHl0aG9uLTguMS4xLTIwMTgwNjI2LnRh ci54egogL3YyLjAuNC50YXIuZ3oKLS9nZGItMTAuMi50YXIueHoKKy9nZGItMTEuMS50YXIueHoK CmRpZmYgLS1naXQgYS9fZ2RiLnNwZWMuUGF0Y2guaW5jbHVkZSBiL19nZGIuc3BlYy5QYXRjaC5p bmNsdWRlCmluZGV4IDIxOTU4NmUuLmU1NmNmOTAgMTAwNjQ0Ci0tLSBhL19nZGIuc3BlYy5QYXRj aC5pbmNsdWRlCisrKyBiL19nZGIuc3BlYy5QYXRjaC5pbmNsdWRlCkBAIC0xOSwyODMgKzE5LDI3 OSBAQCBQYXRjaDAwNDogZ2RiLTYuMy10ZXN0LW1vdmVkaXItMjAwNTAxMjUucGF0Y2gKICM9ZmVk b3JhdGVzdAogUGF0Y2gwMDU6IGdkYi02LjMtdGhyZWFkZWQtd2F0Y2hwb2ludHMyLTIwMDUwMjI1 LnBhdGNoCiAKLSMgTm90aWZ5IG9ic2VydmVycyB0aGF0IHRoZSBpbmZlcmlvciBoYXMgYmVlbiBj cmVhdGVkCi0jPWZlZG9yYXRlc3QKLVBhdGNoMDA2OiBnZGItNi4zLWluZmVyaW9yLW5vdGlmaWNh dGlvbi0yMDA1MDcyMS5wYXRjaAotCiAjIFZlcmlmeSBwcmludGluZyBvZiBpbmhlcml0ZWQgbWVt YmVycyB0ZXN0CiAjPWZlZG9yYXRlc3QKLVBhdGNoMDA3OiBnZGItNi4zLWluaGVyaXRhbmNldGVz dC0yMDA1MDcyNi5wYXRjaAorUGF0Y2gwMDY6IGdkYi02LjMtaW5oZXJpdGFuY2V0ZXN0LTIwMDUw NzI2LnBhdGNoCiAKICMgU3VwcG9ydCBUTFMgc3ltYm9scyAoK2BlcnJubycgc3VnZ2VzdGlvbiBp ZiBubyBwdGhyZWFkIGlzIGZvdW5kKSAoQlogMTg1MzM3KS4KICM9cHVzaCtqYW46IEl0IHNob3Vs ZCBiZSByZXBsYWNlZCBieSBJbmZpbml0eSBwcm9qZWN0LgotUGF0Y2gwMDg6IGdkYi02LjUtYnox ODUzMzctcmVzb2x2ZS10bHMtd2l0aG91dC1kZWJ1Z2luZm8tdjIucGF0Y2gKK1BhdGNoMDA3OiBn ZGItNi41LWJ6MTg1MzM3LXJlc29sdmUtdGxzLXdpdGhvdXQtZGVidWdpbmZvLXYyLnBhdGNoCiAK ICMgRml4IFRMUyBzeW1ib2xzIHJlc29sdmluZyBmb3Igc2hhcmVkIGxpYnJhcmllcyB3aXRoIGEg cmVsYXRpdmUgcGF0aG5hbWUuCiAjIFRoZSB0ZXN0c3VpdGUgbmVlZHMgYGdkYi02LjUtdGxzLW9m LXNlcGFyYXRlLWRlYnVnaW5mby5wYXRjaCcuCiAjPWZlZG9yYXRlc3Q6IE9uZSBzaG91bGQgcmVj aGVjayBpZiBpdCBpcyByZWFsbHkgZml4ZWQgdXBzdHJlYW0uCi1QYXRjaDAwOTogZ2RiLTYuNS1z aGFyZWRsaWJyYXJ5LXBhdGgucGF0Y2gKK1BhdGNoMDA4OiBnZGItNi41LXNoYXJlZGxpYnJhcnkt cGF0aC5wYXRjaAogCiAjIEltcHJvdmVkIHRlc3RzdWl0ZSByZXN1bHRzIGJ5IHRoZSB0ZXN0c3Vp dGUgcHJvdmlkZWQgYnkgdGhlIGNvdXJ0ZXN5IG9mIEJFQS4KICM9ZmVkb3JhdGVzdDogRm9yIHVw c3RyZWFtIGl0IHNob3VsZCBiZSByZXdyaXR0ZW4gYXMgYSBkZWphZ251IHRlc3QsIHRoZSB0ZXN0 IG9mIG5vICI/PyIgd2FzIHVzZWZ1bC4KLVBhdGNoMDEwOiBnZGItNi41LUJFQS10ZXN0c3VpdGUu cGF0Y2gKK1BhdGNoMDk6IGdkYi02LjUtQkVBLXRlc3RzdWl0ZS5wYXRjaAogCiAjIFRlc3RjYXNl IGZvciBkZWFkbG9ja2luZyBvbiBsYXN0IGFkZHJlc3Mgc3BhY2UgYnl0ZTsgZm9yIGNvcnJ1cHRl ZCBiYWNrdHJhY2VzLgogIz1mZWRvcmF0ZXN0Ci1QYXRjaDAxMTogZ2RiLTYuNS1sYXN0LWFkZHJl c3Mtc3BhY2UtYnl0ZS10ZXN0LnBhdGNoCitQYXRjaDAxMDogZ2RiLTYuNS1sYXN0LWFkZHJlc3Mt c3BhY2UtYnl0ZS10ZXN0LnBhdGNoCiAKICMgRml4IHJlYWRsaW5lIHNlZ2ZhdWx0IG9uIGV4Y2Vz c2l2ZWx5IGxvbmcgaGFuZC10eXBlZCBsaW5lcy4KICM9ZmVkb3JhdGVzdAotUGF0Y2gwMTI6IGdk Yi02LjUtcmVhZGxpbmUtbG9uZy1saW5lLWNyYXNoLXRlc3QucGF0Y2gKK1BhdGNoMDExOiBnZGIt Ni41LXJlYWRsaW5lLWxvbmctbGluZS1jcmFzaC10ZXN0LnBhdGNoCiAKICMgVGVzdCBzaWRlZWZm ZWN0cyBvZiBza2lwcGluZyBwcGMgLnNvIGxpYnMgdHJhbXBvbGluZXMgKEJaIDIxODM3OSkuCiAj PWZlZG9yYXRlc3QKLVBhdGNoMDEzOiBnZGItNi41LWJ6MjE4Mzc5LXBwYy1zb2xpYi10cmFtcG9s aW5lLXRlc3QucGF0Y2gKK1BhdGNoMDEyOiBnZGItNi41LWJ6MjE4Mzc5LXBwYy1zb2xpYi10cmFt cG9saW5lLXRlc3QucGF0Y2gKIAogIyBGaW5kIHN5bWJvbHMgcHJvcGVybHkgYXQgdGhlaXIgb3Jp Z2luYWwgKGluY2x1ZGVkKSBmaWxlIChCWiAxMDk5MjEpLgogIz1mZWRvcmF0ZXN0Ci1QYXRjaDAx NDogZ2RiLTYuNS1iejEwOTkyMS1EV19BVF9kZWNsX2ZpbGUtdGVzdC5wYXRjaAorUGF0Y2gwMTM6 IGdkYi02LjUtYnoxMDk5MjEtRFdfQVRfZGVjbF9maWxlLXRlc3QucGF0Y2gKIAogIyBVcGRhdGUg UFBDIHVud2luZGluZyBwYXRjaGVzIHRvIHRoZWlyIHVwc3RyZWFtIHZhcmlhbnRzIChCWiAxNDA1 MzIpLgogIz1mZWRvcmF0ZXN0Ci1QYXRjaDAxNTogZ2RiLTYuMy1iejE0MDUzMi1wcGMtdW53aW5k aW5nLXRlc3QucGF0Y2gKK1BhdGNoMDE0OiBnZGItNi4zLWJ6MTQwNTMyLXBwYy11bndpbmRpbmct dGVzdC5wYXRjaAogCiAjIFRlc3RjYXNlIGZvciBleGVjKCkgZnJvbSB0aHJlYWRlZCBwcm9ncmFt IChCWiAyMDI2ODkpLgogIz1mZWRvcmF0ZXN0Ci1QYXRjaDAxNjogZ2RiLTYuMy1iejIwMjY4OS1l eGVjLWZyb20tcHRocmVhZC10ZXN0LnBhdGNoCitQYXRjaDAxNTogZ2RiLTYuMy1iejIwMjY4OS1l eGVjLWZyb20tcHRocmVhZC10ZXN0LnBhdGNoCiAKICMgVGVzdGNhc2UgZm9yIFBQQyBQb3dlcjYv REZQIGluc3RydWN0aW9ucyBkaXNhc3NlbWJseSAoQlogMjMwMDAwKS4KICM9ZmVkb3JhdGVzdAot UGF0Y2gwMTc6IGdkYi02LjYtYnoyMzAwMDAtcG93ZXI2LWRpc2Fzc2VtYmx5LXRlc3QucGF0Y2gK K1BhdGNoMDE2OiBnZGItNi42LWJ6MjMwMDAwLXBvd2VyNi1kaXNhc3NlbWJseS10ZXN0LnBhdGNo CiAKICMgQWxsb3cgcnVubmluZyBgL3Vzci9iaW4vZ2NvcmUnIHdpdGggcHJvdmlkZWQgYnV0IGlu YWNjZXNzaWJsZSB0dHkgKEJaIDIyOTUxNykuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDE4OiBnZGIt Ni42LWJ6MjI5NTE3LWdjb3JlLXdpdGhvdXQtdGVybWluYWwucGF0Y2gKK1BhdGNoMDE3OiBnZGIt Ni42LWJ6MjI5NTE3LWdjb3JlLXdpdGhvdXQtdGVybWluYWwucGF0Y2gKIAogIyBBdm9pZCB0b28g bG9uZyB0aW1lb3V0cyBvbiBmYWlsaW5nIGNhc2VzIG9mICJhbm5vdGExLmV4cCBhbm5vdGEzLmV4 cCIuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDE5OiBnZGItNi42LXRlc3RzdWl0ZS10aW1lb3V0cy5w YXRjaAorUGF0Y2gwMTg6IGdkYi02LjYtdGVzdHN1aXRlLXRpbWVvdXRzLnBhdGNoCiAKICMgU3Vw cG9ydCBmb3Igc3RlcHBpbmcgb3ZlciBQUEMgYXRvbWljIGluc3RydWN0aW9uIHNlcXVlbmNlcyAo QlogMjM3NTcyKS4KICM9ZmVkb3JhdGVzdAotUGF0Y2gwMjA6IGdkYi02LjYtYnoyMzc1NzItcHBj LWF0b21pYy1zZXF1ZW5jZS10ZXN0LnBhdGNoCitQYXRjaDAxOTogZ2RiLTYuNi1iejIzNzU3Mi1w cGMtYXRvbWljLXNlcXVlbmNlLXRlc3QucGF0Y2gKIAogIyBUZXN0IGtlcm5lbCBWRFNPIGRlY29k aW5nIHdoaWxlIGF0dGFjaGluZyB0byBhbiBpMzg2IHByb2Nlc3MuCiAjPWZlZG9yYXRlc3QKLVBh dGNoMDIxOiBnZGItNi4zLWF0dGFjaC1zZWUtdmRzby10ZXN0LnBhdGNoCitQYXRjaDAyMDogZ2Ri LTYuMy1hdHRhY2gtc2VlLXZkc28tdGVzdC5wYXRjaAogCiAjIFRlc3QgbGVmdG92ZXIgem9tYmll IHByb2Nlc3MgKEJaIDI0Mzg0NSkuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDIyOiBnZGItNi41LWJ6 MjQzODQ1LXN0YWxlLXRlc3Rpbmctem9tYmllLXRlc3QucGF0Y2gKK1BhdGNoMDIxOiBnZGItNi41 LWJ6MjQzODQ1LXN0YWxlLXRlc3Rpbmctem9tYmllLXRlc3QucGF0Y2gKIAogIyBOZXcgbG9jYXRp bmcgb2YgdGhlIG1hdGNoaW5nIGJpbmFyaWVzIGZyb20gdGhlIHB1cmUgY29yZSBmaWxlIChidWls ZC1pZCkuCiAjPXB1c2gramFuCi1QYXRjaDAyMzogZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS5wYXRj aAorUGF0Y2gwMjI6IGdkYi02LjYtYnVpbGRpZC1sb2NhdGUucGF0Y2gKIAogIyBGaXggbG9hZGlu ZyBvZiBjb3JlIGZpbGVzIHdpdGhvdXQgYnVpbGQtaWRzIGJ1dCB3aXRoIGJ1aWxkLWlkcyBpbiBl eGVjdXRhYmxlcy4KICMgTG9hZCBzdHJpY3RseSBidWlsZC1pZC1jaGVja2VkIGNvcmUgZmlsZXMg b25seSBpZiBubyBleGVjdXRhYmxlIGlzIHNwZWNpZmllZAogIyAoSmFuIEtyYXRvY2h2aWwsIFJI IEJaIDEzMzk4NjIpLgogIz1wdXNoK2phbgotUGF0Y2gwMjQ6IGdkYi02LjYtYnVpbGRpZC1sb2Nh dGUtc29saWItbWlzc2luZy1pZHMucGF0Y2gKK1BhdGNoMDIzOiBnZGItNi42LWJ1aWxkaWQtbG9j YXRlLXNvbGliLW1pc3NpbmctaWRzLnBhdGNoCiAKICM9cHVzaCtqYW4KLVBhdGNoMDI1OiBnZGIt Ni42LWJ1aWxkaWQtbG9jYXRlLXJwbS5wYXRjaAorUGF0Y2gwMjQ6IGdkYi02LjYtYnVpbGRpZC1s b2NhdGUtcnBtLnBhdGNoCiAKICMgRml4IGRpc3BsYXlpbmcgb2YgbnVtZXJpYyBjaGFyIGFycmF5 cyBhcyBzdHJpbmdzIChCWiAyMjQxMjgpLgogIz1mZWRvcmF0ZXN0OiBCdXQgaXQgaXMgZmFpbGlu ZyBhbnl3YXksIG9uZSBzaG91bGQgY2hlY2sgdGhlIGJlaGF2aW9yIG1vcmUuCi1QYXRjaDAyNjog Z2RiLTYuNy1jaGFyc2lnbi10ZXN0LnBhdGNoCitQYXRjaDAyNTogZ2RiLTYuNy1jaGFyc2lnbi10 ZXN0LnBhdGNoCiAKICMgVGVzdCBQUEMgaGlkaW5nIG9mIGNhbGwtdm9sYXRpbGUgcGFyYW1ldGVy IHJlZ2lzdGVyLgogIz1mZWRvcmF0ZXN0Ci1QYXRjaDAyNzogZ2RiLTYuNy1wcGMtY2xvYmJlcmVk LXJlZ2lzdGVycy1PMi10ZXN0LnBhdGNoCitQYXRjaDAyNjogZ2RiLTYuNy1wcGMtY2xvYmJlcmVk LXJlZ2lzdGVycy1PMi10ZXN0LnBhdGNoCiAKICMgVGVzdHN1aXRlIGZpeGVzIGZvciBtb3JlIHN0 YWJsZS9jb21wYXJhYmxlIHJlc3VsdHMuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDI4OiBnZGItNi43 LXRlc3RzdWl0ZS1zdGFibGUtcmVzdWx0cy5wYXRjaAorUGF0Y2gwMjc6IGdkYi02LjctdGVzdHN1 aXRlLXN0YWJsZS1yZXN1bHRzLnBhdGNoCiAKICMgVGVzdCBpYTY0IG1lbW9yeSBsZWFrcyBvZiB0 aGUgY29kZSB1c2luZyBsaWJ1bndpbmQuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDI5OiBnZGItNi41 LWlhNjQtbGlidW53aW5kLWxlYWstdGVzdC5wYXRjaAorUGF0Y2gwMjg6IGdkYi02LjUtaWE2NC1s aWJ1bndpbmQtbGVhay10ZXN0LnBhdGNoCiAKICMgVGVzdCBoaWRpbmcgdW5leHBlY3RlZCBicmVh a3BvaW50cyBvbiBpbnRlbnRpb25hbCBzdGVwIGNvbW1hbmRzLgogIz1mZWRvcmF0ZXN0Ci1QYXRj aDAzMDogZ2RiLTYuNS1taXNzZWQtdHJhcC1vbi1zdGVwLXRlc3QucGF0Y2gKK1BhdGNoMDI5OiBn ZGItNi41LW1pc3NlZC10cmFwLW9uLXN0ZXAtdGVzdC5wYXRjaAogCiAjIFRlc3QgZ2NvcmUgbWVt b3J5IGFuZCB0aW1lIHJlcXVpcmVtZW50cyBmb3IgbGFyZ2UgaW5mZXJpb3JzLgogIz1mZWRvcmF0 ZXN0Ci1QYXRjaDAzMTogZ2RiLTYuNS1nY29yZS1idWZmZXItbGltaXQtdGVzdC5wYXRjaAorUGF0 Y2gwMzA6IGdkYi02LjUtZ2NvcmUtYnVmZmVyLWxpbWl0LXRlc3QucGF0Y2gKIAogIyBUZXN0IEdD T1JFIGZvciBzaG1pZCAwIHNoYXJlZCBtZW1vcnkgbWFwcGluZ3MuCiAjPWZlZG9yYXRlc3Q6IEJ1 dCBpdCBpcyBicm9rZW4gYW55d2F5LCBzb21ldGltZXMgdGhlIGNhc2UgYmVpbmcgdGVzdGVkIGlz IG5vdCByZXByb2R1Y2libGUuCi1QYXRjaDAzMjogZ2RiLTYuMy1tYXBwaW5nLXplcm8taW5vZGUt dGVzdC5wYXRjaAorUGF0Y2gwMzE6IGdkYi02LjMtbWFwcGluZy16ZXJvLWlub2RlLXRlc3QucGF0 Y2gKIAogIyBUZXN0IGEgY3Jhc2ggb24gYGZvY3VzIGNtZCcsIGBmb2N1cyBwcmV2JyBjb21tYW5k cy4KICM9ZmVkb3JhdGVzdAotUGF0Y2gwMzM6IGdkYi02LjMtZm9jdXMtY21kLXByZXYtdGVzdC5w YXRjaAorUGF0Y2gwMzI6IGdkYi02LjMtZm9jdXMtY21kLXByZXYtdGVzdC5wYXRjaAogCiAjIFRl c3QgdmFyaW91cyBmb3JtcyBvZiB0aHJlYWRzIHRyYWNraW5nIGFjcm9zcyBleGVjKCkgKEJaIDQ0 Mjc2NSkuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDM0OiBnZGItNi44LWJ6NDQyNzY1LXRocmVhZGVk LWV4ZWMtdGVzdC5wYXRjaAorUGF0Y2gwMzM6IGdkYi02LjgtYno0NDI3NjUtdGhyZWFkZWQtZXhl Yy10ZXN0LnBhdGNoCiAKICMgVGVzdCBhIGNyYXNoIG9uIGxpYnJhcmllcyBtaXNzaW5nIHRoZSAu dGV4dCBzZWN0aW9uLgogIz1mZWRvcmF0ZXN0Ci1QYXRjaDAzNTogZ2RiLTYuNS1zZWN0aW9uLW51 bS1maXh1cC10ZXN0LnBhdGNoCitQYXRjaDAzNDogZ2RiLTYuNS1zZWN0aW9uLW51bS1maXh1cC10 ZXN0LnBhdGNoCiAKICMgRml4IHJlc29sdmluZyBvZiB2YXJpYWJsZXMgYXQgbG9jYXRpb25zIGxp c3RzIGluIHByZWxpbmtlZCBsaWJzIChCWiA0NjY5MDEpLgogIz1mZWRvcmF0ZXN0Ci1QYXRjaDAz NjogZ2RiLTYuOC1iejQ2NjkwMS1iYWNrdHJhY2UtZnVsbC1wcmVsaW5rZWQucGF0Y2gKK1BhdGNo MDM1OiBnZGItNi44LWJ6NDY2OTAxLWJhY2t0cmFjZS1mdWxsLXByZWxpbmtlZC5wYXRjaAogCiAj IE5ldyB0ZXN0IGZvciBzdGVwLXJlc3VtZSBicmVha3BvaW50IHBsYWNlZCBpbiBtdWx0aXBsZSB0 aHJlYWRzIGF0IG9uY2UuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDM3OiBnZGItc2ltdWx0YW5lb3Vz LXN0ZXAtcmVzdW1lLWJyZWFrcG9pbnQtdGVzdC5wYXRjaAorUGF0Y2gwMzY6IGdkYi1zaW11bHRh bmVvdXMtc3RlcC1yZXN1bWUtYnJlYWtwb2ludC10ZXN0LnBhdGNoCiAKICMgRml4IEdOVS9MaW51 eCBjb3JlIG9wZW46IENhbid0IHJlYWQgcGF0aG5hbWUgZm9yIGxvYWQgbWFwOiBJbnB1dC9vdXRw dXQgZXJyb3IuCiAjIEZpeCByZWdyZXNzaW9uIG9mIHVuZGlzcGxheWVkIG1pc3Npbmcgc2hhcmVk IGxpYnJhcmllcyBjYXVzZWQgYnkgYSBmaXggZm9yLgogIz1mZWRvcmF0ZXN0OiBJdCBzaG91bGQg YmUgaW4gZ2xpYmM6IGxpYmMtYWxwaGE6IDwyMDA5MTAwNDE2MTcwNi5HQTI3NDUwQC4qPgotUGF0 Y2gwMzg6IGdkYi1jb3JlLW9wZW4tdmRzby13YXJuaW5nLnBhdGNoCitQYXRjaDAzNzogZ2RiLWNv cmUtb3Blbi12ZHNvLXdhcm5pbmcucGF0Y2gKIAogIyBXb3JrYXJvdW5kIGNjYWNoZSBtYWtpbmcg bGluZW5vIG5vbi16ZXJvIGZvciBjb21tYW5kLWxpbmUgZGVmaW5pdGlvbnMuCiAjPWZlZG9yYXRl c3Q6IGNjYWNoZSBpcyByYXJlbHkgdXNlZCBhbmQgaXQgaXMgZXZlbiBmaXhlZCBub3cuCi1QYXRj aDAzOTogZ2RiLWNjYWNoZS13b3JrYXJvdW5kLnBhdGNoCitQYXRjaDAzODogZ2RiLWNjYWNoZS13 b3JrYXJvdW5kLnBhdGNoCiAKICMgVGVzdGNhc2UgZm9yICJEbyBub3QgbWFrZSB1cCBsaW5lIGlu Zm9ybWF0aW9uIiBmaXggYnkgRGFuaWVsIEphY29ib3dpdHouCiAjPWZlZG9yYXRlc3QKLVBhdGNo MDQwOiBnZGItbGluZW5vLW1ha2V1cC10ZXN0LnBhdGNoCitQYXRjaDAzOTogZ2RiLWxpbmVuby1t YWtldXAtdGVzdC5wYXRjaAogCiAjIFRlc3QgcG93ZXI3IHBwYyBkaXNhc3NlbWJseS4KICM9ZmVk b3JhdGVzdAotUGF0Y2gwNDE6IGdkYi1wcGMtcG93ZXI3LXRlc3QucGF0Y2gKK1BhdGNoMDQwOiBn ZGItcHBjLXBvd2VyNy10ZXN0LnBhdGNoCiAKICMgRml4IGZvbGxvdy1leGVjIGZvciBDKysgcHJv Z3JhbXMgKGJ1Z3JlcG9ydGVkIGJ5IE1hcnRpbiBTdHJhbnNreSkuCiAjPWZlZG9yYXRlc3QKLVBh dGNoMDQyOiBnZGItYXJjaGVyLW5leHQtb3Zlci10aHJvdy1jeHgtZXhlYy5wYXRjaAorUGF0Y2gw NDE6IGdkYi1hcmNoZXItbmV4dC1vdmVyLXRocm93LWN4eC1leGVjLnBhdGNoCiAKICMgQmFja3Bv cnQgRFdBUkYtNCBzdXBwb3J0IChCWiA2MDE4ODcsIFRvbSBUcm9tZXkpLgogIz1mZWRvcmF0ZXN0 Ci1QYXRjaDA0MzogZ2RiLWJ6NjAxODg3LWR3YXJmNC1yaC10ZXN0LnBhdGNoCitQYXRjaDA0Mjog Z2RiLWJ6NjAxODg3LWR3YXJmNC1yaC10ZXN0LnBhdGNoCiAKICMgV29ya2Fyb3VuZCBsaWJycG0g QlogNjQzMDMxIGR1ZSB0byBpdHMgdW5leHBlY3RlZCBleGl0KCkgY2FsbHMgKEJaIDY0Mjg3OSku CiAjPXB1c2gramFuCi1QYXRjaDA0NDogZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1ycG0tbGlicnBt LXdvcmthcm91bmQucGF0Y2gKK1BhdGNoMDQzOiBnZGItNi42LWJ1aWxkaWQtbG9jYXRlLXJwbS1s aWJycG0td29ya2Fyb3VuZC5wYXRjaAogCiAjIFtkZWxheWVkLXN5bWZpbGVdIFRlc3QgYSBiYWNr dHJhY2UgcmVncmVzc2lvbiBvbiBDRklzIHdpdGhvdXQgRElFIChCWiA2MTQ2MDQpLgogIz1mZWRv cmF0ZXN0Ci1QYXRjaDA0NTogZ2RiLXRlc3QtYnQtY2ZpLXdpdGhvdXQtZGllLnBhdGNoCitQYXRj aDA0NDogZ2RiLXRlc3QtYnQtY2ZpLXdpdGhvdXQtZGllLnBhdGNoCiAKICMgVmVyaWZ5IEdEQiBQ eXRob24gYnVpbHQtaW4gZnVuY3Rpb24gZ2RiLnNvbGliX2FkZHJlc3MgZXhpc3RzIChCWiAjIDYz NDEwOCkuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDQ2OiBnZGItYno2MzQxMDgtc29saWJfYWRkcmVz cy5wYXRjaAorUGF0Y2gwNDU6IGdkYi1iejYzNDEwOC1zb2xpYl9hZGRyZXNzLnBhdGNoCiAKICMg TmV3IHRlc3QgZ2RiLmFyY2gveDg2XzY0LXBpZDAtY29yZS5leHAgZm9yIGtlcm5lbCBQSUQgMCBj b3JlcyAoQlogNjExNDM1KS4KICM9ZmVkb3JhdGVzdAotUGF0Y2gwNDc6IGdkYi10ZXN0LXBpZDAt Y29yZS5wYXRjaAorUGF0Y2gwNDY6IGdkYi10ZXN0LXBpZDAtY29yZS5wYXRjaAogCiAjIFthcmNo ZXItdHJvbWV5LWRlbGF5ZWQtc3ltZmlsZV0gTmV3IHRlc3QgZ2RiLmR3YXJmMi9kdzItYXJhbmdl cy5leHAuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDQ4OiBnZGItdGVzdC1kdzItYXJhbmdlcy5wYXRj aAorUGF0Y2gwNDc6IGdkYi10ZXN0LWR3Mi1hcmFuZ2VzLnBhdGNoCiAKICMgW2FyY2hlci1rZWl0 aHMtZXhwci1jdW11bGF0aXZlK3Vwc3RyZWFtXSBJbXBvcnQgQysrIHRlc3RjYXNlcy4KICM9ZmVk b3JhdGVzdAotUGF0Y2gwNDk6IGdkYi10ZXN0LWV4cHItY3VtdWxhdGl2ZS1hcmNoZXIucGF0Y2gK K1BhdGNoMDQ4OiBnZGItdGVzdC1leHByLWN1bXVsYXRpdmUtYXJjaGVyLnBhdGNoCiAKICMgRml4 IHJlZ3Jlc3Npb25zIG9uIEMrKyBuYW1lcyByZXNvbHZpbmcgKFBSIDExNzM0LCBQUiAxMjI3Mywg S2VpdGggU2VpdHopLgogIz1mZWRvcmF0ZXN0Ci1QYXRjaDA1MDogZ2RiLXBoeXNuYW1lLXByMTE3 MzQtdGVzdC5wYXRjaAorUGF0Y2gwNDk6IGdkYi1waHlzbmFtZS1wcjExNzM0LXRlc3QucGF0Y2gK IAogIyBGaXggcmVncmVzc2lvbnMgb24gQysrIG5hbWVzIHJlc29sdmluZyAoUFIgMTE3MzQsIFBS IDEyMjczLCBLZWl0aCBTZWl0eikuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDUxOiBnZGItcGh5c25h bWUtcHIxMjI3My10ZXN0LnBhdGNoCitQYXRjaDA1MDogZ2RiLXBoeXNuYW1lLXByMTIyNzMtdGVz dC5wYXRjaAogCiAjIFRlc3QgR0RCIG9wY29kZXMvIGRpc2Fzc2VtYmx5IG9mIEludGVsIEl2eSBC cmlkZ2UgaW5zdHJ1Y3Rpb25zIChCWiA2OTY4OTApLgogIz1mZWRvcmF0ZXN0Ci1QYXRjaDA1Mjog Z2RiLXRlc3QtaXZ5LWJyaWRnZS5wYXRjaAorUGF0Y2gwNTE6IGdkYi10ZXN0LWl2eS1icmlkZ2Uu cGF0Y2gKIAogIyBIYWNrIGZvciBwcm9wZXIgUElFIHJ1biBvZiB0aGUgdGVzdHN1aXRlLgogIz1m ZWRvcmF0ZXN0Ci1QYXRjaDA1MzogZ2RiLXJ1bnRlc3QtcGllLW92ZXJyaWRlLnBhdGNoCitQYXRj aDA1MjogZ2RiLXJ1bnRlc3QtcGllLW92ZXJyaWRlLnBhdGNoCiAKICMgV29ya2Fyb3VuZCBQUiBs aWJjLzE0MTY2IGZvciBpbmZlcmlvciBjYWxscyBvZiBzdHJzdHIuCiAjPWZlZG9yYXRlc3Q6IENv bXBhdGliaWxpdHkgd2l0aCBSSEVMcyAodW5jaGVja2VkIHdoaWNoIG9uZXMpLgotUGF0Y2gwNTQ6 IGdkYi1nbGliYy1zdHJzdHItd29ya2Fyb3VuZC5wYXRjaAorUGF0Y2gwNTM6IGdkYi1nbGliYy1z dHJzdHItd29ya2Fyb3VuZC5wYXRjaAogCiAjIEluY2x1ZGUgdGVzdGNhc2UgZm9yIGBVbmFibGUg dG8gc2VlIGEgdmFyaWFibGUgaW5zaWRlIGEgbW9kdWxlIChYTEYpJyAoQlogODIzNzg5KS4KICM9 ZmVkb3JhdGVzdAotUGF0Y2gwNTU6IGdkYi1yaGVsNS45LXRlc3RjYXNlLXhsZi12YXItaW5zaWRl LW1vZC5wYXRjaAorUGF0Y2gwNTQ6IGdkYi1yaGVsNS45LXRlc3RjYXNlLXhsZi12YXItaW5zaWRl LW1vZC5wYXRjaAogCiAjIFRlc3RjYXNlIGZvciBgU2V0dGluZyBzb2xpYi1hYnNvbHV0ZS1wcmVm aXggYnJlYWtzIHZEU08nIChCWiA4MTgzNDMpLgogIz1mZWRvcmF0ZXN0Ci1QYXRjaDA1NjogZ2Ri LXJoYnotODE4MzQzLXNldC1zb2xpYi1hYnNvbHV0ZS1wcmVmaXgtdGVzdGNhc2UucGF0Y2gKK1Bh dGNoMDU1OiBnZGItcmhiei04MTgzNDMtc2V0LXNvbGliLWFic29sdXRlLXByZWZpeC10ZXN0Y2Fz ZS5wYXRjaAogCiAjIEltcG9ydCByZWdyZXNzaW9uIHRlc3QgZm9yIGBnZGIvZmluZHZhci5jOjQx NzogaW50ZXJuYWwtZXJyb3I6CiAjIHJlYWRfdmFyX3ZhbHVlOiBBc3NlcnRpb24gYGZyYW1lJyBm YWlsZWQuJyAoUkggQlogOTQ3NTY0KSBmcm9tIFJIRUwgNi41LgogIz1mZWRvcmF0ZXN0Ci1QYXRj aDA1NzogZ2RiLXJoYno5NDc1NjQtZmluZHZhci1hc3NlcnRpb24tZnJhbWUtZmFpbGVkLXRlc3Rj YXNlLnBhdGNoCitQYXRjaDA1NjogZ2RiLXJoYno5NDc1NjQtZmluZHZhci1hc3NlcnRpb24tZnJh bWUtZmFpbGVkLXRlc3RjYXNlLnBhdGNoCiAKICMgRml4ICdtZW1vcnkgbGVhayBpbiBpbmZweV9y ZWFkX21lbW9yeSgpJyAoUkggQlogMTAwNzYxNCkKICM9ZmVkb3JhdGVzdAotUGF0Y2gwNTg6IGdk Yi1yaGJ6MTAwNzYxNC1tZW1sZWFrLWluZnB5X3JlYWRfbWVtb3J5LXRlc3QucGF0Y2gKK1BhdGNo MDU3OiBnZGItcmhiejEwMDc2MTQtbWVtbGVhay1pbmZweV9yZWFkX21lbW9yeS10ZXN0LnBhdGNo CiAKICMgRml4ICdnZGIgZ2l2ZXMgaGlnaGx5IG1pc2xlYWRpbmcgZXJyb3Igd2hlbiBkZWJ1Z2lu Zm8gcGtnIGlzIHByZXNlbnQsCiAjIGJ1dCBub3QgY29ycmVzcG9uZGluZyBiaW5hcnkgcGtnJyAo UkggQlogOTgxMTU0KS4KICM9cHVzaCtqYW4KLVBhdGNoMDU5OiBnZGItNi42LWJ1aWxkaWQtbG9j YXRlLW1pc2xlYWRpbmctd2FybmluZy1taXNzaW5nLWRlYnVnaW5mby1yaGJ6OTgxMTU0LnBhdGNo CitQYXRjaDA1ODogZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1taXNsZWFkaW5nLXdhcm5pbmctbWlz c2luZy1kZWJ1Z2luZm8tcmhiejk4MTE1NC5wYXRjaAogCiAjIERpc3BsYXkgRm9ydHJhbiBzdHJp bmdzIGluIGJhY2t0cmFjZXMuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDYwOiBnZGItZm9ydHJhbi1m cmFtZS1zdHJpbmcucGF0Y2gKK1BhdGNoMDU5OiBnZGItZm9ydHJhbi1mcmFtZS1zdHJpbmcucGF0 Y2gKIAogIyBUZXN0Y2FzZSBmb3IgJ1tTQVBdIFJlY3Vyc2l2ZSBkbG9wZW4gY2F1c2VzIFNBUCBI QU5BIGluc3RhbGxlciB0bwogIyBjcmFzaC4nIChSSCBCWiAxMTU2MTkyKS4KICM9ZmVkb3JhdGVz dAotUGF0Y2gwNjE6IGdkYi1yaGJ6MTE1NjE5Mi1yZWN1cnNpdmUtZGxvcGVuLXRlc3QucGF0Y2gK K1BhdGNoMDYwOiBnZGItcmhiejExNTYxOTItcmVjdXJzaXZlLWRsb3Blbi10ZXN0LnBhdGNoCiAK ICMgRml4ICdgY2F0Y2ggc3lzY2FsbCcgZG9lc24ndCB3b3JrIGZvciBwYXJlbnQgYWZ0ZXIgYGZv cmsnIGlzIGNhbGxlZCcKICMgKFBoaWxpcHBlIFdhcm9xdWllcnMsIFJIIEJaIDExNDkyMDUpLgog Iz1mZWRvcmF0ZXN0Ci1QYXRjaDA2MjogZ2RiLXJoYnoxMTQ5MjA1LWNhdGNoLXN5c2NhbGwtYWZ0 ZXItZm9yay10ZXN0LnBhdGNoCitQYXRjaDA2MTogZ2RiLXJoYnoxMTQ5MjA1LWNhdGNoLXN5c2Nh bGwtYWZ0ZXItZm9yay10ZXN0LnBhdGNoCiAKICMgRml4ICdiYWNrcG9ydCBHREIgNy40IGZpeCB0 byBSSEVMIDYuNiBHREInIFtPcmlnaW5hbCBTb3VyY2V3YXJlIGJ1ZwogIyBkZXNjcmlwdGlvbjog J0MrKyAoYW5kIG9iamMpOiBJbnRlcm5hbCBlcnJvciBvbiB1bnF1YWxpZmllZCBuYW1lCiAjIHJl LXNldCcsIFBSIDExNjU3XSAoUkggQlogMTE4NjQ3NikuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDYz OiBnZGItcmhiejExODY0NzYtaW50ZXJuYWwtZXJyb3ItdW5xdWFsaWZpZWQtbmFtZS1yZS1zZXQt dGVzdC5wYXRjaAorUGF0Y2gwNjI6IGdkYi1yaGJ6MTE4NjQ3Ni1pbnRlcm5hbC1lcnJvci11bnF1 YWxpZmllZC1uYW1lLXJlLXNldC10ZXN0LnBhdGNoCiAKICMgVGVzdCAnaW5mbyB0eXBlLXByaW50 ZXJzJyBQeXRob24gZXJyb3IgKFJIIEJaIDEzNTA0MzYpLgogIz1mZWRvcmF0ZXN0Ci1QYXRjaDA2 NDogZ2RiLXJoYnoxMzUwNDM2LXR5cGUtcHJpbnRlcnMtZXJyb3IucGF0Y2gKK1BhdGNoMDYzOiBn ZGItcmhiejEzNTA0MzYtdHlwZS1wcmludGVycy1lcnJvci5wYXRjaAogCiAjIEZpeCAnW3BwYzY0 XSBhbmQgW3MzOTB4XSB3cm9uZyBwcm9sb2d1ZSBza2lwIG9uIC1PMiAtZyBjb2RlJyAoSmFuCiAj IEtyYXRvY2h2aWwsIFJIIEJaIDEwODQ0MDQpLgogIz1mZWRvcmF0ZXN0Ci1QYXRjaDA2NTogZ2Ri LXJoYnoxMDg0NDA0LXBwYzY0LXMzOTB4LXdyb25nLXByb2xvZ3VlLXNraXAtTzItZy0zb2YzLnBh dGNoCitQYXRjaDA2NDogZ2RiLXJoYnoxMDg0NDA0LXBwYzY0LXMzOTB4LXdyb25nLXByb2xvZ3Vl LXNraXAtTzItZy0zb2YzLnBhdGNoCiAKICMgRm9yY2UgbGlibmN1cnNlc3cgb3ZlciBsaWJuY3Vy c2VzIHRvIG1hdGNoIHRoZSBpbmNsdWRlcyAoUkggQlogMTI3MDUzNCkuCiAjPXB1c2gramFuCi1Q YXRjaDA2NjogZ2RiLWZlZG9yYS1saWJuY3Vyc2Vzdy5wYXRjaAorUGF0Y2gwNjU6IGdkYi1mZWRv cmEtbGlibmN1cnNlc3cucGF0Y2gKIAogIyBUZXN0IGNsZmx1c2hvcHQgaW5zdHJ1Y3Rpb24gZGVj b2RlIChmb3IgUkggQlogMTI2MjQ3MSkuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDY3OiBnZGItb3Bj b2Rlcy1jbGZsdXNob3B0LXRlc3QucGF0Y2gKK1BhdGNoMDY2OiBnZGItb3Bjb2Rlcy1jbGZsdXNo b3B0LXRlc3QucGF0Y2gKIAogIyBbU0NMXSBTa2lwIGRlcHJlY2F0ZWQgLmdkYl9pbmRleCB3YXJu aW5nIGZvciBSZWQgSGF0IGJ1aWx0IGZpbGVzIChCWiA5NTM1ODUpLgogIz1wdXNoK2phbgotUGF0 Y2gwNjg6IGdkYi02LjYtYnVpbGRpZC1sb2NhdGUtcnBtLXNjbC5wYXRjaAorUGF0Y2gwNjc6IGdk Yi02LjYtYnVpbGRpZC1sb2NhdGUtcnBtLXNjbC5wYXRjaAogCiAjIFthYXJjaDY0XSBGaXggaGFy ZHdhcmUgd2F0Y2hwb2ludHMgKFJIIEJaIDEyNjE1NjQpLgogIz1mZWRvcmF0ZXN0Ci1QYXRjaDA2 OTogZ2RiLXJoYnoxMjYxNTY0LWFhcmNoNjQtaHctd2F0Y2hwb2ludC10ZXN0LnBhdGNoCitQYXRj aDA2ODogZ2RiLXJoYnoxMjYxNTY0LWFhcmNoNjQtaHctd2F0Y2hwb2ludC10ZXN0LnBhdGNoCiAK ICMgQWRkIG1lc3NhZ2VzIHN1Z2dlc3RpbmcgbW9yZSByZWNlbnQgUkhFTCBnZGJzZXJ2ZXIgKFJI IEJaIDEzMjExMTQpLgogIz1mZWRvcmEKLVBhdGNoMDcwOiBnZGItY29udGFpbmVyLXJoLXBrZy5w YXRjaAorUGF0Y2gwNjk6IGdkYi1jb250YWluZXItcmgtcGtnLnBhdGNoCiAKICMgTmV3IHRlc3Qg Zm9yIFB5dGhvbiAiQ2Fubm90IGxvY2F0ZSBvYmplY3QgZmlsZSBmb3IgYmxvY2siIChmb3IgUkgg QlogMTMyNTc5NSkuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDcxOiBnZGItcmhiejEzMjU3OTUtZnJh bWVmaWx0ZXJzLXRlc3QucGF0Y2gKK1BhdGNoMDcwOiBnZGItcmhiejEzMjU3OTUtZnJhbWVmaWx0 ZXJzLXRlc3QucGF0Y2gKIAogIyBbZHRzK2VsN10gW3g4NipdIEJ1bmRsZSBsaW51eF9wZXJmLmgg Zm9yIGxpYmlwdCAoUkggQlogMTI1NjUxMykuCiAjPWZlZG9yYQotUGF0Y2gwNzI6IGdkYi1saW51 eF9wZXJmLWJ1bmRsZS5wYXRjaAorUGF0Y2gwNzE6IGdkYi1saW51eF9wZXJmLWJ1bmRsZS5wYXRj aAogCiAjIEZpeCBnZGItaGVhZGxlc3MgL3Vzci9iaW4vIGV4ZWN1dGFibGVzIChCWiAxMzkwMjUx KS4KICMKQEAgLTMwNCwxMDIgKzMwMCw1NCBAQCBQYXRjaDA3MjogZ2RiLWxpbnV4X3BlcmYtYnVu ZGxlLnBhdGNoCiAjCiAjICAgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0NoYW5nZXMv TWluaW1hbF9HREJfaW5fYnVpbGRyb290CiAjPWZlZG9yYQotUGF0Y2gwNzM6IGdkYi1saWJleGVj LWFkZC1pbmRleC5wYXRjaAorUGF0Y2gwNzI6IGdkYi1saWJleGVjLWFkZC1pbmRleC5wYXRjaAog CiAjIE5ldyB0ZXN0Y2FzZSBmb3I6IEZpeCA8dGFiPi1jb21wbGV0aW9uIGNyYXNoIChHYXJ5IEJl bnNvbiwgUkggQlogMTM5ODM4NykuCiAjPWZlZG9yYXRlc3QKLVBhdGNoMDc0OiBnZGItcmhiejEz OTgzODctdGFiLWNyYXNoLXRlc3QucGF0Y2gKK1BhdGNoMDczOiBnZGItcmhiejEzOTgzODctdGFi LWNyYXNoLXRlc3QucGF0Y2gKIAogIyBbczM5MHhdIEJhY2twb3J0IGFyY2gxMiBpbnN0cnVjdGlv bnMgZGVjb2RpbmcgKFJIIEJaIDE1NTMxMDQpLgogIyA9ZmVkb3JhdGVzdAotUGF0Y2gwNzU6IGdk Yi1yaGJ6MTU1MzEwNC1zMzkweC1hcmNoMTItdGVzdC5wYXRjaAotCi0jIEZpeCBvZmYtYnktb25l IGVycm9yIGluIGFkYV9mb2xkX25hbWUucGF0Y2ggKFJIIEJaIDE5MDU5OTYpCi0jIFVwc3RyZWFt IHBhdGNoIHByb3Bvc2FsOiBodHRwczovL3NvdXJjZXdhcmUub3JnL3BpcGVybWFpbC9nZGItcGF0 Y2hlcy8yMDIwLURlY2VtYmVyLzE3MzkzNS5odG1sCi0jID1mZWRvcmF0ZXN0Ci1QYXRjaDA3Njog Z2RiLXJoYnoxOTA1OTk2LWZpeC1vZmYtYnktb25lLWVycm9yLWluLWFkYV9mb2xkX25hbWUucGF0 Y2gKLQotIyBCYWNrcG9ydCBmaXggZm9yIGxpYnN0ZGMrKyBhc3NlcnQgd2hlbiBwZXJmb3JtaW5n IHRhYiBjb21wbGV0aW9uCi0jIChSSCBCWiAxOTEyOTg1KS4KLVBhdGNoMDc3OiBnZGItcmhiejE5 MTI5ODUtbGlic3RkYysrLWFzc2VydC5wYXRjaAotCi0jIEJhY2twb3J0IGZpeCBmb3IgZnJhbWVf aWRfcCBhc3NlcnRpb24gZmFpbHVyZSAoUkggQlogMTkwOTkwMikuCi1QYXRjaDA3ODogZ2RiLXJo YnoxOTA5OTAyLWZyYW1lX2lkX3AtYXNzZXJ0LTEucGF0Y2gKLQotIyBCYWNrcG9ydCBwYXRjaCAj MiB3aGljaCBmaXhlcyBhIGZyYW1lX2lkX3AgYXNzZXJ0aW9uIGZhaWx1cmUgKFJIIEJaIDE5MDk5 MDIpLgotUGF0Y2gwNzk6IGdkYi1yaGJ6MTkwOTkwMi1mcmFtZV9pZF9wLWFzc2VydC0yLnBhdGNo Ci0KLSMgQmFja3BvcnQgY2hhbmdlIHdoaWNoIGZpeGVzIGdkYnNlcnZlciB0ZXN0aW5nIGhhbmcg b24gZjM0IGFuZCByYXdoaWRlLgotUGF0Y2gwODA6IGdkYi1yaGJ6MTk0MTA4MC1maXgtZ2Ric2Vy dmVyLWhhbmcucGF0Y2gKLQotIyBCYWNrcG9ydCAiRGlzYWJsZSBicmFja2V0ZWQgcGFzdGUgbW9k ZSBpbiBHREIgdGVzdHMiCi0jIChUb20gVHJvbWV5KQotUGF0Y2gwODE6IHRlc3RpbmctY3VzdG9t LWlucHV0cmMucGF0Y2gKLQotIyBCYWNrcG9ydCAiU2F2ZS9yZXN0b3JlIGZpbGUgb2Zmc2V0IHdo aWxlIHJlYWRpbmcgbm90ZXMgaW4gY29yZSBmaWxlIgotIyAoS2VpdGggU2VpdHosIFJIQlogMTkz MTM0NCkKLVBhdGNoMDgyOiBnZGItcmhiejE5MzEzNDQtYmZkX3NlZWstZWxmX3JlYWRfbm90ZXMu cGF0Y2gKLQotIyBbZm9ydHJhbl0gQmFja3BvcnQgQW5kcmV3IEJ1cmdlc3MncyBjb21taXQgd2hp Y2ggY2xlYW5zIHVwCi0jIGFycmF5L3N0cmluZyBleHByZXNzaW9uIGV2YWx1YXRpb24uCi1QYXRj aDA4MzogZ2RiLXJoYnoxOTY0MTY3LWZvcnRyYW4tY2xlYW4tdXAtYXJyYXktZXhwcmVzc2lvbi1l dmFsdWF0aW9uLnBhdGNoCi0KLSMgW2ZvcnRyYW5dIEJhY2twb3J0IEFuZHJldyBCdXJnZXNzJ3Mg Y29tbWl0IHdoaWNoIG1vdmVzIEZvcnRyYW4KLSMgZXhwcmVzc2lvbiBoYW5kbGluZyB0byBmLWxh bmcuYy4KLVBhdGNoMDg0OiBnZGItcmhiejE5NjQxNjctbW92ZS1mb3J0cmFuLWV4cHItaGFuZGxp bmcucGF0Y2gKLQotIyBbZm9ydHJhbl0gQmFja3BvcnQgQW5kcmV3IEJ1cmdlc3MncyBjb21taXQg d2hpY2ggZWxpbWluYXRlcyB1bmRlc2lyYWJsZQotIyB3aGl0ZXNwYWNlIHdoZW4gcHJpbnRpbmcg YXJyYXlzLgotUGF0Y2gwODU6IGdkYi1yaGJ6MTk2NDE2Ny1mb3J0cmFuLXdoaXRlc3BhY2VfYXJy YXkucGF0Y2gKLQotIyBbZm9ydHJhbl0gQmFja3BvcnQgQW5kcmV3IEJ1cmdlc3MncyBjb21taXQg d2hpY2ggY2hhbmdlcyBlbnVtCi0jIHJhbmdlX3R5cGUgaW50byBhIGJpdCBmaWVsZCBlbnVtLgot UGF0Y2gwODY6IGdkYi1yaGJ6MTk2NDE2Ny1jb252ZXJ0LWVudW0tcmFuZ2VfdHlwZS5wYXRjaAot Ci0jIFtmb3J0cmFuXSBCYWNrcG9ydCBBbmRyZXcgQnVyZ2VzcydzIGNvbW1pdCB3aGljaCByZW5h bWVzIGVudW0KLSMgcmFuZ2VfdHlwZSB0byBlbnVtIHJhbmdlX2ZsYWcuCi1QYXRjaDA4NzogZ2Ri LXJoYnoxOTY0MTY3LWZvcnRyYW4tcmFuZ2VfdHlwZS10by1yYW5nZV9mbGFnLnBhdGNoCitQYXRj aDA3NDogZ2RiLXJoYnoxNTUzMTA0LXMzOTB4LWFyY2gxMi10ZXN0LnBhdGNoCiAKLSMgW2ZvcnRy YW5dIEJhY2twb3J0IEFuZHJldyBCdXJnZXNzJ3MgY29tbWl0IHdoaWNoIGFkZHMgc3VwcG9ydAot IyBmb3IgYXJyYXkgc3RyaWRlcyBpbiBleHByZXNzaW9ucy4KLVBhdGNoMDg4OiBnZGItcmhiejE5 NjQxNjctZm9ydHJhbi1hcnJheS1zdHJpZGVzLWluLWV4cHJlc3Npb25zLnBhdGNoCisjQmFja3Bv cnQgdXBzdHJlYW0gcGF0Y2ggd2hpY2ggZml4ZXMgaW50ZXJuYWwtZXJyb3I6IFVuZXhwZWN0ZWQK KyN0eXBlIGZpZWxkIGxvY2F0aW9uIGtpbmQgKFJIQlogMTk3Njg4NykuCitQYXRjaDA3NTogZ2Ri LXJoYnoxOTc2ODg3LWZpZWxkLWxvY2F0aW9uLWtpbmQucGF0Y2gKIAotIyBbZm9ydHJhbl0gQmFj a3BvcnQgQW5kcmV3IEJ1cmdlc3MncyBjb21taXQgZm9yIEZvcnRyYW4gYXJyYXkKLSMgc2xpY2Ug c3VwcG9ydAotUGF0Y2gwODk6IGdkYi1yaGJ6MTk2NDE2Ny1mb3J0cmFuLWFycmF5LXNsaWNlcy1h dC1wcm9tcHQucGF0Y2gKKyMgQmFja3BvcnQgdGVzdCBmb3IgUkhCWiAxOTc2ODg3IChLZXZpbiBC dWV0dG5lcikuCitQYXRjaDA3NjogZ2RiLXRlc3QtZm9yLXJoYnoxOTc2ODg3LnBhdGNoCiAKLSMg W2ZvcnRyYW5dIEJhY2twb3J0IFNpbW9uIE1hcmNoaSdzIGNvbW1pdCB3aGljaCBmaXhlcyBhIDMy LWJpdCBidWlsZAotIyBwcm9ibGVtIGluIGdkYi9mLWxhbmcuYy4KLVBhdGNoMDkwOiBnZGItcmhi ejE5NjQxNjctZm9ydHJhbi1maXgtdHlwZS1mb3JtYXQtbWlzbWF0Y2gtaW4tZi1sYW5nLmMucGF0 Y2gKKyMgQmFja3BvcnQgZ2RiLmZvcnRyYW4gdGVzdHN1aXRlIGNoYW5nZXMgaW4gb3JkZXIgdG8g YXZvaWQgRm9ydHJhbgorIyBsZXhpY2FsIGFuYWx5emVyIGJ1Zy4KK1BhdGNoMDc3OiBnZGItcmhi ejIwMTI5NzYtcGFwZXItb3Zlci1mb3J0cmFuLWxleC1wcm9ibGVtcy5wYXRjaAogCi0jIEJhY2tw b3J0IG9mICJFeGNsdWRlIGRlYnVnaW5mbyBmaWxlcyBmcm9tICdvdXRzaWRlIG9mIEVMRiBzZWdt ZW50cycKLSMgd2FybmluZyIgIChLZWl0aCBTZWl0eikKLVBhdGNoMDkxOiBnZGItcmhiejE4OTgy NTItbG9hZGFibGUtc2VjdGlvbi1vdXRzaWRlLUVMRi1zZWdtZW50cy5wYXRjaAorIyBCYWNrcG9y dCBtYW5wYWdlIHVwZGF0ZQorUGF0Y2gwNzg6IGdkYi1yaGJ6LTg1MzA3MS11cGRhdGUtbWFucGFn ZXMucGF0Y2gKIAotIyBCYWNrcG9ydCAiRml4IGNyYXNoIHdoZW4gZXhwYW5kaW5nIHBhcnRpYWwg c3ltdGFicyB3aXRoIERXX1RBR19pbXBvcnRlZF91bml0IgotIyAoVG9tIFRyb21leSwgZ2RiLzI3 NzQzKQotUGF0Y2gwOTI6IGdkYi1nZGIyNzc0My1wc3ltdGFiLWltcG9ydGVkLXVuaXQucGF0Y2gK KyMgQmFja3BvcnQgZml4IGZvciBkcHJpbnRmIGJ1ZyAoUkggQlogMjAyMjE3NykuCitQYXRjaDA3 OTogZ2RiLXJoYnoyMDIyMTc3LWRwcmludGYtMS5wYXRjaAogCi0jIEJhY2twb3J0ICJbZ2RiL3Nl cnZlcl0gRG9uJ3Qgb3ZlcndyaXRlIGZzL2dzX2Jhc2Ugd2l0aCAtbTMyIgotIyAoVG9tIGRlIFZy aWVzKQotUGF0Y2gwOTM6IGdkYi1kb250LW92ZXJ3cml0ZS1mc2dzYmFzZS1tMzIucGF0Y2gKKyMg QmFja3BvcnQgdGVzdCBjYXNlIGZvciBkcHJpbnRmIGJ1ZyAoUkggQlogMjAyMjE3NykuCitQYXRj aDA4MDogZ2RiLXJoYnoyMDIyMTc3LWRwcmludGYtMi5wYXRjaAogCi0jIEJhY2twb3J0IHBhdGNo IGZpeGluZyBnZGIgb24gZ2xpYmMtMi4zNCBtYWNoaW5lcyB3aXRoIHJlZ2FyZCB0byBhdHRhY2hp bmcKLSMgdG8gcHJvY2Vzc2VzIChSSCBCWiAxOTcxMDk2KS4KLVBhdGNoMDk0OiBnZGItcmhiejE5 NzEwOTYtZ2xpYmMyLjM0LTEucGF0Y2gKKyNCYWNrcG9ydCB1cHN0cmVhbSBjb21taXQgZnJvbSBB YXJvbiBNZXJleQorIzNlYTQ0ZjIxMjk5IGdkYi50ZXhpbmZvOiBFeHBhbmQgZG9jdW1lbnRhdGlv biBmb3IgZGVidWdpbmZvZAorUGF0Y2gwODE6IGdkYi1yaGJ6MjAyNDg3NS1leHBhbmQtZG9jdW1l bnRhdGlvbi1mb3ItZGVidWdpbmZvZC5wYXRjaAogCi0jIEJhY2twb3J0IHBhdGNoIGZpeGluZyBn ZGIgb24gZ2xpYmMtMi4zNCBtYWNoaW5lcyB3LyByZWdhcmQgdG8KLSMgbGlidGhyZWFkX2RiIGlu aXRpYWxpemF0aW9uLgotUGF0Y2gwOTU6IGdkYi1yaGJ6MTk3MTA5Ni1nbGliYzIuMzQtMi5wYXRj aAorI0JhY2twb3J0IHVwc3RyZWFtIGNvbW1pdCBmcm9tIEFhcm9uIE1lcmV5CisjNzgxMWZhNTk5 NWYgZ2RiOiBhZGQgc2V0L3Nob3cgY29tbWFuZHMgZm9yIG1hbmFnaW5nIGRlYnVnaW5mbworUGF0 Y2gwODI6IGdkYi1yaGJ6MjAyNDg3NS1zZXRfc2hvdy1mb3ItbWFuYWdpbmctZGVidWdpbmZvZC5w YXRjaAogCi0jIEJhY2twb3J0IHRlc3RzdWl0ZSBwYXRjaCBmb3IgbWF0Y2hpbmcgbmV3IGxpYnRo cmVhZF9kYiByZWxhdGVkIG91dHB1dAotIyB3aGVuIHRlc3RpbmcgZ2RiIG9uIGdsaWJjLTIuMzQg bWF0Y2hpbmVzIChSSCBCWiAxOTcxMDk2KS4KLVBhdGNoMDk2OiBnZGItcmhiejE5NzEwOTYtZ2xp YmMyLjM0LTMucGF0Y2gKKyNCYWNrcG9ydCB1cHN0cmVhbSBjb21taXQgZnJvbSBUb20gVHJvbWV5 CisjMmE4ZjFmNDc0NDYgRml4IHVuaXR0ZXN0LmV4cCBmYWlsdXJlIGR1ZSB0byAnc2V0IGRlYnVn aW5mb2QnIGFkZGl0aW9uCitQYXRjaDA4MzogZ2RiLXJoYnoyMDI0ODc1LWZpeC11bml0dGVzdC1m YWlsdXJlLnBhdGNoCiAKLSMgQmFja3BvcnQgcGF0Y2ggYWRqdXN0aW5nIHRlc3QgZ2RiLmJhc2Uv cHJpbnQtc3ltYm9sLWxvYWRpbmcuZXhwLgotIyAoUkggQlogMTk3MTA5NikuCi1QYXRjaDA5Nzog Z2RiLXJoYnoxOTcxMDk2LWdsaWJjMi4zNC00LnBhdGNoCisjQmFja3BvcnQgdXBzdHJlYW0gY29t bWl0IGZyb20gIFNpbW9uIE1hcmNoaQorIzMzM2YzNWI2MzE1IGdkYjogcGFzcy9yZXR1cm4gc2V0 dGluZyBzZXR0ZXIvZ2V0dGVyCisjc2NhbGFyIHZhbHVlcyBieSB2YWx1ZQorUGF0Y2gwODQ6IGdk Yi1yaGJ6MjAyNDg3LXJld29yay1zZXQtZGVidWdpbmZvZC5wYXRjaAogCi0jIEJhY2twb3J0IHBh dGNoIGFkanVzdGluZyB0ZXN0IGdkYi5taS9taS1zeW0taW5mby5leHAgKFJIIEJaIDE5NzEwOTYp LgotUGF0Y2gwOTg6IGdkYi1yaGJ6MTk3MTA5Ni1nbGliYzIuMzQtNS5wYXRjaAorI0JhY2twb3J0 IHVwc3RyZWFtIGNvbW1pdCBmcm9tIEFhcm9uIE1lcmV5CisjYjlkYjI2YjRjNDQgW1BSIGdkYi8y NzAyNl0gQ1RSTC1DIGlzIGlnbm9yZWQgd2hlbiBkZWJ1ZyBpbmZvIGlzIGRvd25sb2FkZWQKK1Bh dGNoMDg1OiBnZGItcmhiejIwMjQ4NzUtcHIyNzAyNi5wYXRjaAogCgpkaWZmIC0tZ2l0IGEvX2dk Yi5zcGVjLnBhdGNoLmluY2x1ZGUgYi9fZ2RiLnNwZWMucGF0Y2guaW5jbHVkZQppbmRleCBiMDg5 YmIxLi45NTk0ZDM1IDEwMDY0NAotLS0gYS9fZ2RiLnNwZWMucGF0Y2guaW5jbHVkZQorKysgYi9f Z2RiLnNwZWMucGF0Y2guaW5jbHVkZQpAQCAtODMsMTYgKzgzLDMgQEAKICVwYXRjaDA4MyAtcDEK ICVwYXRjaDA4NCAtcDEKICVwYXRjaDA4NSAtcDEKLSVwYXRjaDA4NiAtcDEKLSVwYXRjaDA4NyAt cDEKLSVwYXRjaDA4OCAtcDEKLSVwYXRjaDA4OSAtcDEKLSVwYXRjaDA5MCAtcDEKLSVwYXRjaDA5 MSAtcDEKLSVwYXRjaDA5MiAtcDEKLSVwYXRjaDA5MyAtcDEKLSVwYXRjaDA5NCAtcDEKLSVwYXRj aDA5NSAtcDEKLSVwYXRjaDA5NiAtcDEKLSVwYXRjaDA5NyAtcDEKLSVwYXRjaDA5OCAtcDEKCmRp ZmYgLS1naXQgYS9fZ2l0X3Vwc3RyZWFtX2NvbW1pdCBiL19naXRfdXBzdHJlYW1fY29tbWl0Cmlu ZGV4IDAyYzFhMGYuLjM0OWU3NmIgMTAwNjQ0Ci0tLSBhL19naXRfdXBzdHJlYW1fY29tbWl0Cisr KyBiL19naXRfdXBzdHJlYW1fY29tbWl0CkBAIC0xICsxIEBACi1jZTM1ZDcxNjNlNzc5YjEzMjEw NThiMjJmMDA1YzcwY2UxNTI0YjI1Cis4Y2RkODU2OGJmZTRlYTg2YTkzZTRiODBiZjJmYzZlNmY5 Y2FkODRjCgpkaWZmIC0tZ2l0IGEvX3BhdGNoX29yZGVyIGIvX3BhdGNoX29yZGVyCmluZGV4IGE3 Njc2OTEuLmRlMjA2MTcgMTAwNjQ0Ci0tLSBhL19wYXRjaF9vcmRlcgorKysgYi9fcGF0Y2hfb3Jk ZXIKQEAgLTMsNyArMyw2IEBAIGdkYi02LjMtZ3N0YWNrLTIwMDUwNDExLnBhdGNoCiBnZGItNi4z LXRlc3QtZHRvcmZpeC0yMDA1MDEyMS5wYXRjaAogZ2RiLTYuMy10ZXN0LW1vdmVkaXItMjAwNTAx MjUucGF0Y2gKIGdkYi02LjMtdGhyZWFkZWQtd2F0Y2hwb2ludHMyLTIwMDUwMjI1LnBhdGNoCi1n ZGItNi4zLWluZmVyaW9yLW5vdGlmaWNhdGlvbi0yMDA1MDcyMS5wYXRjaAogZ2RiLTYuMy1pbmhl cml0YW5jZXRlc3QtMjAwNTA3MjYucGF0Y2gKIGdkYi02LjUtYnoxODUzMzctcmVzb2x2ZS10bHMt d2l0aG91dC1kZWJ1Z2luZm8tdjIucGF0Y2gKIGdkYi02LjUtc2hhcmVkbGlicmFyeS1wYXRoLnBh dGNoCkBAIC03MywyNiArNzIsMTQgQEAgZ2RiLWxpbnV4X3BlcmYtYnVuZGxlLnBhdGNoCiBnZGIt bGliZXhlYy1hZGQtaW5kZXgucGF0Y2gKIGdkYi1yaGJ6MTM5ODM4Ny10YWItY3Jhc2gtdGVzdC5w YXRjaAogZ2RiLXJoYnoxNTUzMTA0LXMzOTB4LWFyY2gxMi10ZXN0LnBhdGNoCi1nZGItcmhiejE5 MDU5OTYtZml4LW9mZi1ieS1vbmUtZXJyb3ItaW4tYWRhX2ZvbGRfbmFtZS5wYXRjaAotZ2RiLXJo YnoxOTEyOTg1LWxpYnN0ZGMrKy1hc3NlcnQucGF0Y2gKLWdkYi1yaGJ6MTkwOTkwMi1mcmFtZV9p ZF9wLWFzc2VydC0xLnBhdGNoCi1nZGItcmhiejE5MDk5MDItZnJhbWVfaWRfcC1hc3NlcnQtMi5w YXRjaAotZ2RiLXJoYnoxOTQxMDgwLWZpeC1nZGJzZXJ2ZXItaGFuZy5wYXRjaAotdGVzdGluZy1j dXN0b20taW5wdXRyYy5wYXRjaAotZ2RiLXJoYnoxOTMxMzQ0LWJmZF9zZWVrLWVsZl9yZWFkX25v dGVzLnBhdGNoCi1nZGItcmhiejE5NjQxNjctZm9ydHJhbi1jbGVhbi11cC1hcnJheS1leHByZXNz aW9uLWV2YWx1YXRpb24ucGF0Y2gKLWdkYi1yaGJ6MTk2NDE2Ny1tb3ZlLWZvcnRyYW4tZXhwci1o YW5kbGluZy5wYXRjaAotZ2RiLXJoYnoxOTY0MTY3LWZvcnRyYW4td2hpdGVzcGFjZV9hcnJheS5w YXRjaAotZ2RiLXJoYnoxOTY0MTY3LWNvbnZlcnQtZW51bS1yYW5nZV90eXBlLnBhdGNoCi1nZGIt cmhiejE5NjQxNjctZm9ydHJhbi1yYW5nZV90eXBlLXRvLXJhbmdlX2ZsYWcucGF0Y2gKLWdkYi1y aGJ6MTk2NDE2Ny1mb3J0cmFuLWFycmF5LXN0cmlkZXMtaW4tZXhwcmVzc2lvbnMucGF0Y2gKLWdk Yi1yaGJ6MTk2NDE2Ny1mb3J0cmFuLWFycmF5LXNsaWNlcy1hdC1wcm9tcHQucGF0Y2gKLWdkYi1y aGJ6MTk2NDE2Ny1mb3J0cmFuLWZpeC10eXBlLWZvcm1hdC1taXNtYXRjaC1pbi1mLWxhbmcuYy5w YXRjaAotZ2RiLXJoYnoxODk4MjUyLWxvYWRhYmxlLXNlY3Rpb24tb3V0c2lkZS1FTEYtc2VnbWVu dHMucGF0Y2gKLWdkYi1nZGIyNzc0My1wc3ltdGFiLWltcG9ydGVkLXVuaXQucGF0Y2gKLWdkYi1k b250LW92ZXJ3cml0ZS1mc2dzYmFzZS1tMzIucGF0Y2gKLWdkYi1yaGJ6MTk3MTA5Ni1nbGliYzIu MzQtMS5wYXRjaAotZ2RiLXJoYnoxOTcxMDk2LWdsaWJjMi4zNC0yLnBhdGNoCi1nZGItcmhiejE5 NzEwOTYtZ2xpYmMyLjM0LTMucGF0Y2gKLWdkYi1yaGJ6MTk3MTA5Ni1nbGliYzIuMzQtNC5wYXRj aAotZ2RiLXJoYnoxOTcxMDk2LWdsaWJjMi4zNC01LnBhdGNoCitnZGItcmhiejE5NzY4ODctZmll bGQtbG9jYXRpb24ta2luZC5wYXRjaAorZ2RiLXRlc3QtZm9yLXJoYnoxOTc2ODg3LnBhdGNoCitn ZGItcmhiejIwMTI5NzYtcGFwZXItb3Zlci1mb3J0cmFuLWxleC1wcm9ibGVtcy5wYXRjaAorZ2Ri LXJoYnotODUzMDcxLXVwZGF0ZS1tYW5wYWdlcy5wYXRjaAorZ2RiLXJoYnoyMDIyMTc3LWRwcmlu dGYtMS5wYXRjaAorZ2RiLXJoYnoyMDIyMTc3LWRwcmludGYtMi5wYXRjaAorZ2RiLXJoYnoyMDI0 ODc1LWV4cGFuZC1kb2N1bWVudGF0aW9uLWZvci1kZWJ1Z2luZm9kLnBhdGNoCitnZGItcmhiejIw MjQ4NzUtc2V0X3Nob3ctZm9yLW1hbmFnaW5nLWRlYnVnaW5mb2QucGF0Y2gKK2dkYi1yaGJ6MjAy NDg3NS1maXgtdW5pdHRlc3QtZmFpbHVyZS5wYXRjaAorZ2RiLXJoYnoyMDI0ODctcmV3b3JrLXNl dC1kZWJ1Z2luZm9kLnBhdGNoCitnZGItcmhiejIwMjQ4NzUtcHIyNzAyNi5wYXRjaAoKZGlmZiAt LWdpdCBhL2dkYi02LjMtZ3N0YWNrLTIwMDUwNDExLnBhdGNoIGIvZ2RiLTYuMy1nc3RhY2stMjAw NTA0MTEucGF0Y2gKaW5kZXggMzVjMmRlMS4uOWZhMmU3ZCAxMDA2NDQKLS0tIGEvZ2RiLTYuMy1n c3RhY2stMjAwNTA0MTEucGF0Y2gKKysrIGIvZ2RiLTYuMy1nc3RhY2stMjAwNTA0MTEucGF0Y2gK QEAgLTE2LDcgKzE2LDcgQEAgU3ViamVjdDogZ2RiLTYuMy1nc3RhY2stMjAwNTA0MTEucGF0Y2gK IGRpZmYgLS1naXQgYS9nZGIvTWFrZWZpbGUuaW4gYi9nZGIvTWFrZWZpbGUuaW4KIC0tLSBhL2dk Yi9NYWtlZmlsZS5pbgogKysrIGIvZ2RiL01ha2VmaWxlLmluCi1AQCAtMTcyNiw3ICsxNzI2LDcg QEAgaW5mbyBpbnN0YWxsLWluZm8gY2xlYW4taW5mbyBkdmkgcGRmIGluc3RhbGwtcGRmIGh0bWwg aW5zdGFsbC1odG1sOiBmb3JjZQorQEAgLTE3NTMsNyArMTc1Myw3IEBAIGluZm8gaW5zdGFsbC1p bmZvIGNsZWFuLWluZm8gZHZpIHBkZiBpbnN0YWxsLXBkZiBodG1sIGluc3RhbGwtaHRtbDogZm9y Y2UKICBpbnN0YWxsOiBhbGwKICAJQCQoTUFLRSkgJChGTEFHU19UT19QQVNTKSBpbnN0YWxsLW9u bHkKICAKQEAgLTI1LDcgKzI1LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9NYWtlZmlsZS5pbiBiL2dk Yi9NYWtlZmlsZS5pbgogIAl0cmFuc2Zvcm1lZF9uYW1lPWB0PSckKHByb2dyYW1fdHJhbnNmb3Jt X25hbWUpJzsgXAogIAkJCSAgZWNobyBnZGIgfCBzZWQgLWUgIiQkdCJgIDsgXAogIAkJaWYgdGVz dCAieCQkdHJhbnNmb3JtZWRfbmFtZSIgPSB4OyB0aGVuIFwKLUBAIC0xNzc1LDcgKzE3NzUsMjUg QEAgaW5zdGFsbC1ndWlsZToKK0BAIC0xODAyLDcgKzE4MDIsMjUgQEAgaW5zdGFsbC1ndWlsZToK ICBpbnN0YWxsLXB5dGhvbjoKICAJJChTSEVMTCkgJChzcmNkaXIpLy4uL21raW5zdGFsbGRpcnMg JChERVNURElSKSQoR0RCX0RBVEFESVIpL3B5dGhvbi9nZGIKICAKQEAgLTUyLDcgKzUyLDcgQEAg ZGlmZiAtLWdpdCBhL2dkYi9NYWtlZmlsZS5pbiBiL2dkYi9NYWtlZmlsZS5pbgogIAl0cmFuc2Zv cm1lZF9uYW1lPWB0PSckKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpJzsgXAogIAkJCSAgZWNobyBn ZGIgfCBzZWQgLWUgJCR0YCA7IFwKICAJCWlmIHRlc3QgIngkJHRyYW5zZm9ybWVkX25hbWUiID0g eDsgdGhlbiBcCi1AQCAtMTc5OCw2ICsxODE2LDE4IEBAIHVuaW5zdGFsbDogZm9yY2UgJChDT05G SUdfVU5JTlNUQUxMKQorQEAgLTE4MjUsNiArMTg0MywxOCBAQCB1bmluc3RhbGw6IGZvcmNlICQo Q09ORklHX1VOSU5TVEFMTCkKICAJZmkKICAJQCQoTUFLRSkgRE89dW5pbnN0YWxsICJET0RJUlM9 JChTVUJESVJTKSIgJChGTEFHU19UT19QQVNTKSBzdWJkaXJfZG8KICAKCmRpZmYgLS1naXQgYS9n ZGItNi4zLWluZmVyaW9yLW5vdGlmaWNhdGlvbi0yMDA1MDcyMS5wYXRjaCBiL2dkYi02LjMtaW5m ZXJpb3Itbm90aWZpY2F0aW9uLTIwMDUwNzIxLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCA4OTRlZjc5Li4wMDAwMDAwCi0tLSBhL2dkYi02LjMtaW5mZXJpb3Itbm90aWZpY2F0 aW9uLTIwMDUwNzIxLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzI0ICswLDAgQEAKLUZyb20g RkVET1JBX1BBVENIRVMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBKZWZmIEpvaG5z dG9uIDxqam9obnN0bkByZWRoYXQuY29tPgotRGF0ZTogRnJpLCAyNyBPY3QgMjAxNyAyMTowNzo1 MCArMDIwMAotU3ViamVjdDogZ2RiLTYuMy1pbmZlcmlvci1ub3RpZmljYXRpb24tMjAwNTA3MjEu cGF0Y2gKLQotOzsgTm90aWZ5IG9ic2VydmVycyB0aGF0IHRoZSBpbmZlcmlvciBoYXMgYmVlbiBj cmVhdGVkCi07Oz1mZWRvcmF0ZXN0Ci0KLTIwMDUtMDctMjEgIEplZmYgSm9obnN0b24gIDxqam9o bnN0bkByZWRoYXQuY29tPgotCi0JKiBnZGIuYmFzZS9hdHRhY2gtMzIuZXhwOiBOZXcgdGVzdCBm b3IgYXR0YWNoaW5nIGluIDMyLWJpdAotCW1vZGUgb24gNjQtYml0IHN5c3RlbXMuCi0JKiBnZGIu YmFzZS9hdHRhY2gtMzIuYzogRGl0dG8uCi0JKiBnZGIuYmFzZS9hdHRhY2gtMzJiLmM6IERpdHRv LgotCi0yMDA3LTEyLTI2ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5j b20+Ci0KLQkqIGdkYi5iYXNlL2F0dGFjaC0zMi5leHA6IEZpeCBmb3Jnb3R0ZW4gJEdEQkZMQUdT IGFzIHNldC4KLQotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXR0YWNoLTMy LmMgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2F0dGFjaC0zMi5jCi1uZXcgZmlsZSBtb2RlIDEw MDY0NAotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hdHRhY2gt MzIuYwotQEAgLTAsMCArMSwyMCBAQAotKy8qIFRoaXMgcHJvZ3JhbSBpcyBpbnRlbmRlZCB0byBi ZSBzdGFydGVkIG91dHNpZGUgb2YgZ2RiLCBhbmQgdGhlbgotKyAgIGF0dGFjaGVkIHRvIGJ5IGdk Yi4gIFRodXMsIGl0IHNpbXBseSBzcGlucyBpbiBhIGxvb3AuICBUaGUgbG9vcAotKyAgIGlzIGV4 aXRlZCB3aGVuICYgaWYgdGhlIHZhcmlhYmxlICdzaG91bGRfZXhpdCcgaXMgbm9uLXplcm8uICAo SXQKLSsgICBpcyBpbml0aWFsaXplZCB0byB6ZXJvIGluIHRoaXMgcHJvZ3JhbSwgc28gdGhlIGxv b3Agd2lsbCBuZXZlcgotKyAgIGV4aXQgdW5sZXNzL3VudGlsIGdkYiBzZXRzIHRoZSB2YXJpYWJs ZSB0byBub24temVyby4pCi0rICAgKi8KLSsjaW5jbHVkZSA8c3RkaW8uaD4KLSsKLStpbnQgIHNo b3VsZF9leGl0ID0gMDsKLSsKLStpbnQgbWFpbiAoKQotK3sKLSsgIGludCAgbG9jYWxfaSA9IDA7 Ci0rCi0rICB3aGlsZSAoISBzaG91bGRfZXhpdCkKLSsgICAgewotKyAgICAgIGxvY2FsX2krKzsK LSsgICAgfQotKyAgcmV0dXJuIDA7Ci0rfQotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2Ri LmJhc2UvYXR0YWNoLTMyLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXR0YWNoLTMyLmV4 cAotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2UvYXR0YWNoLTMyLmV4cAotQEAgLTAsMCArMSwyNDYgQEAKLSsjIENvcHlyaWdo dCAyMDA1IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyMgVGhpcyBwcm9ncmFt IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkK LSsjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIg dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KLSsjCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rIyBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0r IyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0 d2FyZQotKyMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBC b3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLSsjCi0rIyBUaGlzIHRlc3Qgd2FzIGJhc2VkIG9u IGF0dGFjaC5leHAgYW5kIG1vZGlmaWVkIGZvciAzMi82NCBiaXQgTGludXggc3lzdGVtcy4gKi8K LSsKLSsjIE9uIEhQLVVYIDExLjAsIHRoaXMgdGVzdCBpcyBjYXVzaW5nIGEgcHJvY2VzcyBydW5u aW5nIHRoZSBwcm9ncmFtCi0rIyAiYXR0YWNoIiB0byBiZSBsZWZ0IGFyb3VuZCBzcGlubmluZy4g IFVudGlsIHdlIGZpZ3VyZSBvdXQgd2h5LCBJIGFtCi0rIyBjb21tZW50aW5nIG91dCB0aGUgdGVz dCB0byBhdm9pZCBwb2xsdXRpbmcgdGlhbWF0IChvdXIgMTEuMCBuaWdodGx5Ci0rIyB0ZXN0IG1h Y2hpbmUpIHdpdGggdGhlc2UgcHJvY2Vzc2VzLiBSVAotKyMKLSsjIFNldHRpbmcgdGhlIG1hZ2lj IGJpdCBpbiB0aGUgdGFyZ2V0IGFwcCBzaG91bGQgd29yay4gIEkgYWRkZWQgYQotKyMgImtpbGwi LCBhbmQgYWxzbyBhIHRlc3QgZm9yIHRoZSBSMyByZWdpc3RlciB3YXJuaW5nLiAgSkIKLStpZiB7 ICFbaXN0YXJnZXQgIng4Nl82NCotKmxpbnV4KiJdCi0rICAgICAmJiAhW2lzdGFyZ2V0ICJwb3dl cnBjNjQqLSpsaW51eCoiXX0gewotKyAgICByZXR1cm4gMAotK30KLSsKLSsjIGFyZSB3ZSBvbiBh IHRhcmdldCBib2FyZAotK2lmIHtbdXNlX2dkYl9zdHViXX0gewotKyAgICB1bnRlc3RlZCAic2tp cHBpbmcgdGVzdCBiZWNhdXNlIG9mIHVzZV9nZGJfc3R1YiIKLSsgICAgcmV0dXJuIC0xCi0rfQot KwotK3NldCB0ZXN0ZmlsZSAiYXR0YWNoLTMyIgotK3NldCBzcmNmaWxlICAke3Rlc3RmaWxlfS5j Ci0rc2V0IHNyY2ZpbGUyICR7dGVzdGZpbGV9Yi5jCi0rc2V0IGJpbmZpbGUgIFtzdGFuZGFyZF9v dXRwdXRfZmlsZSAke3Rlc3RmaWxlfV0KLStzZXQgYmluZmlsZTIgW3N0YW5kYXJkX291dHB1dF9m aWxlICR7dGVzdGZpbGV9Yl0KLStzZXQgZXNjYXBlZGJpbmZpbGUgIFtzdHJpbmdfdG9fcmVnZXhw IFtzdGFuZGFyZF9vdXRwdXRfZmlsZSAke3Rlc3RmaWxlfV1dCi0rCi0rI2V4ZWN1dGVfYW55d2hl cmUgInJtIC1mICR7YmluZmlsZX0gJHtiaW5maWxlMn0iCi0rcmVtb3RlX2V4ZWMgYnVpbGQgInJt IC1mICR7YmluZmlsZX0gJHtiaW5maWxlMn0iCi0rIyBGb3IgZGVidWdnaW5nIHRoaXMgdGVzdAot KyMKLSsjbG9nX3VzZXIgMQotKwotKyMgYnVpbGQgdGhlIGZpcnN0IHRlc3QgY2FzZQotKyMKLStp ZiAgeyBbZ2RiX2NvbXBpbGUgIiR7c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfSIgIiR7Ymlu ZmlsZX0iIGV4ZWN1dGFibGUgW2xpc3QgZGVidWcgImFkZGl0aW9uYWxfZmxhZ3M9LW0zMiJdXSAh PSAiIiB9IHsKLSsgICAgZ2RiX3N1cHByZXNzX2VudGlyZV9maWxlICJUZXN0Y2FzZSBjb21waWxl IGZhaWxlZCwgc28gYWxsIHRlc3RzIGluIHRoaXMgZmlsZSB3aWxsIGF1dG9tYXRpY2FsbHkgZmFp bC4iCi0rfQotKwotKyMgQnVpbGQgdGhlIGluLXN5c3RlbS1jYWxsIHRlc3QKLSsKLStpZiAgeyBb Z2RiX2NvbXBpbGUgIiR7c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlMn0iICIke2JpbmZpbGUy fSIgZXhlY3V0YWJsZSBbbGlzdCBkZWJ1ZyAiYWRkaXRpb25hbF9mbGFncz0tbTMyIl1dICE9ICIi IH0gewotKyAgICBnZGJfc3VwcHJlc3NfZW50aXJlX2ZpbGUgIlRlc3RjYXNlIGNvbXBpbGUgZmFp bGVkLCBzbyBhbGwgdGVzdHMgaW4gdGhpcyBmaWxlIHdpbGwgYXV0b21hdGljYWxseSBmYWlsLiIK LSt9Ci0rCi0raWYgW2dldF9jb21waWxlcl9pbmZvICR7YmluZmlsZX1dIHsKLSsgICAgcmV0dXJu IC0xCi0rfQotKwotK3Byb2MgZG9fYXR0YWNoX3Rlc3RzIHt9IHsKLSsgICAgZ2xvYmFsIGdkYl9w cm9tcHQKLSsgICAgZ2xvYmFsIGJpbmZpbGUKLSsgICAgZ2xvYmFsIGVzY2FwZWRiaW5maWxlCi0r ICAgIGdsb2JhbCBzcmNmaWxlCi0rICAgIGdsb2JhbCB0ZXN0ZmlsZQotKyAgICBnbG9iYWwgb2Jq ZGlyCi0rICAgIGdsb2JhbCBzdWJkaXIKLSsgICAgZ2xvYmFsIHRpbWVvdXQKLSsgICAgZ2xvYmFs IHRlc3RwaWQKLSsKLSsgICAgIyBWZXJpZnkgdGhhdCB3ZSBjYW4gInNlZSIgdGhlIHZhcmlhYmxl ICJzaG91bGRfZXhpdCIgaW4gdGhlCi0rICAgICMgcHJvZ3JhbSwgYW5kIHRoYXQgaXQgaXMgemVy by4KLSsKLSsgICAgZ2RiX3Rlc3QgInByaW50IHNob3VsZF9leGl0IiAiID0gMCIgImFmdGVyIGF0 dGFjaC0zMiwgcHJpbnQgc2hvdWxkX2V4aXQiCi0rCi0rICAgICMgVmVyaWZ5IHRoYXQgd2UgY2Fu IG1vZGlmeSB0aGUgdmFyaWFibGUgInNob3VsZF9leGl0IiBpbiB0aGUKLSsgICAgIyBwcm9ncmFt LgotKwotKyAgICBnZGJfdGVzdCAic2V0IHNob3VsZF9leGl0PTEiICIiICJhZnRlciBhdHRhY2gt MzIsIHNldCBzaG91bGRfZXhpdCIKLSsKLSsgICAgIyBWZXJpZnkgdGhhdCB0aGUgbW9kaWZpY2F0 aW9uIHJlYWxseSBoYXBwZW5lZC4KLSsKLSsgICAgc2VuZF9nZGIgInRicmVhayAxOVxuIgotKyAg ICBnZGJfZXhwZWN0IHsKLSsJLXJlICJyZWFrcG9pbnQgLiphdC4qJHNyY2ZpbGUsIGxpbmUgMTku KiRnZGJfcHJvbXB0ICQiIHsKLSsJICAgIHBhc3MgImFmdGVyIGF0dGFjaC0zMiwgc2V0IHRicmVh ayBwb3N0bG9vcCIKLSsJfQotKwktcmUgIiRnZGJfcHJvbXB0ICQiIHsKLSsJICAgIGZhaWwgImFm dGVyIGF0dGFjaC0zMiwgc2V0IHRicmVhayBwb3N0bG9vcCIKLSsJfQotKwl0aW1lb3V0IHsKLSsJ ICAgIGZhaWwgIih0aW1lb3V0KSBhZnRlciBhdHRhY2gtMzIsIHNldCB0YnJlYWsgcG9zdGxvb3Ai Ci0rCX0KLSsgICAgfQotKyAgICBzZW5kX2dkYiAiY29udGludWVcbiIKLSsgICAgZ2RiX2V4cGVj dCB7Ci0rCS1yZSAibWFpbi4qYXQuKiRzcmNmaWxlOjE5LiokZ2RiX3Byb21wdCAkIiB7Ci0rCSAg ICBwYXNzICJhZnRlciBhdHRhY2gtMzIsIHJlYWNoIHRicmVhayBwb3N0bG9vcCIKLSsJfQotKwkt cmUgIiRnZGJfcHJvbXB0ICQiIHsKLSsJICAgIGZhaWwgImFmdGVyIGF0dGFjaC0zMiwgcmVhY2gg dGJyZWFrIHBvc3Rsb29wIgotKwl9Ci0rCXRpbWVvdXQgewotKwkgICAgZmFpbCAiKHRpbWVvdXQp IGFmdGVyIGF0dGFjaC0zMiwgcmVhY2ggdGJyZWFrIHBvc3Rsb29wIgotKwl9Ci0rICAgIH0KLSsK LSsgICAgIyBBbGxvdyB0aGUgdGVzdCBwcm9jZXNzIHRvIGV4aXQsIHRvIGNsZWFudXAgYWZ0ZXIg b3Vyc2VsdmVzLgotKwotKyAgICBnZGJfdGVzdCAiY29udGludWUiIHtcW0luZmVyaW9yIC4qIGV4 aXRlZCBub3JtYWxseVxdfSAiYWZ0ZXIgYXR0YWNoLTMyLCBleGl0IgotKwotKyAgICAjIE1ha2Ug c3VyZSB3ZSBkb24ndCBsZWF2ZSBhIHByb2Nlc3MgYXJvdW5kIHRvIGNvbmZ1c2UKLSsgICAgIyB0 aGUgbmV4dCB0ZXN0IHJ1biAoYW5kIHByZXZlbnQgdGhlIGNvbXBpbGUgYnkga2VlcGluZwotKyAg ICAjIHRoZSB0ZXh0IGZpbGUgYnVzeSksIGluIGNhc2UgdGhlICJzZXQgc2hvdWxkX2V4aXQiIGRp ZG4ndAotKyAgICAjIHdvcmsuCi0rCi0rICAgIHJlbW90ZV9leGVjIGJ1aWxkICJraWxsIC05ICR7 dGVzdHBpZH0iCi0rCi0rICAgICMgU3RhcnQgdGhlIHByb2dyYW0gcnVubmluZyBhbmQgdGhlbiB3 YWl0IGZvciBhIGJpdCwgdG8gYmUgc3VyZQotKyAgICAjIHRoYXQgaXQgY2FuIGJlIGF0dGFjaGVk IHRvLgotKwotKyAgICBzZXQgdGVzdHBpZCBbZXZhbCBleGVjICRiaW5maWxlICZdCi0rICAgIGV4 ZWMgc2xlZXAgMgotKyAgICBpZiB7IFtpc3RhcmdldCAiKi0qLWN5Z3dpbioiXSB9IHsKLSsJIyB0 ZXN0cGlkIGlzIHRoZSBDeWd3aW4gUElELCBHREIgdXNlcyB0aGUgV2luZG93cyBQSUQsIHdoaWNo IG1pZ2h0IGJlCi0rCSMgZGlmZmVyZW50IGR1ZSB0byB0aGUgd2F5IGZvcmsvZXhlYyB3b3Jrcy4K LSsJc2V0IHRlc3RwaWQgWyBleGVjIHBzIC1lIHwgZ2F3ayAieyBpZiAoXCQxID09ICR0ZXN0cGlk KSBwcmludCBcJDQ7IH0iIF0KLSsgICAgfQotKwotKyAgICAjIFZlcmlmeSB0aGF0IHdlIGNhbiBh dHRhY2ggdG8gdGhlIHByb2Nlc3MsIGFuZCBmaW5kIGl0cyBhLm91dAotKyAgICAjIHdoZW4gd2Un cmUgY2QnZCB0byBzb21lIGRpcmVjdG9yeSB0aGF0IGRvZXNuJ3QgY29udGFpbiB0aGUKLSsgICAg IyBhLm91dC4gIChXZSB1c2UgdGhlIHNvdXJjZSBwYXRoIHNldCBieSB0aGUgImRpciIgY29tbWFu ZC4pCi0rCi0rICAgIGdkYl90ZXN0ICJkaXIgJHtvYmpkaXJ9LyR7c3ViZGlyfSIgIlNvdXJjZSBk aXJlY3RvcmllcyBzZWFyY2hlZDogLioiIFwKLSsJInNldCBzb3VyY2UgcGF0aCIKLSsKLSsgICAg Z2RiX3Rlc3QgImNkIC90bXAiICJXb3JraW5nIGRpcmVjdG9yeSAvdG1wLiIgXAotKwkiY2QgYXdh eSBmcm9tIHByb2Nlc3Mgd29ya2luZyBkaXJlY3RvcnkiCi0rCi0rICAgICMgRXhwbGljaXRseSBm bHVzaCBvdXQgYW55IGtub3dsZWRnZSBvZiB0aGUgcHJldmlvdXMgYXR0YWNobWVudC4KLSsKLSsg ICAgc2V0IHRlc3QgImJlZm9yZSBhdHRhY2gtMzItMywgZmx1c2ggc3ltYm9scyIKLSsgICAgZ2Ri X3Rlc3RfbXVsdGlwbGUgInN5bWJvbCIgIiR0ZXN0IiB7Ci0rCS1yZSAiRGlzY2FyZCBzeW1ib2wg dGFibGUgZnJvbS4qeSBvciBuLiAkIiB7Ci0rCSAgICBnZGJfdGVzdCAieSIgIk5vIHN5bWJvbCBm aWxlIG5vdy4iIFwKLSsJCSIkdGVzdCIKLSsJfQotKwktcmUgIk5vIHN5bWJvbCBmaWxlIG5vdy4q JGdkYl9wcm9tcHQgJCIgewotKwkgICAgcGFzcyAiJHRlc3QiCi0rCX0KLSsgICAgfQotKwotKyAg ICBnZGJfdGVzdCAiZXhlYyIgIk5vIGV4ZWN1dGFibGUgZmlsZSBub3cuIiBcCi0rCSJiZWZvcmUg YXR0YWNoLTMyLTMsIGZsdXNoIGV4ZWMiCi0rCi0rICAgIGdkYl90ZXN0ICJhdHRhY2ggJHRlc3Rw aWQiIFwKLSsJIkF0dGFjaGluZyB0byBwcm9jZXNzICR0ZXN0cGlkLipSZWFkaW5nIHN5bWJvbHMg ZnJvbSAkZXNjYXBlZGJpbmZpbGUuKm1haW4uKmF0IC4qIiBcCi0rCSJhdHRhY2gtMzIgd2hlbiBw cm9jZXNzJyBhLm91dCBub3QgaW4gY3dkIgotKwotKyAgICBzZXQgdGVzdCAiYWZ0ZXIgYXR0YWNo LTMyLTMsIGV4aXQiCi0rICAgIGdkYl90ZXN0X211bHRpcGxlICJraWxsIiAiJHRlc3QiIHsKLSsJ LXJlICJLaWxsIHRoZSBwcm9ncmFtIGJlaW5nIGRlYnVnZ2VkLip5IG9yIG4uICQiIHsKLSsJICAg IGdkYl90ZXN0ICJ5IiAiIiAiJHRlc3QiCi0rCX0KLSsgICAgfQotKwotKyAgICAjIEFub3RoZXIg ImRvbid0IGxlYXZlIGEgcHJvY2VzcyBhcm91bmQiCi0rICAgIHJlbW90ZV9leGVjIGJ1aWxkICJr aWxsIC05ICR7dGVzdHBpZH0iCi0rfQotKwotK3Byb2MgZG9fY2FsbF9hdHRhY2hfdGVzdHMge30g ewotKyAgICBnbG9iYWwgZ2RiX3Byb21wdAotKyAgICBnbG9iYWwgYmluZmlsZTIKLSsgICAgZ2xv YmFsIHRlc3RwaWQKLSsKLSsgICAgIyBTZWUgaWYgb3RoZXIgcmVnaXN0ZXJzIGFyZSBwcm9ibGVt cwotKwotKyAgICBzZXQgdGVzdCAiaW5mbyBvdGhlciByZWdpc3RlciIKLSsgICAgZ2RiX3Rlc3Rf bXVsdGlwbGUgImkgciByMyIgIiR0ZXN0IiB7Ci0rCS1yZSAid2FybmluZzogcmVhZGluZyByZWdp c3Rlci4qJGdkYl9wcm9tcHQgJCIgewotKwkgICAgZmFpbCAiJHRlc3QiCi0rCX0KLSsJLXJlICJy My4qJGdkYl9wcm9tcHQgJCIgewotKwkgICAgcGFzcyAiJHRlc3QiCi0rCX0KLSsgICAgfQotKwot KyAgICAjIEdldCByaWQgb2YgdGhlIHByb2Nlc3MKLSsKLSsgICAgZ2RiX3Rlc3QgInAgc2hvdWxk X2V4aXQgPSAxIgotKyAgICBnZGJfdGVzdCAiYyIge1xbSW5mZXJpb3IgLiogZXhpdGVkIG5vcm1h bGx5XF19Ci0rCi0rICAgICMgQmUgcGFyYW5vaWQKLSsKLSsgICAgcmVtb3RlX2V4ZWMgYnVpbGQg ImtpbGwgLTkgJHt0ZXN0cGlkfSIKLSt9Ci0rCi0rCi0rIyBTdGFydCB3aXRoIGEgZnJlc2ggZ2Ri Ci0rCi0rZ2RiX2V4aXQKLStzZXQgdGVzdHBpZCBbZXZhbCBleGVjICRiaW5maWxlICZdCi0rZXhl YyBzbGVlcCAzCi0raWYgeyBbaXN0YXJnZXQgIiotKi1jeWd3aW4qIl0gfSB7Ci0rICAgICMgdGVz dHBpZCBpcyB0aGUgQ3lnd2luIFBJRCwgR0RCIHVzZXMgdGhlIFdpbmRvd3MgUElELCB3aGljaCBt aWdodCBiZQotKyAgICAjIGRpZmZlcmVudCBkdWUgdG8gdGhlIHdheSBmb3JrL2V4ZWMgd29ya3Mu Ci0rICAgIHNldCB0ZXN0cGlkIFsgZXhlYyBwcyAtZSB8IGdhd2sgInsgaWYgKFwkMSA9PSAkdGVz dHBpZCkgcHJpbnQgXCQ0OyB9IiBdCi0rfQotKwotK3NldCBHREJGTEFHU19vcmlnICRHREJGTEFH UwotK3NldCBHREJGTEFHUyAiLWlleCBcInNldCBoZWlnaHQgMFwiIC0tcGlkPSR0ZXN0cGlkIgot K2dkYl9zdGFydAotK3NldCBHREJGTEFHUyAkR0RCRkxBR1Nfb3JpZwotKwotK2dkYl9yZWluaXRp YWxpemVfZGlyICRzcmNkaXIvJHN1YmRpcgotKwotKyMgVGhpcyBpcyBhIHRlc3Qgb2YgZ2RiJ3Mg YWJpbGl0eSB0byBhdHRhY2ggdG8gYSBydW5uaW5nIHByb2Nlc3MuCi0rCi0rZG9fYXR0YWNoX3Rl c3RzCi0rCi0rIyBUZXN0IGF0dGFjaGluZyB3aGVuIHRoZSB0YXJnZXQgaXMgaW5zaWRlIGEgc3lz dGVtIGNhbGwKLSsKLStnZGJfZXhpdAotK3NldCB0ZXN0cGlkIFtldmFsIGV4ZWMgJGJpbmZpbGUy ICZdCi0rZXhlYyBzbGVlcCAzCi0raWYgeyBbaXN0YXJnZXQgIiotKi1jeWd3aW4qIl0gfSB7Ci0r ICAgICMgdGVzdHBpZCBpcyB0aGUgQ3lnd2luIFBJRCwgR0RCIHVzZXMgdGhlIFdpbmRvd3MgUElE LCB3aGljaCBtaWdodCBiZQotKyAgICAjIGRpZmZlcmVudCBkdWUgdG8gdGhlIHdheSBmb3JrL2V4 ZWMgd29ya3MuCi0rICAgIHNldCB0ZXN0cGlkIFsgZXhlYyBwcyAtZSB8IGdhd2sgInsgaWYgKFwk MSA9PSAkdGVzdHBpZCkgcHJpbnQgXCQ0OyB9IiBdCi0rfQotKwotK3NldCBHREJGTEFHU19vcmln ICRHREJGTEFHUwotK3NldCBHREJGTEFHUyAiLWlleCBcInNldCBoZWlnaHQgMFwiIC0tcGlkPSR0 ZXN0cGlkIgotK2dkYl9zdGFydAotK3NldCBHREJGTEFHUyAkR0RCRkxBR1Nfb3JpZwotKwotK2dk Yl9yZWluaXRpYWxpemVfZGlyICRzcmNkaXIvJHN1YmRpcgotK2RvX2NhbGxfYXR0YWNoX3Rlc3Rz Ci0rCi0rcmV0dXJuIDAKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2F0dGFj aC0zMmIuYyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXR0YWNoLTMyYi5jCi1uZXcgZmlsZSBt b2RlIDEwMDY0NAotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9h dHRhY2gtMzJiLmMKLUBAIC0wLDAgKzEsMjQgQEAKLSsvKiBUaGlzIHByb2dyYW0gaXMgaW50ZW5k ZWQgdG8gYmUgc3RhcnRlZCBvdXRzaWRlIG9mIGdkYiwgYW5kIHRoZW4KLSsgICBhdHRhY2hlZCB0 byBieSBnZGIuICBUaHVzLCBpdCBzaW1wbHkgc3BpbnMgaW4gYSBsb29wLiAgVGhlIGxvb3AKLSsg ICBpcyBleGl0ZWQgd2hlbiAmIGlmIHRoZSB2YXJpYWJsZSAnc2hvdWxkX2V4aXQnIGlzIG5vbi16 ZXJvLiAgKEl0Ci0rICAgaXMgaW5pdGlhbGl6ZWQgdG8gemVybyBpbiB0aGlzIHByb2dyYW0sIHNv IHRoZSBsb29wIHdpbGwgbmV2ZXIKLSsgICBleGl0IHVubGVzcy91bnRpbCBnZGIgc2V0cyB0aGUg dmFyaWFibGUgdG8gbm9uLXplcm8uKQotKyAgICovCi0rI2luY2x1ZGUgPHN0ZGlvLmg+Ci0rI2lu Y2x1ZGUgPHN0ZGxpYi5oPgotKyNpbmNsdWRlIDx1bmlzdGQuaD4KLSsKLStpbnQgIHNob3VsZF9l eGl0ID0gMDsKLSsKLStpbnQgbWFpbiAoKQotK3sKLSsgIGludCAgbG9jYWxfaSA9IDA7Ci0rCi0r ICBzbGVlcCggMTAgKTsgLyogU3lzdGVtIGNhbGwgY2F1c2VzIHJlZ2lzdGVyIGZldGNoIHRvIGZh aWwgKi8KLSsgICAgICAgICAgICAgICAvKiBUaGlzIGlzIGEga25vd24gSFBVWCAiZmVhdHVyZSIg ICAgICAgICAgICAqLwotKyAgd2hpbGUgKCEgc2hvdWxkX2V4aXQpCi0rICAgIHsKLSsgICAgICBs b2NhbF9pKys7Ci0rICAgIH0KLSsgIHJldHVybiAoMCk7Ci0rfQoKZGlmZiAtLWdpdCBhL2dkYi02 LjMtcmgtdGVzdHZlcnNpb24tMjAwNDEyMDIucGF0Y2ggYi9nZGItNi4zLXJoLXRlc3R2ZXJzaW9u LTIwMDQxMjAyLnBhdGNoCmluZGV4IGMxZTczOTUuLjdlZTY4ZTQgMTAwNjQ0Ci0tLSBhL2dkYi02 LjMtcmgtdGVzdHZlcnNpb24tMjAwNDEyMDIucGF0Y2gKKysrIGIvZ2RiLTYuMy1yaC10ZXN0dmVy c2lvbi0yMDA0MTIwMi5wYXRjaApAQCAtMjcsNyArMjcsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3Rl c3RzdWl0ZS9nZGIuZ2RiL3NlbGZ0ZXN0LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmdkYi9zZWxm dGVzdAogZGlmZiAtLWdpdCBhL2dkYi90b3AuYyBiL2dkYi90b3AuYwogLS0tIGEvZ2RiL3RvcC5j CiArKysgYi9nZGIvdG9wLmMKLUBAIC0yMTYzLDcgKzIxNjMsNyBAQCBpbml0X2dkYl92ZXJzaW9u X3ZhcnMgKHZvaWQpCitAQCAtMjE5NSw3ICsyMTk1LDcgQEAgaW5pdF9nZGJfdmVyc2lvbl92YXJz ICh2b2lkKQogICAgc3RydWN0IGludGVybmFsdmFyICptYWpvcl92ZXJzaW9uX3ZhciA9IGNyZWF0 ZV9pbnRlcm5hbHZhciAoIl9nZGJfbWFqb3IiKTsKICAgIHN0cnVjdCBpbnRlcm5hbHZhciAqbWlu b3JfdmVyc2lvbl92YXIgPSBjcmVhdGVfaW50ZXJuYWx2YXIgKCJfZ2RiX21pbm9yIik7CiAgICBp bnQgdm1ham9yID0gMCwgdm1pbm9yID0gMCwgdnJldmlzaW9uID0gMDsKCmRpZmYgLS1naXQgYS9n ZGItNi41LWJ6MTg1MzM3LXJlc29sdmUtdGxzLXdpdGhvdXQtZGVidWdpbmZvLXYyLnBhdGNoIGIv Z2RiLTYuNS1iejE4NTMzNy1yZXNvbHZlLXRscy13aXRob3V0LWRlYnVnaW5mby12Mi5wYXRjaApp bmRleCA1Y2RmNjVmLi4zMDRhYTM4IDEwMDY0NAotLS0gYS9nZGItNi41LWJ6MTg1MzM3LXJlc29s dmUtdGxzLXdpdGhvdXQtZGVidWdpbmZvLXYyLnBhdGNoCisrKyBiL2dkYi02LjUtYnoxODUzMzct cmVzb2x2ZS10bHMtd2l0aG91dC1kZWJ1Z2luZm8tdjIucGF0Y2gKQEAgLTQ0LDE3ICs0NCwxNyBA QCBnbGliYy1kZWJ1Z2luZm8tMi43LTIueDg2XzY0OiAvdXNyL2xpYi9kZWJ1Zy9saWI2NC9saWJj LnNvLjYuZGVidWc6CiBkaWZmIC0tZ2l0IGEvZ2RiL3ByaW50Y21kLmMgYi9nZGIvcHJpbnRjbWQu YwogLS0tIGEvZ2RiL3ByaW50Y21kLmMKICsrKyBiL2dkYi9wcmludGNtZC5jCi1AQCAtMTIxMCw2 ICsxMjEwLDEwIEBAIHByaW50X2NvbW1hbmRfMSAoY29uc3QgY2hhciAqYXJncywgaW50IHZvaWRw cmludCkKK0BAIC0xMzA2LDYgKzEzMDYsMTAgQEAgcHJvY2Vzc19wcmludF9jb21tYW5kX2FyZ3Mg KGNvbnN0IGNoYXIgKmFyZ3MsIHZhbHVlX3ByaW50X29wdGlvbnMgKnByaW50X29wdHMsCiAgCiAg ICBpZiAoZXhwICE9IG51bGxwdHIgJiYgKmV4cCkKICAgICAgewogKyAgICAgIC8qICcqKChpbnQg KigqKSAodm9pZCkpIF9fZXJybm9fbG9jYXRpb24pICgpJyBpcyBpbmNvbXBhdGlibGUgd2l0aAog KwkgZnVuY3Rpb24gZGVzY3JpcHRvcnMuICAqLwotKyAgICAgIGlmICh0YXJnZXRfaGFzX2V4ZWN1 dGlvbiAmJiBzdHJjbXAgKGV4cCwgImVycm5vIikgPT0gMCkKKysgICAgICBpZiAodGFyZ2V0X2hh c19leGVjdXRpb24gKCkgJiYgc3RyY21wIChleHAsICJlcnJubyIpID09IDApCiArCWV4cCA9ICIq KCooaW50ICooKikodm9pZCkpIF9fZXJybm9fbG9jYXRpb24pICgpIjsKLSAgICAgICBleHByZXNz aW9uX3VwIGV4cHIgPSBwYXJzZV9leHByZXNzaW9uIChleHApOwotICAgICAgIHZhbCA9IGV2YWx1 YXRlX2V4cHJlc3Npb24gKGV4cHIuZ2V0ICgpKTsKLSAgICAgfQorICAgICAgIC8qIFZPSURQUklO VCBpcyB0cnVlIHRvIGluZGljYXRlIHRoYXQgd2UgZG8gd2FudCB0byBwcmludCBhIHZvaWQKKyAJ IHZhbHVlLCBzbyBpbnZlcnQgaXQgZm9yIHBhcnNlX2V4cHJlc3Npb24uICAqLworICAgICAgIGV4 cHJlc3Npb25fdXAgZXhwciA9IHBhcnNlX2V4cHJlc3Npb24gKGV4cCwgbnVsbHB0ciwgIXZvaWRw cmludCk7CiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1lcnJuby5j IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1lcnJuby5jCiBuZXcgZmlsZSBtb2RlIDEw MDY0NAogLS0tIC9kZXYvbnVsbAoKZGlmZiAtLWdpdCBhL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUt cnBtLXNjbC5wYXRjaCBiL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUtcnBtLXNjbC5wYXRjaAppbmRl eCA4MTA1NmNjLi4xZGMzYWM0IDEwMDY0NAotLS0gYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXJw bS1zY2wucGF0Y2gKKysrIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1ycG0tc2NsLnBhdGNoCkBA IC05OCw3ICs5OCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvYnVpbGQtaWQuYyBiL2dkYi9idWlsZC1p ZC5jCiBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMi9yZWFkLmMgYi9nZGIvZHdhcmYyL3JlYWQuYwog LS0tIGEvZ2RiL2R3YXJmMi9yZWFkLmMKICsrKyBiL2dkYi9kd2FyZjIvcmVhZC5jCi1AQCAtMzAz NCw2ICszMDM0LDE2IEBAIHJlYWRfZ2RiX2luZGV4X2Zyb21fYnVmZmVyIChjb25zdCBjaGFyICpm aWxlbmFtZSwKK0BAIC0yODAxLDYgKzI4MDEsMTYgQEAgcmVhZF9nZGJfaW5kZXhfZnJvbV9idWZm ZXIgKGNvbnN0IGNoYXIgKmZpbGVuYW1lLAogICAgICAgInNldCB1c2UtZGVwcmVjYXRlZC1pbmRl eC1zZWN0aW9ucyBvbiIuICAqLwogICAgaWYgKHZlcnNpb24gPCA2ICYmICFkZXByZWNhdGVkX29r KQogICAgICB7CkBAIC0xMTUsNyArMTE1LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjIvcmVh ZC5jIGIvZ2RiL2R3YXJmMi9yZWFkLmMKICAgICAgICBzdGF0aWMgaW50IHdhcm5pbmdfcHJpbnRl ZCA9IDA7CiAgICAgICAgaWYgKCF3YXJuaW5nX3ByaW50ZWQpCiAgCXsKLUBAIC0zMDQ1LDYgKzMw NTUsMTAgQEAgdG8gdXNlIHRoZSBzZWN0aW9uIGFueXdheS4iKSwKK0BAIC0yODEyLDYgKzI4MjIs MTAgQEAgdG8gdXNlIHRoZSBzZWN0aW9uIGFueXdheS4iKSwKICAJICB3YXJuaW5nX3ByaW50ZWQg PSAxOwogIAl9CiAgICAgICAgcmV0dXJuIDA7CgpkaWZmIC0tZ2l0IGEvZ2RiLTYuNi1idWlsZGlk LWxvY2F0ZS1ycG0ucGF0Y2ggYi9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXJwbS5wYXRjaAppbmRl eCBiZjc4M2RhLi40NjkzZjQzIDEwMDY0NAotLS0gYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXJw bS5wYXRjaAorKysgYi9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXJwbS5wYXRjaApAQCAtNjk2LDcg KzY5Niw3IEBAIGRpZmYgLS1naXQgYS9nZGIvY29uZmlnLmluIGIvZ2RiL2NvbmZpZy5pbgogIC8q IERlZmluZSB0byAxIGlmIHRyYW5zbGF0aW9uIG9mIHByb2dyYW0gbWVzc2FnZXMgdG8gdGhlIHVz ZXIncyBuYXRpdmUKICAgICBsYW5ndWFnZSBpcyByZXF1ZXN0ZWQuICovCiAgI3VuZGVmIEVOQUJM RV9OTFMKLUBAIC0yNDcsNiArMjUwLDkgQEAKK0BAIC0yNDYsNiArMjQ5LDkgQEAKICAvKiBEZWZp bmUgaWYgeW91IGhhdmUgdGhlIG1wZnIgbGlicmFyeS4gKi8KICAjdW5kZWYgSEFWRV9MSUJNUEZS CiAgCkBAIC03MDksNyArNzA5LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9jb25maWcuaW4gYi9nZGIv Y29uZmlnLmluCiBkaWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZ3VyZSBiL2dkYi9jb25maWd1cmUKIC0t LSBhL2dkYi9jb25maWd1cmUKICsrKyBiL2dkYi9jb25maWd1cmUKLUBAIC03NjksNiArNzY5LDEx IEBAIFBLR19DT05GSUcKK0BAIC03NzEsNiArNzcxLDExIEBAIFBLR19DT05GSUcKICBIQVZFX05B VElWRV9HQ09SRV9UQVJHRVQKICBUQVJHRVRfT0JTCiAgc3ViZGlycwpAQCAtNzIxLDcgKzcyMSw3 IEBAIGRpZmYgLS1naXQgYS9nZGIvY29uZmlndXJlIGIvZ2RiL2NvbmZpZ3VyZQogIEdEQl9EQVRB RElSCiAgREVCVUdESVIKICBNQUtFSU5GT19FWFRSQV9GTEFHUwotQEAgLTg3Myw2ICs4NzgsNyBA QCB3aXRoX2dkYl9kYXRhZGlyCitAQCAtODc2LDYgKzg4MSw3IEBAIHdpdGhfZ2RiX2RhdGFkaXIK ICB3aXRoX3JlbG9jYXRlZF9zb3VyY2VzCiAgd2l0aF9hdXRvX2xvYWRfZGlyCiAgd2l0aF9hdXRv X2xvYWRfc2FmZV9wYXRoCkBAIC03MjksNyArNzI5LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9jb25m aWd1cmUgYi9nZGIvY29uZmlndXJlCiAgZW5hYmxlX3RhcmdldHMKICBlbmFibGVfNjRfYml0X2Jm ZAogIGVuYWJsZV9nZGJtaQotQEAgLTk0OSw2ICs5NTUsOCBAQCBQS0dfQ09ORklHX1BBVEgKK0BA IC05NTMsNiArOTU5LDggQEAgUEtHX0NPTkZJR19QQVRICiAgUEtHX0NPTkZJR19MSUJESVIKICBE RUJVR0lORk9EX0NGTEFHUwogIERFQlVHSU5GT0RfTElCUwpAQCAtNzM4LDcgKzczOCw3IEBAIGRp ZmYgLS1naXQgYS9nZGIvY29uZmlndXJlIGIvZ2RiL2NvbmZpZ3VyZQogIFlBQ0MKICBZRkxBR1MK ICBYTUtNRicKLUBAIC0xNjIxLDYgKzE2MjksOCBAQCBPcHRpb25hbCBQYWNrYWdlczoKK0BAIC0x NjI1LDYgKzE2MzMsOCBAQCBPcHRpb25hbCBQYWNrYWdlczoKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRvIG5vdCByZXN0cmljdCBhdXRvLWxvYWRlZCBmaWxlcyBsb2NhdGlvbnMKICAgIC0t d2l0aC1kZWJ1Z2luZm9kICAgICAgIEVuYWJsZSBkZWJ1Z2luZm8gbG9va3VwcyB3aXRoIGRlYnVn aW5mb2QKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhdXRvL3llcy9ubykKQEAgLTc0Nyw3 ICs3NDcsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZ3VyZSBiL2dkYi9jb25maWd1cmUKICAg IC0td2l0aC1saWJ1bndpbmQtaWE2NCAgIHVzZSBsaWJ1bndpbmQgZnJhbWUgdW53aW5kaW5nIGZv ciBpYTY0IHRhcmdldHMKICAgIC0td2l0aC1jdXJzZXMgICAgICAgICAgIHVzZSB0aGUgY3Vyc2Vz IGxpYnJhcnkgaW5zdGVhZCBvZiB0aGUgdGVybWNhcAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGlicmFyeQotQEAgLTE3MDIsNiArMTcxMiw4IEBAIFNvbWUgaW5mbHVlbnRpYWwgZW52aXJv bm1lbnQgdmFyaWFibGVzOgorQEAgLTE3MDUsNiArMTcxNSw4IEBAIFNvbWUgaW5mbHVlbnRpYWwg ZW52aXJvbm1lbnQgdmFyaWFibGVzOgogICAgICAgICAgICAgICAgQyBjb21waWxlciBmbGFncyBm b3IgREVCVUdJTkZPRCwgb3ZlcnJpZGluZyBwa2ctY29uZmlnCiAgICBERUJVR0lORk9EX0xJQlMK ICAgICAgICAgICAgICAgIGxpbmtlciBmbGFncyBmb3IgREVCVUdJTkZPRCwgb3ZlcnJpZGluZyBw a2ctY29uZmlnCkBAIC03NTYsNyArNzU2LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9jb25maWd1cmUg Yi9nZGIvY29uZmlndXJlCiAgICBZQUNDICAgICAgICBUaGUgYFlldCBBbm90aGVyIENvbXBpbGVy IENvbXBpbGVyJyBpbXBsZW1lbnRhdGlvbiB0byB1c2UuCiAgICAgICAgICAgICAgICBEZWZhdWx0 cyB0byB0aGUgZmlyc3QgcHJvZ3JhbSBmb3VuZCBvdXQgb2Y6IGBiaXNvbiAteScsIGBieWFjYycs CiAgICAgICAgICAgICAgICBgeWFjYycuCi1AQCAtNjY2Niw2ICs2Njc4LDQ5NCBAQCBfQUNFT0YK K0BAIC02NjE2LDYgKzY2MjgsNDk0IEBAIF9BQ0VPRgogIHsgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkd2l0aF9hdXRvX2xvYWRfc2FmZV9wYXRoIiA+JjUK ICAkYXNfZWNobyAiJHdpdGhfYXV0b19sb2FkX3NhZmVfcGF0aCIgPiY2OyB9CiAgCkBAIC0xMjU0 LDcgKzEyNTQsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZ3VyZSBiL2dkYi9jb25maWd1cmUK IGRpZmYgLS1naXQgYS9nZGIvY29uZmlndXJlLmFjIGIvZ2RiL2NvbmZpZ3VyZS5hYwogLS0tIGEv Z2RiL2NvbmZpZ3VyZS5hYwogKysrIGIvZ2RiL2NvbmZpZ3VyZS5hYwotQEAgLTE0Myw2ICsxNDMs MTk5IEBAIEFDX0RFRklORV9ESVIoQVVUT19MT0FEX1NBRkVfUEFUSCwgZXNjYXBlX2RpciwKK0BA IC0xNTMsNiArMTUzLDE5OSBAQCBBQ19ERUZJTkVfRElSKEFVVE9fTE9BRF9TQUZFX1BBVEgsIGVz Y2FwZV9kaXIsCiAgCSAgICAgIFtEaXJlY3RvcmllcyBzYWZlIHRvIGhvbGQgYXV0by1sb2FkZWQg ZmlsZXMuXSkKICBBQ19NU0dfUkVTVUxUKFskd2l0aF9hdXRvX2xvYWRfc2FmZV9wYXRoXSkKICAK QEAgLTE0NTcsNyArMTQ1Nyw3IEBAIGRpZmYgLS1naXQgYS9nZGIvY29uZmlndXJlLmFjIGIvZ2Ri L2NvbmZpZ3VyZS5hYwogZGlmZiAtLWdpdCBhL2dkYi9ldmVudC10b3AuYyBiL2dkYi9ldmVudC10 b3AuYwogLS0tIGEvZ2RiL2V2ZW50LXRvcC5jCiArKysgYi9nZGIvZXZlbnQtdG9wLmMKLUBAIC00 Miw2ICs0Miw3IEBACitAQCAtNDEsNiArNDEsNyBAQAogICNpbmNsdWRlICJnZGJzdXBwb3J0L2dk Yl9zZWxlY3QuaCIKICAjaW5jbHVkZSAiZ2Ric3VwcG9ydC9nZGItc2lnbWFzay5oIgogICNpbmNs dWRlICJhc3luYy1ldmVudC5oIgpAQCAtMTQ2NSw3ICsxNDY1LDcgQEAgZGlmZiAtLWdpdCBhL2dk Yi9ldmVudC10b3AuYyBiL2dkYi9ldmVudC10b3AuYwogIAogIC8qIHJlYWRsaW5lIGluY2x1ZGUg ZmlsZXMuICAqLwogICNpbmNsdWRlICJyZWFkbGluZS9yZWFkbGluZS5oIgotQEAgLTM2NCw2ICsz NjUsOCBAQCBkaXNwbGF5X2dkYl9wcm9tcHQgKGNvbnN0IGNoYXIgKm5ld19wcm9tcHQpCitAQCAt MzYzLDYgKzM2NCw4IEBAIGRpc3BsYXlfZ2RiX3Byb21wdCAoY29uc3QgY2hhciAqbmV3X3Byb21w dCkKICAgIC8qIFJlc2V0IHRoZSBuZXN0aW5nIGRlcHRoIHVzZWQgd2hlbiB0cmFjZS1jb21tYW5k cyBpcyBzZXQuICAqLwogICAgcmVzZXRfY29tbWFuZF9uZXN0X2RlcHRoICgpOwogIApAQCAtMTQ4 OSwxMSArMTQ4OSwxMSBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2V2ZW50LXRvcC5jIGIvZ2RiL2V2ZW50 LXRvcC5jCiBkaWZmIC0tZ2l0IGEvZ2RiL3N5bWZpbGUuaCBiL2dkYi9zeW1maWxlLmgKIC0tLSBh L2dkYi9zeW1maWxlLmgKICsrKyBiL2dkYi9zeW1maWxlLmgKLUBAIC01NjAsNiArNTYwLDcgQEAg ZXh0ZXJuIHZvaWQgZ2VuZXJpY19sb2FkIChjb25zdCBjaGFyICphcmdzLCBpbnQgZnJvbV90dHkp OworQEAgLTM0Miw2ICszNDIsNyBAQCBleHRlcm4gdm9pZCBnZW5lcmljX2xvYWQgKGNvbnN0IGNo YXIgKmFyZ3MsIGludCBmcm9tX3R0eSk7CiAgLyogYnVpbGQtaWQgc3VwcG9ydC4gICovCiAgZXh0 ZXJuIHN0cnVjdCBiZmRfYnVpbGRfaWQgKmJ1aWxkX2lkX2FkZHJfZ2V0IChDT1JFX0FERFIgYWRk cik7CiAgZXh0ZXJuIHZvaWQgZGVidWdfcHJpbnRfbWlzc2luZyAoY29uc3QgY2hhciAqYmluYXJ5 LCBjb25zdCBjaGFyICpkZWJ1Zyk7CiArZXh0ZXJuIHZvaWQgZGVidWdfZmx1c2hfbWlzc2luZyAo dm9pZCk7CiAgI2RlZmluZSBCVUlMRF9JRF9NQUlOX0VYRUNVVEFCTEVfRklMRU5BTUUgXygidGhl IG1haW4gZXhlY3V0YWJsZSBmaWxlIikKICAKLSAvKiBGcm9tIGR3YXJmMnJlYWQuYyAqLworIC8q IEZyb20gbWluaWRlYnVnLmMuICAqLwoKZGlmZiAtLWdpdCBhL2dkYi02LjYtYnVpbGRpZC1sb2Nh dGUtc29saWItbWlzc2luZy1pZHMucGF0Y2ggYi9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXNvbGli LW1pc3NpbmctaWRzLnBhdGNoCmluZGV4IGYxZjVlODMuLjdkZDRmYjEgMTAwNjQ0Ci0tLSBhL2dk Yi02LjYtYnVpbGRpZC1sb2NhdGUtc29saWItbWlzc2luZy1pZHMucGF0Y2gKKysrIGIvZ2RiLTYu Ni1idWlsZGlkLWxvY2F0ZS1zb2xpYi1taXNzaW5nLWlkcy5wYXRjaApAQCAtMTQsNyArMTQsNyBA QCBodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTEzMzk4NjIKIGRp ZmYgLS1naXQgYS9nZGIvc29saWItc3ZyNC5jIGIvZ2RiL3NvbGliLXN2cjQuYwogLS0tIGEvZ2Ri L3NvbGliLXN2cjQuYwogKysrIGIvZ2RiL3NvbGliLXN2cjQuYwotQEAgLTEzNDAsMTQgKzEzNDAs MjcgQEAgc3ZyNF9yZWFkX3NvX2xpc3QgKHN2cjRfaW5mbyAqaW5mbywgQ09SRV9BRERSIGxtLCBD T1JFX0FERFIgcHJldl9sbSwKK0BAIC0xMzUwLDE0ICsxMzUwLDI4IEBAIHN2cjRfcmVhZF9zb19s aXN0IChzdnI0X2luZm8gKmluZm8sIENPUkVfQUREUiBsbSwgQ09SRV9BRERSIHByZXZfbG0sCiAg CX0KICAKICAgICAgICB7CkBAIC0zOCwxMyArMzgsMTQgQEAgZGlmZiAtLWdpdCBhL2dkYi9zb2xp Yi1zdnI0LmMgYi9nZGIvc29saWItc3ZyNC5jCiArCSAgIG5vdCBkbyBhbnkgYnVpbGQtaWQgY2hl Y2tpbmcgb2YgdGhlIGxpYnJhcmllcy4gIFRoZXJlIG1heSBiZSBtaXNzaW5nCiArCSAgIGJ1aWxk LWlkcyBkdW1wZWQgaW4gdGhlIGNvcmUgZmlsZSBhbmQgd2Ugd291bGQgbWFwIGFsbCB0aGUgbGli cmFyaWVzCiArCSAgIHRvIHRoZSBvbmx5IGV4aXN0aW5nIGZpbGUgbG9hZGVkIHRoYXQgdGltZSAt IHRoZSBleGVjdXRhYmxlLiAgKi8KLSsJaWYgKHN5bWZpbGVfb2JqZmlsZSAhPSBOVUxMCi0rCSAg ICAmJiAoc3ltZmlsZV9vYmpmaWxlLT5mbGFncyAmIE9CSkZfQlVJTERfSURfQ09SRV9MT0FERUQp ICE9IDApCisrCWlmIChjdXJyZW50X3Byb2dyYW1fc3BhY2UtPnN5bWZpbGVfb2JqZWN0X2ZpbGUg IT0gTlVMTAorKwkgICAgJiYgKGN1cnJlbnRfcHJvZ3JhbV9zcGFjZS0+c3ltZmlsZV9vYmplY3Rf ZmlsZS0+ZmxhZ3MKKysJICAgICAgICAgJiBPQkpGX0JVSUxEX0lEX0NPUkVfTE9BREVEKSAhPSAw KQogKwkgIGJ1aWxkX2lkID0gYnVpbGRfaWRfYWRkcl9nZXQgKGxpLT5sX2xkKTsKICAJaWYgKGJ1 aWxkX2lkICE9IE5VTEwpCiAgCSAgewogIAkgICAgY2hhciAqbmFtZSwgKmJ1aWxkX2lkX2ZpbGVu YW1lOwotQEAgLTEzNjIsMjMgKzEzNzUsNyBAQCBzdnI0X3JlYWRfc29fbGlzdCAoc3ZyNF9pbmZv ICppbmZvLCBDT1JFX0FERFIgbG0sIENPUkVfQUREUiBwcmV2X2xtLAorQEAgLTEzNzIsMjMgKzEz ODYsNyBAQCBzdnI0X3JlYWRfc29fbGlzdCAoc3ZyNF9pbmZvICppbmZvLCBDT1JFX0FERFIgbG0s IENPUkVfQUREUiBwcmV2X2xtLAogIAkJeGZyZWUgKG5hbWUpOwogIAkgICAgICB9CiAgCSAgICBl bHNlCkBAIC02MCw4ICs2MSw4IEBAIGRpZmYgLS1naXQgYS9nZGIvc29saWItc3ZyNC5jIGIvZ2Ri L3NvbGliLXN2cjQuYwogLQkJICAgaW5zdGVhZCkgaWYgdGhlIG9uLWRpc2sgZmlsZXMgbm8gbG9u Z2VyIG1hdGNoIHRoZQogLQkJICAgcnVubmluZyBwcm9ncmFtIHZlcnNpb24uICAqLwogLQotLQkJ aWYgKHN5bWZpbGVfb2JqZmlsZSAhPSBOVUxMCi0tCQkgICAgJiYgKHN5bWZpbGVfb2JqZmlsZS0+ ZmxhZ3MKKy0JCWlmIChjdXJyZW50X3Byb2dyYW1fc3BhY2UtPnN5bWZpbGVfb2JqZWN0X2ZpbGUg IT0gTlVMTAorLQkJICAgICYmIChjdXJyZW50X3Byb2dyYW1fc3BhY2UtPnN5bWZpbGVfb2JqZWN0 X2ZpbGUtPmZsYWdzCiAtCQkJJiBPQkpGX0JVSUxEX0lEX0NPUkVfTE9BREVEKSAhPSAwKQogLQkJ ICBuZXdvYmotPnNvX25hbWVbMF0gPSAwOwogLQkgICAgICB9CgpkaWZmIC0tZ2l0IGEvZ2RiLTYu Ni1idWlsZGlkLWxvY2F0ZS5wYXRjaCBiL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUucGF0Y2gKaW5k ZXggZjYwNjc5My4uZTllZTM0MiAxMDA2NDQKLS0tIGEvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS5w YXRjaAorKysgYi9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLnBhdGNoCkBAIC05LDcgKzksNyBAQCBT dWJqZWN0OiBnZGItNi42LWJ1aWxkaWQtbG9jYXRlLnBhdGNoCiBkaWZmIC0tZ2l0IGEvYmZkL2xp YmJmZC1pbi5oIGIvYmZkL2xpYmJmZC1pbi5oCiAtLS0gYS9iZmQvbGliYmZkLWluLmgKICsrKyBi L2JmZC9saWJiZmQtaW4uaAotQEAgLTEyMSw3ICsxMjEsNyBAQCBzdGF0aWMgaW5saW5lIGNoYXIg KgorQEAgLTExNSw3ICsxMTUsNyBAQCBzdGF0aWMgaW5saW5lIGNoYXIgKgogIGJmZF9zdHJkdXAg KGNvbnN0IGNoYXIgKnN0cikKICB7CiAgICBzaXplX3QgbGVuID0gc3RybGVuIChzdHIpICsgMTsK QEAgLTIxLDcgKzIxLDcgQEAgZGlmZiAtLWdpdCBhL2JmZC9saWJiZmQtaW4uaCBiL2JmZC9saWJi ZmQtaW4uaAogZGlmZiAtLWdpdCBhL2JmZC9saWJiZmQuaCBiL2JmZC9saWJiZmQuaAogLS0tIGEv YmZkL2xpYmJmZC5oCiArKysgYi9iZmQvbGliYmZkLmgKLUBAIC0xMjYsNyArMTI2LDcgQEAgc3Rh dGljIGlubGluZSBjaGFyICoKK0BAIC0xMjAsNyArMTIwLDcgQEAgc3RhdGljIGlubGluZSBjaGFy ICoKICBiZmRfc3RyZHVwIChjb25zdCBjaGFyICpzdHIpCiAgewogICAgc2l6ZV90IGxlbiA9IHN0 cmxlbiAoc3RyKSArIDE7CkBAIC04OTAsNyArODkwLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9idWls ZC1pZC5jIGIvZ2RiL2J1aWxkLWlkLmMKICsgICAgICBjaGFyICpidWlsZF9pZF9maWxlbmFtZV9j c3RyID0gTlVMTDsKICAgICAgICBnZGJfYmZkX3JlZl9wdHIgYWJmZCAoYnVpbGRfaWRfdG9fZGVi dWdfYmZkIChidWlsZF9pZC0+c2l6ZSwKIC0JCQkJCQkgICBidWlsZF9pZC0+ZGF0YSkpOwotKwkJ CQkJCSAgICBidWlsZF9pZC0+ZGF0YSwKKysJCQkJCQkgICBidWlsZF9pZC0+ZGF0YSwKICsJICAg ICAgKCFidWlsZF9pZF9maWxlbmFtZV9yZXR1cm4gPyBOVUxMIDogJmJ1aWxkX2lkX2ZpbGVuYW1l X2NzdHIpKSk7CiArICAgICAgaWYgKGJ1aWxkX2lkX2ZpbGVuYW1lX3JldHVybikKICsJewpAQCAt OTA2LDE1ICs5MDYsMTUgQEAgZGlmZiAtLWdpdCBhL2dkYi9idWlsZC1pZC5jIGIvZ2RiL2J1aWxk LWlkLmMKICAgICAgICAvKiBQcmV2ZW50IGxvb3Bpbmcgb24gYSBzdHJpcHBlZCAuZGVidWcgZmls ZS4gICovCiAgICAgICAgaWYgKGFiZmQgIT0gTlVMTAogIAkgICYmIGZpbGVuYW1lX2NtcCAoYmZk X2dldF9maWxlbmFtZSAoYWJmZC5nZXQgKCkpLAotQEAgLTIyMywzICs4OTcsMjEgQEAgZmluZF9z ZXBhcmF0ZV9kZWJ1Z19maWxlX2J5X2J1aWxkaWQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQor QEAgLTIyMywzICs4OTcsMjIgQEAgZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlX2J5X2J1aWxkaWQg KHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQogIAogICAgcmV0dXJuIHN0ZDo6c3RyaW5nICgpOwog IH0KICsKLStleHRlcm4gdm9pZCBfaW5pdGlhbGl6ZV9idWlsZF9pZCAodm9pZCk7Cisrdm9pZCBf aW5pdGlhbGl6ZV9idWlsZF9pZCAoKTsKICsKICt2b2lkCi0rX2luaXRpYWxpemVfYnVpbGRfaWQg KHZvaWQpCisrX2luaXRpYWxpemVfYnVpbGRfaWQgKCkKICt7CiArICBhZGRfc2V0c2hvd196aW50 ZWdlcl9jbWQgKCJidWlsZC1pZC12ZXJib3NlIiwgbm9fY2xhc3MsICZidWlsZF9pZF92ZXJib3Nl LAogKwkJCSAgICBfKCJcCkBAIC05MjYsNyArOTI2LDggQEAgZGlmZiAtLWdpdCBhL2dkYi9idWls ZC1pZC5jIGIvZ2RiL2J1aWxkLWlkLmMKICsJCQkgICAgc2hvd19idWlsZF9pZF92ZXJib3NlLAog KwkJCSAgICAmc2V0bGlzdCwgJnNob3dsaXN0KTsKICsKLSsgIGdkYjo6b2JzZXJ2ZXJzOjpleGVj dXRhYmxlX2NoYW5nZWQuYXR0YWNoIChkZWJ1Z19wcmludF9leGVjdXRhYmxlX2NoYW5nZWQpOwor KyAgZ2RiOjpvYnNlcnZlcnM6OmV4ZWN1dGFibGVfY2hhbmdlZC5hdHRhY2ggKGRlYnVnX3ByaW50 X2V4ZWN1dGFibGVfY2hhbmdlZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiYnVpbGQtaWQiKTsKICt9CiBkaWZmIC0tZ2l0IGEvZ2RiL2J1aWxkLWlkLmgg Yi9nZGIvYnVpbGQtaWQuaAogLS0tIGEvZ2RiL2J1aWxkLWlkLmgKQEAgLTk1MCw3ICs5NTEsNyBA QCBkaWZmIC0tZ2l0IGEvZ2RiL2J1aWxkLWlkLmggYi9nZGIvYnVpbGQtaWQuaAogIGV4dGVybiBn ZGJfYmZkX3JlZl9wdHIgYnVpbGRfaWRfdG9fZGVidWdfYmZkIChzaXplX3QgYnVpbGRfaWRfbGVu LAogLQkJCQkJICAgICAgY29uc3QgYmZkX2J5dGUgKmJ1aWxkX2lkKTsKICsJCQkJCSAgICAgIGNv bnN0IGJmZF9ieXRlICpidWlsZF9pZCwKLSsJCQkJCSAgICAgIGNoYXIgKipsaW5rX3JldHVybik7 CisrCQkJCQkgICAgICBjaGFyICoqbGlua19yZXR1cm4gPSBOVUxMKTsKICsKICtleHRlcm4gY2hh ciAqYnVpbGRfaWRfdG9fZmlsZW5hbWUgKGNvbnN0IHN0cnVjdCBiZmRfYnVpbGRfaWQgKmJ1aWxk X2lkLAogKwkJCQkgICBjaGFyICoqbGlua19yZXR1cm4pOwpAQCAtOTc4LDkgKzk3OSw5IEBAIGRp ZmYgLS1naXQgYS9nZGIvYnVpbGQtaWQuaCBiL2dkYi9idWlsZC1pZC5oCiBkaWZmIC0tZ2l0IGEv Z2RiL2NvZmZyZWFkLmMgYi9nZGIvY29mZnJlYWQuYwogLS0tIGEvZ2RiL2NvZmZyZWFkLmMKICsr KyBiL2dkYi9jb2ZmcmVhZC5jCi1AQCAtNzA5LDcgKzcwOSw4IEBAIGNvZmZfc3ltZmlsZV9yZWFk IChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgc3ltZmlsZV9hZGRfZmxhZ3Mgc3ltZmlsZV9mbGFn cykKK0BAIC03MTAsNyArNzEwLDggQEAgY29mZl9zeW1maWxlX3JlYWQgKHN0cnVjdCBvYmpmaWxl ICpvYmpmaWxlLCBzeW1maWxlX2FkZF9mbGFncyBzeW1maWxlX2ZsYWdzKQogICAgLyogVHJ5IHRv IGFkZCBzZXBhcmF0ZSBkZWJ1ZyBmaWxlIGlmIG5vIHN5bWJvbHMgdGFibGUgZm91bmQuICAgKi8K LSAgIGlmICghb2JqZmlsZV9oYXNfcGFydGlhbF9zeW1ib2xzIChvYmpmaWxlKSkKKyAgIGlmICgh b2JqZmlsZS0+aGFzX3BhcnRpYWxfc3ltYm9scyAoKSkKICAgICAgewogLSAgICAgIHN0ZDo6c3Ry aW5nIGRlYnVnZmlsZSA9IGZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZV9ieV9idWlsZGlkIChvYmpm aWxlKTsKICsgICAgICBzdGQ6OnN0cmluZyBkZWJ1Z2ZpbGUgPSBmaW5kX3NlcGFyYXRlX2RlYnVn X2ZpbGVfYnlfYnVpbGRpZCAob2JqZmlsZSwKQEAgLTEwMDIsNyArMTAwMyw3IEBAIGRpZmYgLS1n aXQgYS9nZGIvY29yZWxvdy5jIGIvZ2RiL2NvcmVsb3cuYwogICNpbmNsdWRlICJpbmZlcmlvci5o IgogICNpbmNsdWRlICJpbmZydW4uaCIKICAjaW5jbHVkZSAic3ltdGFiLmgiCi1AQCAtMzYyLDYg KzM2Niw4IEBAIGFkZF90b190aHJlYWRfbGlzdCAoYmZkICphYmZkLCBhc2VjdGlvbiAqYXNlY3Qs IHZvaWQgKnJlZ19zZWN0X2FyZykKK0BAIC0zNTYsNiArMzYwLDggQEAgYWRkX3RvX3RocmVhZF9s aXN0IChhc2VjdGlvbiAqYXNlY3QsIGFzZWN0aW9uICpyZWdfc2VjdCkKICAgICAgc3dpdGNoX3Rv X3RocmVhZCAodGhyKTsJCQkvKiBZZXMsIG1ha2UgaXQgY3VycmVudC4gICovCiAgfQogIApAQCAt MTAxMSw3ICsxMDEyLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9jb3JlbG93LmMgYi9nZGIvY29yZWxv dy5jCiAgLyogSXNzdWUgYSBtZXNzYWdlIHNheWluZyB3ZSBoYXZlIG5vIGNvcmUgdG8gZGVidWcs IGlmIEZST01fVFRZLiAgKi8KICAKICBzdGF0aWMgdm9pZAotQEAgLTM5OCwxOSArNDA0LDI1IEBA IGNvcmVfZmlsZV9jb21tYW5kIChjb25zdCBjaGFyICpmaWxlbmFtZSwgaW50IGZyb21fdHR5KQor QEAgLTM5MiwxOSArMzk4LDI2IEBAIGNvcmVfZmlsZV9jb21tYW5kIChjb25zdCBjaGFyICpmaWxl bmFtZSwgaW50IGZyb21fdHR5KQogIHN0YXRpYyB2b2lkCiAgbG9jYXRlX2V4ZWNfZnJvbV9jb3Jl ZmlsZV9idWlsZF9pZCAoYmZkICphYmZkLCBpbnQgZnJvbV90dHkpCiAgewpAQCAtMTAzMSwxNiAr MTAzMiwxNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2NvcmVsb3cuYyBiL2dkYi9jb3JlbG93LmMKICAg ICAgICBleGVjX2ZpbGVfYXR0YWNoIChiZmRfZ2V0X2ZpbGVuYW1lIChleGVjYmZkLmdldCAoKSks IGZyb21fdHR5KTsKICAgICAgICBzeW1ib2xfZmlsZV9hZGRfbWFpbiAoYmZkX2dldF9maWxlbmFt ZSAoZXhlY2JmZC5nZXQgKCkpLAogIAkJCSAgICBzeW1maWxlX2FkZF9mbGFnIChmcm9tX3R0eSA/ IFNZTUZJTEVfVkVSQk9TRSA6IDApKTsKLSsgICAgICBpZiAoc3ltZmlsZV9vYmpmaWxlICE9IE5V TEwpCi0rCXN5bWZpbGVfb2JqZmlsZS0+ZmxhZ3MgfD0gT0JKRl9CVUlMRF9JRF9DT1JFX0xPQURF RDsKKysgICAgICBpZiAoY3VycmVudF9wcm9ncmFtX3NwYWNlLT5zeW1maWxlX29iamVjdF9maWxl ICE9IE5VTEwpCisrCWN1cnJlbnRfcHJvZ3JhbV9zcGFjZS0+c3ltZmlsZV9vYmplY3RfZmlsZS0+ ZmxhZ3MgfD0KKysJICBPQkpGX0JVSUxEX0lEX0NPUkVfTE9BREVEOwogICAgICB9CiArICBlbHNl CiArICAgIGRlYnVnX3ByaW50X21pc3NpbmcgKEJVSUxEX0lEX01BSU5fRVhFQ1VUQUJMRV9GSUxF TkFNRSwgYnVpbGRfaWRfZmlsZW5hbWUpOwogIH0KICAKICAvKiBTZWUgZ2RiY29yZS5oLiAgKi8K LUBAIC0xMTg5LDQgKzEyMDEsMTEgQEAgX2luaXRpYWxpemVfY29yZWxvdyAoKQotICAgICAgICAg ICAgbWFpbnRlbmFuY2VfcHJpbnRfY29yZV9maWxlX2JhY2tlZF9tYXBwaW5ncywKK0BAIC0xMjA5 LDQgKzEyMjIsMTEgQEAgX2luaXRpYWxpemVfY29yZWxvdyAoKQorIAkgICBtYWludGVuYW5jZV9w cmludF9jb3JlX2ZpbGVfYmFja2VkX21hcHBpbmdzLAogIAkgICBfKCJQcmludCBjb3JlIGZpbGUn cyBmaWxlLWJhY2tlZCBtYXBwaW5ncy4iKSwKICAJICAgJm1haW50ZW5hbmNlcHJpbnRsaXN0KTsK ICsKQEAgLTEwNTQsNyArMTA1Niw3IEBAIGRpZmYgLS1naXQgYS9nZGIvY29yZWxvdy5jIGIvZ2Ri L2NvcmVsb3cuYwogZGlmZiAtLWdpdCBhL2dkYi9kb2MvZ2RiLnRleGluZm8gYi9nZGIvZG9jL2dk Yi50ZXhpbmZvCiAtLS0gYS9nZGIvZG9jL2dkYi50ZXhpbmZvCiArKysgYi9nZGIvZG9jL2dkYi50 ZXhpbmZvCi1AQCAtMjEwNzQsNiArMjEwNzQsMjcgQEAgaW5mb3JtYXRpb24gZmlsZXMuCitAQCAt MjE0MTUsNiArMjE0MTUsMjcgQEAgaW5mb3JtYXRpb24gZmlsZXMuCiAgCiAgQGVuZCB0YWJsZQog IApAQCAtMTEwNywxNiArMTEwOSw3IEBAIGRpZmYgLS1naXQgYS9nZGIvZHdhcmYyL2luZGV4LWNh Y2hlLmMgYi9nZGIvZHdhcmYyL2luZGV4LWNhY2hlLmMKIGRpZmYgLS1naXQgYS9nZGIvZHdhcmYy L3JlYWQuYyBiL2dkYi9kd2FyZjIvcmVhZC5jCiAtLS0gYS9nZGIvZHdhcmYyL3JlYWQuYwogKysr IGIvZ2RiL2R3YXJmMi9yZWFkLmMKLUBAIC0yMjI1LDcgKzIyMjUsNyBAQCBkd2FyZjJfZ2V0X2R3 el9maWxlIChkd2FyZjJfcGVyX2JmZCAqcGVyX2JmZCkKLSAgICAgfQotIAotICAgaWYgKGR3el9i ZmQgPT0gTlVMTCkKLS0gICAgZHd6X2JmZCA9IGJ1aWxkX2lkX3RvX2RlYnVnX2JmZCAoYnVpbGRp ZF9sZW4sIGJ1aWxkaWQpOwotKyAgICBkd3pfYmZkID0gYnVpbGRfaWRfdG9fZGVidWdfYmZkIChi dWlsZGlkX2xlbiwgYnVpbGRpZCwgTlVMTCk7Ci0gCi0gICBpZiAoZHd6X2JmZCA9PSBudWxscHRy KQotICAgICB7Ci1AQCAtNTk4OSw3ICs1OTg5LDcgQEAgZ2V0X2dkYl9pbmRleF9jb250ZW50c19m cm9tX3NlY3Rpb24gKG9iamZpbGUgKm9iaiwgVCAqc2VjdGlvbl9vd25lcikKK0BAIC01NDQ3LDcg KzU0NDcsNyBAQCBnZXRfZ2RiX2luZGV4X2NvbnRlbnRzX2Zyb21fc2VjdGlvbiAob2JqZmlsZSAq b2JqLCBUICpzZWN0aW9uX293bmVyKQogIHN0YXRpYyBnZGI6OmFycmF5X3ZpZXc8Y29uc3QgZ2Ri X2J5dGU+CiAgZ2V0X2dkYl9pbmRleF9jb250ZW50c19mcm9tX2NhY2hlIChvYmpmaWxlICpvYmos IGR3YXJmMl9wZXJfYmZkICpkd2FyZjJfcGVyX2JmZCkKICB7CkBAIC0xMTI1LDcgKzExMTgsNyBA QCBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMi9yZWFkLmMgYi9nZGIvZHdhcmYyL3JlYWQuYwogICAg aWYgKGJ1aWxkX2lkID09IG51bGxwdHIpCiAgICAgIHJldHVybiB7fTsKICAKLUBAIC02MDAyLDcg KzYwMDIsNyBAQCBnZXRfZ2RiX2luZGV4X2NvbnRlbnRzX2Zyb21fY2FjaGUgKG9iamZpbGUgKm9i aiwgZHdhcmYyX3Blcl9iZmQgKmR3YXJmMl9wZXJfYmZkKQorQEAgLTU0NjAsNyArNTQ2MCw3IEBA IGdldF9nZGJfaW5kZXhfY29udGVudHNfZnJvbV9jYWNoZSAob2JqZmlsZSAqb2JqLCBkd2FyZjJf cGVyX2JmZCAqZHdhcmYyX3Blcl9iZmQpCiAgc3RhdGljIGdkYjo6YXJyYXlfdmlldzxjb25zdCBn ZGJfYnl0ZT4KICBnZXRfZ2RiX2luZGV4X2NvbnRlbnRzX2Zyb21fY2FjaGVfZHd6IChvYmpmaWxl ICpvYmosIGR3el9maWxlICpkd3opCiAgewpAQCAtMTEzNyw3ICsxMTMwLDcgQEAgZGlmZiAtLWdp dCBhL2dkYi9kd2FyZjIvcmVhZC5jIGIvZ2RiL2R3YXJmMi9yZWFkLmMKIGRpZmYgLS1naXQgYS9n ZGIvZWxmcmVhZC5jIGIvZ2RiL2VsZnJlYWQuYwogLS0tIGEvZ2RiL2VsZnJlYWQuYwogKysrIGIv Z2RiL2VsZnJlYWQuYwotQEAgLTEyOTgsNyArMTI5OCw5IEBAIGVsZl9zeW1maWxlX3JlYWQgKHN0 cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBzeW1maWxlX2FkZF9mbGFncyBzeW1maWxlX2ZsYWdzKQor QEAgLTEyNzIsNyArMTI3Miw5IEBAIGVsZl9zeW1maWxlX3JlYWQgKHN0cnVjdCBvYmpmaWxlICpv YmpmaWxlLCBzeW1maWxlX2FkZF9mbGFncyBzeW1maWxlX2ZsYWdzKQogIAkgICAmJiBvYmpmaWxl LT5zZXBhcmF0ZV9kZWJ1Z19vYmpmaWxlID09IE5VTEwKICAJICAgJiYgb2JqZmlsZS0+c2VwYXJh dGVfZGVidWdfb2JqZmlsZV9iYWNrbGluayA9PSBOVUxMKQogICAgICB7CkBAIC0xMTQ4LDcgKzEx NDEsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2VsZnJlYWQuYyBiL2dkYi9lbGZyZWFkLmMKICAKICAg ICAgICBpZiAoZGVidWdmaWxlLmVtcHR5ICgpKQogIAlkZWJ1Z2ZpbGUgPSBmaW5kX3NlcGFyYXRl X2RlYnVnX2ZpbGVfYnlfZGVidWdsaW5rIChvYmpmaWxlKTsKLUBAIC0xMzEzLDcgKzEzMTUsNyBA QCBlbGZfc3ltZmlsZV9yZWFkIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgc3ltZmlsZV9hZGRf ZmxhZ3Mgc3ltZmlsZV9mbGFncykKK0BAIC0xMjg3LDcgKzEyODksNyBAQCBlbGZfc3ltZmlsZV9y ZWFkIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgc3ltZmlsZV9hZGRfZmxhZ3Mgc3ltZmlsZV9m bGFncykKICAgICAgICBlbHNlCiAgCXsKICAJICBoYXNfZHdhcmYyID0gZmFsc2U7CkBAIC0xMTU3 LDcgKzExNTAsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2VsZnJlYWQuYyBiL2dkYi9lbGZyZWFkLmMK ICAKICAJICBpZiAoYnVpbGRfaWQgIT0gbnVsbHB0cikKICAJICAgIHsKLUBAIC0xMzM4LDYgKzEz NDAsMTAgQEAgZWxmX3N5bWZpbGVfcmVhZCAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIHN5bWZp bGVfYWRkX2ZsYWdzIHN5bWZpbGVfZmxhZ3MpCitAQCAtMTMxMiw2ICsxMzE0LDEwIEBAIGVsZl9z eW1maWxlX3JlYWQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBzeW1maWxlX2FkZF9mbGFncyBz eW1maWxlX2ZsYWdzKQogIAkJICAgICAgaGFzX2R3YXJmMiA9IHRydWU7CiAgCQkgICAgfQogIAkJ fQpAQCAtMTE3MSwxNiArMTE2NCwxNiBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2VsZnJlYWQuYyBiL2dk Yi9lbGZyZWFkLmMKIGRpZmYgLS1naXQgYS9nZGIvZXhlYy5jIGIvZ2RiL2V4ZWMuYwogLS0tIGEv Z2RiL2V4ZWMuYwogKysrIGIvZ2RiL2V4ZWMuYwotQEAgLTI2NCw3ICsyNjQsNyBAQCB2YWxpZGF0 ZV9leGVjX2ZpbGUgKGludCBmcm9tX3R0eSkKLSAgIHJlb3Blbl9leGVjX2ZpbGUgKCk7CitAQCAt MjM3LDcgKzIzNyw3IEBAIHZhbGlkYXRlX2V4ZWNfZmlsZSAoaW50IGZyb21fdHR5KQogICAgY3Vy cmVudF9leGVjX2ZpbGUgPSBnZXRfZXhlY19maWxlICgwKTsKICAKLS0gIGNvbnN0IGJmZF9idWls ZF9pZCAqZXhlY19maWxlX2J1aWxkX2lkID0gYnVpbGRfaWRfYmZkX2dldCAoZXhlY19iZmQpOwot KyAgY29uc3QgYmZkX2J1aWxkX2lkICpleGVjX2ZpbGVfYnVpbGRfaWQgPSBidWlsZF9pZF9iZmRf c2hkcl9nZXQgKGV4ZWNfYmZkKTsKKyAgIGNvbnN0IGJmZF9idWlsZF9pZCAqZXhlY19maWxlX2J1 aWxkX2lkCistICAgID0gYnVpbGRfaWRfYmZkX2dldCAoY3VycmVudF9wcm9ncmFtX3NwYWNlLT5l eGVjX2JmZCAoKSk7CisrICAgID0gYnVpbGRfaWRfYmZkX3NoZHJfZ2V0IChjdXJyZW50X3Byb2dy YW1fc3BhY2UtPmV4ZWNfYmZkICgpKTsKICAgIGlmIChleGVjX2ZpbGVfYnVpbGRfaWQgIT0gbnVs bHB0cikKICAgICAgewogICAgICAgIC8qIFByZXBlbmQgdGhlIHRhcmdldCBwcmVmaXgsIHRvIGZv cmNlIGdkYl9iZmRfb3BlbiB0byBvcGVuIHRoZQotQEAgLTI3Nyw3ICsyNzcsNyBAQCB2YWxpZGF0 ZV9leGVjX2ZpbGUgKGludCBmcm9tX3R0eSkKK0BAIC0yNTAsNyArMjUwLDcgQEAgdmFsaWRhdGVf ZXhlY19maWxlIChpbnQgZnJvbV90dHkpCiAgICAgICAgaWYgKGFiZmQgIT0gbnVsbHB0cikKICAJ ewogIAkgIGNvbnN0IGJmZF9idWlsZF9pZCAqdGFyZ2V0X2V4ZWNfZmlsZV9idWlsZF9pZApAQCAt MTE5Miw3ICsxMTg1LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9leGVjLmMgYi9nZGIvZXhlYy5jCiBk aWZmIC0tZ2l0IGEvZ2RiL29iamZpbGVzLmggYi9nZGIvb2JqZmlsZXMuaAogLS0tIGEvZ2RiL29i amZpbGVzLmgKICsrKyBiL2dkYi9vYmpmaWxlcy5oCi1AQCAtNzE0LDYgKzcxNCwxMCBAQCBzdHJ1 Y3Qgb2JqZmlsZQorQEAgLTgxMiw2ICs4MTIsMTAgQEAgc3RydWN0IG9iamZpbGUKICAgIGJvb2wg c2tpcF9qaXRfc3ltYm9sX2xvb2t1cCA9IGZhbHNlOwogIH07CiAgCkBAIC0xMjM1LDcgKzEyMjgs NyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3NvbGliLXN2cjQuYyBiL2dkYi9zb2xpYi1zdnI0LmMKICAK ICBzdGF0aWMgc3RydWN0IGxpbmtfbWFwX29mZnNldHMgKnN2cjRfZmV0Y2hfbGlua19tYXBfb2Zm c2V0cyAodm9pZCk7CiAgc3RhdGljIGludCBzdnI0X2hhdmVfbGlua19tYXBfb2Zmc2V0cyAodm9p ZCk7Ci1AQCAtMTMzOCw5ICsxMzM5LDUxIEBAIHN2cjRfcmVhZF9zb19saXN0IChzdnI0X2luZm8g KmluZm8sIENPUkVfQUREUiBsbSwgQ09SRV9BRERSIHByZXZfbG0sCitAQCAtMTM0OCw5ICsxMzQ5 LDUxIEBAIHN2cjRfcmVhZF9zb19saXN0IChzdnI0X2luZm8gKmluZm8sIENPUkVfQUREUiBsbSwg Q09SRV9BRERSIHByZXZfbG0sCiAgCSAgY29udGludWU7CiAgCX0KICAKQEAgLTEyNzcsOCArMTI3 MCw4IEBAIGRpZmYgLS1naXQgYS9nZGIvc29saWItc3ZyNC5jIGIvZ2RiL3NvbGliLXN2cjQuYwog KwkJICAgaW5zdGVhZCkgaWYgdGhlIG9uLWRpc2sgZmlsZXMgbm8gbG9uZ2VyIG1hdGNoIHRoZQog KwkJICAgcnVubmluZyBwcm9ncmFtIHZlcnNpb24uICAqLwogKwotKwkJaWYgKHN5bWZpbGVfb2Jq ZmlsZSAhPSBOVUxMCi0rCQkgICAgJiYgKHN5bWZpbGVfb2JqZmlsZS0+ZmxhZ3MKKysJCWlmIChj dXJyZW50X3Byb2dyYW1fc3BhY2UtPnN5bWZpbGVfb2JqZWN0X2ZpbGUgIT0gTlVMTAorKwkJICAg ICYmIChjdXJyZW50X3Byb2dyYW1fc3BhY2UtPnN5bWZpbGVfb2JqZWN0X2ZpbGUtPmZsYWdzCiAr CQkJJiBPQkpGX0JVSUxEX0lEX0NPUkVfTE9BREVEKSAhPSAwKQogKwkJICBuZXdvYmotPnNvX25h bWVbMF0gPSAwOwogKwkgICAgICB9CkBAIC0xMjkzLDcgKzEyODYsNyBAQCBkaWZmIC0tZ2l0IGEv Z2RiL3NvbGliLXN2cjQuYyBiL2dkYi9zb2xpYi1zdnI0LmMKIGRpZmYgLS1naXQgYS9nZGIvc291 cmNlLmMgYi9nZGIvc291cmNlLmMKIC0tLSBhL2dkYi9zb3VyY2UuYwogKysrIGIvZ2RiL3NvdXJj ZS5jCi1AQCAtMTE2NSw3ICsxMTY1LDcgQEAgb3Blbl9zb3VyY2VfZmlsZSAoc3RydWN0IHN5bXRh YiAqcykKK0BAIC0xMTc4LDcgKzExNzgsNyBAQCBvcGVuX3NvdXJjZV9maWxlIChzdHJ1Y3Qgc3lt dGFiICpzKQogIAkgICAgICBzcmNwYXRoICs9IHMtPmZpbGVuYW1lOwogIAkgICAgfQogIApAQCAt MTMwNSw5ICsxMjk4LDkgQEAgZGlmZiAtLWdpdCBhL2dkYi9zb3VyY2UuYyBiL2dkYi9zb3VyY2Uu YwogZGlmZiAtLWdpdCBhL2dkYi9zeW1maWxlLmggYi9nZGIvc3ltZmlsZS5oCiAtLS0gYS9nZGIv c3ltZmlsZS5oCiArKysgYi9nZGIvc3ltZmlsZS5oCi1AQCAtNTUwLDEyICs1NTAsMTggQEAgdm9p ZCBleHBhbmRfc3ltdGFic19tYXRjaGluZwotIHZvaWQgbWFwX3N5bWJvbF9maWxlbmFtZXMgKHN5 bWJvbF9maWxlbmFtZV9mdHlwZSAqZnVuLCB2b2lkICpkYXRhLAotIAkJCSAgIGludCBuZWVkX2Z1 bGxuYW1lKTsKK0BAIC0zMzIsMTIgKzMzMiwxOCBAQCBib29sIGV4cGFuZF9zeW10YWJzX21hdGNo aW5nCisgdm9pZCBtYXBfc3ltYm9sX2ZpbGVuYW1lcyAoZ2RiOjpmdW5jdGlvbl92aWV3PHN5bWJv bF9maWxlbmFtZV9mdHlwZT4gZnVuLAorIAkJCSAgIGJvb2wgbmVlZF9mdWxsbmFtZSk7CiAgCiAr CiAgLyogVGFyZ2V0LWFnbm9zdGljIGZ1bmN0aW9uIHRvIGxvYWQgdGhlIHNlY3Rpb25zIG9mIGFu IGV4ZWN1dGFibGUgaW50byBtZW1vcnkuCkBAIC0xMzIxLDkgKzEzMTQsOSBAQCBkaWZmIC0tZ2l0 IGEvZ2RiL3N5bWZpbGUuaCBiL2dkYi9zeW1maWxlLmgKICtleHRlcm4gdm9pZCBkZWJ1Z19wcmlu dF9taXNzaW5nIChjb25zdCBjaGFyICpiaW5hcnksIGNvbnN0IGNoYXIgKmRlYnVnKTsKICsjZGVm aW5lIEJVSUxEX0lEX01BSU5fRVhFQ1VUQUJMRV9GSUxFTkFNRSBfKCJ0aGUgbWFpbiBleGVjdXRh YmxlIGZpbGUiKQogKwotIC8qIEZyb20gZHdhcmYycmVhZC5jICovCisgLyogRnJvbSBtaW5pZGVi dWcuYy4gICovCiAgCi0gLyogTmFtZXMgZm9yIGEgZHdhcmYyIGRlYnVnZ2luZyBzZWN0aW9uLiAg VGhlIGZpZWxkIE5PUk1BTCBpcyB0aGUgbm9ybWFsCisgZXh0ZXJuIGdkYl9iZmRfcmVmX3B0ciBm aW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGVfaW5fc2VjdGlvbiAoc3RydWN0IG9iamZpbGUgKik7CiBk aWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb3JlZmlsZS5leHAgYi9nZGIvdGVz dHN1aXRlL2dkYi5iYXNlL2NvcmVmaWxlLmV4cAogLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS9jb3JlZmlsZS5leHAKICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhw CkBAIC0xMzY0LDcgKzEzNTcsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS9jb3JlZmlsZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2NvcmVmaQogZGlmZiAtLWdp dCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZ2RiaW5pdC1oaXN0b3J5LmV4cCBiL2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2UvZ2RiaW5pdC1oaXN0b3J5LmV4cAogLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9nZGJpbml0LWhpc3RvcnkuZXhwCiArKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNl L2dkYmluaXQtaGlzdG9yeS5leHAKLUBAIC0xODEsNyArMTgxLDggQEAgcHJvYyB0ZXN0X2VtcHR5 X2hpc3RvcnlfZmlsZW5hbWUgeyB9IHsKK0BAIC0xODUsNyArMTg1LDggQEAgcHJvYyB0ZXN0X2Vt cHR5X2hpc3RvcnlfZmlsZW5hbWUgeyB9IHsKICAgICAgZ2xvYmFsIGVudgogICAgICBnbG9iYWwg Z2RiX3Byb21wdAogIApAQCAtMTM4OCw3ICsxMzgxLDE3IEBAIGRpZmYgLS1naXQgYS9nZGIvdGVz dHN1aXRlL2dkYi5iYXNlL25ldy11aS1wZW5kaW5nLWlucHV0LmV4cCBiL2dkYi90ZXN0c3VpdGUv Z2RiCiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cCBiL2dkYi90ZXN0c3Vp dGUvbGliL2dkYi5leHAKIC0tLSBhL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAKICsrKyBiL2dk Yi90ZXN0c3VpdGUvbGliL2dkYi5leHAKLUBAIC0yMDExLDYgKzIwMTEsMTcgQEAgcHJvYyBkZWZh dWx0X2dkYl9zdGFydCB7IH0geworQEAgLTEzMCw3ICsxMzAsOCBAQCBpZiAhW2luZm8gZXhpc3Rz IElOVEVSTkFMX0dEQkZMQUdTXSB7CisgCQkgICAiLW54IiBcCisgCQkgICAiLWRhdGEtZGlyZWN0 b3J5ICRCVUlMRF9EQVRBX0RJUkVDVE9SWSIgXAorIAkJICAgey1pZXggInNldCBoZWlnaHQgMCJ9 IFwKKy0JCSAgIHstaWV4ICJzZXQgd2lkdGggMCJ9XV0KKysJCSAgIHstaWV4ICJzZXQgd2lkdGgg MCJ9IFwKKysJCSAgIHstaWV4ICJzZXQgYnVpbGQtaWQtdmVyYm9zZSAwIn1dXQorIH0KKyAKKyAj IFRoZSB2YXJpYWJsZSBnZGJfcHJvbXB0IGlzIGEgcmVnZXhwIHdoaWNoIG1hdGNoZXMgdGhlIGdk YiBwcm9tcHQuCitAQCAtMjEzMCw2ICsyMTMxLDE3IEBAIHByb2MgZGVmYXVsdF9nZGJfc3RhcnQg eyB9IHsKICAJfQogICAgICB9CiAgCkBAIC0xNDA5LDcgKzE0MTIsNyBAQCBkaWZmIC0tZ2l0IGEv Z2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cCBiL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAKIGRp ZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cCBiL2dkYi90ZXN0c3Vp dGUvbGliL21pLXN1cHBvcnQuZXhwCiAtLS0gYS9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0 LmV4cAogKysrIGIvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAKLUBAIC0zMDgsNiAr MzA4LDE2IEBAIHByb2MgZGVmYXVsdF9taV9nZGJfc3RhcnQgeyBhcmdzIH0geworQEAgLTMyMiw2 ICszMjIsMTYgQEAgcHJvYyBkZWZhdWx0X21pX2dkYl9zdGFydCB7IGFyZ3MgfSB7CiAgCSAgICB3 YXJuaW5nICJDb3VsZG4ndCBzZXQgdGhlIHdpZHRoIHRvIDAuIgogIAl9CiAgICAgIH0KCmRpZmYg LS1naXQgYS9nZGItY2NhY2hlLXdvcmthcm91bmQucGF0Y2ggYi9nZGItY2NhY2hlLXdvcmthcm91 bmQucGF0Y2gKaW5kZXggNjBiYzVjYy4uODAyZmEyYiAxMDA2NDQKLS0tIGEvZ2RiLWNjYWNoZS13 b3JrYXJvdW5kLnBhdGNoCisrKyBiL2dkYi1jY2FjaGUtd29ya2Fyb3VuZC5wYXRjaApAQCAtOSw4 ICs5LDggQEAgU3ViamVjdDogZ2RiLWNjYWNoZS13b3JrYXJvdW5kLnBhdGNoCiBkaWZmIC0tZ2l0 IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9tYWNzY3AuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu YmFzZS9tYWNzY3AuZXhwCiAtLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL21hY3NjcC5leHAK ICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvbWFjc2NwLmV4cAotQEAgLTI1LDYgKzI1LDE0 IEBAIGlmIHsgW3Rlc3RfY29tcGlsZXJfaW5mbyAiZ2NjLSoiXSB8fCBbdGVzdF9jb21waWxlcl9p bmZvICJjbGFuZy0qIl0gfSB7Ci0gICAgIGxhcHBlbmQgb3B0aW9ucyBhZGRpdGlvbmFsX2ZsYWdz PS1nMworQEAgLTI3LDYgKzI3LDE0IEBAIGlmIHsgW3Rlc3RfY29tcGlsZXJfaW5mbyAiZ2NjLSoi XSB9IHsKKyAgICAgbGFwcGVuZCBvcHRpb25zIGFkZGl0aW9uYWxfZmxhZ3M9LWZkZWJ1Zy1tYWNy bwogIH0KICAKICsjIFdvcmthcm91bmQgY2NhY2hlIG1ha2luZyBsaW5lbm8gbm9uLXplcm8gZm9y IGNvbW1hbmQtbGluZSBkZWZpbml0aW9ucy4KCmRpZmYgLS1naXQgYS9nZGItY29udGFpbmVyLXJo LXBrZy5wYXRjaCBiL2dkYi1jb250YWluZXItcmgtcGtnLnBhdGNoCmluZGV4IDA0YTdmM2MuLjA5 OTY0OTUgMTAwNjQ0Ci0tLSBhL2dkYi1jb250YWluZXItcmgtcGtnLnBhdGNoCisrKyBiL2dkYi1j b250YWluZXItcmgtcGtnLnBhdGNoCkBAIC05LDcgKzksNyBAQCBTdWJqZWN0OiBnZGItY29udGFp bmVyLXJoLXBrZy5wYXRjaAogZGlmZiAtLWdpdCBhL2dkYi9yZW1vdGUuYyBiL2dkYi9yZW1vdGUu YwogLS0tIGEvZ2RiL3JlbW90ZS5jCiArKysgYi9nZGIvcmVtb3RlLmMKLUBAIC0xNDAzMSw3ICsx NDAzMSwxNyBAQCByZW1vdGVfdGFyZ2V0OjpwaWRfdG9fZXhlY19maWxlIChpbnQgcGlkKQorQEAg LTE0MjkwLDcgKzE0MjkwLDE3IEBAIHJlbW90ZV90YXJnZXQ6OnBpZF90b19leGVjX2ZpbGUgKGlu dCBwaWQpCiAgICBjaGFyICphbm5leCA9IE5VTEw7CiAgCiAgICBpZiAocGFja2V0X3N1cHBvcnQg KFBBQ0tFVF9xWGZlcl9leGVjX2ZpbGUpICE9IFBBQ0tFVF9FTkFCTEUpCgpkaWZmIC0tZ2l0IGEv Z2RiLWRvbnQtb3ZlcndyaXRlLWZzZ3NiYXNlLW0zMi5wYXRjaCBiL2dkYi1kb250LW92ZXJ3cml0 ZS1mc2dzYmFzZS1tMzIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVlOWFk NDkuLjAwMDAwMDAKLS0tIGEvZ2RiLWRvbnQtb3ZlcndyaXRlLWZzZ3NiYXNlLW0zMi5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDEzOSArMCwwIEBACi1Gcm9tIEZFRE9SQV9QQVRDSEVTIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogVG9tIGRlIFZyaWVzIDx0ZGV2cmllc0BzdXNlLmRl PgotRGF0ZTogVHVlLCAxIEp1biAyMDIxIDEwOjE0OjMxIC0wNzAwCi1TdWJqZWN0OiBnZGItZG9u dC1vdmVyd3JpdGUtZnNnc2Jhc2UtbTMyLnBhdGNoCi0KLTs7IEJhY2twb3J0ICJbZ2RiL3NlcnZl cl0gRG9uJ3Qgb3ZlcndyaXRlIGZzL2dzX2Jhc2Ugd2l0aCAtbTMyIgotOzsgKFRvbSBkZSBWcmll cykKLQotQ29uc2lkZXIgYSBtaW5pbWFsIHRlc3QtY2FzZSB0ZXN0LmM6Ci0uLi4KLWludCBtYWlu ICh2b2lkKSB7IHJldHVybiAwOyB9Ci0uLi4KLWNvbXBpbGVkIHdpdGggLW0zMjoKLS4uLgotJCBn Y2MgdGVzdC5jIC1tMzIKLS4uLgotCi1XaGVuIHJ1bm5pbmcgdGhlIGV4ZWMgdXNpbmcgZ2Ric2Vy dmVyIG9uIG9wZW5TVVNFIEZhY3RvcnkgKGN1cnJlbnRseSBydW5uaW5nIGEKLWxpbnV4IGtlcm5l bCB2ZXJzaW9uIDUuMTAuNSk6Ci0uLi4KLSQgZ2Ric2VydmVyIGxvY2FsaG9zdDoxMjM0NSBhLm91 dAotLi4uCi10byB3aGljaCB3ZSBjb25uZWN0IGluIGEgZ2RiIHNlc3Npb24sIHdlIHJ1biBpbnRv IGEgc2VnZmF1bHQgaW4gdGhlIGluZmVyaW9yOgotLi4uCi0kIGdkYiAtYmF0Y2ggLXEgLWV4ICJ0 YXJnZXQgcmVtb3RlIGxvY2FsaG9zdDoxMjM0NSIgLWV4IGNvbnRpbnVlCi1Qcm9ncmFtIHJlY2Vp dmVkIHNpZ25hbCBTSUdTRUdWLCBTZWdtZW50YXRpb24gZmF1bHQuCi0weGY3ZGQ4YmQyIGluIGlu aXRfY2FjaGVpbmZvICgpIGF0IC4uL3N5c2RlcHMveDg2L2NhY2hlaW5mby5jOjc2MQotLi4uCi0K LVRoZSBzZWdmYXVsdCBpcyBjYXVzZWQgYnkgZ2Ric2VydmVyIG92ZXJ3cml0aW5nICRnc19iYXNl IHdpdGggMCB1c2luZwotUFRSQUNFX1NFVFJFR1MuICBBZnRlciBpdCBpcyBvdmVyd3JpdHRlbiwg dGhlIG5leHQgdXNlIG9mICRncyBpbiB0aGUgaW5mZXJpb3IKLXdpbGwgdHJpZ2dlciB0aGUgc2Vn ZmF1bHQuCi0KLUJlZm9yZSBsaW51eCBrZXJuZWwgdmVyc2lvbiA1LjksIHRoZSB2YWx1ZSB1c2Vk IGJ5IFBUUkFDRV9TRVRSRUdTIGZvciAkZ3NfYmFzZQotd2FzIGlnbm9yZWQsIGJ1dCBzdGFydGlu ZyB2ZXJzaW9uIDUuOSwgdGhlIGxpbnV4IGtlcm5lbCBoYXMgc3VwcG9ydCBmb3IKLWludGVsIGFy Y2hpdGVjdHVyZSBleHRlbnNpb24gRlNHU0JBU0UsIHdoaWNoIGFsbG93cyB1c2VycyB0byBtb2Rp ZnkgJGdzX2Jhc2UsCi1hbmQgY29uc2VxdWVudGx5IFBUUkFDRV9TRVRSRUdTIGNhbiBubyBsb25n ZXIgaWdub3JlIHRoZSAkZ3NfYmFzZSB2YWx1ZS4KLQotVGhlIG92ZXJ3cml0ZSBvZiAkZ3NfYmFz ZSB3aXRoIDAgaXMgZG9uZSBieSBhIG1lbXNldCBpbiB4ODZfZmlsbF9ncmVnc2V0LAotd2hpY2gg d2FzIGFkZGVkIGluIGNvbW1pdCA5ZTBhYTY0ZjU1MSAiRml4IGdkYnNlcnZlciBxR2V0VExTQWRk ciBmb3IKLXg4Nl82NCAtbTMyIi4gIFRoZSBtZW1zZXQgaW50ZW5kcyB0byB6ZXJvLWV4dGVuZCAz Mi1iaXQgcmVnaXN0ZXJzIHRoYXQgYXJlCi10cmFja2VkIGluIHRoZSByZWdjYWNoZSB0byA2NC1i aXQgd2hlbiB3cml0aW5nIHRoZW0gaW50byB0aGUgUFRSQUNFX1NFVFJFR1MKLWRhdGEgYXJndW1l bnQuICBCdXQgaW4gYWRkaXRpb24sIGl0IG92ZXJ3cml0ZXMgb3RoZXIgcmVnaXN0ZXJzIHRoYXQg YXJlCi1ub3QgdHJhY2tlZCBpbiB0aGUgcmVnY2FjaGUsIHN1Y2ggYXMgJGdzX2Jhc2UuCi0KLUZp eCB0aGUgc2VnZmF1bHQgYnkgcmVkb2luZyB0aGUgZml4IGZyb20gY29tbWl0IDllMGFhNjRmNTUx IGluIG1pbmltYWwgZm9ybS4KLQotVGVzdGVkIG9uIHg4Nl82NC1saW51eDoKLS0gb3BlblNVU0Ug TGVhcCAxNS4yICh1c2luZyBrZXJuZWwgdmVyc2lvbiA1LjMuMTgpOgotICAtIG5hdGl2ZQotICAt IGdkYnNlcnZlciAtbTMyCi0gIC0gLW0zMgotLSBvcGVuU1VTRSBGYWN0b3J5ICh1c2luZyBrZXJu ZWwgdmVyc2lvbiA1LjEwLjUpOgotICAtIG5hdGl2ZQotICAtIG0zMgotCi1nZGJzZXJ2ZXIvQ2hh bmdlTG9nOgotCi0yMDIxLTAxLTIwICBUb20gZGUgVnJpZXMgIDx0ZGV2cmllc0BzdXNlLmRlPgot Ci0JKiBsaW51eC14ODYtbG93LmNjIChjb2xsZWN0X3JlZ2lzdGVyX2kzODYpOiBOZXcgZnVuY3Rp b24uCi0JKHg4Nl9maWxsX2dyZWdzZXQpOiAgUmVtb3ZlIG1lbXNldC4gIFVzZSBjb2xsZWN0X3Jl Z2lzdGVyX2kzODYuCi0KLWRpZmYgLS1naXQgYS9nZGJzZXJ2ZXIvbGludXgteDg2LWxvdy5jYyBi L2dkYnNlcnZlci9saW51eC14ODYtbG93LmNjCi0tLS0gYS9nZGJzZXJ2ZXIvbGludXgteDg2LWxv dy5jYwotKysrIGIvZ2Ric2VydmVyL2xpbnV4LXg4Ni1sb3cuY2MKLUBAIC0zOTcsNiArMzk3LDM1 IEBAIHg4Nl90YXJnZXQ6Omxvd19jYW5ub3RfZmV0Y2hfcmVnaXN0ZXIgKGludCByZWdubykKLSAg IHJldHVybiByZWdubyA+PSBJMzg2X05VTV9SRUdTOwotIH0KLSAKLStzdGF0aWMgdm9pZAotK2Nv bGxlY3RfcmVnaXN0ZXJfaTM4NiAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50IHJlZ25v LCB2b2lkICpidWYpCi0rewotKyAgY29sbGVjdF9yZWdpc3RlciAocmVnY2FjaGUsIHJlZ25vLCBi dWYpOwotKwotKyNpZmRlZiBfX3g4Nl82NF9fCi0rICAvKiBJbiBjYXNlIG9mIHg4Nl82NCAtbTMy LCBjb2xsZWN0X3JlZ2lzdGVyIG9ubHkgd3JpdGVzIDQgYnl0ZXMsIGJ1dCB0aGUKLSsgICAgIHNw YWNlIHJlc2VydmVkIGluIGJ1ZiBmb3IgdGhlIHJlZ2lzdGVyIGlzIDggYnl0ZXMuICBNYWtlIHN1 cmUgdGhlIGVudGlyZQotKyAgICAgcmVzZXJ2ZWQgc3BhY2UgaXMgaW5pdGlhbGl6ZWQuICAqLwot KwotKyAgZ2RiX2Fzc2VydCAocmVnaXN0ZXJfc2l6ZSAocmVnY2FjaGUtPnRkZXNjLCByZWdubykg PT0gNCk7Ci0rCi0rICBpZiAocmVnbm8gPT0gUkFYKQotKyAgICB7Ci0rICAgICAgLyogU2lnbiBl eHRlbmQgRUFYIHZhbHVlIHRvIGF2b2lkIHBvdGVudGlhbCBzeXNjYWxsIHJlc3RhcnQKLSsJIHBy b2JsZW1zLgotKwotKwkgU2VlIGFtZDY0X2xpbnV4X2NvbGxlY3RfbmF0aXZlX2dyZWdzZXQoKSBp bgotKwkgZ2RiL2FtZDY0LWxpbnV4LW5hdC5jIGZvciBhIGRldGFpbGVkIGV4cGxhbmF0aW9uLiAg Ki8KLSsgICAgICAqKGludDY0X3QgKikgYnVmID0gKihpbnQzMl90ICopIGJ1ZjsKLSsgICAgfQot KyAgZWxzZQotKyAgICB7Ci0rICAgICAgLyogWmVyby1leHRlbmQuICAqLwotKyAgICAgICoodWlu dDY0X3QgKikgYnVmID0gKih1aW50MzJfdCAqKSBidWY7Ci0rICAgIH0KLSsjZW5kaWYKLSt9Ci0r Ci0gc3RhdGljIHZvaWQKLSB4ODZfZmlsbF9ncmVnc2V0IChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2Nh Y2hlLCB2b2lkICpidWYpCi0gewotQEAgLTQxMSwzMiArNDQwLDE0IEBAIHg4Nl9maWxsX2dyZWdz ZXQgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIHZvaWQgKmJ1ZikKLSAKLSAgICAgICByZXR1 cm47Ci0gICAgIH0KLS0KLS0gIC8qIDMyLWJpdCBpbmZlcmlvciByZWdpc3RlcnMgbmVlZCB0byBi ZSB6ZXJvLWV4dGVuZGVkLgotLSAgICAgQ2FsbGVycyB3b3VsZCByZWFkIHVuaW5pdGlhbGl6ZWQg bWVtb3J5IG90aGVyd2lzZS4gICovCi0tICBtZW1zZXQgKGJ1ZiwgMHgwMCwgWDg2XzY0X1VTRVJf UkVHUyAqIDgpOwotICNlbmRpZgotIAotICAgZm9yIChpID0gMDsgaSA8IEkzODZfTlVNX1JFR1M7 IGkrKykKLS0gICAgY29sbGVjdF9yZWdpc3RlciAocmVnY2FjaGUsIGksICgoY2hhciAqKSBidWYp ICsgaTM4Nl9yZWdtYXBbaV0pOwotLQotLSAgY29sbGVjdF9yZWdpc3Rlcl9ieV9uYW1lIChyZWdj YWNoZSwgIm9yaWdfZWF4IiwKLS0JCQkgICAgKChjaGFyICopIGJ1ZikgKyBPUklHX0VBWCAqIFJF R1NJWkUpOwotKyAgICBjb2xsZWN0X3JlZ2lzdGVyX2kzODYgKHJlZ2NhY2hlLCBpLCAoKGNoYXIg KikgYnVmKSArIGkzODZfcmVnbWFwW2ldKTsKLSAKLS0jaWZkZWYgX194ODZfNjRfXwotLSAgLyog U2lnbiBleHRlbmQgRUFYIHZhbHVlIHRvIGF2b2lkIHBvdGVudGlhbCBzeXNjYWxsIHJlc3RhcnQK LS0gICAgIHByb2JsZW1zLiAKLS0KLS0gICAgIFNlZSBhbWQ2NF9saW51eF9jb2xsZWN0X25hdGl2 ZV9ncmVnc2V0KCkgaW4gZ2RiL2FtZDY0LWxpbnV4LW5hdC5jCi0tICAgICBmb3IgYSBkZXRhaWxl ZCBleHBsYW5hdGlvbi4gICovCi0tICBpZiAocmVnaXN0ZXJfc2l6ZSAocmVnY2FjaGUtPnRkZXNj LCAwKSA9PSA0KQotLSAgICB7Ci0tICAgICAgdm9pZCAqcHRyID0gKChnZGJfYnl0ZSAqKSBidWYK LS0gICAgICAgICAgICAgICAgICAgKyBpMzg2X3JlZ21hcFtmaW5kX3JlZ25vIChyZWdjYWNoZS0+ dGRlc2MsICJlYXgiKV0pOwotLQotLSAgICAgICooaW50NjRfdCAqKSBwdHIgPSAqKGludDMyX3Qg KikgcHRyOwotLSAgICB9Ci0tI2VuZGlmCi0rICAvKiBIYW5kbGUgT1JJR19FQVgsIHdoaWNoIGlz IG5vdCBpbiBpMzg2X3JlZ21hcC4gICovCi0rICBjb2xsZWN0X3JlZ2lzdGVyX2kzODYgKHJlZ2Nh Y2hlLCBmaW5kX3JlZ25vIChyZWdjYWNoZS0+dGRlc2MsICJvcmlnX2VheCIpLAotKwkJCSAoKGNo YXIgKikgYnVmKSArIE9SSUdfRUFYICogUkVHU0laRSk7Ci0gfQotIAotIHN0YXRpYyB2b2lkCgpk aWZmIC0tZ2l0IGEvZ2RiLWZlZG9yYS1saWJuY3Vyc2Vzdy5wYXRjaCBiL2dkYi1mZWRvcmEtbGli bmN1cnNlc3cucGF0Y2gKaW5kZXggN2M2MjBmYi4uMTA3MTBiOSAxMDA2NDQKLS0tIGEvZ2RiLWZl ZG9yYS1saWJuY3Vyc2Vzdy5wYXRjaAorKysgYi9nZGItZmVkb3JhLWxpYm5jdXJzZXN3LnBhdGNo CkBAIC0xMiw3ICsxMiw3IEBAIGh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5j Z2k/aWQ9MTI3MDUzNAogZGlmZiAtLWdpdCBhL2dkYi9jb25maWd1cmUgYi9nZGIvY29uZmlndXJl CiAtLS0gYS9nZGIvY29uZmlndXJlCiArKysgYi9nZGIvY29uZmlndXJlCi1AQCAtOTY0OSw2ICs5 NjQ5LDcgQEAgaWYgdGVzdCB4IiRwcmVmZXJfY3Vyc2VzIiA9IHh5ZXM7IHRoZW4KK0BAIC05NTQ0 LDYgKzk1NDQsNyBAQCBpZiB0ZXN0IHgiJHByZWZlcl9jdXJzZXMiID0geHllczsgdGhlbgogICAg IyBzZWFyY2ggL3Vzci9sb2NhbC9pbmNsdWRlLCBpZiBuY3Vyc2VzIGlzIGluc3RhbGxlZCBpbiAv dXNyL2xvY2FsLiAgQQogICAgIyBkZWZhdWx0IGluc3RhbGxhdGlvbiBvZiBuY3Vyc2VzIG9uIGFs cGhhKi1kZWMtb3NmKiB3aWxsIGxlYWQgdG8gc3VjaAogICAgIyBhIHNpdHVhdGlvbi4KQEAgLTIw LDcgKzIwLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9jb25maWd1cmUgYi9nZGIvY29uZmlndXJlCiAg ICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBs aWJyYXJ5IGNvbnRhaW5pbmcgd2FkZHN0ciIgPiY1CiAgJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y IGxpYnJhcnkgY29udGFpbmluZyB3YWRkc3RyLi4uICIgPiY2OyB9CiAgaWYgJHthY19jdl9zZWFy Y2hfd2FkZHN0cis6fSBmYWxzZTsgdGhlbiA6Ci1AQCAtOTY3Myw3ICs5Njc0LDcgQEAgcmV0dXJu IHdhZGRzdHIgKCk7CitAQCAtOTU2OCw3ICs5NTY5LDcgQEAgcmV0dXJuIHdhZGRzdHIgKCk7CiAg ICByZXR1cm4gMDsKICB9CiAgX0FDRU9GCkBAIC0yOSw3ICsyOSw3IEBAIGRpZmYgLS1naXQgYS9n ZGIvY29uZmlndXJlIGIvZ2RiL2NvbmZpZ3VyZQogICAgaWYgdGVzdCAteiAiJGFjX2xpYiI7IHRo ZW4KICAgICAgYWNfcmVzPSJub25lIHJlcXVpcmVkIgogICAgZWxzZQotQEAgLTk3NDcsNiArOTc0 OCw3IEBAIGNhc2UgJGhvc3Rfb3MgaW4KK0BAIC05NjQyLDYgKzk2NDMsNyBAQCBjYXNlICRob3N0 X29zIGluCiAgZXNhYwogIAogICMgVGhlc2UgYXJlIHRoZSBsaWJyYXJpZXMgY2hlY2tlZCBieSBS ZWFkbGluZS4KQEAgLTM3LDcgKzM3LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9jb25maWd1cmUgYi9n ZGIvY29uZmlndXJlCiAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBj aGVja2luZyBmb3IgbGlicmFyeSBjb250YWluaW5nIHRnZXRlbnQiID4mNQogICRhc19lY2hvX24g ImNoZWNraW5nIGZvciBsaWJyYXJ5IGNvbnRhaW5pbmcgdGdldGVudC4uLiAiID4mNjsgfQogIGlm ICR7YWNfY3Zfc2VhcmNoX3RnZXRlbnQrOn0gZmFsc2U7IHRoZW4gOgotQEAgLTk3NzEsNyArOTc3 Myw3IEBAIHJldHVybiB0Z2V0ZW50ICgpOworQEAgLTk2NjYsNyArOTY2OCw3IEBAIHJldHVybiB0 Z2V0ZW50ICgpOwogICAgcmV0dXJuIDA7CiAgfQogIF9BQ0VPRgpAQCAtNDksNyArNDksNyBAQCBk aWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZ3VyZSBiL2dkYi9jb25maWd1cmUKIGRpZmYgLS1naXQgYS9n ZGIvY29uZmlndXJlLmFjIGIvZ2RiL2NvbmZpZ3VyZS5hYwogLS0tIGEvZ2RiL2NvbmZpZ3VyZS5h YwogKysrIGIvZ2RiL2NvbmZpZ3VyZS5hYwotQEAgLTcxMiw3ICs3MTIsOCBAQCBpZiB0ZXN0IHgi JHByZWZlcl9jdXJzZXMiID0geHllczsgdGhlbgorQEAgLTczNiw3ICs3MzYsOCBAQCBpZiB0ZXN0 IHgiJHByZWZlcl9jdXJzZXMiID0geHllczsgdGhlbgogICAgIyBzZWFyY2ggL3Vzci9sb2NhbC9p bmNsdWRlLCBpZiBuY3Vyc2VzIGlzIGluc3RhbGxlZCBpbiAvdXNyL2xvY2FsLiAgQQogICAgIyBk ZWZhdWx0IGluc3RhbGxhdGlvbiBvZiBuY3Vyc2VzIG9uIGFscGhhKi1kZWMtb3NmKiB3aWxsIGxl YWQgdG8gc3VjaAogICAgIyBhIHNpdHVhdGlvbi4KQEAgLTU5LDcgKzU5LDcgQEAgZGlmZiAtLWdp dCBhL2dkYi9jb25maWd1cmUuYWMgYi9nZGIvY29uZmlndXJlLmFjCiAgCiAgICBpZiB0ZXN0ICIk YWNfY3Zfc2VhcmNoX3dhZGRzdHIiICE9IG5vOyB0aGVuCiAgICAgIGN1cnNlc19mb3VuZD15ZXMK LUBAIC03NTQsNyArNzU1LDggQEAgY2FzZSAkaG9zdF9vcyBpbgorQEAgLTc3OCw3ICs3NzksOCBA QCBjYXNlICRob3N0X29zIGluCiAgZXNhYwogIAogICMgVGhlc2UgYXJlIHRoZSBsaWJyYXJpZXMg Y2hlY2tlZCBieSBSZWFkbGluZS4KCmRpZmYgLS1naXQgYS9nZGItZ2RiMjc3NDMtcHN5bXRhYi1p bXBvcnRlZC11bml0LnBhdGNoIGIvZ2RiLWdkYjI3NzQzLXBzeW10YWItaW1wb3J0ZWQtdW5pdC5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzEyOWI2ZC4uMDAwMDAwMAotLS0g YS9nZGItZ2RiMjc3NDMtcHN5bXRhYi1pbXBvcnRlZC11bml0LnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsMjgxICswLDAgQEAKLUZyb20gRkVET1JBX1BBVENIRVMgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBUb20gVHJvbWV5IDx0cm9tZXlAYWRhY29yZS5jb20+Ci1EYXRlOiBGcmks IDIzIEFwciAyMDIxIDExOjI4OjQ4IC0wNjAwCi1TdWJqZWN0OiBnZGItZ2RiMjc3NDMtcHN5bXRh Yi1pbXBvcnRlZC11bml0LnBhdGNoCi0KLTs7IEJhY2twb3J0ICJGaXggY3Jhc2ggd2hlbiBleHBh bmRpbmcgcGFydGlhbCBzeW10YWJzIHdpdGggRFdfVEFHX2ltcG9ydGVkX3VuaXQiCi07OyAoVG9t IFRyb21leSwgZ2RiLzI3NzQzKQotCi0gICBGcm9tIGU3ZDc3Y2UwYzQwOGU3MDE5Zjk4ODViOGJl NjRjOWNkYjQ2ZGQzMTIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi0gICBTdWJqZWN0OiBbUEFU Q0hdIEZpeCBjcmFzaCB3aGVuIGV4cGFuZGluZyBwYXJ0aWFsIHN5bXRhYnMgd2l0aAotIERXX1RB R19pbXBvcnRlZF91bml0Ci0KLVBSIGdkYi8yNzc0MyBwb2ludHMgb3V0IGEgZ2RiIGNyYXNoIHdo ZW4gZXhwYW5kaW5nIHBhcnRpYWwgc3ltdGFicywKLXdoZXJlIG9uZSBvZiB0aGUgY29tcGlsYXRp b24gdW5pdHMgdXNlcyBEV19UQUdfaW1wb3J0ZWRfdW5pdC4KLQotVGhlIGJ1ZyBpcyB0aGF0IHBh cnRpYWxfbWFwX2V4cGFuZF9hcHBseSBleHBlY3RzIG9ubHkgdG8gYmUgY2FsbGVkIGZvcgotdGhl IG91dGVybW9zdCBwc3ltdGFiLiAgSG93ZXZlciwgZmlsZW5hbWUgc2VhcmNoaW5nIGRvZXNuJ3Qg KGFuZAotcHJvYmFibHkgc2hvdWxkbid0KSBndWFyYW50ZWUgdGhpcy4gIFRoZSBmaXggaXMgdG8g d2FsayB1cHdhcmQgdG8gZmluZAotdGhlIG91dGVybW9zdCBDVS4KLQotQSBuZXcgdGVzdCBjYXNl IGlzIGluY2x1ZGVkLiAgSXQgaXMgbW9zdGx5IGNvcGllZCBmcm9tIG90aGVyIHRlc3QKLWNhc2Vz LCB3aGljaCByZWFsbHkgc3BlZCB1cCB0aGUgZWZmb3J0LgotCi1UaGlzIGJ1ZyBkb2VzIG5vdCBv Y2N1ciBvbiB0cnVuay4gIFRoZXJlLAotcHN5bV9tYXBfc3ltdGFic19tYXRjaGluZ19maWxlbmFt ZSBpcyBnb25lLCByZXBsYWNlZCBieQotcHN5bWJvbF9mdW5jdGlvbnM6OmV4cGFuZF9zeW10YWJz X21hdGNoaW5nLiAgV2hlbiB0aGlzIGZpbmQgYSBtYXRjaCwKLWl0IGNhbGxzIHBzeW10YWJfdG9f c3ltdGFiLCB3aGljaCBkb2VzIHRoaXMgc2FtZSB1cHdhcmQgd2Fsay4KLQotVGVzdGVkIG9uIHg4 Ni02NCBGZWRvcmEgMzIuCi0KLUkgcHJvcG9zZSBjaGVja2luZyBpbiB0aGlzIHBhdGNoIG9uIHRo ZSBnZGItMTAgYnJhbmNoLCBhbmQganVzdCB0aGUKLW5ldyB0ZXN0IGNhc2Ugb24gdHJ1bmsuCi0K LWdkYi9DaGFuZ2VMb2cKLTIwMjEtMDQtMjMgIFRvbSBUcm9tZXkgIDx0cm9tZXlAYWRhY29yZS5j b20+Ci0KLQlQUiBnZGIvMjc3NDM6Ci0JKiBwc3ltdGFiLmMgKHBhcnRpYWxfbWFwX2V4cGFuZF9h cHBseSk6IEV4cGFuZCBvdXRlcm1vc3QgcHN5bXRhYi4KLQotZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VM b2cKLTIwMjEtMDQtMjMgIFRvbSBUcm9tZXkgIDx0cm9tZXlAYWRhY29yZS5jb20+Ci0KLQlQUiBn ZGIvMjc3NDM6Ci0JKiBnZGIuZHdhcmYyL2ltcG9ydGVkLXVuaXQtYnAuZXhwOiBOZXcgZmlsZS4K LQkqIGdkYi5kd2FyZjIvaW1wb3J0ZWQtdW5pdC1icC1tYWluLmM6IE5ldyBmaWxlLgotCSogZ2Ri LmR3YXJmMi9pbXBvcnRlZC11bml0LWJwLWFsdC5jOiBOZXcgZmlsZS4KLQotZGlmZiAtLWdpdCBh L2dkYi9wc3ltdGFiLmMgYi9nZGIvcHN5bXRhYi5jCi0tLS0gYS9nZGIvcHN5bXRhYi5jCi0rKysg Yi9nZGIvcHN5bXRhYi5jCi1AQCAtMTI3LDkgKzEyNywxMCBAQCBwYXJ0aWFsX21hcF9leHBhbmRf YXBwbHkgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAotIHsKLSAgIHN0cnVjdCBjb21wdW5pdF9z eW10YWIgKmxhc3RfbWFkZSA9IG9iamZpbGUtPmNvbXB1bml0X3N5bXRhYnM7Ci0gCi0tICAvKiBT aGFyZWQgcHN5bXRhYnMgc2hvdWxkIG5ldmVyIGJlIHNlZW4gaGVyZS4gIEluc3RlYWQgdGhleSBz aG91bGQKLS0gICAgIGJlIGhhbmRsZWQgcHJvcGVybHkgYnkgdGhlIGNhbGxlci4gICovCi0tICBn ZGJfYXNzZXJ0IChwc3QtPnVzZXIgPT0gTlVMTCk7Ci0rICAvKiBXZSBtYXkgc2VlIGEgc2hhcmVk IHBzeW10YWIgaGVyZSwgYnV0IHdlIHdhbnQgdG8gZXhwYW5kIHRoZQotKyAgICAgb3V0ZXJtb3N0 IHN5bXRhYi4gICovCi0rICB3aGlsZSAocHN0LT51c2VyICE9IG51bGxwdHIpCi0rICAgIHBzdCA9 IHBzdC0+dXNlcjsKLSAKLSAgIC8qIERvbid0IHZpc2l0IGFscmVhZHktZXhwYW5kZWQgcHN5bXRh YnMuICAqLwotICAgaWYgKHBzdC0+cmVhZGluX3AgKG9iamZpbGUpKQotZGlmZiAtLWdpdCBhL2dk Yi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9pbXBvcnRlZC11bml0LWJwLWFsdC5jIGIvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZHdhcmYyL2ltcG9ydGVkLXVuaXQtYnAtYWx0LmMKLW5ldyBmaWxlIG1vZGUgMTAw NjQ0Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvaW1wb3J0 ZWQtdW5pdC1icC1hbHQuYwotQEAgLTAsMCArMSw1MCBAQAotKy8qIENvcHlyaWdodCAyMDIwLTIw MjEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rICAgVGhpcyBwcm9ncmFtIGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsg ICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieQotKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2 ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0rICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KLSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyAgIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsgICBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKwotKyAgIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl Ci0rICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uICAqLwotKwotKy8qIFVzZWQgdG8gaW5zZXJ0IGxhYmVscyB3aXRo IHdoaWNoIHdlIGNhbiBidWlsZCBhIGZha2UgbGluZSB0YWJsZS4gICovCi0rI2RlZmluZSBMTChO KSBhc20gKCJsaW5lX2xhYmVsXyIgI04gIjogLmdsb2JsIGxpbmVfbGFiZWxfIiAjTikKLSsKLSt2 b2xhdGlsZSBpbnQgdmFyOwotK3ZvbGF0aWxlIGludCBiYXI7Ci0rCi0rLyogR2VuZXJhdGUgc29t ZSBjb2RlIHRvIHRha2UgdXAgc29tZSBzcGFjZS4gICovCi0rI2RlZmluZSBGSUxMRVIgZG8geyBc Ci0rICAgIHZhciA9IDk5OwkgICAgXAotK30gd2hpbGUgKDApCi0rCi0raW50Ci0rZnVuYyAodm9p ZCkKLSt7CQkJCQkvKiBmdW5jIHByb2xvZ3VlICovCi0rICBhc20gKCJmdW5jX2xhYmVsOiAuZ2xv YmwgZnVuY19sYWJlbCIpOwotKyAgTEwgKDEpOwkvLyBGMSwgTG4gMTYKLSsgIEZJTExFUjsKLSsg IExMICgyKTsJLy8gRjEsIExuIDE3Ci0rICBGSUxMRVI7Ci0rICBMTCAoMyk7CS8vIEYyLCBMbiAy MQotKyAgRklMTEVSOwotKyAgTEwgKDQpOwkvLyBGMiwgTG4gMjIgLy8gRjEsIExuIDE4LCAhUwot KyAgRklMTEVSOwotKyAgTEwgKDUpOwkvLyBGMSwgTG4gMTkgIVMKLSsgIEZJTExFUjsKLSsgIExM ICg2KTsJLy8gRjEsIExuIDIwCi0rICBGSUxMRVI7Ci0rICBMTCAoNyk7Ci0rICBGSUxMRVI7Ci0r ICByZXR1cm4gMDsJCQkJLyogZnVuYyBlbmQgKi8KLSt9Ci0rCi0rI2lmZGVmIFdJVEhNQUlOCi0r aW50IG1haW4gKCkgeyByZXR1cm4gMDsgfQotKyNlbmRpZgotZGlmZiAtLWdpdCBhL2dkYi90ZXN0 c3VpdGUvZ2RiLmR3YXJmMi9pbXBvcnRlZC11bml0LWJwLW1haW4uYyBiL2dkYi90ZXN0c3VpdGUv Z2RiLmR3YXJmMi9pbXBvcnRlZC11bml0LWJwLW1haW4uYwotbmV3IGZpbGUgbW9kZSAxMDA2NDQK LS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9pbXBvcnRlZC11 bml0LWJwLW1haW4uYwotQEAgLTAsMCArMSwyNCBAQAotKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFy dCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCi0rCi0rICAgQ29weXJpZ2h0IDIwMDQtMjAyMSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyAgIGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5Ci0rICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNp b24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSsgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLgotKwotKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rICAgTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyAgIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rCi0rICAgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsg ICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4gICovCi0rCi0rZXh0ZXJuIGludCBmdW5jICh2b2lkKTsKLSsKLStpbnQK LSttYWluKCkKLSt7Ci0rICByZXR1cm4gZnVuYyAoKTsKLSt9Ci1kaWZmIC0tZ2l0IGEvZ2RiL3Rl c3RzdWl0ZS9nZGIuZHdhcmYyL2ltcG9ydGVkLXVuaXQtYnAuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZHdhcmYyL2ltcG9ydGVkLXVuaXQtYnAuZXhwCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotLS0t IC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2ltcG9ydGVkLXVuaXQt YnAuZXhwCi1AQCAtMCwwICsxLDEyOCBAQAotKyMgQ29weXJpZ2h0IDIwMjAtMjAyMSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0 aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0r IwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyMgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0 aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4u Ci0rCi0rIyBUZXN0IHRoYXQgImJyZWFrIC9hYnNvbHV0ZS9maWxlOmxpbmUiIHdvcmtzIG9rIHdp dGggaW1wb3J0ZWQgQ1VzLgotKwotK2xvYWRfbGliIGR3YXJmLmV4cAotKwotKyMgVGhpcyB0ZXN0 IGNhbiBvbmx5IGJlIHJ1biBvbiB0YXJnZXRzIHdoaWNoIHN1cHBvcnQgRFdBUkYtMiBhbmQgdXNl IGdhcy4KLStpZiB7IVtkd2FyZjJfc3VwcG9ydF19IHsKLSsgICAgcmV0dXJuIDAKLSt9Ci0rCi0r IyBUaGUgLmMgZmlsZXMgdXNlIF9fYXR0cmlidXRlX18uCi0raWYgW2dldF9jb21waWxlcl9pbmZv XSB7Ci0rICAgIHJldHVybiAtMQotK30KLStpZiAhJGdjY19jb21waWxlZCB7Ci0rICAgIHJldHVy biAwCi0rfQotKwotK3N0YW5kYXJkX3Rlc3RmaWxlIGltcG9ydGVkLXVuaXQtYnAtYWx0LmMgLlMg aW1wb3J0ZWQtdW5pdC1icC1tYWluLmMKLSsKLStzZXQgYnVpbGRfb3B0aW9ucyB7bm9kZWJ1ZyBv cHRpbWl6ZT0tTzF9Ci0rCi0rc2V0IGFzbV9maWxlIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSAkc3Jj ZmlsZTJdCi0rRHdhcmY6OmFzc2VtYmxlICRhc21fZmlsZSB7Ci0rICAgIGdsb2JhbCBzcmNkaXIg c3ViZGlyIHNyY2ZpbGUgc3JjZmlsZQotKyAgICBnbG9iYWwgYnVpbGRfb3B0aW9ucwotKyAgICBk ZWNsYXJlX2xhYmVscyBsaW5lc19sYWJlbCBjYWxsZWVfc3VicHJvZ19sYWJlbCBjdV9sYWJlbAot KwotKyAgICBnZXRfZnVuY19pbmZvIGZ1bmMgIiRidWlsZF9vcHRpb25zIGFkZGl0aW9uYWxfZmxh Z3M9LURXSVRITUFJTiIKLSsKLSsgICAgY3Uge30gewotKwljb21waWxlX3VuaXQgewotKwkgICAg e2xhbmd1YWdlIEBEV19MQU5HX0N9Ci0rCSAgICB7bmFtZSAiPGFydGlmaWNpYWw+In0KLSsJfSB7 Ci0rCSAgICBpbXBvcnRlZF91bml0IHsKLSsJCXtpbXBvcnQgJSRjdV9sYWJlbH0KLSsJICAgIH0K LSsJfQotKyAgICB9Ci0rCi0rICAgIGN1IHt9IHsKLSsJY3VfbGFiZWw6IGNvbXBpbGVfdW5pdCB7 Ci0rCSAgICB7cHJvZHVjZXIgImdjYyJ9Ci0rCSAgICB7bGFuZ3VhZ2UgQERXX0xBTkdfQ30KLSsJ ICAgIHtuYW1lICR7c3JjZmlsZX19Ci0rCSAgICB7Y29tcF9kaXIgIi90bXAifQotKwkgICAge2xv d19wYyAwIGFkZHJ9Ci0rCSAgICB7c3RtdF9saXN0ICR7bGluZXNfbGFiZWx9IERXX0ZPUk1fc2Vj X29mZnNldH0KLSsJfSB7Ci0rCSAgICBjYWxsZWVfc3VicHJvZ19sYWJlbDogc3VicHJvZ3JhbSB7 Ci0rCQl7ZXh0ZXJuYWwgMSBmbGFnfQotKwkJe25hbWUgY2FsbGVlfQotKwkJe2lubGluZSAzIGRh dGExfQotKwkgICAgfQotKwkgICAgc3VicHJvZ3JhbSB7Ci0rCQl7ZXh0ZXJuYWwgMSBmbGFnfQot KwkJe25hbWUgZnVuY30KLSsJCXtsb3dfcGMgJGZ1bmNfc3RhcnQgYWRkcn0KLSsJCXtoaWdoX3Bj ICIkZnVuY19zdGFydCArICRmdW5jX2xlbiIgYWRkcn0KLSsJICAgIH0gewotKwkgICAgfQotKwl9 Ci0rICAgIH0KLSsKLSsgICAgbGluZXMge3ZlcnNpb24gMiBkZWZhdWx0X2lzX3N0bXQgMX0gbGlu ZXNfbGFiZWwgewotKwlpbmNsdWRlX2RpciAiL3RtcCIKLSsJZmlsZV9uYW1lICIkc3JjZmlsZSIg MQotKwotKwlwcm9ncmFtIHsKLSsJICAgIHtEV19MTkVfc2V0X2FkZHJlc3MgbGluZV9sYWJlbF8x fQotKwkgICAge0RXX0xOU19hZHZhbmNlX2xpbmUgMTV9Ci0rCSAgICB7RFdfTE5TX2NvcHl9Ci0r Ci0rCSAgICB7RFdfTE5FX3NldF9hZGRyZXNzIGxpbmVfbGFiZWxfMn0KLSsJICAgIHtEV19MTlNf YWR2YW5jZV9saW5lIDF9Ci0rCSAgICB7RFdfTE5TX2NvcHl9Ci0rCi0rCSAgICB7RFdfTE5FX3Nl dF9hZGRyZXNzIGxpbmVfbGFiZWxfM30KLSsJICAgIHtEV19MTlNfYWR2YW5jZV9saW5lIDR9Ci0r CSAgICB7RFdfTE5TX2NvcHl9Ci0rCi0rCSAgICB7RFdfTE5FX3NldF9hZGRyZXNzIGxpbmVfbGFi ZWxfNH0KLSsJICAgIHtEV19MTlNfYWR2YW5jZV9saW5lIDF9Ci0rCSAgICB7RFdfTE5TX2NvcHl9 Ci0rCi0rCSAgICB7RFdfTE5TX2FkdmFuY2VfbGluZSAtNH0KLSsJICAgIHtEV19MTlNfbmVnYXRl X3N0bXR9Ci0rCSAgICB7RFdfTE5TX2NvcHl9Ci0rCi0rCSAgICB7RFdfTE5FX3NldF9hZGRyZXNz IGxpbmVfbGFiZWxfNX0KLSsJICAgIHtEV19MTlNfYWR2YW5jZV9saW5lIDF9Ci0rCSAgICB7RFdf TE5TX2NvcHl9Ci0rCi0rCSAgICB7RFdfTE5FX3NldF9hZGRyZXNzIGxpbmVfbGFiZWxfNn0KLSsJ ICAgIHtEV19MTlNfYWR2YW5jZV9saW5lIDF9Ci0rCSAgICB7RFdfTE5TX25lZ2F0ZV9zdG10fQot KwkgICAge0RXX0xOU19jb3B5fQotKwotKwkgICAge0RXX0xORV9zZXRfYWRkcmVzcyBsaW5lX2xh YmVsXzd9Ci0rCSAgICB7RFdfTE5FX2VuZF9zZXF1ZW5jZX0KLSsJfQotKyAgICB9Ci0rfQotKwot K2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgImZhaWxlZCB0byBwcmVwYXJlIiAke3Rlc3RmaWxl fSBcCi0rCSAgW2xpc3QgJHNyY2ZpbGUgJGFzbV9maWxlICRzcmNmaWxlM10gJGJ1aWxkX29wdGlv bnNdIH0gewotKyAgICByZXR1cm4gLTEKLSt9Ci0rCi0rZ2RiX3JlaW5pdGlhbGl6ZV9kaXIgL3Rt cAotKwotKyMgVXNpbmcgYW4gYWJzb2x1dGUgcGF0aCBpcyBpbXBvcnRhbnQgdG8gc2VlIHRoZSBi dWcuCi0rZ2RiX3Rlc3QgImJyZWFrIC90bXAvJHtzcmNmaWxlfToxOSIgIkJyZWFrcG9pbnQgLiog ZmlsZSAkc3JjZmlsZSwgbGluZSAuKiIKCmRpZmYgLS1naXQgYS9nZGItbGludXhfcGVyZi1idW5k bGUucGF0Y2ggYi9nZGItbGludXhfcGVyZi1idW5kbGUucGF0Y2gKaW5kZXggNzI4ZjQ2My4uZTNj ZTFhMyAxMDA2NDQKLS0tIGEvZ2RiLWxpbnV4X3BlcmYtYnVuZGxlLnBhdGNoCisrKyBiL2dkYi1s aW51eF9wZXJmLWJ1bmRsZS5wYXRjaApAQCAtMjEzLDcgKzIxMyw3IEBAIGRpZmYgLS1naXQgYS9n ZGIvbmF0L2xpbnV4LWJ0cmFjZS5oIGIvZ2RiL25hdC9saW51eC1idHJhY2UuaAogZGlmZiAtLWdp dCBhL2dkYnN1cHBvcnQvY29tbW9uLm00IGIvZ2Ric3VwcG9ydC9jb21tb24ubTQKIC0tLSBhL2dk YnN1cHBvcnQvY29tbW9uLm00CiArKysgYi9nZGJzdXBwb3J0L2NvbW1vbi5tNAotQEAgLTE0NSw3 ICsxNDUsNyBAQCBBQ19ERUZVTihbR0RCX0FDX0NPTU1PTl0sIFsKK0BAIC0xMzUsNyArMTM1LDcg QEAgQUNfREVGVU4oW0dEQl9BQ19DT01NT05dLCBbCiAgICAgIEFDX1BSRVBST0NfSUZFTFNFKFtB Q19MQU5HX1NPVVJDRShbWwogICAgI2luY2x1ZGUgPGxpbnV4L3BlcmZfZXZlbnQuaD4KICAgICNp Zm5kZWYgUEVSRl9BVFRSX1NJWkVfVkVSNQoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6LTg1MzA3MS11 cGRhdGUtbWFucGFnZXMucGF0Y2ggYi9nZGItcmhiei04NTMwNzEtdXBkYXRlLW1hbnBhZ2VzLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjZWI2N2UKLS0tIC9kZXYv bnVsbAorKysgYi9nZGItcmhiei04NTMwNzEtdXBkYXRlLW1hbnBhZ2VzLnBhdGNoCkBAIC0wLDAg KzEsMjU4IEBACitGcm9tIEZFRE9SQV9QQVRDSEVTIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor RnJvbTogQnJ1bm8gTGFyc2VuIDxibGFyc2VuQHJlZGhhdC5jb20+CitEYXRlOiBUdWUsIDkgTm92 IDIwMjEgMTQ6MDc6MjYgLTAzMDAKK1N1YmplY3Q6IGdkYi1yaGJ6LTg1MzA3MS11cGRhdGUtbWFu cGFnZXMucGF0Y2gKKworOzsgQmFja3BvcnQgbWFucGFnZSB1cGRhdGUKKworW2dkYi9kb2NdOiBV cGRhdGVkIG1hbnBhZ2VzIHRvIGJlIGNvbnNpc3RlbnQgd2l0aCBoZWxwCisKK1VwZGF0ZWQgbWFu cGFnZXMgdG8gYmUgY29uc2lzdGVudCB3aXRoIGhlbHAgaW5mb3JtYXRpb24gcHJvdmlkZWQgYnkg dGhlCitiaW5hcnkuIFRoZSBtYWluIGNoYW5nZXMgYXJlOgorCisqIE1ha2luZyBhbGwgbG9uZy1m b3JtIG9wdGlvbnMgaGF2ZSAnLS0nLCBpbnN0ZWFkIG9mIGEgc2luZ2xlICctJzsKKyogYWRkZWQg bW9zdCBvZiB0aGUgbWlzc2luZyBvcHRpb25zIHRvIHRoZSBtYW5wYWdlOworKiByZW1vdmVkIHRo ZSBpbmZvcm1hdGlvbiBhYm91dCB1c2luZyAnKycgaW5zdGVhZCBvZiAnLScsIHNpbmNlIGl0Cisg IGRvZXNuJ3Qgc2VlbSB0byBiZSBzdXBwb3J0ZWQgYW55bW9yZS4KKworVGhpcyBhbHNvIGZpeGVz IDIgdXBzdHJlYW0gYnVnczoKKyogaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9idWd6aWxsYS9zaG93 X2J1Zy5jZ2k/aWQ9MjM5NjU7IGJ5IGFkZGluZworLS1hcmdzIHRvIHRoZSBtYW5wYWdlCisqIGh0 dHBzOi8vc291cmNld2FyZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTEwNjE5OyBieSBh ZGRpbmcgdGhlCitkb3VibGUgZGFzaGVzCisKK2RpZmYgLS1naXQgYS9nZGIvZG9jL2dkYi50ZXhp bmZvIGIvZ2RiL2RvYy9nZGIudGV4aW5mbworLS0tIGEvZ2RiL2RvYy9nZGIudGV4aW5mbworKysr IGIvZ2RiL2RvYy9nZGIudGV4aW5mbworQEAgLTQ3MDMwLDE0ICs0NzAzMCw3IEBAIHN3aXRjaCAo ZGllLT50YWcpCisgQGMgbWFuIHRpdGxlIGdkYiBUaGUgR05VIERlYnVnZ2VyCisgCisgQGMgbWFu IGJlZ2luIFNZTk9QU0lTIGdkYgorLWdkYiBbQG9wdGlvbnstaGVscH1dIFtAb3B0aW9uey1uaH1d IFtAb3B0aW9uey1ueH1dIFtAb3B0aW9uey1xfV0KKy1bQG9wdGlvbnstYmF0Y2h9XSBbQG9wdGlv bnstY2Q9fUB2YXJ7ZGlyfV0gW0BvcHRpb257LWZ9XQorLVtAb3B0aW9uey1ifUB3eyB9QHZhcnti cHN9XQorLSAgICBbQG9wdGlvbnstdHR5PX1AdmFye2Rldn1dIFtAb3B0aW9uey1zfSBAdmFye3N5 bWZpbGV9XQorLVtAb3B0aW9uey1lfUB3eyB9QHZhcntwcm9nfV0gW0BvcHRpb257LXNlfUB3eyB9 QHZhcntwcm9nfV0KKy1bQG9wdGlvbnstY31Ad3sgfUB2YXJ7Y29yZX1dIFtAb3B0aW9uey1wfUB3 eyB9QHZhcntwcm9jSUR9XQorLSAgICBbQG9wdGlvbnsteH1Ad3sgfUB2YXJ7Y21kc31dIFtAb3B0 aW9uey1kfUB3eyB9QHZhcntkaXJ9XQorLVtAdmFye3Byb2d9fEB2YXJ7cHJvZ30gQHZhcntwcm9j SUR9fEB2YXJ7cHJvZ30gQHZhcntjb3JlfV0KKytnZGIgW09QVElPTlNdIFtAdmFye3Byb2d9fEB2 YXJ7cHJvZ30gQHZhcntwcm9jSUR9fEB2YXJ7cHJvZ30gQHZhcntjb3JlfV0KKyBAYyBtYW4gZW5k CisgCisgQGMgbWFuIGJlZ2luIERFU0NSSVBUSU9OIGdkYgorQEAgLTQ3MTAxLDggKzQ3MDk0LDgg QEAgSGVyZSBhcmUgc29tZSBvZiB0aGUgbW9zdCBmcmVxdWVudGx5IG5lZWRlZCBAdmFsdWV7R0RC Tn0gY29tbWFuZHM6CisgCisgQGMgcG9kMm1hbiBoaWdobGlnaHRzIHRoZSByaWdodCBoYW5kIHNp ZGUgb2YgdGhlIEBpdGVtIGxpbmVzLgorIEB0YWJsZSBAZW52CistQGl0ZW0gYnJlYWsgW0B2YXJ7 ZmlsZX06XUB2YXJ7ZnVuY3Rpb259CistU2V0IGEgYnJlYWtwb2ludCBhdCBAdmFye2Z1bmN0aW9u fSAoaW4gQHZhcntmaWxlfSkuCisrQGl0ZW0gYnJlYWsgW0B2YXJ7ZmlsZX06XVtAdmFye2Z1bmN0 aW9ufXxAdmFye2xpbmV9XQorK1NldCBhIGJyZWFrcG9pbnQgYXQgQHZhcntmdW5jdGlvbn0gb3Ig QHZhcntsaW5lfSAoaW4gQHZhcntmaWxlfSkuCisgCisgQGl0ZW0gcnVuIFtAdmFye2FyZ2xpc3R9 XQorIFN0YXJ0IHlvdXIgcHJvZ3JhbSAod2l0aCBAdmFye2FyZ2xpc3R9LCBpZiBzcGVjaWZpZWQp LgorQEAgLTQ3MTUwLDcyICs0NzE0Myw5MSBAQCBhcyB0aGUgQGNvZGV7Z2RifSBlbnRyeSBpbiB0 aGUgQGNvZGV7aW5mb30gcHJvZ3JhbS4KKyBBbnkgYXJndW1lbnRzIG90aGVyIHRoYW4gb3B0aW9u cyBzcGVjaWZ5IGFuIGV4ZWN1dGFibGUKKyBmaWxlIGFuZCBjb3JlIGZpbGUgKG9yIHByb2Nlc3Mg SUQpOyB0aGF0IGlzLCB0aGUgZmlyc3QgYXJndW1lbnQKKyBlbmNvdW50ZXJlZCB3aXRoIG5vCist YXNzb2NpYXRlZCBvcHRpb24gZmxhZyBpcyBlcXVpdmFsZW50IHRvIGEgQG9wdGlvbnstc2V9IG9w dGlvbiwgYW5kIHRoZSBzZWNvbmQsCisrYXNzb2NpYXRlZCBvcHRpb24gZmxhZyBpcyBlcXVpdmFs ZW50IHRvIGEgQG9wdGlvbnstLXNlfSBvcHRpb24sIGFuZCB0aGUgc2Vjb25kLAorIGlmIGFueSwg aXMgZXF1aXZhbGVudCB0byBhIEBvcHRpb257LWN9IG9wdGlvbiBpZiBpdCdzIHRoZSBuYW1lIG9m IGEgZmlsZS4KKyBNYW55IG9wdGlvbnMgaGF2ZQorLWJvdGggbG9uZyBhbmQgc2hvcnQgZm9ybXM7 IGJvdGggYXJlIHNob3duIGhlcmUuICBUaGUgbG9uZyBmb3JtcyBhcmUgYWxzbworK2JvdGggbG9u ZyBhbmQgYWJicmV2aWF0ZWQgZm9ybXM7IGJvdGggYXJlIHNob3duIGhlcmUuICBUaGUgbG9uZyBm b3JtcyBhcmUgYWxzbworIHJlY29nbml6ZWQgaWYgeW91IHRydW5jYXRlIHRoZW0sIHNvIGxvbmcg YXMgZW5vdWdoIG9mIHRoZSBvcHRpb24gaXMKKy1wcmVzZW50IHRvIGJlIHVuYW1iaWd1b3VzLiAg KElmIHlvdSBwcmVmZXIsIHlvdSBjYW4gZmxhZyBvcHRpb24KKy1hcmd1bWVudHMgd2l0aCBAb3B0 aW9ueyt9IHJhdGhlciB0aGFuIEBvcHRpb257LX0sIHRob3VnaCB3ZSBpbGx1c3RyYXRlIHRoZQor LW1vcmUgdXN1YWwgY29udmVudGlvbi4pCisrcHJlc2VudCB0byBiZSB1bmFtYmlndW91cy4KKysK KytUaGUgYWJicmV2aWF0ZWQgZm9ybXMgYXJlIHNob3duIGhlcmUgd2l0aCBAc2FtcHstfSBhbmQg bG9uZyBmb3JtcyBhcmUgc2hvd24KKyt3aXRoIEBzYW1wey0tfSB0byByZWZsZWN0IGhvdyB0aGV5 IGFyZSBzaG93biBpbiBAb3B0aW9uey0taGVscH0uIEhvd2V2ZXIsCisrQHZhbHVle0dEQk59IHJl Y29nbml6ZXMgYWxsIG9mIHRoZSBmb2xsb3dpbmcgY29udmVudGlvbnMgZm9yIG1vc3Qgb3B0aW9u czoKKysKKytAdGFibGUgQGNvZGUKKytAaXRlbSAtLW9wdGlvbj1AdmFye3ZhbHVlfQorK0BpdGVt IC0tb3B0aW9uIEB2YXJ7dmFsdWV9CisrQGl0ZW0gLW9wdGlvbj1AdmFye3ZhbHVlfQorK0BpdGVt IC1vcHRpb24gQHZhcnt2YWx1ZX0KKytAaXRlbSAtLW89QHZhcnt2YWx1ZX0KKytAaXRlbSAtLW8g QHZhcnt2YWx1ZX0KKytAaXRlbSAtbz1AdmFye3ZhbHVlfQorK0BpdGVtIC1vIEB2YXJ7dmFsdWV9 CisrQGVuZCB0YWJsZQorIAorIEFsbCB0aGUgb3B0aW9ucyBhbmQgY29tbWFuZCBsaW5lIGFyZ3Vt ZW50cyB5b3UgZ2l2ZSBhcmUgcHJvY2Vzc2VkCisgaW4gc2VxdWVudGlhbCBvcmRlci4gIFRoZSBv cmRlciBtYWtlcyBhIGRpZmZlcmVuY2Ugd2hlbiB0aGUgQG9wdGlvbnsteH0KKyBvcHRpb24gaXMg dXNlZC4KKyAKKyBAdGFibGUgQGVudgorLUBpdGVtIC1oZWxwCisrQGl0ZW0gLS1oZWxwCisgQGl0 ZW14IC1oCisgTGlzdCBhbGwgb3B0aW9ucywgd2l0aCBicmllZiBleHBsYW5hdGlvbnMuCisgCist QGl0ZW0gLXN5bWJvbHM9QHZhcntmaWxlfQorK0BpdGVtIC0tc3ltYm9scz1AdmFye2ZpbGV9Cisg QGl0ZW14IC1zIEB2YXJ7ZmlsZX0KKy1SZWFkIHN5bWJvbCB0YWJsZSBmcm9tIGZpbGUgQHZhcntm aWxlfS4KKytSZWFkIHN5bWJvbCB0YWJsZSBmcm9tIEB2YXJ7ZmlsZX0uCisgCistQGl0ZW0gLXdy aXRlCisrQGl0ZW0gLS13cml0ZQorIEVuYWJsZSB3cml0aW5nIGludG8gZXhlY3V0YWJsZSBhbmQg Y29yZSBmaWxlcy4KKyAKKy1AaXRlbSAtZXhlYz1AdmFye2ZpbGV9CisrQGl0ZW0gLS1leGVjPUB2 YXJ7ZmlsZX0KKyBAaXRlbXggLWUgQHZhcntmaWxlfQorLVVzZSBmaWxlIEB2YXJ7ZmlsZX0gYXMg dGhlIGV4ZWN1dGFibGUgZmlsZSB0byBleGVjdXRlIHdoZW4KKytVc2UgQHZhcntmaWxlfSBhcyB0 aGUgZXhlY3V0YWJsZSBmaWxlIHRvIGV4ZWN1dGUgd2hlbgorIGFwcHJvcHJpYXRlLCBhbmQgZm9y IGV4YW1pbmluZyBwdXJlIGRhdGEgaW4gY29uanVuY3Rpb24gd2l0aCBhIGNvcmUKKyBkdW1wLgor IAorLUBpdGVtIC1zZT1AdmFye2ZpbGV9CistUmVhZCBzeW1ib2wgdGFibGUgZnJvbSBmaWxlIEB2 YXJ7ZmlsZX0gYW5kIHVzZSBpdCBhcyB0aGUgZXhlY3V0YWJsZQorK0BpdGVtIC0tc2U9QHZhcntm aWxlfQorK1JlYWQgc3ltYm9sIHRhYmxlIGZyb20gQHZhcntmaWxlfSBhbmQgdXNlIGl0IGFzIHRo ZSBleGVjdXRhYmxlCisgZmlsZS4KKyAKKy1AaXRlbSAtY29yZT1AdmFye2ZpbGV9CisrQGl0ZW0g LS1jb3JlPUB2YXJ7ZmlsZX0KKyBAaXRlbXggLWMgQHZhcntmaWxlfQorLVVzZSBmaWxlIEB2YXJ7 ZmlsZX0gYXMgYSBjb3JlIGR1bXAgdG8gZXhhbWluZS4KKytVc2UgQHZhcntmaWxlfSBhcyBhIGNv cmUgZHVtcCB0byBleGFtaW5lLgorIAorLUBpdGVtIC1jb21tYW5kPUB2YXJ7ZmlsZX0KKytAaXRl bSAtLWNvbW1hbmQ9QHZhcntmaWxlfQorIEBpdGVteCAteCBAdmFye2ZpbGV9CistRXhlY3V0ZSBA dmFsdWV7R0RCTn0gY29tbWFuZHMgZnJvbSBmaWxlIEB2YXJ7ZmlsZX0uCisrRXhlY3V0ZSBAdmFs dWV7R0RCTn0gY29tbWFuZHMgZnJvbSBAdmFye2ZpbGV9LgorIAorK0BpdGVtIC0tZXZhbC1jb21t YW5kPUB2YXJ7Y29tbWFuZH0KKyBAaXRlbSAtZXggQHZhcntjb21tYW5kfQorIEV4ZWN1dGUgZ2l2 ZW4gQHZhbHVle0dEQk59IEB2YXJ7Y29tbWFuZH0uCisgCistQGl0ZW0gLWRpcmVjdG9yeT1AdmFy e2RpcmVjdG9yeX0KKytAaXRlbSAtLWluaXQtZXZhbC1jb21tYW5kPUB2YXJ7Y29tbWFuZH0KKytA aXRlbSAtaWV4CisrRXhlY3V0ZSBAdmFsdWV7R0RCTn0gQHZhcntjb21tYW5kfSBiZWZvcmUgbG9h ZGluZyB0aGUgaW5mZXJpb3IuCisrCisrQGl0ZW0gLS1kaXJlY3Rvcnk9QHZhcntkaXJlY3Rvcnl9 CisgQGl0ZW14IC1kIEB2YXJ7ZGlyZWN0b3J5fQorIEFkZCBAdmFye2RpcmVjdG9yeX0gdG8gdGhl IHBhdGggdG8gc2VhcmNoIGZvciBzb3VyY2UgZmlsZXMuCisgCistQGl0ZW0gLW5oCisrQGl0ZW0g LS1uaAorIERvIG5vdCBleGVjdXRlIGNvbW1hbmRzIGZyb20gQGZpbGV7fi8uY29uZmlnL2dkYi9n ZGJpbml0fSwKKyBAZmlsZXt+Ly5nZGJpbml0fSwgQGZpbGV7fi8uY29uZmlnL2dkYi9nZGJlYXJs eWluaXR9LCBvcgorIEBmaWxle34vLmdkYmVhcmx5aW5pdH0KKyAKKy1AaXRlbSAtbngKKytAaXRl bSAtLW54CisgQGl0ZW14IC1uCisgRG8gbm90IGV4ZWN1dGUgY29tbWFuZHMgZnJvbSBhbnkgQGZp bGV7LmdkYmluaXR9IG9yCisgQGZpbGV7LmdkYmVhcmx5aW5pdH0gaW5pdGlhbGl6YXRpb24gZmls ZXMuCisgCistQGl0ZW0gLXF1aWV0CisrQGl0ZW0gLS1xdWlldAorK0BpdGVtIC0tc2lsZW50Cisg QGl0ZW14IC1xCisgYGBRdWlldCcnLiAgRG8gbm90IHByaW50IHRoZSBpbnRyb2R1Y3RvcnkgYW5k IGNvcHlyaWdodCBtZXNzYWdlcy4gIFRoZXNlCisgbWVzc2FnZXMgYXJlIGFsc28gc3VwcHJlc3Nl ZCBpbiBiYXRjaCBtb2RlLgorIAorLUBpdGVtIC1iYXRjaAorK0BpdGVtIC0tYmF0Y2gKKyBSdW4g aW4gYmF0Y2ggbW9kZS4gIEV4aXQgd2l0aCBzdGF0dXMgQGNvZGV7MH0gYWZ0ZXIgcHJvY2Vzc2lu ZyBhbGwgdGhlIGNvbW1hbmQKKyBmaWxlcyBzcGVjaWZpZWQgd2l0aCBAb3B0aW9uey14fSAoYW5k IEBmaWxley5nZGJpbml0fSwgaWYgbm90IGluaGliaXRlZCkuCisgRXhpdCB3aXRoIG5vbnplcm8g c3RhdHVzIGlmIGFuIGVycm9yIG9jY3VycyBpbiBleGVjdXRpbmcgdGhlIEB2YWx1ZXtHREJOfQor QEAgLTQ3MjMzLDExICs0NzI0NSw3MSBAQCBQcm9ncmFtIGV4aXRlZCBub3JtYWxseS4KKyAod2hp Y2ggaXMgb3JkaW5hcmlseSBpc3N1ZWQgd2hlbmV2ZXIgYSBwcm9ncmFtIHJ1bm5pbmcgdW5kZXIg QHZhbHVle0dEQk59IGNvbnRyb2wKKyB0ZXJtaW5hdGVzKSBpcyBub3QgaXNzdWVkIHdoZW4gcnVu bmluZyBpbiBiYXRjaCBtb2RlLgorIAorLUBpdGVtIC1jZD1AdmFye2RpcmVjdG9yeX0KKytAaXRl bSAtLWJhdGNoLXNpbGVudAorK1J1biBpbiBiYXRjaCBtb2RlLCBqdXN0IGxpa2UgQG9wdGlvbnst LWJhdGNofSwgYnV0IHRvdGFsbHkgc2lsZW50LiAgQWxsIEB2YWx1ZXtHREJOfQorK291dHB1dCBp cyBzdXByZXNzZWQgKHN0ZGVyciBpcyB1bmFmZmVjdGVkKS4gIFRoaXMgaXMgbXVjaCBxdWlldGVy IHRoYW4KKytAb3B0aW9uey0tc2lsZW50fSBhbmQgd291bGQgYmUgdXNlbGVzcyBmb3IgYW4gaW50 ZXJhY3RpdmUgc2Vzc2lvbi4KKysKKytUaGlzIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiB1 c2luZyB0YXJnZXRzIHRoYXQgZ2l2ZSBAc2FtcHtMb2FkaW5nIHNlY3Rpb259CisrbWVzc2FnZXMs IGZvciBleGFtcGxlLgorKworK05vdGUgdGhhdCB0YXJnZXRzIHRoYXQgZ2l2ZSB0aGVpciBvdXRw dXQgdmlhIEB2YWx1ZXtHREJOfSwgYXMgb3Bwb3NlZCB0byB3cml0aW5nCisrZGlyZWN0bHkgdG8g QGNvZGV7c3Rkb3V0fSwgd2lsbCBhbHNvIGJlIG1hZGUgc2lsZW50LgorKworK0BpdGVtIC0tYXJn cyBAdmFye3Byb2d9IFtAdmFye2FyZ2xpc3R9XQorK0NoYW5nZSBpbnRlcnByZXRhdGlvbiBvZiBj b21tYW5kIGxpbmUgc28gdGhhdCBhcmd1bWVudHMgZm9sbG93aW5nIHRoaXMKKytvcHRpb24gYXJl IHBhc3NlZCBhcyBhcmd1bWVudHMgdG8gdGhlIGluZmVyaW9yLiAgQXMgYW4gZXhhbXBsZSwgdGFr ZQorK3RoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysKKytAc21hbGxleGFtcGxlCisrZ2RiIC4vYS5v dXQgLXEKKytAZW5kIHNtYWxsZXhhbXBsZQorKworK0Bub2luZGVudAorK0l0IHdvdWxkIHN0YXJ0 IEB2YWx1ZXtHREJOfSB3aXRoIEBvcHRpb257LXF9LCBub3QgcHJpbnRpbmcgdGhlIGludHJvZHVj dG9yeSBtZXNzYWdlLiAgT24KKyt0aGUgb3RoZXIgaGFuZCwgdXNpbmc6CisrCisrQHNtYWxsZXhh bXBsZQorK2dkYiAtLWFyZ3MgLi9hLm91dCAtcQorK0BlbmQgc21hbGxleGFtcGxlCisrCisrQG5v aW5kZW50Cisrc3RhcnRzIEB2YWx1ZXtHREJOfSB3aXRoIHRoZSBpbnRyb2R1Y3RvcnkgbWVzc2Fn ZSwgYW5kIHBhc3NlcyB0aGUgb3B0aW9uIHRvIHRoZSBpbmZlcmlvci4KKysKKytAaXRlbSAtLXBp ZD1AdmFye3BpZH0KKytBdHRhY2ggQHZhbHVle0dEQk59IHRvIGFuIGFscmVhZHkgcnVubmluZyBw cm9ncmFtLCB3aXRoIHRoZSBQSUQgQHZhcntwaWR9LgorKworK0BpdGVtIC0tdHVpCisrT3BlbiB0 aGUgdGVybWluYWwgdXNlciBpbnRlcmZhY2UuCisrCisrQGl0ZW0gLS1yZWFkbm93CisrUmVhZCBh bGwgc3ltYm9scyBmcm9tIHRoZSBnaXZlbiBzeW1maWxlIG9uIHRoZSBmaXJzdCBhY2Nlc3MuCisr CisrQGl0ZW0gLS1yZWFkbmV2ZXIKKytEbyBub3QgcmVhZCBzeW1ib2wgZmlsZXMuCisrCisrQGl0 ZW0gLS1kYngKKytSdW4gaW4gREJYIGNvbXBhdGliaWxpdHkgbW9kZS4KKysKKytAaXRlbSAtLXJl dHVybi1jaGlsZC1yZXN1bHQKKytAdmFsdWV7R0RCTn0ncyBleGl0IGNvZGUgd2lsbCBiZSB0aGUg c2FtZSBhcyB0aGUgY2hpbGQncyBleGl0IGNvZGUuCisrCisrQGl0ZW0gLS1jb25maWd1cmF0aW9u CisrUHJpbnQgZGV0YWlscyBhYm91dCBHREIgY29uZmlndXJhdGlvbiBhbmQgdGhlbiBleGl0Lgor KworK0BpdGVtIC0tdmVyc2lvbgorK1ByaW50IHZlcnNpb24gaW5mb3JtYXRpb24gYW5kIHRoZW4g ZXhpdC4KKysKKytAaXRlbSAtLWNkPUB2YXJ7ZGlyZWN0b3J5fQorIFJ1biBAdmFsdWV7R0RCTn0g dXNpbmcgQHZhcntkaXJlY3Rvcnl9IGFzIGl0cyB3b3JraW5nIGRpcmVjdG9yeSwKKyBpbnN0ZWFk IG9mIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4KKyAKKy1AaXRlbSAtZnVsbG5hbWUKKytAaXRlbSAt LWRhdGEtZGlyZWN0b3J5PUB2YXJ7ZGlyZWN0b3J5fQorK0BpdGVtIC1ECisrUnVuIEB2YWx1ZXtH REJOfSB1c2luZyBAdmFye2RpcmVjdG9yeX0gYXMgaXRzIGRhdGEgZGlyZWN0b3J5LiAgVGhlIGRh dGEKKytkaXJlY3RvcnkgaXMgd2hlcmUgQHZhbHVle0dEQk59IHNlYXJjaGVzIGZvciBpdHMgYXV4 aWxpYXJ5IGZpbGVzLgorKworK0BpdGVtIC0tZnVsbG5hbWUKKyBAaXRlbXggLWYKKyBFbWFjcyBz ZXRzIHRoaXMgb3B0aW9uIHdoZW4gaXQgcnVucyBAdmFsdWV7R0RCTn0gYXMgYSBzdWJwcm9jZXNz LiAgSXQgdGVsbHMKKyBAdmFsdWV7R0RCTn0gdG8gb3V0cHV0IHRoZSBmdWxsIGZpbGUgbmFtZSBh bmQgbGluZSBudW1iZXIgaW4gYSBzdGFuZGFyZCwKK0BAIC00NzI0OCwxMSArNDczMjAsMTQgQEAg YW5kIGNoYXJhY3RlciBwb3NpdGlvbiBzZXBhcmF0ZWQgYnkgY29sb25zLCBhbmQgYSBuZXdsaW5l LiAgVGhlCisgRW1hY3MtdG8tQHZhbHVle0dEQk59IGludGVyZmFjZSBwcm9ncmFtIHVzZXMgdGhl IHR3byBAc2FtcHtcMDMyfQorIGNoYXJhY3RlcnMgYXMgYSBzaWduYWwgdG8gZGlzcGxheSB0aGUg c291cmNlIGNvZGUgZm9yIHRoZSBmcmFtZS4KKyAKKy1AaXRlbSAtYiBAdmFye2Jwc30KKytAaXRl bSAtYiBAdmFye2JhdWRyYXRlfQorIFNldCB0aGUgbGluZSBzcGVlZCAoYmF1ZCByYXRlIG9yIGJp dHMgcGVyIHNlY29uZCkgb2YgYW55IHNlcmlhbAorIGludGVyZmFjZSB1c2VkIGJ5IEB2YWx1ZXtH REJOfSBmb3IgcmVtb3RlIGRlYnVnZ2luZy4KKyAKKy1AaXRlbSAtdHR5PUB2YXJ7ZGV2aWNlfQor K0BpdGVtIC1sIEB2YXJ7dGltZW91dH0KKytTZXQgdGltZW91dCwgaW4gc2Vjb25kcywgZm9yIHJl bW90ZSBkZWJ1Z2dpbmcuCisrCisrQGl0ZW0gLS10dHk9QHZhcntkZXZpY2V9CisgUnVuIHVzaW5n IEB2YXJ7ZGV2aWNlfSBmb3IgeW91ciBwcm9ncmFtJ3Mgc3RhbmRhcmQgaW5wdXQgYW5kIG91dHB1 dC4KKyBAZW5kIHRhYmxlCisgQGMgbWFuIGVuZAoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6MTM1MDQz Ni10eXBlLXByaW50ZXJzLWVycm9yLnBhdGNoIGIvZ2RiLXJoYnoxMzUwNDM2LXR5cGUtcHJpbnRl cnMtZXJyb3IucGF0Y2gKaW5kZXggZDA2ZTEyMS4uMzMyMjMyNyAxMDA2NDQKLS0tIGEvZ2RiLXJo YnoxMzUwNDM2LXR5cGUtcHJpbnRlcnMtZXJyb3IucGF0Y2gKKysrIGIvZ2RiLXJoYnoxMzUwNDM2 LXR5cGUtcHJpbnRlcnMtZXJyb3IucGF0Y2gKQEAgLTQyLDIyICs0MiwyNCBAQCBkaWZmIC0tZ2l0 IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXR5cGVwcmludC5leHAgYi9nZGIvdGVzdHN1 aXRlL2dkYi5weXRobwogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS10 eXBlcHJpbnQucHkgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdHlwZXByaW50LnB5CiAt LS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdHlwZXByaW50LnB5CiArKysgYi9nZGIv dGVzdHN1aXRlL2dkYi5weXRob24vcHktdHlwZXByaW50LnB5Ci1AQCAtMTUsNyArMTUsNyBAQAor QEAgLTE1LDggKzE1LDcgQEAKICAKICBpbXBvcnQgZ2RiCiAgCistCiAtY2xhc3MgUmVjb2duaXpl cihvYmplY3QpOgogK2NsYXNzIFN0cmluZ1JlY29nbml6ZXIob2JqZWN0KToKICAgICAgZGVmIF9f aW5pdF9fKHNlbGYpOgogICAgICAgICAgc2VsZi5lbmFibGVkID0gVHJ1ZQogIAotQEAgLTMwLDYg KzMwLDI2IEBAIGNsYXNzIFN0cmluZ1R5cGVQcmludGVyKG9iamVjdCk6CitAQCAtMzIsNyArMzEs MjcgQEAgY2xhc3MgU3RyaW5nVHlwZVByaW50ZXIob2JqZWN0KToKICAgICAgICAgIHNlbGYuZW5h YmxlZCA9IFRydWUKICAKICAgICAgZGVmIGluc3RhbnRpYXRlKHNlbGYpOgogLSAgICAgICAgcmV0 dXJuIFJlY29nbml6ZXIoKQogKyAgICAgICAgcmV0dXJuIFN0cmluZ1JlY29nbml6ZXIoKQogIAor IAogIGdkYi50eXBlX3ByaW50ZXJzLmFwcGVuZChTdHJpbmdUeXBlUHJpbnRlcigpKQogKwogK2Ns YXNzIE90aGVyUmVjb2duaXplcihvYmplY3QpOgoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6MTg5ODI1 Mi1sb2FkYWJsZS1zZWN0aW9uLW91dHNpZGUtRUxGLXNlZ21lbnRzLnBhdGNoIGIvZ2RiLXJoYnox ODk4MjUyLWxvYWRhYmxlLXNlY3Rpb24tb3V0c2lkZS1FTEYtc2VnbWVudHMucGF0Y2gKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE0MTk0NTUuLjAwMDAwMDAKLS0tIGEvZ2RiLXJoYnox ODk4MjUyLWxvYWRhYmxlLXNlY3Rpb24tb3V0c2lkZS1FTEYtc2VnbWVudHMucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSw2NyArMCwwIEBACi1Gcm9tIEZFRE9SQV9QQVRDSEVTIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQotRnJvbTogS2VpdGggU2VpdHogPGtlaXRoc0ByZWRoYXQuY29tPgotRGF0 ZTogTW9uLCAxNiBOb3YgMjAyMCAxMjo0MjowOSAtMDUwMAotU3ViamVjdDogZ2RiLXJoYnoxODk4 MjUyLWxvYWRhYmxlLXNlY3Rpb24tb3V0c2lkZS1FTEYtc2VnbWVudHMucGF0Y2gKLQotOzsgQmFj a3BvcnQgb2YgIkV4Y2x1ZGUgZGVidWdpbmZvIGZpbGVzIGZyb20gJ291dHNpZGUgb2YgRUxGIHNl Z21lbnRzJwotOzsgd2FybmluZyIgIChLZWl0aCBTZWl0eikKLQotICAgIEV4Y2x1ZGUgZGVidWdp bmZvIGZpbGVzIGZyb20gIm91dHNpZGUgb2YgRUxGIHNlZ21lbnRzIiB3YXJuaW5nCi0KLSAgICBX aGVuIEdEQiBsb2FkcyBhbiBFTEYgZmlsZSwgaXQgd2lsbCB3YXJuIHdoZW4gYSBzZWN0aW9uIGlz IG5vdCBsb2NhdGVkCi0gICAgaW4gYW4gRUxGIHNlZ21lbnQ6Ci0KLSAgICAkIC4vZ2RiIC1xIC1p ZXggInNldCBidWlsZC1pZC12ZXJib3NlIDAiIC0tZXggImIgc3lzdGVtY3RsX21haW4iIC1leCAi ciIgLWJhdGNoIC0tYXJncyBzeXN0ZW1jdGwga2V4ZWMKLSAgICBCcmVha3BvaW50IDEgYXQgMHhj MjRkOiBmaWxlIC4uL3NyYy9zeXN0ZW1jdGwvc3lzdGVtY3RsLmMsIGxpbmUgODc1Mi4KLSAgICB3 YXJuaW5nOiBMb2FkYWJsZSBzZWN0aW9uICIubm90ZS5nbnUucHJvcGVydHkiIG91dHNpZGUgb2Yg RUxGIHNlZ21lbnRzCi0gICAgICBpbiAuZ251X2RlYnVnZGF0YSBmb3IgL2xpYjY0L2xpYmdjY19z LnNvLjEKLSAgICBbVGhyZWFkIGRlYnVnZ2luZyB1c2luZyBsaWJ0aHJlYWRfZGIgZW5hYmxlZF0K LSAgICBVc2luZyBob3N0IGxpYnRocmVhZF9kYiBsaWJyYXJ5ICIvbGliNjQvbGlidGhyZWFkX2Ri LnNvLjEiLgotICAgIHdhcm5pbmc6IExvYWRhYmxlIHNlY3Rpb24gIi5ub3RlLmdudS5wcm9wZXJ0 eSIgb3V0c2lkZSBvZiBFTEYgc2VnbWVudHMKLSAgICAgIGluIC5nbnVfZGVidWdkYXRhIGZvciAv bGliNjQvbGliY2FwLnNvLjIKLSAgICB3YXJuaW5nOiBMb2FkYWJsZSBzZWN0aW9uICIubm90ZS5n bnUucHJvcGVydHkiIG91dHNpZGUgb2YgRUxGIHNlZ21lbnRzCi0gICAgICBpbiAuZ251X2RlYnVn ZGF0YSBmb3IgL2xpYjY0L2xpYmFjbC5zby4xCi0gICAgd2FybmluZzogTG9hZGFibGUgc2VjdGlv biAiLm5vdGUuZ251LnByb3BlcnR5IiBvdXRzaWRlIG9mIEVMRiBzZWdtZW50cwotICAgICAgaW4g LmdudV9kZWJ1Z2RhdGEgZm9yIC9saWI2NC9saWJjcnlwdHNldHVwLnNvLjEyCi0gICAgd2Fybmlu ZzogTG9hZGFibGUgc2VjdGlvbiAiLm5vdGUuZ251LnByb3BlcnR5IiBvdXRzaWRlIG9mIEVMRiBz ZWdtZW50cwotICAgICAgaW4gLmdudV9kZWJ1Z2RhdGEgZm9yIC9saWI2NC9saWJnY3J5cHQuc28u MjAKLSAgICB3YXJuaW5nOiBMb2FkYWJsZSBzZWN0aW9uICIubm90ZS5nbnUucHJvcGVydHkiIG91 dHNpZGUgb2YgRUxGIHNlZ21lbnRzCi0gICAgICBpbiAuZ251X2RlYnVnZGF0YSBmb3IgL2xpYjY0 L2xpYmlwNHRjLnNvLjIKLSAgICBbc25pcF0KLSAgICBUaGlzIGhhcyBmZWF0dXJlIGhhcyBhbHNv IGJlZW4gcmVwb3J0ZWQgYnkgdmFyaW91cyB1c2VycywgbW9zdCBub3RhYmx5Ci0gICAgdGhlIEZl ZG9yYS1FT0wnZCBidWcgMTU1MzA4Ni4KLQotICAgIE1hcmsgV2llbGFhcmQgZXhwbGFpbnMgdGhl IGlzc3VlIHF1aXRlIG5pY2VseSBpbgotCi0gICAgICAgaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9i dWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MjQ3MTcjYzIKLQotICAgIFRoZSBzaG9ydCBvZiBpdCBp cywgdGhlIEVMRiBwcm9ncmFtIGhlYWRlcnMgZm9yIGRlYnVnaW5mbyBmaWxlcyBhcmUKLSAgICBu b3Qgc3VpdGVkIHRvIHRoaXMgcGFydGljdWxhciB1c2UgY2FzZS4gQ29uc2VxdWVudGx5LCB0aGUg d2FybmluZwotICAgIGdlbmVyYXRlZCBhYm92ZSByZWFsbHkgaXMgdXNlbGVzcyBhbmQgc2hvdWxk IGJlIGlnbm9yZWQuCi0KLSAgICBUaGlzIHBhdGNoIGZvbGxvd3MgdGhlIHNhbWUgaGV1cmlzdGlj IHRoYXQgQkZEIGl0c2VsZiB1c2VzLgotCi0gICAgZ2RiL0NoYW5nZUxvZwotICAgIDIwMjAtMTEt MTMgIEtlaXRoIFNlaXR6ICA8a2VpdGhzQHJlZGhhdC5jb20+Ci0KLSAgICAgICAgICAgIGh0dHBz Oi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9MTU1MzA4NgotICAgICAgICAg ICAgKiBlbGZyZWFkLmMgKGVsZl9zeW1maWxlX3NlZ21lbnRzKTogT21pdCAiTG9hZGFibGUgc2Vj dGlvbiAuLi4KLSAgICAgICAgICAgIG91dHNpZGUgb2YgRUxGIHNlZ21lbnRzIiB3YXJuaW5nIGZv ciBkZWJ1Z2luCi0KLWRpZmYgLS1naXQgYS9nZGIvZWxmcmVhZC5jIGIvZ2RiL2VsZnJlYWQuYwot LS0tIGEvZ2RiL2VsZnJlYWQuYwotKysrIGIvZ2RiL2VsZnJlYWQuYwotQEAgLTE0Nyw3ICsxNDcs MTIgQEAgZWxmX3N5bWZpbGVfc2VnbWVudHMgKGJmZCAqYWJmZCkKLSAJIFJlYWxWaWV3KSB1c2Ug U0hUX05PQklUUyBmb3IgdW5pbml0aWFsaXplZCBkYXRhLiAgU2luY2UgaXQgaXMKLSAJIHVuaW5p dGlhbGl6ZWQsIGl0IGRvZXNuJ3QgbmVlZCBhIHByb2dyYW0gaGVhZGVyLiAgU3VjaAotIAkgYmlu YXJpZXMgYXJlIG5vdCByZWxvY2F0YWJsZS4gICovCi0tICAgICAgaWYgKGJmZF9zZWN0aW9uX3Np emUgKHNlY3QpID4gMCAmJiBqID09IG51bV9zZWdtZW50cwotKwotKyAgICAgIC8qIEV4Y2x1ZGUg ZGVidWdpbmZvIGZpbGVzIGZyb20gdGhpcyB3YXJuaW5nLCB0b28sIHNpbmNlIHRob3NlCi0rCSBh cmUgb2Z0ZW4gbm90IHN0cmljdGx5IGNvbXBsaWFudCB3aXRoIHRoZSBzdGFuZGFyZC4gU2VlLCBl LmcuLAotKwkgbGQvMjQ3MTcgZm9yIG1vcmUgZGlzY3Vzc2lvbi4gICovCi0rICAgICAgaWYgKCFp c19kZWJ1Z2luZm9fZmlsZSAoYWJmZCkKLSsJICAmJiBiZmRfc2VjdGlvbl9zaXplIChzZWN0KSA+ IDAgJiYgaiA9PSBudW1fc2VnbWVudHMKLSAJICAmJiAoYmZkX3NlY3Rpb25fZmxhZ3MgKHNlY3Qp ICYgU0VDX0xPQUQpICE9IDApCi0gCXdhcm5pbmcgKF8oIkxvYWRhYmxlIHNlY3Rpb24gXCIlc1wi IG91dHNpZGUgb2YgRUxGIHNlZ21lbnRzIiksCi0gCQkgYmZkX3NlY3Rpb25fbmFtZSAoc2VjdCkp OwoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6MTkwNTk5Ni1maXgtb2ZmLWJ5LW9uZS1lcnJvci1pbi1h ZGFfZm9sZF9uYW1lLnBhdGNoIGIvZ2RiLXJoYnoxOTA1OTk2LWZpeC1vZmYtYnktb25lLWVycm9y LWluLWFkYV9mb2xkX25hbWUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVl MWJjNTcuLjAwMDAwMDAKLS0tIGEvZ2RiLXJoYnoxOTA1OTk2LWZpeC1vZmYtYnktb25lLWVycm9y LWluLWFkYV9mb2xkX25hbWUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw4MiArMCwwIEBACi1G cm9tIEZFRE9SQV9QQVRDSEVTIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2V2aW4g QnVldHRuZXIgPGtldmluYkByZWRoYXQuY29tPgotRGF0ZTogVHVlLCA4IERlYyAyMDIwIDE0OjA3 OjQ1IC0wNzAwCi1TdWJqZWN0OiBnZGItcmhiejE5MDU5OTYtZml4LW9mZi1ieS1vbmUtZXJyb3It aW4tYWRhX2ZvbGRfbmFtZS5wYXRjaAotCi07OyBGaXggb2ZmLWJ5LW9uZSBlcnJvciBpbiBhZGFf Zm9sZF9uYW1lLnBhdGNoIChSSCBCWiAxOTA1OTk2KQotOzsgVXBzdHJlYW0gcGF0Y2ggcHJvcG9z YWw6IGh0dHBzOi8vc291cmNld2FyZS5vcmcvcGlwZXJtYWlsL2dkYi1wYXRjaGVzLzIwMjAtRGVj ZW1iZXIvMTczOTM1Lmh0bWwKLTs7ID1mZWRvcmF0ZXN0Ci0KLUZpeCBvZmYtYnktb25lIGVycm9y IGluIGFkYV9mb2xkX25hbWUKLQotSSdtIHNlZWluZyBhIGxpYnN0ZGMrKyBhc3NlcnRpb24gZmFp bHVyZSB3aGVuIHJ1bm5pbmcgR0RCJ3MgIm1haW50IHNlbGZ0ZXN0IgotY29tbWFuZCB3aGVuIEdE QiBpcyBjb25maWd1cmVkIHdpdGggdGhlIGZvbGxvd2luZyBDRkxBR1MgYW5kIENYWEZMQUdTIGFz Ci1wYXJ0IG9mIHRoZSBjb25maWd1cmUgbGluZToKLQotICBDRkxBR1M9Jy1EX0dMSUJDWFhfREVC VUcgLWczIC1PMCcgQ1hYRkxBR1M9Jy1EX0dMSUJDWFhfREVCVUcgLWczIC1PMCcKLQotVGhpcyBp cyB3aGF0IEkgc2VlIHdoZW4gcnVubmluZyB0aGUgc2VsZiB0ZXN0czoKLQotKGdkYikgbWFpbnQg c2VsZnRlc3QKLVJ1bm5pbmcgc2VsZnRlc3QgYWFyY2g2NC1hbmFseXplLXByb2xvZ3VlLgotUnVu bmluZyBzZWxmdGVzdCBhYXJjaDY0LXByb2Nlc3MtcmVjb3JkLgotUnVubmluZyBzZWxmdGVzdCBh cm0tcmVjb3JkLgotUnVubmluZyBzZWxmdGVzdCBhcm1fYW5hbHl6ZV9wcm9sb2d1ZS4KLVJ1bm5p bmcgc2VsZnRlc3QgYXJyYXlfdmlldy4KLVJ1bm5pbmcgc2VsZnRlc3QgY2hpbGRfcGF0aC4KLVJ1 bm5pbmcgc2VsZnRlc3QgY2xpX3V0aWxzLgotUnVubmluZyBzZWxmdGVzdCBjb21tYW5kX3N0cnVj dHVyZV9pbnZhcmlhbnRzLgotUnVubmluZyBzZWxmdGVzdCBjb3B5X2JpdHdpc2UuCi1SdW5uaW5n IHNlbGZ0ZXN0IGNvcHlfaW50ZWdlcl90b19zaXplLgotUnVubmluZyBzZWxmdGVzdCBjcF9yZW1v dmVfcGFyYW1zLgotUnVubmluZyBzZWxmdGVzdCBjcF9zeW1ib2xfbmFtZV9tYXRjaGVzLgotUnVu bmluZyBzZWxmdGVzdCBkdzJfZXhwYW5kX3N5bXRhYnNfbWF0Y2hpbmcuCi0vdXNyL2luY2x1ZGUv YysrLzExL3N0cmluZ192aWV3OjIxMTogY29uc3RleHByIGNvbnN0IHZhbHVlX3R5cGUmIHN0ZDo6 YmFzaWNfc3RyaW5nX3ZpZXc8X0NoYXJULCBfVHJhaXRzPjo6b3BlcmF0b3JbXShzdGQ6OmJhc2lj X3N0cmluZ192aWV3PF9DaGFyVCwgX1RyYWl0cz46OnNpemVfdHlwZSkgY29uc3QgW3dpdGggX0No YXJUID0gY2hhcjsgX1RyYWl0cyA9IHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj47IHN0ZDo6YmFzaWNf c3RyaW5nX3ZpZXc8X0NoYXJULCBfVHJhaXRzPjo6Y29uc3RfcmVmZXJlbmNlID0gY29uc3QgY2hh ciY7IHN0ZDo6YmFzaWNfc3RyaW5nX3ZpZXc8X0NoYXJULCBfVHJhaXRzPjo6c2l6ZV90eXBlID0g bG9uZyB1bnNpZ25lZCBpbnRdOiBBc3NlcnRpb24gJ19fcG9zIDwgdGhpcy0+X01fbGVuJyBmYWls ZWQuCi1BYm9ydGVkIChjb3JlIGR1bXBlZCkKLQotSGVyZSdzIGEgcGFydGlhbCBzdGFjayB0cmFj ZToKLQotICAjMCAgMHgwMDAwN2ZmZmY2ZWY2MjYyIGluIHJhaXNlICgpIGZyb20gL2xpYjY0L2xp YmMuc28uNgotICAjMSAgMHgwMDAwN2ZmZmY2ZWRmOGE0IGluIGFib3J0ICgpIGZyb20gL2xpYjY0 L2xpYmMuc28uNgotICAjMiAgMHgwMDAwMDAwMDAwNDI0OWJmIGluIHN0ZDo6X19yZXBsYWNlbWVu dF9hc3NlcnQgKAotICAgICAgX19maWxlPTB4ZWY3NDgwICIvdXNyL2luY2x1ZGUvYysrLzExL3N0 cmluZ192aWV3IiwgX19saW5lPTIxMSwKLSAgICAgIF9fZnVuY3Rpb249MHhlZjczMjggImNvbnN0 ZXhwciBjb25zdCB2YWx1ZV90eXBlJiBzdGQ6OmJhc2ljX3N0cmluZ192aWV3PF9DaGFyVCwgX1Ry YWl0cz46Om9wZXJhdG9yW10oc3RkOjpiYXNpY19zdHJpbmdfdmlldzxfQ2hhclQsIF9UcmFpdHM+ OjpzaXplX3R5cGUpIGNvbnN0IFt3aXRoIF9DaGFyVCA9IGNoYXI7IF9UcmFpdHMgPSBzdGQ6OmNo YXJfdHJhaXRzPGNoYXI+OyBzdGQ6OmJhIi4uLiwKLSAgICAgIF9fY29uZGl0aW9uPTB4ZWY3MzEx ICJfX3BvcyA8IHRoaXMtPl9NX2xlbiIpCi0gICAgICBhdCAvdXNyL2luY2x1ZGUvYysrLzExL3g4 Nl82NC1yZWRoYXQtbGludXgvYml0cy9jKytjb25maWcuaDoyNjI0Ci0gICMzICAweDAwMDAwMDAw MDA0NTE3MzcgaW4gc3RkOjpiYXNpY19zdHJpbmdfdmlldzxjaGFyLCBzdGQ6OmNoYXJfdHJhaXRz PGNoYXI+ID46Om9wZXJhdG9yW10gKHRoaXM9MHg3ZmZmZmZmZmMyMDAsIF9fcG9zPTgpCi0gICAg ICBhdCAvdXNyL2luY2x1ZGUvYysrLzExL3N0cmluZ192aWV3OjIxMQotICAjNCAgMHgwMDAwMDAw MDAwNDMyOWY1IGluIGFkYV9mb2xkX25hbWUgKG5hbWU9ImZ1bmN0aW9uIikKLSAgICAgIGF0IC9p cm9ud29vZDEvc291cmNld2FyZS1naXQvcmF3aGlkZS1tYXN0ZXIvYmxkLy4uLy4uL3dvcmt0cmVl LW1hc3Rlci9nZGIvYWRhLWxhbmcuYzo5ODgKLQotQW5kLCBsb29raW5nIGF0IGZyYW1lICM0Li4u Ci0KLSh0b3AtZ2RiKSB1cCA0Ci0gICAgYXQgL2lyb253b29kMS9zb3VyY2V3YXJlLWdpdC9yYXdo aWRlLW1hc3Rlci9ibGQvLi4vLi4vd29ya3RyZWUtbWFzdGVyL2dkYi9hZGEtbGFuZy5jOjk4OAot OTg4CQlmb2xkX2J1ZmZlcltpXSA9IHRvbG93ZXIgKG5hbWVbaV0pOwotKHRvcC1nZGIpIHAgaQot JDEgPSA4Ci0odG9wLWdkYikgcCBuYW1lLnNpemUoKQotJDIgPSA4Ci0KLU15IHBhdGNoIGFkanVz dHMgdGhlIGNvbXBhcmlzb24gdG8gb25seSBjb3B5IG5hbWUuc2l6ZSgpIGNoYXJhY3RlcnMKLWZy b20gdGhlIHN0cmluZy4gIEkndmUgYWRkZWQgYSBzZXBhcmF0ZSBzdGF0ZW1lbnQgZm9yIE5VTCBj aGFyYWN0ZXIKLXRlcm1pbmF0aW9uIG9mIGZvbGRfYnVmZmVyW10uCi0KLWdkYi9DaGFuZ2VMb2c6 Ci0KLQkqIGFkYS1sYW5nLmMgKGFkYV9mb2xkX25hbWUpOiBGaXggb2ZmLWJ5LW9uZSBlcnJvci4K LQotZGlmZiAtLWdpdCBhL2dkYi9hZGEtbGFuZy5jIGIvZ2RiL2FkYS1sYW5nLmMKLS0tLSBhL2dk Yi9hZGEtbGFuZy5jCi0rKysgYi9nZGIvYWRhLWxhbmcuYwotQEAgLTEwMDYsOCArMTAwNiw5IEBA IGFkYV9mb2xkX25hbWUgKGdkYjo6c3RyaW5nX3ZpZXcgbmFtZSkKLSAgICAgewotICAgICAgIGlu dCBpOwotIAotLSAgICAgIGZvciAoaSA9IDA7IGkgPD0gbGVuOyBpICs9IDEpCi0rICAgICAgZm9y IChpID0gMDsgaSA8IGxlbjsgaSArPSAxKQotICAgICAgICAgZm9sZF9idWZmZXJbaV0gPSB0b2xv d2VyIChuYW1lW2ldKTsKLSsgICAgICBmb2xkX2J1ZmZlcltpXSA9ICdcMCc7Ci0gICAgIH0KLSAK LSAgIHJldHVybiBmb2xkX2J1ZmZlcjsKCmRpZmYgLS1naXQgYS9nZGItcmhiejE5MDk5MDItZnJh bWVfaWRfcC1hc3NlcnQtMS5wYXRjaCBiL2dkYi1yaGJ6MTkwOTkwMi1mcmFtZV9pZF9wLWFzc2Vy dC0xLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZGQ5OWE1Li4wMDAwMDAw Ci0tLSBhL2dkYi1yaGJ6MTkwOTkwMi1mcmFtZV9pZF9wLWFzc2VydC0xLnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsNTkzICswLDAgQEAKLUZyb20gRkVET1JBX1BBVENIRVMgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCi1Gcm9tOiBQZWRybyBBbHZlcyA8cGVkcm9AcGFsdmVzLm5ldD4KLURhdGU6 IEZyaSwgMzAgT2N0IDIwMjAgMTg6MjY6MTUgKzAxMDAKLVN1YmplY3Q6IGdkYi1yaGJ6MTkwOTkw Mi1mcmFtZV9pZF9wLWFzc2VydC0xLnBhdGNoCi0KLTs7IEJhY2twb3J0IGZpeCBmb3IgZnJhbWVf aWRfcCBhc3NlcnRpb24gZmFpbHVyZSAoUkggQlogMTkwOTkwMikuCi0KLU1ha2Ugc2NvcGVkX3Jl c3RvcmVfY3VycmVudF90aHJlYWQncyBjZHRvcnMgZXhjZXB0aW9uIGZyZWUgKFJGQykKLQotSWYg dGhlIHJlbW90ZSB0YXJnZXQgY2xvc2VzIHdoaWxlIHdlJ3JlIHJlYWRpbmcgcmVnaXN0ZXJzL21l bW9yeSBmb3IKLXJlc3RvcmluZyB0aGUgc2VsZWN0ZWQgZnJhbWUgaW4gc2NvcGVkX3Jlc3RvcmVf Y3VycmVudF90aHJlYWQncyBkdG9yLAotdGhlIGNvcnJlc3BvbmRpbmcgVEFSR0VUX0NMT1NFX0VS Uk9SIGVycm9yIGlzIHN3YWxsb3dlZCBieSB0aGUKLXNjb3BlZF9yZXN0b3JlX2N1cnJlbnRfdGhy ZWFkJ3MgZHRvciwgYmVjYXVzZSBsZXR0aW5nIGV4Y2VwdGlvbnMKLWVzY2FwZSBmcm9tIGEgZHRv ciBpcyBiYWQuICBJdCBpc24ndCBncmVhdCB0byBsb3NlIHRoYXQgZXJyb3JzIGxpa2UKLXRoYXQs IHRob3VnaC4gIEkndmUgYmVlbiB0aGlua2luZyBhYm91dCBob3cgdG8gYXZvaWQgaXQsIGFuZCBJ IGNhbWUgdXAKLXdpdGggdGhpcyBwYXRjaC4KLQotVGhlIGlkZWEgaGVyZSBpcyB0byBtYWtlIHNj b3BlZF9yZXN0b3JlX2N1cnJlbnRfdGhyZWFkJ3MgZHRvciBkbyBhcwotbGl0dGxlIGFzIHBvc3Np YmxlLCB0byBhdm9pZCBhbnkgd29yayB0aGF0IG1pZ2h0IHRocm93IGluIHRoZSBmaXJzdAotcGxh Y2UuICBBbmQgdG8gZG8gdGhhdCwgaW5zdGVhZCBvZiBoYXZpbmcgdGhlIGR0b3IgY2FsbAotcmVz dG9yZV9zZWxlY3RlZF9mcmFtZSwgd2hpY2ggcmUtZmluZHMgdGhlIHByZXZpb3VzbHkgc2VsZWN0 ZWQgZnJhbWUsCi1qdXN0IHJlY29yZCB0aGUgZnJhbWVfaWQvbGV2ZWwgb2YgdGhlIGRlc2lyZWQg c2VsZWN0ZWQgZnJhbWUsIGFuZCBoYXZlCi1nZXRfc2VsZWN0ZWRfZnJhbWUgZmluZCB0aGUgZnJh bWUgdGhlIG5leHQgdGltZSBpdCBpcyBjYWxsZWQuICBJbgotZWZmZWN0LCB0aGlzIGltcGxlbWVu dHMgbW9zdCBvZiBDYWduZXkncyBzdWdnZXN0aW9uLCBoZXJlOgotCi0gIC8qIE9uIGRlbWFuZCwg Y3JlYXRlIHRoZSBzZWxlY3RlZCBmcmFtZSBhbmQgdGhlbiByZXR1cm4gaXQuICBJZiB0aGUKLSAg ICAgc2VsZWN0ZWQgZnJhbWUgY2FuIG5vdCBiZSBjcmVhdGVkLCB0aGlzIGZ1bmN0aW9uIHByaW50 cyB0aGVuIHRocm93cwotICAgICBhbiBlcnJvci4gIFdoZW4gTUVTU0FHRSBpcyBub24tTlVMTCwg dXNlIGl0IGZvciB0aGUgZXJyb3IgbWVzc2FnZSwKLSAgICAgb3RoZXJ3aXplIHVzZSBhIGdlbmVy aWMgZXJyb3IgbWVzc2FnZS4gICovCi0gIC8qIEZJWE1FOiBjYWduZXkvMjAwMi0xMS0yODogQXQg cHJlc2VudCwgd2hlbiB0aGVyZSBpcyBubyBzZWxlY3RlZAotICAgICBmcmFtZSwgdGhpcyBmdW5j dGlvbiBhbHdheXMgcmV0dXJucyB0aGUgY3VycmVudCAoaW5uZXIgbW9zdCkgZnJhbWUuCi0gICAg IEl0IHNob3VsZCBpbnN0ZWFkLCB3aGVuIGEgdGhyZWFkIGhhcyBwcmV2aW91c2x5IGhhZCBpdHMg ZnJhbWUKLSAgICAgc2VsZWN0ZWQgKGJ1dCBub3QgcmVzdW1lZCkgYW5kIHRoZSBmcmFtZSBjYWNo ZSBpbnZhbGlkYXRlZCwgZmluZAotICAgICBhbmQgdGhlbiByZXR1cm4gdGhhdCB0aHJlYWQncyBw cmV2aW91c2x5IHNlbGVjdGVkIGZyYW1lLiAgKi8KLSAgZXh0ZXJuIHN0cnVjdCBmcmFtZV9pbmZv ICpnZXRfc2VsZWN0ZWRfZnJhbWUgKGNvbnN0IGNoYXIgKm1lc3NhZ2UpOwotCi1UaGUgb25seSB0 aGluZyBtaXNzaW5nIHRvIGZ1bGx5IGltcGxlbWVudCB0aGF0IHdvdWxkIGJlIHRvIG1ha2UKLXJl aW5pdF9mcmFtZV9jYWNoZSBqdXN0IGNsZWFyIHNlbGVjdGVkX2ZyYW1lIGluc3RlYWQgb2YgY2Fs bGluZwotc2VsZWN0X2ZyYW1lKE5VTEwpLCBhbmQgdGhlIGNhbGwgc2VsZWN0X2ZyYW1lKE5VTEwp IGV4cGxpY2l0bHkgaW4gdGhlCi1wbGFjZXMgd2hlcmUgd2UgcmVhbGx5IHdhbnRlZCByZWluaXRf ZnJhbWVfY2FjaGUgdG8gZ28gYmFjayB0byB0aGUKLWN1cnJlbnQgZnJhbWUgdG9vLiAgVGhhdCBj YW4gZG9uZSBzZXBhcmF0ZWx5LCB0aG91Z2gsIEknbSBub3QKLXByb3Bvc2luZyB0byBkbyB0aGF0 IGluIHRoaXMgcGF0Y2guCi0KLU5vdGUgdGhhdCB0aGlzIHBhdGNoIHJlbmFtZXMgcmVzdG9yZV9z ZWxlY3RlZF9mcmFtZSB0bwotbG9va3VwX3NlbGVjdGVkX2ZyYW1lLCBhbmQgYWRkcyBhIG5ldyBy ZXN0b3JlX3NlbGVjdGVkX2ZyYW1lIGZ1bmN0aW9uCi10aGF0IGRvZXNuJ3QgdGhyb3csIHRvIGJl IHBhaXJlZCB3aXRoIHRoZSBhbHNvLW5ldyBzYXZlX3NlbGVjdGVkX2ZyYW1lCi1mdW5jdGlvbi4K LQotVGhlcmUncyBhIHJlc3RvcmVfc2VsZWN0ZWRfZnJhbWUgZnVuY3Rpb24gaW4gaW5mcnVuLmMg dGhhdCBJIHRoaW5rIGNhbgotYmUgcmVwbGFjZWQgYnkgdGhlIG5ldyBvbmUgaW4gZnJhbWUuYy4K LQotQWxzbyBkb25lIGluIHRoaXMgcGF0Y2ggaXMgbWFrZSB0aGUgZ2V0X3NlbGVjdGVkX2ZyYW1l J3MgcGFyYW1ldGVyIGJlCi1vcHRpb25hbCwgc28gdGhhdCB3ZSBkb24ndCBoYXZlIHRvIHBhc3Mg ZG93biBudWxscHRyIGV4cGxpY2l0bHkgYWxsCi1vdmVyIHRoZSBwbGFjZS4KLQotbG9va3VwX3Nl bGVjdGVkX2ZyYW1lIHNob3VsZCByZWFsbHkgbW92ZSBmcm9tIHRocmVhZC5jIHRvIGZyYW1lLmMs IGJ1dAotSSBkaWRuJ3QgZG8gdGhhdCBoZXJlLCBqdXN0IHRvIGF2b2lkIGNodXJuIGluIHRoZSBw YXRjaCB3aGlsZSBpdAotY29sbGVjdHMgY29tbWVudHMuICBJIGRpZCBtYWtlIGl0IGV4dGVybiBh bmQgZGVjbGFyZWQgaXQgaW4gZnJhbWUuaAotYWxyZWFkeSwgcHJlcGFyaW5nIGZvciB0aGUgbW92 ZS4gIEkgd2lsbCBkbyB0aGUgbW92ZSBhcyBhIGZvbGxvdyB1cAotcGF0Y2ggaWYgcGVvcGxlIGFn cmVlIHdpdGggdGhpcyBhcHByb2FjaC4KLQotSW5jaWRlbnRhbGx5LCB0aGlzIHBhdGNoIGFsb25l IHdvdWxkIGZpeCB0aGUgY3Jhc2hlcyBmaXhlZCBieSB0aGUKLXByZXZpb3VzIHBhdGNoZXMgaW4g dGhlIHNlcmllcywgYmVjYXVzZSB3aXRoIHRoaXMsCi1zY29wZWRfcmVzdG9yZV9jdXJyZW50X3Ro cmVhZCdzIGNvbnN0cnVjdG9yIGRvZXNuJ3QgdGhyb3cgZWl0aGVyLgotCi1nZGIvQ2hhbmdlTG9n OgotCi0JKiBibG9ja2ZyYW1lLmMgKGJsb2NrX2lubmVybW9zdF9mcmFtZSk6IFVzZSBnZXRfc2Vs ZWN0ZWRfZnJhbWUuCi0JKiBmcmFtZS5jCi0JKHNjb3BlZF9yZXN0b3JlX3NlbGVjdGVkX2ZyYW1l OjpzY29wZWRfcmVzdG9yZV9zZWxlY3RlZF9mcmFtZSk6Ci0JVXNlIHNhdmVfc2VsZWN0ZWRfZnJh bWUuICBTYXZlIGxhbmd1YWdlIGFzIHdlbGwuCi0JKHNjb3BlZF9yZXN0b3JlX3NlbGVjdGVkX2Zy YW1lOjp+c2NvcGVkX3Jlc3RvcmVfc2VsZWN0ZWRfZnJhbWUpOgotCVVzZSByZXN0b3JlX3NlbGVj dGVkX2ZyYW1lLCBhbmQgcmVzdG9yZSBsYW5ndWFnZSBhcyB3ZWxsLgotCShzZWxlY3RlZF9mcmFt ZV9pZCwgc2VsZWN0ZWRfZnJhbWVfbGV2ZWwpOiBOZXcuCi0JKHNlbGVjdGVkX2ZyYW1lKTogVXBk YXRlIGNvbW1lbnRzLgotCShzYXZlX3NlbGVjdGVkX2ZyYW1lLCByZXN0b3JlX3NlbGVjdGVkX2Zy YW1lKTogTmV3LgotCShnZXRfc2VsZWN0ZWRfZnJhbWUpOiBVc2UgbG9va3VwX3NlbGVjdGVkX2Zy YW1lLgotCShnZXRfc2VsZWN0ZWRfZnJhbWVfaWZfc2V0KTogRGVsZXRlLgotCShzZWxlY3RfZnJh bWUpOiBSZWNvcmQgc2VsZWN0ZWRfZnJhbWVfbGV2ZWwgYW5kIHNlbGVjdGVkX2ZyYW1lX2lkLgot CSogZnJhbWUuaCAoc2NvcGVkX3Jlc3RvcmVfc2VsZWN0ZWRfZnJhbWUpIDxtX2xldmVsLCBtX2xh bmc+OiBOZXcKLQlmaWVsZHMuCi0JKGdldF9zZWxlY3RlZF9mcmFtZSk6IE1ha2UgJ21lc3NhZ2Un IHBhcmFtZXRlciBvcHRpb25hbC4KLQkoZ2V0X3NlbGVjdGVkX2ZyYW1lX2lmX3NldCk6IERlbGV0 ZSBkZWNsYXJhdGlvbi4KLQkoc2VsZWN0X2ZyYW1lKTogVXBkYXRlIGNvbW1lbnRzLgotCShzYXZl X3NlbGVjdGVkX2ZyYW1lLCByZXN0b3JlX3NlbGVjdGVkX2ZyYW1lKQotCShsb29rdXBfc2VsZWN0 ZWRfZnJhbWUpOiBEZWNsYXJlLgotCSogZ2RidGhyZWFkLmggKHNjb3BlZF9yZXN0b3JlX2N1cnJl bnRfdGhyZWFkKSA8bV9sYW5nPjogTmV3IGZpZWxkLgotCSogaW5mcnVuLmMgKHN0cnVjdCBpbmZj YWxsX2NvbnRyb2xfc3RhdGUpIDxzZWxlY3RlZF9mcmFtZV9sZXZlbD46Ci0JTmV3IGZpZWxkLgot CShzYXZlX2luZmNhbGxfY29udHJvbF9zdGF0ZSk6IFVzZSBzYXZlX3NlbGVjdGVkX2ZyYW1lLgot CShyZXN0b3JlX3NlbGVjdGVkX2ZyYW1lKTogRGVsZXRlLgotCShyZXN0b3JlX2luZmNhbGxfY29u dHJvbF9zdGF0ZSk6IFVzZSByZXN0b3JlX3NlbGVjdGVkX2ZyYW1lLgotCSogc3RhY2suYyAoc2Vs ZWN0X2ZyYW1lX2NvbW1hbmRfY29yZSwgZnJhbWVfY29tbWFuZF9jb3JlKTogVXNlCi0JZ2V0X3Nl bGVjdGVkX2ZyYW1lLgotCSogdGhyZWFkLmMgKHJlc3RvcmVfc2VsZWN0ZWRfZnJhbWUpOiBSZW5h bWUgdG8gLi4uCi0JKGxvb2t1cF9zZWxlY3RlZF9mcmFtZSk6IC4uLiB0aGlzIGFuZCBtYWtlIGV4 dGVybi4gIFNlbGVjdCB0aGUKLQljdXJyZW50IGZyYW1lIGlmIHRoZSBmcmFtZSBsZXZlbCBpcyAt MS4KLQkoc2NvcGVkX3Jlc3RvcmVfY3VycmVudF90aHJlYWQ6OnJlc3RvcmUpOiBBbHNvIHJlc3Rv cmUgdGhlCi0JbGFuZ3VhZ2UuCi0JKHNjb3BlZF9yZXN0b3JlX2N1cnJlbnRfdGhyZWFkOjp+c2Nv cGVkX3Jlc3RvcmVfY3VycmVudF90aHJlYWQpOgotCURvbid0IHRyeS9jYXRjaC4KLQkoc2NvcGVk X3Jlc3RvcmVfY3VycmVudF90aHJlYWQ6OnNjb3BlZF9yZXN0b3JlX2N1cnJlbnRfdGhyZWFkKToK LQlTYXZlIHRoZSBsYW5ndWFnZSBhcyB3ZWxsLiAgVXNlIHNhdmVfc2VsZWN0ZWRfZnJhbWUuCi0K LUNoYW5nZS1JZDogSTczZmQxY2ZjNDBkODUxM2MyOGU1NTk2MzgzYjdlY2Q4YmNmZTcwMGYKLQot ZGlmZiAtLWdpdCBhL2dkYi9ibG9ja2ZyYW1lLmMgYi9nZGIvYmxvY2tmcmFtZS5jCi0tLS0gYS9n ZGIvYmxvY2tmcmFtZS5jCi0rKysgYi9nZGIvYmxvY2tmcmFtZS5jCi1AQCAtNDY0LDE0ICs0NjQs MTAgQEAgZmluZF9nbnVfaWZ1bmNfdGFyZ2V0X3R5cGUgKENPUkVfQUREUiByZXNvbHZlcl9mdW5h ZGRyKQotIHN0cnVjdCBmcmFtZV9pbmZvICoKLSBibG9ja19pbm5lcm1vc3RfZnJhbWUgKGNvbnN0 IHN0cnVjdCBibG9jayAqYmxvY2spCi0gewotLSAgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lOwot LQotICAgaWYgKGJsb2NrID09IE5VTEwpCi0gICAgIHJldHVybiBOVUxMOwotIAotLSAgZnJhbWUg PSBnZXRfc2VsZWN0ZWRfZnJhbWVfaWZfc2V0ICgpOwotLSAgaWYgKGZyYW1lID09IE5VTEwpCi0t ICAgIGZyYW1lID0gZ2V0X2N1cnJlbnRfZnJhbWUgKCk7Ci0rICBmcmFtZV9pbmZvICpmcmFtZSA9 IGdldF9zZWxlY3RlZF9mcmFtZSAoKTsKLSAgIHdoaWxlIChmcmFtZSAhPSBOVUxMKQotICAgICB7 Ci0gICAgICAgY29uc3Qgc3RydWN0IGJsb2NrICpmcmFtZV9ibG9jayA9IGdldF9mcmFtZV9ibG9j ayAoZnJhbWUsIE5VTEwpOwotZGlmZiAtLWdpdCBhL2dkYi9mcmFtZS5jIGIvZ2RiL2ZyYW1lLmMK LS0tLSBhL2dkYi9mcmFtZS5jCi0rKysgYi9nZGIvZnJhbWUuYwotQEAgLTMxNywxNyArMzE3LDE1 IEBAIGZyYW1lX3N0YXNoX2ludmFsaWRhdGUgKHZvaWQpCi0gLyogU2VlIGZyYW1lLmggICovCi0g c2NvcGVkX3Jlc3RvcmVfc2VsZWN0ZWRfZnJhbWU6OnNjb3BlZF9yZXN0b3JlX3NlbGVjdGVkX2Zy YW1lICgpCi0gewotLSAgbV9maWQgPSBnZXRfZnJhbWVfaWQgKGdldF9zZWxlY3RlZF9mcmFtZSAo TlVMTCkpOwotKyAgbV9sYW5nID0gY3VycmVudF9sYW5ndWFnZS0+bGFfbGFuZ3VhZ2U7Ci0rICBz YXZlX3NlbGVjdGVkX2ZyYW1lICgmbV9maWQsICZtX2xldmVsKTsKLSB9Ci0gCi0gLyogU2VlIGZy YW1lLmggICovCi0gc2NvcGVkX3Jlc3RvcmVfc2VsZWN0ZWRfZnJhbWU6On5zY29wZWRfcmVzdG9y ZV9zZWxlY3RlZF9mcmFtZSAoKQotIHsKLS0gIGZyYW1lX2luZm8gKmZyYW1lID0gZnJhbWVfZmlu ZF9ieV9pZCAobV9maWQpOwotLSAgaWYgKGZyYW1lID09IE5VTEwpCi0tICAgIHdhcm5pbmcgKF8o IlVuYWJsZSB0byByZXN0b3JlIHByZXZpb3VzbHkgc2VsZWN0ZWQgZnJhbWUuIikpOwotLSAgZWxz ZQotLSAgICBzZWxlY3RfZnJhbWUgKGZyYW1lKTsKLSsgIHJlc3RvcmVfc2VsZWN0ZWRfZnJhbWUg KG1fZmlkLCBtX2xldmVsKTsKLSsgIHNldF9sYW5ndWFnZSAobV9sYW5nKTsKLSB9Ci0gCi0gLyog RmxhZyB0byBjb250cm9sIGRlYnVnZ2luZy4gICovCi1AQCAtMTY4NSwxMCArMTY4Myw2MyBAQCBn ZXRfY3VycmVudF9mcmFtZSAodm9pZCkKLSB9Ci0gCi0gLyogVGhlICJzZWxlY3RlZCIgc3RhY2sg ZnJhbWUgaXMgdXNlZCBieSBkZWZhdWx0IGZvciBsb2NhbCBhbmQgYXJnCi0tICAgYWNjZXNzLiAg TWF5IGJlIHplcm8sIGZvciBubyBzZWxlY3RlZCBmcmFtZS4gICovCi0tCi0rICAgYWNjZXNzLgot KwotKyAgIFRoZSAic2luZ2xlIHNvdXJjZSBvZiB0cnV0aCIgZm9yIHRoZSBzZWxlY3RlZCBmcmFt ZSBpcyB0aGUKLSsgICBTRUxFQ1RFRF9GUkFNRV9JRCAvIFNFTEVDVEVEX0ZSQU1FX0xFVkVMIHBh aXIuCi0rCi0rICAgRnJhbWUgSURzIGNhbiBiZSBzYXZlZC9yZXN0b3JlZCBhY3Jvc3MgcmVpbml0 aWFsaXppbmcgdGhlIGZyYW1lCi0rICAgY2FjaGUsIHdoaWxlIGZyYW1lX2luZm8gcG9pbnRlcnMg Y2FuJ3QgKGZyYW1lX2luZm8gb2JqZWN0cyBhcmUKLSsgICBpbnZhbGlkYXRlZCkuICBJZiB3ZSBr bm93IHRoZSBjb3JyZXNwb25kaW5nIGZyYW1lX2luZm8gb2JqZWN0LCBpdAotKyAgIGlzIGNhY2hl ZCBpbiBTRUxFQ1RFRF9GUkFNRS4KLSsKLSsgICBJZiBTRUxFQ1RFRF9GUkFNRV9JRCAvIFNFTEVD VEVEX0ZSQU1FX0xFVkVMIGFyZSBudWxsX2ZyYW1lX2lkIC8gLTEsCi0rICAgYW5kIHRoZSB0YXJn ZXQgaGFzIHN0YWNrIGFuZCBpcyBzdG9wcGVkLCB0aGUgc2VsZWN0ZWQgZnJhbWUgaXMgdGhlCi0r ICAgY3VycmVudCAoaW5uZXJtb3N0KSBmcmFtZS4gIFRoaXMgbWVhbnMgdGhhdCBTRUxFQ1RFRF9G UkFNRV9MRVZFTCBpcwotKyAgIG5ldmVyIDAgYW5kIFNFTEVDVEVEX0ZSQU1FX0lEIGlzIG5ldmVy IHRoZSBJRCBvZiB0aGUgaW5uZXJtb3N0Ci0rICAgZnJhbWUuCi0rCi0rICAgSWYgU0VMRUNURURf RlJBTUVfSUQgLyBTRUxFQ1RFRF9GUkFNRV9MRVZFTCBhcmUgbnVsbF9mcmFtZV9pZCAvIC0xLAot KyAgIGFuZCB0aGUgdGFyZ2V0IGhhcyBubyBzdGFjayBvciBpcyBleGVjdXRpbmcsIHRoZW4gdGhl cmUncyBubwotKyAgIHNlbGVjdGVkIGZyYW1lLiAgKi8KLStzdGF0aWMgZnJhbWVfaWQgc2VsZWN0 ZWRfZnJhbWVfaWQgPSBudWxsX2ZyYW1lX2lkOwotK3N0YXRpYyBpbnQgc2VsZWN0ZWRfZnJhbWVf bGV2ZWwgPSAtMTsKLSsKLSsvKiBUaGUgY2FjaGVkIGZyYW1lX2luZm8gb2JqZWN0IHBvaW50aW5n IHRvIHRoZSBzZWxlY3RlZCBmcmFtZS4KLSsgICBMb29rZWQgdXAgb24gZGVtYW5kIGJ5IGdldF9z ZWxlY3RlZF9mcmFtZS4gICovCi0gc3RhdGljIHN0cnVjdCBmcmFtZV9pbmZvICpzZWxlY3RlZF9m cmFtZTsKLSAKLSsvKiBTZWUgZnJhbWUuaC4gICovCi0rCi0rdm9pZAotK3NhdmVfc2VsZWN0ZWRf ZnJhbWUgKGZyYW1lX2lkICpmcmFtZV9pZCwgaW50ICpmcmFtZV9sZXZlbCkKLSsgIG5vZXhjZXB0 Ci0rewotKyAgKmZyYW1lX2lkID0gc2VsZWN0ZWRfZnJhbWVfaWQ7Ci0rICAqZnJhbWVfbGV2ZWwg PSBzZWxlY3RlZF9mcmFtZV9sZXZlbDsKLSt9Ci0rCi0rLyogU2VlIGZyYW1lLmguICAqLwotKwot K3ZvaWQKLStyZXN0b3JlX3NlbGVjdGVkX2ZyYW1lIChmcmFtZV9pZCBmcmFtZV9pZCwgaW50IGZy YW1lX2xldmVsKQotKyAgbm9leGNlcHQKLSt7Ci0rICAvKiBzYXZlX3NlbGVjdGVkX2ZyYW1lIG5l dmVyIHJldHVybnMgbGV2ZWwgPT0gMCwgc28gd2Ugc2hvdWxkbid0IHNlZQotKyAgICAgaXQgaGVy ZSBlaXRoZXIuICAqLwotKyAgZ2RiX2Fzc2VydCAoZnJhbWVfbGV2ZWwgIT0gMCk7Ci0rCi0rICAv KiBGUkFNRV9JRCBjYW4gYmUgbnVsbF9mcmFtZV9pZCBvbmx5IElGRiBmcmFtZV9sZXZlbCBpcyAt MS4gICovCi0rICBnZGJfYXNzZXJ0ICgoZnJhbWVfbGV2ZWwgPT0gLTEgJiYgIWZyYW1lX2lkX3Ag KGZyYW1lX2lkKSkKLSsJICAgICAgfHwgKGZyYW1lX2xldmVsICE9IC0xICYmIGZyYW1lX2lkX3Ag KGZyYW1lX2lkKSkpOwotKwotKyAgc2VsZWN0ZWRfZnJhbWVfaWQgPSBmcmFtZV9pZDsKLSsgIHNl bGVjdGVkX2ZyYW1lX2xldmVsID0gZnJhbWVfbGV2ZWw7Ci0rCi0rICAvKiBXaWxsIGJlIGxvb2tl ZCB1cCBsYXRlciBieSBnZXRfc2VsZWN0ZWRfZnJhbWUuICAqLwotKyAgc2VsZWN0ZWRfZnJhbWUg PSBudWxscHRyOwotK30KLSsKLSBib29sCi0gaGFzX3N0YWNrX2ZyYW1lcyAoKQotIHsKLUBAIC0x NzE1LDkgKzE3NjYsNyBAQCBoYXNfc3RhY2tfZnJhbWVzICgpCi0gICByZXR1cm4gdHJ1ZTsKLSB9 Ci0gCi0tLyogUmV0dXJuIHRoZSBzZWxlY3RlZCBmcmFtZS4gIEFsd2F5cyBub24tTlVMTCAodW5s ZXNzIHRoZXJlIGlzbid0IGFuCi0tICAgaW5mZXJpb3Igc3VmZmljaWVudCBmb3IgY3JlYXRpbmcg YSBmcmFtZSkgaW4gd2hpY2ggY2FzZSBhbiBlcnJvciBpcwotLSAgIHRocm93bi4gICovCi0rLyog U2VlIGZyYW1lLmguICAqLwotIAotIHN0cnVjdCBmcmFtZV9pbmZvICoKLSBnZXRfc2VsZWN0ZWRf ZnJhbWUgKGNvbnN0IGNoYXIgKm1lc3NhZ2UpCi1AQCAtMTcyNiwyNCArMTc3NSwxNCBAQCBnZXRf c2VsZWN0ZWRfZnJhbWUgKGNvbnN0IGNoYXIgKm1lc3NhZ2UpCi0gICAgIHsKLSAgICAgICBpZiAo bWVzc2FnZSAhPSBOVUxMICYmICFoYXNfc3RhY2tfZnJhbWVzICgpKQotIAllcnJvciAoKCIlcyIp LCBtZXNzYWdlKTsKLS0gICAgICAvKiBIZXkhICBEb24ndCB0cnVzdCB0aGlzLiAgSXQgc2hvdWxk IHJlYWxseSBiZSByZS1maW5kaW5nIHRoZQotLQkgbGFzdCBzZWxlY3RlZCBmcmFtZSBvZiB0aGUg Y3VycmVudGx5IHNlbGVjdGVkIHRocmVhZC4gIFRoaXMsCi0tCSB0aG91Z2gsIGlzIGJldHRlciB0 aGFuIG5vdGhpbmcuICAqLwotLSAgICAgIHNlbGVjdF9mcmFtZSAoZ2V0X2N1cnJlbnRfZnJhbWUg KCkpOwotKwotKyAgICAgIGxvb2t1cF9zZWxlY3RlZF9mcmFtZSAoc2VsZWN0ZWRfZnJhbWVfaWQs IHNlbGVjdGVkX2ZyYW1lX2xldmVsKTsKLSAgICAgfQotICAgLyogVGhlcmUgaXMgYWx3YXlzIGEg ZnJhbWUuICAqLwotICAgZ2RiX2Fzc2VydCAoc2VsZWN0ZWRfZnJhbWUgIT0gTlVMTCk7Ci0gICBy ZXR1cm4gc2VsZWN0ZWRfZnJhbWU7Ci0gfQotIAotLS8qIElmIHRoZXJlIGlzIGEgc2VsZWN0ZWQg ZnJhbWUsIHJldHVybiBpdC4gIE90aGVyd2lzZSwgcmV0dXJuIE5VTEwuICAqLwotLQotLXN0cnVj dCBmcmFtZV9pbmZvICoKLS1nZXRfc2VsZWN0ZWRfZnJhbWVfaWZfc2V0ICh2b2lkKQotLXsKLS0g IHJldHVybiBzZWxlY3RlZF9mcmFtZTsKLS19Ci0tCi0gLyogVGhpcyBpcyBhIHZhcmlhbnQgb2Yg Z2V0X3NlbGVjdGVkX2ZyYW1lKCkgd2hpY2ggY2FuIGJlIGNhbGxlZCB3aGVuCi0gICAgdGhlIGlu ZmVyaW9yIGRvZXMgbm90IGhhdmUgYSBmcmFtZTsgaW4gdGhhdCBjYXNlIGl0IHdpbGwgcmV0dXJu Ci0gICAgTlVMTCBpbnN0ZWFkIG9mIGNhbGxpbmcgZXJyb3IoKS4gICovCi1AQCAtMTc1NiwxMiAr MTc5NSw0MiBAQCBkZXByZWNhdGVkX3NhZmVfZ2V0X3NlbGVjdGVkX2ZyYW1lICh2b2lkKQotICAg cmV0dXJuIGdldF9zZWxlY3RlZF9mcmFtZSAoTlVMTCk7Ci0gfQotIAotLS8qIFNlbGVjdCBmcmFt ZSBGSSAob3IgTlVMTCAtIHRvIGludmFsaWRhdGUgdGhlIGN1cnJlbnQgZnJhbWUpLiAgKi8KLSsv KiBTZWxlY3QgZnJhbWUgRkkgKG9yIE5VTEwgLSB0byBpbnZhbGlkYXRlIHRoZSBzZWxlY3RlZCBm cmFtZSkuICAqLwotIAotIHZvaWQKLSBzZWxlY3RfZnJhbWUgKHN0cnVjdCBmcmFtZV9pbmZvICpm aSkKLSB7Ci0gICBzZWxlY3RlZF9mcmFtZSA9IGZpOwotKyAgc2VsZWN0ZWRfZnJhbWVfbGV2ZWwg PSBmcmFtZV9yZWxhdGl2ZV9sZXZlbCAoZmkpOwotKyAgaWYgKHNlbGVjdGVkX2ZyYW1lX2xldmVs ID09IDApCi0rICAgIHsKLSsgICAgICAvKiBUcmVhdCB0aGUgY3VycmVudCBmcmFtZSBlc3BlY2lh bGx5IC0tIHdlIHdhbnQgdG8gYWx3YXlzCi0rCSBzYXZlL3Jlc3RvcmUgaXQgd2l0aG91dCB3YXJu aW5nLCBldmVuIGlmIHRoZSBmcmFtZSBJRCBjaGFuZ2VzCi0rCSAoc2VlIGxvb2t1cF9zZWxlY3Rl ZF9mcmFtZSkuICBFLmcuOgotKwotKwkgIC8vIFRoZSBjdXJyZW50IGZyYW1lIGlzIHNlbGVjdGVk LCB0aGUgdGFyZ2V0IGhhZCBqdXN0IHN0b3BwZWQuCi0rCSAgewotKwkgICAgc2NvcGVkX3Jlc3Rv cmVfc2VsZWN0ZWRfZnJhbWUgcmVzdG9yZV9mcmFtZTsKLSsJICAgIHNvbWVfb3BlcmF0aW9uX3Ro YXRfY2hhbmdlc190aGVfc3RhY2sgKCk7Ci0rCSAgfQotKwkgIC8vIHNjb3BlZF9yZXN0b3JlX3Nl bGVjdGVkX2ZyYW1lJ3MgZHRvciBydW5zLCBidXQgdGhlCi0rCSAgLy8gb3JpZ2luYWwgZnJhbWVf aWQgY2FuJ3QgYmUgZm91bmQuICBObyBtYXR0ZXIgd2hldGhlciBpdAotKwkgIC8vIGlzIGZvdW5k IG9yIG5vdCwgd2Ugc3RpbGwgZW5kIHVwIHdpdGggdGhlIG5vdy1jdXJyZW50Ci0rCSAgLy8gZnJh bWUgc2VsZWN0ZWQuICBXYXJuaW5nIGluIGxvb2t1cF9zZWxlY3RlZF9mcmFtZSBpbiB0aGlzCi0r CSAgLy8gY2FzZSBzZWVtcyBwb2ludGxlc3MuCi0rCi0rCSBBbHNvIGdldF9mcmFtZV9pZCBtYXkg YWNjZXNzIHRoZSB0YXJnZXQncyByZWdpc3RlcnMvbWVtb3J5LAotKwkgYW5kIHRodXMgc2tpcHBp bmcgZ2V0X2ZyYW1lX2lkIG9wdGltaXplcyB0aGUgY29tbW9uIGNhc2UuCi0rCi0rCSBTYXZpbmcg dGhlIHNlbGVjdGVkIGZyYW1lIHRoaXMgd2F5IG1ha2VzIGdldF9zZWxlY3RlZF9mcmFtZQotKwkg YW5kIHJlc3RvcmVfY3VycmVudF9mcmFtZSByZXR1cm4vcmUtc2VsZWN0IHdoYXRldmVyIGZyYW1l IGlzCi0rCSB0aGUgaW5uZXJtb3N0IChjdXJyZW50KSB0aGVuLiAgKi8KLSsgICAgICBzZWxlY3Rl ZF9mcmFtZV9sZXZlbCA9IC0xOwotKyAgICAgIHNlbGVjdGVkX2ZyYW1lX2lkID0gbnVsbF9mcmFt ZV9pZDsKLSsgICAgfQotKyAgZWxzZQotKyAgICBzZWxlY3RlZF9mcmFtZV9pZCA9IGdldF9mcmFt ZV9pZCAoZmkpOwotKwotICAgLyogTk9URTogY2FnbmV5LzIwMDItMDUtMDQ6IEZJIGNhbiBiZSBO VUxMLiAgVGhpcyBvY2N1cnMgd2hlbiB0aGUKLSAgICAgIGZyYW1lIGlzIGJlaW5nIGludmFsaWRh dGVkLiAgKi8KLSAKLWRpZmYgLS1naXQgYS9nZGIvZnJhbWUuaCBiL2dkYi9mcmFtZS5oCi0tLS0g YS9nZGIvZnJhbWUuaAotKysrIGIvZ2RiL2ZyYW1lLmgKLUBAIC0xODYsOCArMTg2LDE0IEBAIGNs YXNzIHNjb3BlZF9yZXN0b3JlX3NlbGVjdGVkX2ZyYW1lCi0gCi0gcHJpdmF0ZToKLSAKLS0gIC8q IFRoZSBJRCBvZiB0aGUgcHJldmlvdXNseSBzZWxlY3RlZCBmcmFtZS4gICovCi0rICAvKiBUaGUg SUQgYW5kIGxldmVsIG9mIHRoZSBwcmV2aW91c2x5IHNlbGVjdGVkIGZyYW1lLiAgKi8KLSAgIHN0 cnVjdCBmcmFtZV9pZCBtX2ZpZDsKLSsgIGludCBtX2xldmVsOwotKwotKyAgLyogU2F2ZS9yZXN0 b3JlIHRoZSBsYW5ndWFnZSBhcyB3ZWxsLCBiZWNhdXNlIHNlbGVjdGluZyBhIGZyYW1lCi0rICAg ICBjaGFuZ2VzIHRoZSBjdXJyZW50IGxhbmd1YWdlIHRvIHRoZSBmcmFtZSdzIGxhbmd1YWdlIGlm ICJzZXQKLSsgICAgIGxhbmd1YWdlIGF1dG8iLiAgKi8KLSsgIGVudW0gbGFuZ3VhZ2UgbV9sYW5n OwotIH07Ci0gCi0gLyogTWV0aG9kcyBmb3IgY29uc3RydWN0aW5nIGFuZCBjb21wYXJpbmcgRnJh bWUgSURzLiAgKi8KLUBAIC0zMTYsMjQgKzMyMiw0OSBAQCBleHRlcm4gYm9vbCBoYXNfc3RhY2tf ZnJhbWVzICgpOwotICAgIG1vZGlmaWVzIHRoZSB0YXJnZXQgaW52YWxpZGF0aW5nIHRoZSBmcmFt ZSBjYWNoZSkuICAqLwotIGV4dGVybiB2b2lkIHJlaW5pdF9mcmFtZV9jYWNoZSAodm9pZCk7Ci0g Ci0tLyogT24gZGVtYW5kLCBjcmVhdGUgdGhlIHNlbGVjdGVkIGZyYW1lIGFuZCB0aGVuIHJldHVy biBpdC4gIElmIHRoZQotLSAgIHNlbGVjdGVkIGZyYW1lIGNhbiBub3QgYmUgY3JlYXRlZCwgdGhp cyBmdW5jdGlvbiBwcmludHMgdGhlbiB0aHJvd3MKLS0gICBhbiBlcnJvci4gIFdoZW4gTUVTU0FH RSBpcyBub24tTlVMTCwgdXNlIGl0IGZvciB0aGUgZXJyb3IgbWVzc2FnZSwKLSsvKiBSZXR1cm4g dGhlIHNlbGVjdGVkIGZyYW1lLiAgQWx3YXlzIHJldHVybnMgbm9uLU5VTEwuICBJZiB0aGVyZQot KyAgIGlzbid0IGFuIGluZmVyaW9yIHN1ZmZpY2llbnQgZm9yIGNyZWF0aW5nIGEgZnJhbWUsIGFu IGVycm9yIGlzCi0rICAgdGhyb3duLiAgV2hlbiBNRVNTQUdFIGlzIG5vbi1OVUxMLCB1c2UgaXQg Zm9yIHRoZSBlcnJvciBtZXNzYWdlLAotICAgIG90aGVyd2lzZSB1c2UgYSBnZW5lcmljIGVycm9y IG1lc3NhZ2UuICAqLwotIC8qIEZJWE1FOiBjYWduZXkvMjAwMi0xMS0yODogQXQgcHJlc2VudCwg d2hlbiB0aGVyZSBpcyBubyBzZWxlY3RlZAotICAgIGZyYW1lLCB0aGlzIGZ1bmN0aW9uIGFsd2F5 cyByZXR1cm5zIHRoZSBjdXJyZW50IChpbm5lciBtb3N0KSBmcmFtZS4KLSAgICBJdCBzaG91bGQg aW5zdGVhZCwgd2hlbiBhIHRocmVhZCBoYXMgcHJldmlvdXNseSBoYWQgaXRzIGZyYW1lCi0gICAg c2VsZWN0ZWQgKGJ1dCBub3QgcmVzdW1lZCkgYW5kIHRoZSBmcmFtZSBjYWNoZSBpbnZhbGlkYXRl ZCwgZmluZAotICAgIGFuZCB0aGVuIHJldHVybiB0aGF0IHRocmVhZCdzIHByZXZpb3VzbHkgc2Vs ZWN0ZWQgZnJhbWUuICAqLwotLWV4dGVybiBzdHJ1Y3QgZnJhbWVfaW5mbyAqZ2V0X3NlbGVjdGVk X2ZyYW1lIChjb25zdCBjaGFyICptZXNzYWdlKTsKLS0KLS0vKiBJZiB0aGVyZSBpcyBhIHNlbGVj dGVkIGZyYW1lLCByZXR1cm4gaXQuICBPdGhlcndpc2UsIHJldHVybiBOVUxMLiAgKi8KLS1leHRl cm4gc3RydWN0IGZyYW1lX2luZm8gKmdldF9zZWxlY3RlZF9mcmFtZV9pZl9zZXQgKHZvaWQpOwot K2V4dGVybiBzdHJ1Y3QgZnJhbWVfaW5mbyAqZ2V0X3NlbGVjdGVkX2ZyYW1lIChjb25zdCBjaGFy ICptZXNzYWdlID0gbnVsbHB0cik7Ci0gCi0tLyogU2VsZWN0IGEgc3BlY2lmaWMgZnJhbWUuICBO VUxMLCBhcHBhcmVudGx5IGltcGxpZXMgcmUtc2VsZWN0IHRoZQotLSAgIGlubmVyIG1vc3QgZnJh bWUuICAqLwotKy8qIFNlbGVjdCBhIHNwZWNpZmljIGZyYW1lLiAgTlVMTCBpbXBsaWVzIHJlLXNl bGVjdCB0aGUgaW5uZXIgbW9zdAotKyAgIGZyYW1lLiAgKi8KLSBleHRlcm4gdm9pZCBzZWxlY3Rf ZnJhbWUgKHN0cnVjdCBmcmFtZV9pbmZvICopOwotIAotKy8qIFNhdmUgdGhlIGZyYW1lIElEIGFu ZCBmcmFtZSBsZXZlbCBvZiB0aGUgc2VsZWN0ZWQgZnJhbWUgaW4gRlJBTUVfSUQKLSsgICBhbmQg RlJBTUVfTEVWRUwsIHRvIGJlIHJlc3RvcmVkIGxhdGVyIHdpdGggcmVzdG9yZV9zZWxlY3RlZF9m cmFtZS4KLSsKLSsgICBUaGlzIGlzIHByZWZlcnJlZCBvdmVyIGdldHRpbmcgdGhlIHNhbWUgaW5m byBvdXQgb2YKLSsgICBnZXRfc2VsZWN0ZWRfZnJhbWUgZGlyZWN0bHkgYmVjYXVzZSB0aGlzIGZ1 bmN0aW9uIGRvZXMgbm90IGNyZWF0ZQotKyAgIHRoZSBzZWxlY3RlZC1mcmFtZSdzIGZyYW1lX2lu Zm8gb2JqZWN0IGlmIGl0IGhhc24ndCBiZWVuIGNyZWF0ZWQKLSsgICB5ZXQsIGFuZCB0aHVzIGlz IG1vcmUgZWZmaWNpZW50IGFuZCBkb2Vzbid0IHRocm93LiAgKi8KLStleHRlcm4gdm9pZCBzYXZl X3NlbGVjdGVkX2ZyYW1lIChmcmFtZV9pZCAqZnJhbWVfaWQsIGludCAqZnJhbWVfbGV2ZWwpCi0r ICBub2V4Y2VwdDsKLSsKLSsvKiBSZXN0b3JlIHNlbGVjdGVkIGZyYW1lIGFzIHNhdmVkIHdpdGgg c2F2ZV9zZWxlY3RlZF9mcmFtZS4KLSsKLSsgICBEb2VzIG5vdCB0cnkgdG8gZmluZCB0aGUgY29y cmVzcG9uZGluZyBmcmFtZV9pbmZvIG9iamVjdC4gIEluc3RlYWQKLSsgICB0aGUgbmV4dCBjYWxs IHRvIGdldF9zZWxlY3RlZF9mcmFtZSB3aWxsIGxvb2sgaXQgdXAgYW5kIGNhY2hlIHRoZQotKyAg IHJlc3VsdC4KLSsKLSsgICBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IHRocm93LiAgSXQgaXMgZGVz aWduZWQgdG8gYmUgc2FmZSB0byBjYWxsZWQKLSsgICBmcm9tIHRoZSBkZXN0cnVjdG9ycyBvZiBS QUlJIHR5cGVzLiAgKi8KLStleHRlcm4gdm9pZCByZXN0b3JlX3NlbGVjdGVkX2ZyYW1lIChmcmFt ZV9pZCBmcmFtZV9pZCwgaW50IGZyYW1lX2xldmVsKQotKyAgbm9leGNlcHQ7Ci0rCi0rLyogTG9v a3VwIHRoZSBmcmFtZV9pbmZvIG9iamVjdCBmb3IgdGhlIHNlbGVjdGVkIGZyYW1lIEZSQU1FX0lE IC8KLSsgICBGUkFNRV9MRVZFTCBhbmQgY2FjaGUgdGhlIHJlc3VsdC4KLSsKLSsgICBJZiBGUkFN RV9MRVZFTCA+IDAgYW5kIHRoZSBvcmlnaW5hbGx5IHNlbGVjdGVkIGZyYW1lIGlzbid0IGZvdW5k LAotKyAgIHdhcm4gYW5kIHNlbGVjdCB0aGUgaW5uZXJtb3N0IChjdXJyZW50KSBmcmFtZS4gICov Ci0rZXh0ZXJuIHZvaWQgbG9va3VwX3NlbGVjdGVkX2ZyYW1lIChmcmFtZV9pZCBmcmFtZV9pZCwg aW50IGZyYW1lX2xldmVsKTsKLSsKLSAvKiBHaXZlbiBhIEZSQU1FLCByZXR1cm4gdGhlIG5leHQg KG1vcmUgaW5uZXIsIHlvdW5nZXIpIG9yIHByZXZpb3VzCi0gICAgKG1vcmUgb3V0ZXIsIG9sZGVy KSBmcmFtZS4gICovCi0gZXh0ZXJuIHN0cnVjdCBmcmFtZV9pbmZvICpnZXRfcHJldl9mcmFtZSAo c3RydWN0IGZyYW1lX2luZm8gKik7Ci1kaWZmIC0tZ2l0IGEvZ2RiL2dkYnRocmVhZC5oIGIvZ2Ri L2dkYnRocmVhZC5oCi0tLS0gYS9nZGIvZ2RidGhyZWFkLmgKLSsrKyBiL2dkYi9nZGJ0aHJlYWQu aAotQEAgLTY3Myw2ICs2NzMsMTAgQEAgY2xhc3Mgc2NvcGVkX3Jlc3RvcmVfY3VycmVudF90aHJl YWQKLSAgIGZyYW1lX2lkIG1fc2VsZWN0ZWRfZnJhbWVfaWQ7Ci0gICBpbnQgbV9zZWxlY3RlZF9m cmFtZV9sZXZlbDsKLSAgIGJvb2wgbV93YXNfc3RvcHBlZDsKLSsgIC8qIFNhdmUvcmVzdG9yZSB0 aGUgbGFuZ3VhZ2UgYXMgd2VsbCwgYmVjYXVzZSBzZWxlY3RpbmcgYSBmcmFtZQotKyAgICAgY2hh bmdlcyB0aGUgY3VycmVudCBsYW5ndWFnZSB0byB0aGUgZnJhbWUncyBsYW5ndWFnZSBpZiAic2V0 Ci0rICAgICBsYW5ndWFnZSBhdXRvIi4gICovCi0rICBlbnVtIGxhbmd1YWdlIG1fbGFuZzsKLSB9 OwotIAotIC8qIFJldHVybnMgYSBwb2ludGVyIGludG8gdGhlIHRocmVhZF9pbmZvIGNvcnJlc3Bv bmRpbmcgdG8KLWRpZmYgLS1naXQgYS9nZGIvaW5mcnVuLmMgYi9nZGIvaW5mcnVuLmMKLS0tLSBh L2dkYi9pbmZydW4uYwotKysrIGIvZ2RiL2luZnJ1bi5jCi1AQCAtOTAwNiw4ICs5MDA2LDEwIEBA IHN0cnVjdCBpbmZjYWxsX2NvbnRyb2xfc3RhdGUKLSAgIGVudW0gc3RvcF9zdGFja19raW5kIHN0 b3Bfc3RhY2tfZHVtbXkgPSBTVE9QX05PTkU7Ci0gICBpbnQgc3RvcHBlZF9ieV9yYW5kb21fc2ln bmFsID0gMDsKLSAKLS0gIC8qIElEIGlmIHRoZSBzZWxlY3RlZCBmcmFtZSB3aGVuIHRoZSBpbmZl cmlvciBmdW5jdGlvbiBjYWxsIHdhcyBtYWRlLiAgKi8KLSsgIC8qIElEIGFuZCBsZXZlbCBvZiB0 aGUgc2VsZWN0ZWQgZnJhbWUgd2hlbiB0aGUgaW5mZXJpb3IgZnVuY3Rpb24KLSsgICAgIGNhbGwg d2FzIG1hZGUuICAqLwotICAgc3RydWN0IGZyYW1lX2lkIHNlbGVjdGVkX2ZyYW1lX2lkIHt9Owot KyAgaW50IHNlbGVjdGVkX2ZyYW1lX2xldmVsID0gLTE7Ci0gfTsKLSAKLSAvKiBTYXZlIGFsbCBv ZiB0aGUgaW5mb3JtYXRpb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBpbmZlcmlvcjw9PT5nZGIKLUBA IC05MDM2LDI3ICs5MDM4LDEyIEBAIHNhdmVfaW5mY2FsbF9jb250cm9sX3N0YXRlICgpCi0gICBp bmZfc3RhdHVzLT5zdG9wX3N0YWNrX2R1bW15ID0gc3RvcF9zdGFja19kdW1teTsKLSAgIGluZl9z dGF0dXMtPnN0b3BwZWRfYnlfcmFuZG9tX3NpZ25hbCA9IHN0b3BwZWRfYnlfcmFuZG9tX3NpZ25h bDsKLSAKLS0gIGluZl9zdGF0dXMtPnNlbGVjdGVkX2ZyYW1lX2lkID0gZ2V0X2ZyYW1lX2lkIChn ZXRfc2VsZWN0ZWRfZnJhbWUgKE5VTEwpKTsKLSsgIHNhdmVfc2VsZWN0ZWRfZnJhbWUgKCZpbmZf c3RhdHVzLT5zZWxlY3RlZF9mcmFtZV9pZCwKLSsJCSAgICAgICAmaW5mX3N0YXR1cy0+c2VsZWN0 ZWRfZnJhbWVfbGV2ZWwpOwotIAotICAgcmV0dXJuIGluZl9zdGF0dXM7Ci0gfQotIAotLXN0YXRp YyB2b2lkCi0tcmVzdG9yZV9zZWxlY3RlZF9mcmFtZSAoY29uc3QgZnJhbWVfaWQgJmZpZCkKLS17 Ci0tICBmcmFtZV9pbmZvICpmcmFtZSA9IGZyYW1lX2ZpbmRfYnlfaWQgKGZpZCk7Ci0tCi0tICAv KiBJZiBpbmZfc3RhdHVzLT5zZWxlY3RlZF9mcmFtZV9pZCBpcyBOVUxMLCB0aGVyZSB3YXMgbm8g cHJldmlvdXNseQotLSAgICAgc2VsZWN0ZWQgZnJhbWUuICAqLwotLSAgaWYgKGZyYW1lID09IE5V TEwpCi0tICAgIHsKLS0gICAgICB3YXJuaW5nIChfKCJVbmFibGUgdG8gcmVzdG9yZSBwcmV2aW91 c2x5IHNlbGVjdGVkIGZyYW1lLiIpKTsKLS0gICAgICByZXR1cm47Ci0tICAgIH0KLS0KLS0gIHNl bGVjdF9mcmFtZSAoZnJhbWUpOwotLX0KLS0KLSAvKiBSZXN0b3JlIGluZmVyaW9yIHNlc3Npb24g c3RhdGUgdG8gSU5GX1NUQVRVUy4gICovCi0gCi0gdm9pZAotQEAgLTkwODQsMjEgKzkwNzEsOCBA QCByZXN0b3JlX2luZmNhbGxfY29udHJvbF9zdGF0ZSAoc3RydWN0IGluZmNhbGxfY29udHJvbF9z dGF0ZSAqaW5mX3N0YXR1cykKLSAKLSAgIGlmICh0YXJnZXRfaGFzX3N0YWNrKQotICAgICB7Ci0t ICAgICAgLyogVGhlIHBvaW50IG9mIHRoZSB0cnkvY2F0Y2ggaXMgdGhhdCBpZiB0aGUgc3RhY2sg aXMgY2xvYmJlcmVkLAotLSAgICAgICAgIHdhbGtpbmcgdGhlIHN0YWNrIG1pZ2h0IGVuY291bnRl ciBhIGdhcmJhZ2UgcG9pbnRlciBhbmQKLS0gICAgICAgICBlcnJvcigpIHRyeWluZyB0byBkZXJl ZmVyZW5jZSBpdC4gICovCi0tICAgICAgdHJ5Ci0tCXsKLS0JICByZXN0b3JlX3NlbGVjdGVkX2Zy YW1lIChpbmZfc3RhdHVzLT5zZWxlY3RlZF9mcmFtZV9pZCk7Ci0tCX0KLS0gICAgICBjYXRjaCAo Y29uc3QgZ2RiX2V4Y2VwdGlvbl9lcnJvciAmZXgpCi0tCXsKLS0JICBleGNlcHRpb25fZnByaW50 ZiAoZ2RiX3N0ZGVyciwgZXgsCi0tCQkJICAgICAiVW5hYmxlIHRvIHJlc3RvcmUgcHJldmlvdXNs eSBzZWxlY3RlZCBmcmFtZTpcbiIpOwotLQkgIC8qIEVycm9yIGluIHJlc3RvcmluZyB0aGUgc2Vs ZWN0ZWQgZnJhbWUuICBTZWxlY3QgdGhlCi0tCSAgICAgaW5uZXJtb3N0IGZyYW1lLiAgKi8KLS0J ICBzZWxlY3RfZnJhbWUgKGdldF9jdXJyZW50X2ZyYW1lICgpKTsKLS0JfQotKyAgICAgIHJlc3Rv cmVfc2VsZWN0ZWRfZnJhbWUgKGluZl9zdGF0dXMtPnNlbGVjdGVkX2ZyYW1lX2lkLAotKwkJCSAg ICAgIGluZl9zdGF0dXMtPnNlbGVjdGVkX2ZyYW1lX2xldmVsKTsKLSAgICAgfQotIAotICAgZGVs ZXRlIGluZl9zdGF0dXM7Ci1kaWZmIC0tZ2l0IGEvZ2RiL3N0YWNrLmMgYi9nZGIvc3RhY2suYwot LS0tIGEvZ2RiL3N0YWNrLmMKLSsrKyBiL2dkYi9zdGFjay5jCi1AQCAtMTg0Miw5ICsxODQyLDkg QEAgdHJhaWxpbmdfb3V0ZXJtb3N0X2ZyYW1lIChpbnQgY291bnQpCi0gc3RhdGljIHZvaWQKLSBz ZWxlY3RfZnJhbWVfY29tbWFuZF9jb3JlIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZmksIGJvb2wgaWdu b3JlZCkKLSB7Ci0tICBzdHJ1Y3QgZnJhbWVfaW5mbyAqcHJldl9mcmFtZSA9IGdldF9zZWxlY3Rl ZF9mcmFtZV9pZl9zZXQgKCk7Ci0rICBmcmFtZV9pbmZvICpwcmV2X2ZyYW1lID0gZ2V0X3NlbGVj dGVkX2ZyYW1lICgpOwotICAgc2VsZWN0X2ZyYW1lIChmaSk7Ci0tICBpZiAoZ2V0X3NlbGVjdGVk X2ZyYW1lX2lmX3NldCAoKSAhPSBwcmV2X2ZyYW1lKQotKyAgaWYgKGdldF9zZWxlY3RlZF9mcmFt ZSAoKSAhPSBwcmV2X2ZyYW1lKQotICAgICBnZGI6Om9ic2VydmVyczo6dXNlcl9zZWxlY3RlZF9j b250ZXh0X2NoYW5nZWQubm90aWZ5IChVU0VSX1NFTEVDVEVEX0ZSQU1FKTsKLSB9Ci0gCi1AQCAt MTg2MywxMCArMTg2Myw5IEBAIHNlbGVjdF9mcmFtZV9mb3JfbWkgKHN0cnVjdCBmcmFtZV9pbmZv ICpmaSkKLSBzdGF0aWMgdm9pZAotIGZyYW1lX2NvbW1hbmRfY29yZSAoc3RydWN0IGZyYW1lX2lu Zm8gKmZpLCBib29sIGlnbm9yZWQpCi0gewotLSAgc3RydWN0IGZyYW1lX2luZm8gKnByZXZfZnJh bWUgPSBnZXRfc2VsZWN0ZWRfZnJhbWVfaWZfc2V0ICgpOwotLQotKyAgZnJhbWVfaW5mbyAqcHJl dl9mcmFtZSA9IGdldF9zZWxlY3RlZF9mcmFtZSAoKTsKLSAgIHNlbGVjdF9mcmFtZSAoZmkpOwot LSAgaWYgKGdldF9zZWxlY3RlZF9mcmFtZV9pZl9zZXQgKCkgIT0gcHJldl9mcmFtZSkKLSsgIGlm IChnZXRfc2VsZWN0ZWRfZnJhbWUgKCkgIT0gcHJldl9mcmFtZSkKLSAgICAgZ2RiOjpvYnNlcnZl cnM6OnVzZXJfc2VsZWN0ZWRfY29udGV4dF9jaGFuZ2VkLm5vdGlmeSAoVVNFUl9TRUxFQ1RFRF9G UkFNRSk7Ci0gICBlbHNlCi0gICAgIHByaW50X3NlbGVjdGVkX3RocmVhZF9mcmFtZSAoY3VycmVu dF91aW91dCwgVVNFUl9TRUxFQ1RFRF9GUkFNRSk7Ci1kaWZmIC0tZ2l0IGEvZ2RiL3RocmVhZC5j IGIvZ2RiL3RocmVhZC5jCi0tLS0gYS9nZGIvdGhyZWFkLmMKLSsrKyBiL2dkYi90aHJlYWQuYwot QEAgLTEzMjUsMjAgKzEzMjUsMjYgQEAgc3dpdGNoX3RvX3RocmVhZCAocHJvY2Vzc19zdHJhdHVt X3RhcmdldCAqcHJvY190YXJnZXQsIHB0aWRfdCBwdGlkKQotICAgc3dpdGNoX3RvX3RocmVhZCAo dGhyKTsKLSB9Ci0gCi0tc3RhdGljIHZvaWQKLS1yZXN0b3JlX3NlbGVjdGVkX2ZyYW1lIChzdHJ1 Y3QgZnJhbWVfaWQgYV9mcmFtZV9pZCwgaW50IGZyYW1lX2xldmVsKQotKy8qIFNlZSBmcmFtZS5o LiAgKi8KLSsKLSt2b2lkCi0rbG9va3VwX3NlbGVjdGVkX2ZyYW1lIChzdHJ1Y3QgZnJhbWVfaWQg YV9mcmFtZV9pZCwgaW50IGZyYW1lX2xldmVsKQotIHsKLSAgIHN0cnVjdCBmcmFtZV9pbmZvICpm cmFtZSA9IE5VTEw7Ci0gICBpbnQgY291bnQ7Ci0gCi0tICAvKiBUaGlzIG1lYW5zIHRoZXJlIHdh cyBubyBzZWxlY3RlZCBmcmFtZS4gICovCi0rICAvKiBUaGlzIGVpdGhlciBtZWFucyB0aGVyZSB3 YXMgbm8gc2VsZWN0ZWQgZnJhbWUsIG9yIHRoZSBzZWxlY3RlZAotKyAgICAgZnJhbWUgd2FzIHRo ZSBjdXJyZW50IGZyYW1lLiAgSW4gZWl0aGVyIGNhc2UsIHNlbGVjdCB0aGUgY3VycmVudAotKyAg ICAgZnJhbWUuICAqLwotICAgaWYgKGZyYW1lX2xldmVsID09IC0xKQotICAgICB7Ci0tICAgICAg c2VsZWN0X2ZyYW1lIChOVUxMKTsKLSsgICAgICBzZWxlY3RfZnJhbWUgKGdldF9jdXJyZW50X2Zy YW1lICgpKTsKLSAgICAgICByZXR1cm47Ci0gICAgIH0KLSAKLS0gIGdkYl9hc3NlcnQgKGZyYW1l X2xldmVsID49IDApOwotKyAgLyogc2VsZWN0X2ZyYW1lIG5ldmVyIHNhdmVzIDAgaW4gU0VMRUNU RURfRlJBTUVfTEVWRUwsIHNvIHdlCi0rICAgICBzaG91bGRuJ3Qgc2VlIGl0IGhlcmUuICAqLwot KyAgZ2RiX2Fzc2VydCAoZnJhbWVfbGV2ZWwgPiAwKTsKLSAKLSAgIC8qIFJlc3RvcmUgYnkgbGV2 ZWwgZmlyc3QsIGNoZWNrIGlmIHRoZSBmcmFtZSBpZCBpcyB0aGUgc2FtZSBhcwotICAgICAgZXhw ZWN0ZWQuICBJZiB0aGF0IGZhaWxzLCB0cnkgcmVzdG9yaW5nIGJ5IGZyYW1lIGlkLiAgSWYgdGhh dAotQEAgLTE0MDksNjQgKzE0MTUsMjggQEAgc2NvcGVkX3Jlc3RvcmVfY3VycmVudF90aHJlYWQ6 OnJlc3RvcmUgKCkKLSAgICAgICAmJiB0YXJnZXRfaGFzX3N0YWNrCi0gICAgICAgJiYgdGFyZ2V0 X2hhc19tZW1vcnkpCi0gICAgIHJlc3RvcmVfc2VsZWN0ZWRfZnJhbWUgKG1fc2VsZWN0ZWRfZnJh bWVfaWQsIG1fc2VsZWN0ZWRfZnJhbWVfbGV2ZWwpOwotKwotKyAgc2V0X2xhbmd1YWdlIChtX2xh bmcpOwotIH0KLSAKLSBzY29wZWRfcmVzdG9yZV9jdXJyZW50X3RocmVhZDo6fnNjb3BlZF9yZXN0 b3JlX2N1cnJlbnRfdGhyZWFkICgpCi0gewotICAgaWYgKCFtX2RvbnRfcmVzdG9yZSkKLS0gICAg ewotLSAgICAgIHRyeQotLQl7Ci0tCSAgcmVzdG9yZSAoKTsKLS0JfQotLSAgICAgIGNhdGNoIChj b25zdCBnZGJfZXhjZXB0aW9uICZleCkKLS0JewotLQkgIC8qIFdlJ3JlIGluIGEgZHRvciwgdGhl cmUncyByZWFsbHkgbm90aGluZyBlbHNlIHdlIGNhbiBkbwotLQkgICAgIGJ1dCBzd2FsbG93IHRo ZSBleGNlcHRpb24uICAqLwotLQl9Ci0tICAgIH0KLSsgICAgcmVzdG9yZSAoKTsKLSB9Ci0gCi0g c2NvcGVkX3Jlc3RvcmVfY3VycmVudF90aHJlYWQ6OnNjb3BlZF9yZXN0b3JlX2N1cnJlbnRfdGhy ZWFkICgpCi0gewotICAgbV9pbmYgPSBpbmZlcmlvcl9yZWY6Om5ld19yZWZlcmVuY2UgKGN1cnJl bnRfaW5mZXJpb3IgKCkpOwotIAotKyAgbV9sYW5nID0gY3VycmVudF9sYW5ndWFnZS0+bGFfbGFu Z3VhZ2U7Ci0rCi0gICBpZiAoaW5mZXJpb3JfcHRpZCAhPSBudWxsX3B0aWQpCi0gICAgIHsKLSAg ICAgICBtX3RocmVhZCA9IHRocmVhZF9pbmZvX3JlZjo6bmV3X3JlZmVyZW5jZSAoaW5mZXJpb3Jf dGhyZWFkICgpKTsKLSAKLS0gICAgICBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWU7Ci0tCi0gICAg ICAgbV93YXNfc3RvcHBlZCA9IG1fdGhyZWFkLT5zdGF0ZSA9PSBUSFJFQURfU1RPUFBFRDsKLS0g ICAgICBpZiAobV93YXNfc3RvcHBlZAotLQkgICYmIHRhcmdldF9oYXNfcmVnaXN0ZXJzCi0tCSAg JiYgdGFyZ2V0X2hhc19zdGFjawotLQkgICYmIHRhcmdldF9oYXNfbWVtb3J5KQotLQl7Ci0tCSAg LyogV2hlbiBwcm9jZXNzaW5nIGludGVybmFsIGV2ZW50cywgdGhlcmUgbWlnaHQgbm90IGJlIGEK LS0JICAgICBzZWxlY3RlZCBmcmFtZS4gIElmIHdlIG5haXZlbHkgY2FsbCBnZXRfc2VsZWN0ZWRf ZnJhbWUKLS0JICAgICBoZXJlLCB0aGVuIHdlIGNhbiBlbmQgdXAgcmVhZGluZyBkZWJ1Z2luZm8g Zm9yIHRoZQotLQkgICAgIGN1cnJlbnQgZnJhbWUsIGJ1dCB3ZSBkb24ndCBnZW5lcmFsbHkgbmVl ZCB0aGUgZGVidWdpbmZvCi0tCSAgICAgYXQgdGhpcyBwb2ludC4gICovCi0tCSAgZnJhbWUgPSBn ZXRfc2VsZWN0ZWRfZnJhbWVfaWZfc2V0ICgpOwotLQl9Ci0tICAgICAgZWxzZQotLQlmcmFtZSA9 IE5VTEw7Ci0tCi0tICAgICAgdHJ5Ci0tCXsKLS0JICBtX3NlbGVjdGVkX2ZyYW1lX2lkID0gZ2V0 X2ZyYW1lX2lkIChmcmFtZSk7Ci0tCSAgbV9zZWxlY3RlZF9mcmFtZV9sZXZlbCA9IGZyYW1lX3Jl bGF0aXZlX2xldmVsIChmcmFtZSk7Ci0tCX0KLS0gICAgICBjYXRjaCAoY29uc3QgZ2RiX2V4Y2Vw dGlvbl9lcnJvciAmZXgpCi0tCXsKLS0JICBtX3NlbGVjdGVkX2ZyYW1lX2lkID0gbnVsbF9mcmFt ZV9pZDsKLS0JICBtX3NlbGVjdGVkX2ZyYW1lX2xldmVsID0gLTE7Ci0tCi0tCSAgLyogQmV0dGVy IGxldCB0aGlzIHByb3BhZ2F0ZS4gICovCi0tCSAgaWYgKGV4LmVycm9yID09IFRBUkdFVF9DTE9T RV9FUlJPUikKLS0JICAgIHRocm93OwotLQl9Ci0rICAgICAgc2F2ZV9zZWxlY3RlZF9mcmFtZSAo Jm1fc2VsZWN0ZWRfZnJhbWVfaWQsICZtX3NlbGVjdGVkX2ZyYW1lX2xldmVsKTsKLSAgICAgfQot IH0KLSAKCmRpZmYgLS1naXQgYS9nZGItcmhiejE5MDk5MDItZnJhbWVfaWRfcC1hc3NlcnQtMi5w YXRjaCBiL2dkYi1yaGJ6MTkwOTkwMi1mcmFtZV9pZF9wLWFzc2VydC0yLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkODA0YmJlLi4wMDAwMDAwCi0tLSBhL2dkYi1yaGJ6MTkw OTkwMi1mcmFtZV9pZF9wLWFzc2VydC0yLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTY5ICsw LDAgQEAKLUZyb20gRkVET1JBX1BBVENIRVMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9t OiBQZWRybyBBbHZlcyA8cGVkcm9AcGFsdmVzLm5ldD4KLURhdGU6IFNhdCwgMzEgT2N0IDIwMjAg MDA6Mjc6MTggKzAwMDAKLVN1YmplY3Q6IGdkYi1yaGJ6MTkwOTkwMi1mcmFtZV9pZF9wLWFzc2Vy dC0yLnBhdGNoCi0KLTs7IEJhY2twb3J0IHBhdGNoICMyIHdoaWNoIGZpeGVzIGEgZnJhbWVfaWRf cCBhc3NlcnRpb24gZmFpbHVyZSAoUkggQlogMTkwOTkwMikuCi0KLUZpeCBmcmFtZSBjeWNsZSBk ZXRlY3Rpb24KLQotVGhlIHJlY2VudCBjb21taXQgdG8gbWFrZSBzY29wZWRfcmVzdG9yZV9jdXJy ZW50X3RocmVhZCdzIGNkdG9ycwotZXhjZXB0aW9uIGZyZWUgcmVncmVzc2VkIGdkYi5iYXNlL2Vo X3JldHVybi5leHA6Ci0KLSAgQnJlYWtwb2ludCAxLCAweDAwMDAwMDAwMDA0MDEyYmIgaW4gZWgy IChnZGIvZnJhbWUuYzo2NDE6IGludGVybmFsLWVycm9yOiBmcmFtZV9pZCBnZXRfZnJhbWVfaWQo ZnJhbWVfaW5mbyopOiBBc3NlcnRpb24gYHN0YXNoZWQnIGZhaWxlZC4KLSAgQSBwcm9ibGVtIGlu dGVybmFsIHRvIEdEQiBoYXMgYmVlbiBkZXRlY3RlZCwKLSAgZnVydGhlciBkZWJ1Z2dpbmcgbWF5 IHByb3ZlIHVucmVsaWFibGUuCi0gIFF1aXQgdGhpcyBkZWJ1Z2dpbmcgc2Vzc2lvbj8gKHkgb3Ig bikgRkFJTDogZ2RiLmJhc2UvZWhfcmV0dXJuLmV4cDogaGl0IGJyZWFrcG9pbnQgKEdEQiBpbnRl cm5hbCBlcnJvcikKLQotVGhhdCB0ZXN0Y2FzZSB1c2VzIF9fYnVpbHRpbl9laF9yZXR1cm4gYW5k LCBiZWZvcmUgdGhlIHJlZ3Jlc3Npb24sIHRoZQotYmFja3RyYWNlIGF0IGVoMiBsb29rZWQgbGlr ZSB0aGlzOgotCi0gKGdkYikgYnQKLSAjMCAgMHgwMDAwMDAwMDAwNDAwNmViIGluIGVoMiAocD0w eDQwMDZlYyA8Y29udGludWF0aW9uPikgYXQgc3JjL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZWhf cmV0dXJuLmM6NTQKLSBCYWNrdHJhY2Ugc3RvcHBlZDogcHJldmlvdXMgZnJhbWUgaWRlbnRpY2Fs IHRvIHRoaXMgZnJhbWUgKGNvcnJ1cHQgc3RhY2s/KQotCi1UaGF0ICJwcmV2aW91cyBmcmFtZSBp ZGVudGljYWwgdG8gdGhpcyBmcmFtZSIgaXMgY2F1Z2h0IGJ5IHRoZSBjeWNsZQotZGV0ZWN0aW9u IGJhc2VkIG9uIGZyYW1lIGlkLgotCi1UaGUgYXNzZXJ0aW9uIGZhaWxpbmcgaXMgdGhpcyBvbmU6 Ci0KLSA2MzggICAgICAgICAgIC8qIFNpbmNlIHRoaXMgaXMgdGhlIGZpcnN0IGZyYW1lIGluIHRo ZSBjaGFpbiwgdGhpcyBzaG91bGQKLSA2MzkgICAgICAgICAgICAgIGFsd2F5cyBzdWNjZWVkLiAg Ki8KLSA2NDAgICAgICAgICAgIGJvb2wgc3Rhc2hlZCA9IGZyYW1lX3N0YXNoX2FkZCAoZmkpOwot IDY0MSAgICAgICAgICAgZ2RiX2Fzc2VydCAoc3Rhc2hlZCk7Ci0KLW9yaWdpbmFsbHkgYWRkZWQg YnkKLQotICBjb21taXQgZjI0NTUzNWNmNTgzYWU0Y2ExM2IxMGQ0N2IzYzdkMzMzNDU5M2VjZQot ICBBdXRob3I6ICAgICBQZWRybyBBbHZlcyA8cGFsdmVzQHJlZGhhdC5jb20+Ci0gIEF1dGhvckRh dGU6IE1vbiBTZXAgNSAxODo0MTozOCAyMDE2ICswMTAwCi0KLSAgICAgIEZpeCBQUjE5OTI3OiBB dm9pZCB1bndpbmRlciByZWN1cnNpb24gaWYgc25pZmZlciB1c2VzIGNhbGxzIHBhcnNlX2FuZF9l dmFsCi0KLVRoZSBhc3NlcnRpb24gaXMgZmFpbGluZyBiZWNhdXNlIGZyYW1lICMxJ3MgZnJhbWUg aWQgd2FzIHN0YXNoZWQKLWJlZm9yZSB0aGUgaWQgb2YgZnJhbWUgIzAgaXMgc3Rhc2hlZC4gIFRo ZSBmcmFtZSBpZCBvZiBmcmFtZSAjMSB3YXMKLXN0YXNoZWQgaGVyZToKLQotICh0b3AtZ2RiKSBi dAotICMwICBmcmFtZV9zdGFzaF9hZGQgKGZyYW1lPTB4MWUyNGM5MCkgYXQgc3JjL2dkYi9mcmFt ZS5jOjI3NgotICMxICAweDAwMDAwMDAwMDA2NjljMWIgaW4gZ2V0X3ByZXZfZnJhbWVfaWZfbm9f Y3ljbGUgKHRoaXNfZnJhbWU9MHgxOWY4MzcwKSBhdCBzcmMvZ2RiL2ZyYW1lLmM6MjEyMAotICMy ICAweDAwMDAwMDAwMDA2NmEzMzkgaW4gZ2V0X3ByZXZfZnJhbWVfYWx3YXlzXzEgKHRoaXNfZnJh bWU9MHgxOWY4MzcwKSBhdCBzcmMvZ2RiL2ZyYW1lLmM6MjMwMwotICMzICAweDAwMDAwMDAwMDA2 NmEzNjAgaW4gZ2V0X3ByZXZfZnJhbWVfYWx3YXlzICh0aGlzX2ZyYW1lPTB4MTlmODM3MCkgYXQg c3JjL2dkYi9mcmFtZS5jOjIzMTkKLSAjNCAgMHgwMDAwMDAwMDAwNjZiNTZjIGluIGdldF9mcmFt ZV91bndpbmRfc3RvcF9yZWFzb24gKGZyYW1lPTB4MTlmODM3MCkgYXQgc3JjL2dkYi9mcmFtZS5j OjMwMjgKLSAjNSAgMHgwMDAwMDAwMDAwNTlmOTI5IGluIGR3YXJmMl9mcmFtZV9jZmEgKHRoaXNf ZnJhbWU9MHgxOWY4MzcwKSBhdCBzcmMvZ2RiL2R3YXJmMi9mcmFtZS5jOjE0NjIKLSAjNiAgMHgw MDAwMDAwMDAwNWNlNDM0IGluIGR3YXJmX2V2YWx1YXRlX2xvY19kZXNjOjpnZXRfZnJhbWVfY2Zh ICh0aGlzPTB4N2ZmZmZmZmZjMDcwKSBhdCBzcmMvZ2RiL2R3YXJmMi9sb2MuYzo2NjYKLSAjNyAg MHgwMDAwMDAwMDAwNTk4OWE5IGluIGR3YXJmX2V4cHJfY29udGV4dDo6ZXhlY3V0ZV9zdGFja19v cCAodGhpcz0weDdmZmZmZmZmYzA3MCwgb3BfcHRyPTB4MWIyYTA1MyAiXDM2NFwwMDMiLCBvcF9l bmQ9MHgxYjJhMDUzICJcMzY0XDAwMyIpIGF0IHNyYy9nZGIvZHdhcmYyL2V4cHIuYzoxMTYxCi0g IzggIDB4MDAwMDAwMDAwMDU5NmFmNiBpbiBkd2FyZl9leHByX2NvbnRleHQ6OmV2YWwgKHRoaXM9 MHg3ZmZmZmZmZmMwNzAsIGFkZHI9MHgxYjJhMDUyICJcMjM0XDM2NFwwMDMiLCBsZW49MSkgYXQg c3JjL2dkYi9kd2FyZjIvZXhwci5jOjMwMwotICM5ICAweDAwMDAwMDAwMDA1OTdiNGUgaW4gZHdh cmZfZXhwcl9jb250ZXh0OjpleGVjdXRlX3N0YWNrX29wICh0aGlzPTB4N2ZmZmZmZmZjMDcwLCBv cF9wdHI9MHgxYjJhMDYzICIiLCBvcF9lbmQ9MHgxYjJhMDYzICIiKSBhdCBzcmMvZ2RiL2R3YXJm Mi9leHByLmM6ODY1Ci0gIzEwIDB4MDAwMDAwMDAwMDU5NmFmNiBpbiBkd2FyZl9leHByX2NvbnRl eHQ6OmV2YWwgKHRoaXM9MHg3ZmZmZmZmZmMwNzAsIGFkZHI9MHgxYjJhMDYxICJcMjIxWCIsIGxl bj0yKSBhdCBzcmMvZ2RiL2R3YXJmMi9leHByLmM6MzAzCi0gIzExIDB4MDAwMDAwMDAwMDVjOGI1 YSBpbiBkd2FyZjJfZXZhbHVhdGVfbG9jX2Rlc2NfZnVsbCAodHlwZT0weDFiNTY0ZDAsIGZyYW1l PTB4MTlmODM3MCwgZGF0YT0weDFiMmEwNjEgIlwyMjFYIiwgc2l6ZT0yLCBwZXJfY3U9MHgxYjI4 NzYwLCBwZXJfb2JqZmlsZT0weDFhODQ5MzAsIHN1Ym9ial90eXBlPTB4MWI1NjRkMCwgc3Vib2Jq X2J5dGVfb2Zmc2V0PTApIGF0IHNyYy9nZGIvZHdhcmYyL2xvYy5jOjIyNjAKLSAjMTIgMHgwMDAw MDAwMDAwNWM5MjQzIGluIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzYyAodHlwZT0weDFiNTY0ZDAs IGZyYW1lPTB4MTlmODM3MCwgZGF0YT0weDFiMmEwNjEgIlwyMjFYIiwgc2l6ZT0yLCBwZXJfY3U9 MHgxYjI4NzYwLCBwZXJfb2JqZmlsZT0weDFhODQ5MzApIGF0IHNyYy9nZGIvZHdhcmYyL2xvYy5j OjI0NDQKLSAjMTMgMHgwMDAwMDAwMDAwNWNiNzY5IGluIGxvY2V4cHJfcmVhZF92YXJpYWJsZSAo c3ltYm9sPTB4MWI1OTg0MCwgZnJhbWU9MHgxOWY4MzcwKSBhdCBzcmMvZ2RiL2R3YXJmMi9sb2Mu YzozNjg3Ci0gIzE0IDB4MDAwMDAwMDAwMDY2MzEzNyBpbiBsYW5ndWFnZV9kZWZuOjpyZWFkX3Zh cl92YWx1ZSAodGhpcz0weDEyMmVhNjAgPGNfbGFuZ3VhZ2VfZGVmbj4sIHZhcj0weDFiNTk4NDAs IHZhcl9ibG9jaz0weDAsIGZyYW1lPTB4MTlmODM3MCkgYXQgc3JjL2dkYi9maW5kdmFyLmM6NjE4 Ci0gIzE1IDB4MDAwMDAwMDAwMDY2M2MzYiBpbiByZWFkX3Zhcl92YWx1ZSAodmFyPTB4MWI1OTg0 MCwgdmFyX2Jsb2NrPTB4MCwgZnJhbWU9MHgxOWY4MzcwKSBhdCBzcmMvZ2RiL2ZpbmR2YXIuYzo4 MjIKLSAjMTYgMHgwMDAwMDAwMDAwOGM3ZDlmIGluIHJlYWRfZnJhbWVfYXJnIChmcF9vcHRzPS4u Liwgc3ltPTB4MWI1OTg0MCwgZnJhbWU9MHgxOWY4MzcwLCBhcmdwPTB4N2ZmZmZmZmZjNDcwLCBl bnRyeWFyZ3A9MHg3ZmZmZmZmZmM0OTApIGF0IHNyYy9nZGIvc3RhY2suYzo1NDIKLSAjMTcgMHgw MDAwMDAwMDAwOGM4OWNkIGluIHByaW50X2ZyYW1lX2FyZ3MgKGZwX29wdHM9Li4uLCBmdW5jPTB4 MWI1OTdjMCwgZnJhbWU9MHgxOWY4MzcwLCBudW09LTEsIHN0cmVhbT0weDFhYmE4NjApIGF0IHNy Yy9nZGIvc3RhY2suYzo4OTAKLSAjMTggMHgwMDAwMDAwMDAwOGM5YmY4IGluIHByaW50X2ZyYW1l IChmcF9vcHRzPS4uLiwgZnJhbWU9MHgxOWY4MzcwLCBwcmludF9sZXZlbD0wLCBwcmludF93aGF0 PVNSQ19BTkRfTE9DLCBwcmludF9hcmdzPTEsIHNhbD0uLi4pIGF0IHNyYy9nZGIvc3RhY2suYzox Mzk0Ci0gIzE5IDB4MDAwMDAwMDAwMDhjOTJiOSBpbiBwcmludF9mcmFtZV9pbmZvIChmcF9vcHRz PS4uLiwgZnJhbWU9MHgxOWY4MzcwLCBwcmludF9sZXZlbD0wLCBwcmludF93aGF0PVNSQ19BTkRf TE9DLCBwcmludF9hcmdzPTEsIHNldF9jdXJyZW50X3NhbD0xKSBhdCBzcmMvZ2RiL3N0YWNrLmM6 MTExOQotICMyMCAweDAwMDAwMDAwMDA4Yzc1ZjAgaW4gcHJpbnRfc3RhY2tfZnJhbWUgKGZyYW1l PTB4MTlmODM3MCwgcHJpbnRfbGV2ZWw9MCwgcHJpbnRfd2hhdD1TUkNfQU5EX0xPQywgc2V0X2N1 cnJlbnRfc2FsPTEpIGF0IHNyYy9nZGIvc3RhY2suYzozNjYKLSAjMjEgMHgwMDAwMDAwMDAwNzAy NTBiIGluIHByaW50X3N0b3BfbG9jYXRpb24gKHdzPTB4N2ZmZmZmZmZjOWUwKSBhdCBzcmMvZ2Ri L2luZnJ1bi5jOjgxMTAKLSAjMjIgMHgwMDAwMDAwMDAwNzAyNTY5IGluIHByaW50X3N0b3BfZXZl bnQgKHVpb3V0PTB4MWE4YjllMCwgZGlzcGxheXM9dHJ1ZSkgYXQgc3JjL2dkYi9pbmZydW4uYzo4 MTI2Ci0gIzIzIDB4MDAwMDAwMDAwMDk2ZDA0YiBpbiB0dWlfb25fbm9ybWFsX3N0b3AgKGJzPTB4 MWJjZDFjMCwgcHJpbnRfZnJhbWU9MSkgYXQgc3JjL2dkYi90dWkvdHVpLWludGVycC5jOjk4Ci0g Li4uCi0KLUJlZm9yZSB0aGUgY29tbWl0IHRvIG1ha2Ugc2NvcGVkX3Jlc3RvcmVfY3VycmVudF90 aHJlYWQncyBjZHRvcnMKLWV4Y2VwdGlvbiBmcmVlLCBzY29wZWRfcmVzdG9yZV9jdXJyZW50X3Ro cmVhZCdzIGR0b3Igd291bGQgY2FsbAotZ2V0X2ZyYW1lX2lkIG9uIHRoZSBzZWxlY3RlZCBmcmFt ZSwgYW5kIHdlIHVzZQotc2NvcGVkX3Jlc3RvcmVfY3VycmVudF90aHJlYWQgcGVydmFzaXZlbHku ICBUaGF0IGhhZCB0aGUgc2lkZSBlZmZlY3QKLW9mIHN0YXNoaW5nIHRoZSBmcmFtZSBpZCBvZiBm cmFtZSAjMCBiZWZvcmUgcmVhY2hpbmcgdGhlIHBhdGggc2hvd24gaW4KLXRoZSBiYWNrdHJhY2Uu ICBJLmUuLCB0aGUgZnJhbWUgaWQgb2YgZnJhbWUgIzAgaGFwcGVuZWQgdG8gYmUgc3Rhc2hlZAot YmVmb3JlIHRoZSBmcmFtZSBpZCBvZiBmcmFtZSAjMS4gIEJ1dCB0aGF0IHdhcyBieSBjaGFuY2Us IG5vdCBieQotZGVzaWduLgotCi1UaGlzIGNvbW1pdDoKLQotICBjb21taXQgMjU2YWU1ZGJjNzNk MTM0ODg1MGY4NmVlNzdhMGRjM2IwNGJjN2NjMAotICBBdXRob3I6ICAgICBLZXZpbiBCdWV0dG5l ciA8a2V2aW5iQHJlZGhhdC5jb20+Ci0gIEF1dGhvckRhdGU6IE1vbiBPY3QgMzEgMTI6NDc6NDIg MjAxNiAtMDcwMAotCi0gICAgICBTdGFzaCBmcmFtZSBpZCBvZiBjdXJyZW50IGZyYW1lIGJlZm9y ZSBzdGFzaGluZyBmcmFtZSBpZCBmb3IgcHJldmlvdXMgZnJhbWUKLQotRml4ZWQgYSBzaW1pbGFy IHByb2JsZW0sIGJ5IG1ha2luZyBzdXJlIGdldF9wcmV2X2ZyYW1lIGNvbXB1dGVzIHRoZQotZnJh bWUgaWQgb2YgdGhlIGN1cnJlbnQgZnJhbWUgYmVmb3JlIHVud2luZGluZyB0aGUgcHJldmlvdXMg ZnJhbWUsIHNvCi10aGF0IHRoZSBjeWNsZSBkZXRlY3Rpb24gd29ya3MgcHJvcGVybHkuICBUaGF0 IGZpeCBtaXNzZXMgdGhlIHNjZW5hcmlvCi13ZSdyZSBub3cgcnVubmluZyBhZ2FpbnN0LCBiZWNh dXNlIGlmIHlvdSBub3RpY2UsIHRoZSBiYWNrdHJhY2UgYWJvdmUKLXNob3dzIHRoYXQgZnJhbWUg IzQgY2FsbHMgZ2V0X3ByZXZfZnJhbWVfYWx3YXlzLCBub3QgZ2V0X3ByZXZfZnJhbWUuCi1JLmUu LCBub3RoaW5nIGlzIGNhbGxpbmcgZ2V0X2ZyYW1lX2lkIG9uIHRoZSBjdXJyZW50IGZyYW1lLgot Ci1UaGUgZml4IGhlcmUgaXMgdG8gbW92ZSBLZXZpbidzIGZpeCBkb3duIGZyb20gZ2V0X3ByZXZf ZnJhbWUgdG8KLWdldF9wcmV2X2ZyYW1lX2Fsd2F5cy4gIE9yIGFjdHVhbGx5LCBhIGJpdCBmdXJ0 aGVyIGRvd24gdG8KLWdldF9wcmV2X2ZyYW1lX2Fsd2F5c18xIC0tIG5vdGUgdGhhdCBpbmxpbmVf ZnJhbWVfdGhpc19pZCBjYWxscwotZ2V0X3ByZXZfZnJhbWVfYWx3YXlzLCBzbyB3ZSBuZWVkIHRv IGJlIGNhcmVmdWwgdG8gYXZvaWQgcmVjdXJzaW9uIGluCi10aGF0IHNjZW5hcmlvLgotCi1nZGIv Q2hhbmdlTG9nOgotCi0JKiBmcmFtZS5jIChnZXRfcHJldl9mcmFtZSk6IE1vdmUgZ2V0X2ZyYW1l X2lkIGNhbGwgZnJvbSBoZXJlIC4uLgotCShnZXRfcHJldl9mcmFtZV9hbHdheXNfMSk6IC4uLiB0 byBoZXJlLgotCSogaW5saW5lLWZyYW1lLmMgKGlubGluZV9mcmFtZV90aGlzX2lkKTogTWVudGlv bgotCWdldF9wcmV2X2ZyYW1lX2Fsd2F5c18xIGluIGNvbW1lbnQuCi0KLUNoYW5nZS1JZDogSWQ5 NjBjOThhYjJkMDcyYzQ4YTQzNmMzZWIxNjBjYzRiMmE1Y2ZkMWQKLQotZGlmZiAtLWdpdCBhL2dk Yi9mcmFtZS5jIGIvZ2RiL2ZyYW1lLmMKLS0tLSBhL2dkYi9mcmFtZS5jCi0rKysgYi9nZGIvZnJh bWUuYwotQEAgLTIxMzMsNiArMjEzMywyMyBAQCBnZXRfcHJldl9mcmFtZV9hbHdheXNfMSAoc3Ry dWN0IGZyYW1lX2luZm8gKnRoaXNfZnJhbWUpCi0gICBpZiAoZ2V0X2ZyYW1lX3R5cGUgKHRoaXNf ZnJhbWUpID09IElOTElORV9GUkFNRSkKLSAgICAgcmV0dXJuIGdldF9wcmV2X2ZyYW1lX2lmX25v X2N5Y2xlICh0aGlzX2ZyYW1lKTsKLSAKLSsgIC8qIElmIHRoaXNfZnJhbWUgaXMgdGhlIGN1cnJl bnQgZnJhbWUsIHRoZW4gY29tcHV0ZSBhbmQgc3Rhc2ggaXRzCi0rICAgICBmcmFtZSBpZCBwcmlv ciB0byBmZXRjaGluZyBhbmQgY29tcHV0aW5nIHRoZSBmcmFtZSBpZCBvZiB0aGUKLSsgICAgIHBy ZXZpb3VzIGZyYW1lLiAgT3RoZXJ3aXNlLCB0aGUgY3ljbGUgZGV0ZWN0aW9uIGNvZGUgaW4KLSsg ICAgIGdldF9wcmV2X2ZyYW1lX2lmX25vX2N5Y2xlKCkgd2lsbCBub3Qgd29yayBjb3JyZWN0bHku ICBXaGVuCi0rICAgICBnZXRfZnJhbWVfaWQoKSBpcyBjYWxsZWQgbGF0ZXIgb24sIGFuIGFzc2Vy dGlvbiBlcnJvciB3aWxsIGJlCi0rICAgICB0cmlnZ2VyZWQgaW4gdGhlIGV2ZW50IG9mIGEgY3lj bGUgYmV0d2VlbiB0aGUgY3VycmVudCBmcmFtZSBhbmQKLSsgICAgIGl0cyBwcmV2aW91cyBmcmFt ZS4KLSsKLSsgICAgIE5vdGUgd2UgZG8gdGhpcyBhZnRlciB0aGUgSU5MSU5FX0ZSQU1FIGNoZWNr IGFib3ZlLiAgVGhhdCBpcwotKyAgICAgYmVjYXVzZSB0aGUgaW5saW5lIGZyYW1lJ3MgZnJhbWUg aWQgY29tcHV0YXRpb24gbmVlZHMgdG8gZmV0Y2gKLSsgICAgIHRoZSBmcmFtZSBpZCBvZiBpdHMg cHJldmlvdXMgcmVhbCBzdGFjayBmcmFtZS4gIEkuZS4sIHdlIG5lZWQgdG8KLSsgICAgIGF2b2lk IHJlY3Vyc2lvbiBpbiB0aGF0IGNhc2UuICBUaGlzIGlzIE9LIHNpbmNlIHdlJ3JlIHN1cmUgdGhl Ci0rICAgICBpbmxpbmUgZnJhbWUgd29uJ3QgY3JlYXRlIGEgY3ljbGUgd2l0aCB0aGUgcmVhbCBz dGFjayBmcmFtZS4gIFNlZQotKyAgICAgaW5saW5lX2ZyYW1lX3RoaXNfaWQuICAqLwotKyAgaWYg KHRoaXNfZnJhbWUtPmxldmVsID09IDApCi0rICAgIGdldF9mcmFtZV9pZCAodGhpc19mcmFtZSk7 Ci0rCi0gICAvKiBDaGVjayB0aGF0IHRoaXMgZnJhbWUgaXMgdW53aW5kYWJsZS4gIElmIGl0IGlz bid0LCBkb24ndCB0cnkgdG8KLSAgICAgIHVud2luZCB0byB0aGUgcHJldiBmcmFtZS4gICovCi0g ICB0aGlzX2ZyYW1lLT5zdG9wX3JlYXNvbgotQEAgLTI0MTAsMTYgKzI0MjcsNiBAQCBnZXRfcHJl dl9mcmFtZSAoc3RydWN0IGZyYW1lX2luZm8gKnRoaXNfZnJhbWUpCi0gICAgICBzb21ldGhpbmcg c2hvdWxkIGJlIGNhbGxpbmcgZ2V0X3NlbGVjdGVkX2ZyYW1lKCkgb3IKLSAgICAgIGdldF9jdXJy ZW50X2ZyYW1lKCkuICAqLwotICAgZ2RiX2Fzc2VydCAodGhpc19mcmFtZSAhPSBOVUxMKTsKLS0g IAotLSAgLyogSWYgdGhpc19mcmFtZSBpcyB0aGUgY3VycmVudCBmcmFtZSwgdGhlbiBjb21wdXRl IGFuZCBzdGFzaAotLSAgICAgaXRzIGZyYW1lIGlkIHByaW9yIHRvIGZldGNoaW5nIGFuZCBjb21w dXRpbmcgdGhlIGZyYW1lIGlkIG9mIHRoZQotLSAgICAgcHJldmlvdXMgZnJhbWUuICBPdGhlcndp c2UsIHRoZSBjeWNsZSBkZXRlY3Rpb24gY29kZSBpbgotLSAgICAgZ2V0X3ByZXZfZnJhbWVfaWZf bm9fY3ljbGUoKSB3aWxsIG5vdCB3b3JrIGNvcnJlY3RseS4gIFdoZW4KLS0gICAgIGdldF9mcmFt ZV9pZCgpIGlzIGNhbGxlZCBsYXRlciBvbiwgYW4gYXNzZXJ0aW9uIGVycm9yIHdpbGwKLS0gICAg IGJlIHRyaWdnZXJlZCBpbiB0aGUgZXZlbnQgb2YgYSBjeWNsZSBiZXR3ZWVuIHRoZSBjdXJyZW50 Ci0tICAgICBmcmFtZSBhbmQgaXRzIHByZXZpb3VzIGZyYW1lLiAgKi8KLS0gIGlmICh0aGlzX2Zy YW1lLT5sZXZlbCA9PSAwKQotLSAgICBnZXRfZnJhbWVfaWQgKHRoaXNfZnJhbWUpOwotIAotICAg ZnJhbWVfcGNfcCA9IGdldF9mcmFtZV9wY19pZl9hdmFpbGFibGUgKHRoaXNfZnJhbWUsICZmcmFt ZV9wYyk7Ci0gCi1kaWZmIC0tZ2l0IGEvZ2RiL2lubGluZS1mcmFtZS5jIGIvZ2RiL2lubGluZS1m cmFtZS5jCi0tLS0gYS9nZGIvaW5saW5lLWZyYW1lLmMKLSsrKyBiL2dkYi9pbmxpbmUtZnJhbWUu YwotQEAgLTE2MSw3ICsxNjEsOCBAQCBpbmxpbmVfZnJhbWVfdGhpc19pZCAoc3RydWN0IGZyYW1l X2luZm8gKnRoaXNfZnJhbWUsCi0gICAgICByZWFsIGZyYW1lJ3MgdGhpc19pZCBtZXRob2QuICBT byB3ZSBtdXN0IGNhbGwKLSAgICAgIGdldF9wcmV2X2ZyYW1lX2Fsd2F5cy4gIEJlY2F1c2Ugd2Ug YXJlIGlubGluZWQgaW50byBzb21lCi0gICAgICBmdW5jdGlvbiwgdGhlcmUgbXVzdCBiZSBwcmV2 aW91cyBmcmFtZXMsIHNvIHRoaXMgaXMgc2FmZSAtIGFzCi0tICAgICBsb25nIGFzIHdlJ3JlIGNh cmVmdWwgbm90IHRvIGNyZWF0ZSBhbnkgY3ljbGVzLiAgKi8KLSsgICAgIGxvbmcgYXMgd2UncmUg Y2FyZWZ1bCBub3QgdG8gY3JlYXRlIGFueSBjeWNsZXMuICBTZWUgcmVsYXRlZAotKyAgICAgY29t bWVudHMgaW4gZ2V0X3ByZXZfZnJhbWVfYWx3YXlzXzEuICAqLwotICAgKnRoaXNfaWQgPSBnZXRf ZnJhbWVfaWQgKGdldF9wcmV2X2ZyYW1lX2Fsd2F5cyAodGhpc19mcmFtZSkpOwotIAotICAgLyog V2UgbmVlZCBhIHZhbGlkIGZyYW1lIElELCBzbyB3ZSBuZWVkIHRvIGJlIGJhc2VkIG9uIGEgdmFs aWQKCmRpZmYgLS1naXQgYS9nZGItcmhiejE5MTI5ODUtbGlic3RkYysrLWFzc2VydC5wYXRjaCBi L2dkYi1yaGJ6MTkxMjk4NS1saWJzdGRjKystYXNzZXJ0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAxOTZlMzA5Li4wMDAwMDAwCi0tLSBhL2dkYi1yaGJ6MTkxMjk4NS1saWJz dGRjKystYXNzZXJ0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAotRnJvbSBG RURPUkFfUEFUQ0hFUyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtldmluIEJ1ZXR0 bmVyIDxrZXZpbmJAcmVkaGF0LmNvbT4KLURhdGU6IFdlZCwgMTcgRmViIDIwMjEgMTc6NTg6NTQg LTA3MDAKLVN1YmplY3Q6IGdkYi1yaGJ6MTkxMjk4NS1saWJzdGRjKystYXNzZXJ0LnBhdGNoCi0K LTs7IEJhY2twb3J0IGZpeCBmb3IgbGlic3RkYysrIGFzc2VydCB3aGVuIHBlcmZvcm1pbmcgdGFi IGNvbXBsZXRpb24KLTs7IChSSCBCWiAxOTEyOTg1KS4KLQotRml4IGNvbXBsZXRpb24gcmVsYXRl ZCBsaWJzdGRjKysgYXNzZXJ0IHdoZW4gdXNpbmcgLURfR0xJQkNYWF9ERUJVRwotCi1UaGlzIGNv bW1pdCBmaXhlcyBhIGxpYnN0ZGMrKyBhc3NlcnRpb24gZmFpbHVyZSBlbmNvdW50ZXJlZCB3aGVu Ci1ydW5uaW5nIGdkYi5iYXNlL2NvbXBsZXRpb24uZXhwLiAgSW4gb3JkZXIgdG8gc2VlIHRoaXMg cHJvYmxlbSwKLUdEQiBtdXN0IGJlIGJ1aWx0IHdpdGggdGhlIGZvbGxvdyBDRkxBR1MgYW5kIENY WEZMQUdTIGFzIHBhcnQKLW9mIHRoZSBjb25maWd1cmUgbGluZToKLQotICBDRkxBR1M9Jy1EX0dM SUJDWFhfREVCVUcnIENYWEZMQUdTPSctRF9HTElCQ1hYX0RFQlVHJwotCi0oQWxzbywgdGhpcyBw cm9ibGVtIHdhcyBlbmNvdW50ZXJlZCB1c2luZyBGZWRvcmEgcmF3aGlkZS4gIEl0IG1pZ2h0Ci1u b3QgYmUgcmVwcm9kdWNpYmxlIGluIEZlZG9yYSB2ZXJzaW9ucyBwcmlvciB0byBGZWRvcmEgMzQu KQotCi1Vc2luZyB0aGUgZ2RiLmJhc2UvY29tcGxldGlvbi5leHAgdGVzdCBwcm9ncmFtLCB0aGUg cHJvYmxlbSBjYW4gYmUKLW9ic2VydmVkIGFzIGZvbGxvd3M6Ci0KLVtrZXZAcmF3aGlkZS0xIGdk Yl0kIC4vZ2RiIC1xIHRlc3RzdWl0ZS9vdXRwdXRzL2dkYi5iYXNlL2NvbXBsZXRpb24vY29tcGxl dGlvbgotUmVhZGluZyBzeW1ib2xzIGZyb20gdGVzdHN1aXRlL291dHB1dHMvZ2RiLmJhc2UvY29t cGxldGlvbi9jb21wbGV0aW9uLi4uCi0oZ2RiKSBzdGFydAotVGVtcG9yYXJ5IGJyZWFrcG9pbnQg MSBhdCAweDQwMTE3OTogZmlsZSAuLi8uLi93b3JrdHJlZS1tYXN0ZXIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9icmVhay5jLCBsaW5lIDQzLgotU3RhcnRpbmcgcHJvZ3JhbTogdGVzdHN1aXRlL291 dHB1dHMvZ2RiLmJhc2UvY29tcGxldGlvbi9jb21wbGV0aW9uCi0KLVRlbXBvcmFyeSBicmVha3Bv aW50IDEsIG1haW4gKGFyZ2M9MSwgYXJndj0weDdmZmZmZmZmZDcxOCwgZW52cD0weDdmZmZmZmZm ZDcyOCkgYXQgLi4vLi4vd29ya3RyZWUtbWFzdGVyL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYnJl YWsuYzo0MwotNDMJICAgIGlmIChhcmdjID09IDEyMzQ1KSB7ICAvKiBhbiB1bmxpa2VseSB2YWx1 ZSA8IDJeMTYsIGluIGNhc2UgdW5pbml0ZWQgKi8gLyogc2V0IGJyZWFrcG9pbnQgNiBoZXJlICov Ci0oZ2RiKSBwIDxUQUI+L3Vzci9pbmNsdWRlL2MrKy8xMS9zdHJpbmdfdmlldzoyMTE6IGNvbnN0 ZXhwciBjb25zdCB2YWx1ZV90eXBlJiBzdGQ6OmJhc2ljX3N0cmluZ192aWV3PF9DaGFyVCwgX1Ry YWl0cz46Om9wZXJhdG9yW10oc3RkOjpiYXNpY19zdHJpbmdfdmlldzxfQ2hhclQsIF9UcmFpdHM+ OjpzaXplX3R5cGUpIGNvbnN0IFt3aXRoIF9DaGFyVCA9IGNoYXI7IF9UcmFpdHMgPSBzdGQ6OmNo YXJfdHJhaXRzPGNoYXI+OyBzdGQ6OmJhc2ljX3N0cmluZ192aWV3PF9DaGFyVCwgX1RyYWl0cz46 OmNvbnN0X3JlZmVyZW5jZSA9IGNvbnN0IGNoYXImOyBzdGQ6OmJhc2ljX3N0cmluZ192aWV3PF9D aGFyVCwgX1RyYWl0cz46OnNpemVfdHlwZSA9IGxvbmcgdW5zaWduZWQgaW50XTogQXNzZXJ0aW9u ICdfX3BvcyA8IHRoaXMtPl9NX2xlbicgZmFpbGVkLgotQWJvcnRlZCAoY29yZSBkdW1wZWQpCi0K LShOb3RlIHRoYXQgSSBhZGRlZCAiPFRBQj4iIHRvIG1ha2UgaXQgY2xlYXIgd2hlcmUgdGhlIHRh YiBrZXkgd2FzCi1wcmVzc2VkLikKLQotZ2RiL0NoYW5nZUxvZzoKLQotCSogYWRhLWxhbmcuYyAo YWRhX2ZvbGRfbmFtZSk6IENoZWNrIGZvciBub24tZW1wdHkgc3RyaW5nIHByaW9yCi0JdG8gYWNj ZXNzaW5nIGl0LgotCShhZGFfbG9va3VwX25hbWVfaW5mbyk6IExpa2V3aXNlLgotCi1kaWZmIC0t Z2l0IGEvZ2RiL2FkYS1sYW5nLmMgYi9nZGIvYWRhLWxhbmcuYwotLS0tIGEvZ2RiL2FkYS1sYW5n LmMKLSsrKyBiL2dkYi9hZGEtbGFuZy5jCi1AQCAtOTk3LDcgKzk5Nyw3IEBAIGFkYV9mb2xkX25h bWUgKGdkYjo6c3RyaW5nX3ZpZXcgbmFtZSkKLSAgIGludCBsZW4gPSBuYW1lLnNpemUgKCk7Ci0g ICBHUk9XX1ZFQ1QgKGZvbGRfYnVmZmVyLCBmb2xkX2J1ZmZlcl9zaXplLCBsZW4gKyAxKTsKLSAK LS0gIGlmIChuYW1lWzBdID09ICdcJycpCi0rICBpZiAoIW5hbWUuZW1wdHkgKCkgJiYgbmFtZVsw XSA9PSAnXCcnKQotICAgICB7Ci0gICAgICAgc3RybmNweSAoZm9sZF9idWZmZXIsIG5hbWUuZGF0 YSAoKSArIDEsIGxlbiAtIDIpOwotICAgICAgIGZvbGRfYnVmZmVyW2xlbiAtIDJdID0gJ1wwMDAn OwotQEAgLTEzNTk3LDcgKzEzNTk3LDcgQEAgYWRhX2xvb2t1cF9uYW1lX2luZm86OmFkYV9sb29r dXBfbmFtZV9pbmZvIChjb25zdCBsb29rdXBfbmFtZV9pbmZvICZsb29rdXBfbmFtZSkKLSB7Ci0g ICBnZGI6OnN0cmluZ192aWV3IHVzZXJfbmFtZSA9IGxvb2t1cF9uYW1lLm5hbWUgKCk7Ci0gCi0t ICBpZiAodXNlcl9uYW1lWzBdID09ICc8JykKLSsgIGlmICghdXNlcl9uYW1lLmVtcHR5ICgpICYm IHVzZXJfbmFtZVswXSA9PSAnPCcpCi0gICAgIHsKLSAgICAgICBpZiAodXNlcl9uYW1lLmJhY2sg KCkgPT0gJz4nKQotIAltX2VuY29kZWRfbmFtZQoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6MTkzMTM0 NC1iZmRfc2Vlay1lbGZfcmVhZF9ub3Rlcy5wYXRjaCBiL2dkYi1yaGJ6MTkzMTM0NC1iZmRfc2Vl ay1lbGZfcmVhZF9ub3Rlcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTIx MmRjNi4uMDAwMDAwMAotLS0gYS9nZGItcmhiejE5MzEzNDQtYmZkX3NlZWstZWxmX3JlYWRfbm90 ZXMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw4NyArMCwwIEBACi1Gcm9tIEZFRE9SQV9QQVRD SEVTIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2VpdGggU2VpdHogPGtlaXRoc0By ZWRoYXQuY29tPgotRGF0ZTogVGh1LCAyNSBNYXIgMjAyMSAxMDozMTo0OCAtMDcwMAotU3ViamVj dDogZ2RiLXJoYnoxOTMxMzQ0LWJmZF9zZWVrLWVsZl9yZWFkX25vdGVzLnBhdGNoCi0KLTs7IEJh Y2twb3J0ICJTYXZlL3Jlc3RvcmUgZmlsZSBvZmZzZXQgd2hpbGUgcmVhZGluZyBub3RlcyBpbiBj b3JlIGZpbGUiCi07OyAoS2VpdGggU2VpdHosIFJIQlogMTkzMTM0NCkKLQotQSByZWNlbnQgYnVn IChSSCBCWiAxOTMxMzQ0KSBoYXMgZXhwb3NlZCBhIGJ1ZyBpbiB0aGUgY29yZSBmaWxlCi1idWls ZC1JRCBzdXBwb3J0IHRoYXQgSSBpbnRyb2R1Y2VkIGEgd2hpbGUgYWdvLiBJdCBpcyBwcmV0dHkK LWVhc3kgdG8gZGVtb25zdGF0ZSB0aGUgcHJvYmxlbSBmb2xsb3dpbmcgYSBzaW1wbGlmaWVkIHBy b2NlZHVyZQotb3V0bGluZWQgaW4gdGhhdCBidWc6Ci0KLVtzaGVsbDFdCi1zaGVsbDEkIC91c3Iv bGliZXhlYy9xZW11LWt2bQotCi1bc2hlbGwyXQotc2hlbGwyJCBwa2lsbCAtU0VHViAteCBxZW11 LWt2bQotCi1bc2hlbGwxXQotU2VnbWVudGF0aW9uIGZhdWx0IChjb3JlIGR1bXBlZCkKLQotTG9h ZCB0aGlzIGNvcmUgZmlsZSBpbnRvIEdEQiB3aXRob3V0IHNwZWNpZnlpbmcgYW4gZXhlY3V0YWJs ZQotKGFuIHVuZm9ydHVuYXRlIEZlZG9yYS9SSEVMLWlzbSksIGFuZCBHREIgd2lsbCBpbmZvcm0g dGhlIHVzZXIKLXRvIGluc3RhbGwgZGVidWdpbmZvIGZvciB0aGUgIm1pc3NpbmciIGV4ZWN1dGFi bGU6Ci0KLSQgZ2RiIC1ueCAtcSBjb3JlLjEyMzQ1Ci0uLi4KLU1pc3Npbmcgc2VwYXJhdGUgZGVi dWdpbmZvIGZvciB0aGUgbWFpbiBleGVjdXRhYmxlIGZpbGUKLVRyeTogZG5mIC0tZW5hYmxlcmVw bz0nKmRlYnVnKicgaW5zdGFsbCAvdXNyL2xpYi9kZWJ1Zy8uYnVpbGQtaWQvZTIvZTljNjZkMzEx N2ZiMmJiYjViMmJlMTIyZjA0ZjI2NjRlNWRmNTQKLUNvcmUgd2FzIGdlbmVyYXRlZCBieSBgL3Vz ci9saWJleGVjL3FlbXUta3ZtJy4KLVByb2dyYW0gdGVybWluYXRlZCB3aXRoIHNpZ25hbCBTSUdT RUdWLCBTZWdtZW50YXRpb24gZmF1bHQuCi0uLi4KLQotVGhlIHN1Z2dlc3RlZCBidWlsZC1JRCBp cyBhY3RhdWxseSBmb3IgZ21wIG5vdCBxZW11LWt2bS4gVGhlIHByb2JsZW0KLWxpZXMgaW4gX2Jm ZF9lbGZfY29yZV9maW5kX2J1aWxkX2lkLCB3aGVyZSB3ZSBsb29wIG92ZXIgcHJvZ3JhbSBoZWFk ZXJzCi1sb29raW5nIGZvciBub3RlIHNlZ21lbnRzOgotCi0gIC8qIFJlYWQgaW4gcHJvZ3JhbSBo ZWFkZXJzIGFuZCBwYXJzZSBub3Rlcy4gICovCi0gIGZvciAoaSA9IDA7IGkgPCBpX2VoZHIuZV9w aG51bTsgKytpLCArK2lfcGhkcikKLSAgICB7Ci0gICAgICBFbGZfRXh0ZXJuYWxfUGhkciB4X3Bo ZHI7Ci0KLSAgICAgIGlmIChiZmRfYnJlYWQgKCZ4X3BoZHIsIHNpemVvZiAoeF9waGRyKSwgYWJm ZCkgIT0gc2l6ZW9mICh4X3BoZHIpKQotICAgICAgICBnb3RvIGZhaWw7Ci0gICAgICBlbGZfc3dh cF9waGRyX2luIChhYmZkLCAmeF9waGRyLCBpX3BoZHIpOwotCi0gICAgICBpZiAoaV9waGRyLT5w X3R5cGUgPT0gUFRfTk9URSAmJiBpX3BoZHItPnBfZmlsZXN6ID4gMCkKLSAgICAgICAgewotICAg ICAgICAgIGVsZl9yZWFkX25vdGVzIChhYmZkLCBvZmZzZXQgKyBpX3BoZHItPnBfb2Zmc2V0LAot ICAgICAgICAgICAgICAgICAgICAgICAgICBpX3BoZHItPnBfZmlsZXN6LCBpX3BoZHItPnBfYWxp Z24pOwotCi0gICAgICAgICAgaWYgKGFiZmQtPmJ1aWxkX2lkICE9IE5VTEwpCi0gICAgICAgICAg ICByZXR1cm4gVFJVRTsKLSAgICAgICAgfQotCi1lbGZfcmVhZF9ub3RlcyB1c2VzIGJmZF9zZWVr IHRvIGZvcndhcmQgdGhlIHN0cmVhbSB0byB0aGUgbG9jYXRpb24gb2YKLXRoZSBub3RlIHNlZ21l bnQuIFdoZW4gY29udHJvbCByZXR1cm5zIHRvIF9iZmRfZWxmX2NvcmVfZmlsZF9idWlsZF9pZCwK LXRoZSBzdHJlYW0gaXMgbm8gbG9uZ2VyIGluIHRoZSBsb2NhdGlvbiBsb29raW5nIGF0IHByb2dy YW0gaGVhZGVycywgYW5kCi1hbGwgc3Vic2VxdWVudCByZWFkcyB3aWxsIHJlYWQgZnJvbSB0aGUg d3JvbmcgZmlsZSBvZmZzZXQuCi0KLVRvIGZpeCB0aGlzLCB0aGlzIHBhdGNoIG1hcmtzIHRoZSBz dHJlYW0gbG9jYXRpb24gYW5kIGVuc3VyZXMKLXRoYXQgaXQgaXMgcmVzdG9yZWQgYWZ0ZXIgZWxm X3JlYWRfbm90ZXMgaXMgY2FsbGVkLgotCi1iZmQvQ2hhbmdlTG9nCi0yMDIxLTAzLTI2ICBLZWl0 aCBTZWl0eiAgPGtlaXRoc0ByZWRoYXQuY29tPgotCi0JKiBlbGZjb3JlLmggKF9iZmRfZWxmX2Nv cmVfZmluZF9idWlsZF9pZCk6IFNlZWsgZmlsZQotCW9mZnNldCBvZiBwcm9ncmFtIGhlYWRlcnMg YWZ0ZXIgY2FsbGluZyBlbGZfcmVhZF9ub3Rlcy4KLQotZGlmZiAtLWdpdCBhL2JmZC9lbGZjb3Jl LmggYi9iZmQvZWxmY29yZS5oCi0tLS0gYS9iZmQvZWxmY29yZS5oCi0rKysgYi9iZmQvZWxmY29y ZS5oCi1AQCAtNDEwLDYgKzQxMCwxMyBAQCBOQU1FKF9iZmRfZWxmLCBjb3JlX2ZpbmRfYnVpbGRf aWQpCi0gCXsKLSAJICBlbGZfcmVhZF9ub3RlcyAoYWJmZCwgb2Zmc2V0ICsgaV9waGRyLT5wX29m ZnNldCwKLSAJCQkgIGlfcGhkci0+cF9maWxlc3osIGlfcGhkci0+cF9hbGlnbik7Ci0rCi0rCSAg LyogTWFrZSBzdXJlIEFCRkQgcmV0dXJucyB0byBwcm9jZXNzaW5nIHRoZSBwcm9ncmFtIGhlYWRl cnMuICAqLwotKwkgIGlmIChiZmRfc2VlayAoYWJmZCwgKGZpbGVfcHRyKSAob2Zmc2V0ICsgaV9l aGRyLmVfcGhvZmYKLSsJCQkJCSAgKyAoaSArIDEpICogc2l6ZW9mICh4X3BoZHIpKSwKLSsJCQlT RUVLX1NFVCkgIT0gMCkKLSsJICAgIGdvdG8gZmFpbDsKLSsKLSAJICBpZiAoYWJmZC0+YnVpbGRf aWQgIT0gTlVMTCkKLSAJICAgIHJldHVybiBUUlVFOwotIAl9CgpkaWZmIC0tZ2l0IGEvZ2RiLXJo YnoxOTQxMDgwLWZpeC1nZGJzZXJ2ZXItaGFuZy5wYXRjaCBiL2dkYi1yaGJ6MTk0MTA4MC1maXgt Z2Ric2VydmVyLWhhbmcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2Mzlk ZTEuLjAwMDAwMDAKLS0tIGEvZ2RiLXJoYnoxOTQxMDgwLWZpeC1nZGJzZXJ2ZXItaGFuZy5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDU4ICswLDAgQEAKLUZyb20gRkVET1JBX1BBVENIRVMgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLZXZpbiBCdWV0dG5lciA8a2V2aW5iQHJlZGhh dC5jb20+Ci1EYXRlOiBGcmksIDE5IE1hciAyMDIxIDE1OjE0OjA0IC0wNzAwCi1TdWJqZWN0OiBn ZGItcmhiejE5NDEwODAtZml4LWdkYnNlcnZlci1oYW5nLnBhdGNoCi0KLTs7IEJhY2twb3J0IGNo YW5nZSB3aGljaCBmaXhlcyBnZGJzZXJ2ZXIgdGVzdGluZyBoYW5nIG9uIGYzNCBhbmQgcmF3aGlk ZS4KLQotRml4IHBvdGVudGlhbCBoYW5nIGR1cmluZyBnZGJzZXJ2ZXIgdGVzdGluZwotCi1XZSdy ZSBjdXJyZW50bHkgc2VlaW5nIHRlc3Rpbmcgb2YgbmF0aXZlLWV4dGVuZGVkLWdkYnNlcnZlciBo YW5nIHdoaWxlCi10ZXN0aW5nIHRoZSB4ODZfNjQgYXJjaGl0ZWN0dXJlIG9uIGJvdGggRmVkb3Jh IDM0IGFuZCBGZWRvcmEgUmF3aGlkZS4KLVRoZSB0ZXN0IHJlc3BvbnNpYmxlIGZvciB0aGUgaGFu ZyBpcyBnZGIudGhyZWFkcy9mb3JrLXBsdXMtdGhyZWFkcy5leHAuCi0KLVdoaWxlIHRoZXJlIGlz IGNsZWFybHkgYSBwcm9ibGVtL2J1ZyB3aXRoIHRoaXMgdGVzdCBvbiBGMzQgYW5kCi1SYXdoaWRl LCBpdCdzIGFsc28gdGhlIGNhc2UgdGhhdCB0ZXN0aW5nIHNob3VsZCBub3QgaGFuZy4gIFRoaXMg Y29tbWl0Ci1wcmV2ZW50cyB0aGUgaGFuZyBieSB3YWl0aW5nIHdpdGggdGhlICItbm93YWl0IiBm bGFnIGluCi1jbG9zZV9nZGJzZXJ2ZXIuCi0KLVRoZSAtbm93YWl0IGZsYWcgaXMgYWxzbyB1c2Vk IGluIHRoZSBraWxsX3dhaXRfc3Bhd25lZF9wcm9jZXNzIHByb2MgaW4KLWdkYi90ZXN0c3VpdGUv bGliL2dkYi5leHAsIHNvIHRoZXJlIGlzIHByZWNlZGVudCBmb3IgZG9pbmcgdGhpcy4KLQotVGhl cmUgYXJlIGFsc28gMTUgb3RoZXIgdXNlcyBvZiAid2FpdCAtaSIgc2NhdHRlcmVkIHRocm91Z2hv dXQgdGhlCi10ZXN0IHN1aXRlLiAgV2hpbGUgaXQncyB0ZW1wdGluZyB0byBjaGFuZ2UgdGhlc2Ug dG8gYWxzbyB1c2UgdGhlCi0tbm93YWl0IGZsYWcsIEkgdGhpbmsgaXQgbWlnaHQgYmUgc2FmZXIg dG8gZGVmZXIgZG9pbmcgc28gdW50aWwgd2UKLWFjdHVhbGx5IHNlZSBhIHByb2JsZW0uCi0KLUkn dmUgdGVzdGVkIHRoaXMgcGF0Y2ggb24gRmVkb3JhIDMyLCAzMywgMzQsIGFuZCBSYXdoaWRlLiAg UmVzdWx0cyBhcmUKLWNvbXBhcmFibGUgb24gRmVkb3JhIDMyIGFuZCAzMy4gIE9uIEZlZG9yYSAz NCBhbmQgUmF3aGlkZSwgd2l0aCB0aGlzCi1jb21taXQgaW4gcGxhY2UsIHRlc3RpbmcgY29tcGxl dGVzIHdoZW4gdGhlIHRhcmdldF9ib2FyZCBpcwotbmF0aXZlLWV4dGVuZGVkLWdkYnNlcnZlci4g IE9uIHRob3NlIE9TZXMsIHdoZW4gbm90IHVzaW5nIHRoaXMgY29tbWl0LAotdGVzdGluZyB1c3Vh bGx5IGhhbmdzIGR1ZSB0byBhIHByb2JsZW0gd2l0aAotZ2RiLnRocmVhZHMvZm9yay1wbHVzLXRo cmVhZHMuZXhwLiAgSSd2ZSBhbHNvIHRlc3RlZCBvbiBhbGwgb2YgdGhlCi1tZW50aW9uZWQgT1Nl cyB3aXRoIHRhcmdldF9ib2FyZD1uYXRpdmUtZ2Ric2VydmVyOyBmb3IgdGhhdCB0ZXN0aW5nLAot SSBhY2hpZXZlZCBjb21wYXJhYmxlIHJlc3VsdHMgb3ZlciBhIG51bWJlciBvZiBydW5zLiAgKFVu Zm9ydHVuYXRlbHkKLXJlc3VsdHMgYXJlIHJhcmVseSBpZGVudGljYWwgZHVlIHRvIHJhY3kgdGVz dHMuKQotCi1nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZzoKLQotCSogbGliL2dkYnNlcnZlci1zdXBw b3J0LmV4cCAoZ2Ric2VydmVyX2V4aXQpOiBVc2UgdGhlCi0JIi1ub3dhaXQiIGZsYWcgd2hlbiB3 YWl0aW5nIGZvciBnZGJzZXJ2ZXIgdG8gZXhpdC4KLQotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3Vp dGUvbGliL2dkYnNlcnZlci1zdXBwb3J0LmV4cCBiL2dkYi90ZXN0c3VpdGUvbGliL2dkYnNlcnZl ci1zdXBwb3J0LmV4cAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2Ric2VydmVyLXN1cHBvcnQu ZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2xpYi9nZGJzZXJ2ZXItc3VwcG9ydC5leHAKLUBAIC00 MTgsNyArNDE4LDEyIEBAIHByb2MgY2xvc2VfZ2Ric2VydmVyIHt9IHsKLSAgICAgdmVyYm9zZSAi UXVpdHRpbmcgR0RCc2VydmVyIgotIAotICAgICBjYXRjaCAiY2xvc2UgLWkgJHNlcnZlcl9zcGF3 bl9pZCIKLS0gICAgY2F0Y2ggIndhaXQgLWkgJHNlcnZlcl9zcGF3bl9pZCIKLSsKLSsgICAgIyBJ ZiBnZGJzZXJ2ZXIgbWlzYmVoYXZlcywgYW5kIGlnbm9yZXMgdGhlIGNsb3NlLCB3YWl0aW5nIGZv ciBpdAotKyAgICAjIHdpdGhvdXQgdGhlIC1ub3dhaXQgZmxhZyB3aWxsIGNhdXNlIHRlc3Rpbmcg dG8gaGFuZy4gIFBhc3NpbmcKLSsgICAgIyAtbm93YWl0IG1ha2VzIGV4cGVjdCB0ZWxsIFRjbCB0 byB3YWl0IGZvciB0aGUgcHJvY2VzcyBpbiB0aGUKLSsgICAgIyBiYWNrZ3JvdW5kLgotKyAgICBj YXRjaCAid2FpdCAtbm93YWl0IC1pICRzZXJ2ZXJfc3Bhd25faWQiCi0gICAgIHVuc2V0IHNlcnZl cl9zcGF3bl9pZAotIH0KLSAKCmRpZmYgLS1naXQgYS9nZGItcmhiejE5NjQxNjctY29udmVydC1l bnVtLXJhbmdlX3R5cGUucGF0Y2ggYi9nZGItcmhiejE5NjQxNjctY29udmVydC1lbnVtLXJhbmdl X3R5cGUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVjZjgwNDIuLjAwMDAw MDAKLS0tIGEvZ2RiLXJoYnoxOTY0MTY3LWNvbnZlcnQtZW51bS1yYW5nZV90eXBlLnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsMzc1ICswLDAgQEAKLUZyb20gRkVET1JBX1BBVENIRVMgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLZXZpbiBCdWV0dG5lciA8a2V2aW5iQHJlZGhhdC5j b20+Ci1EYXRlOiBNb24sIDI0IE1heSAyMDIxIDE3OjEwOjI4IC0wNzAwCi1TdWJqZWN0OiBnZGIt cmhiejE5NjQxNjctY29udmVydC1lbnVtLXJhbmdlX3R5cGUucGF0Y2gKLQotOzsgW2ZvcnRyYW5d IEJhY2twb3J0IEFuZHJldyBCdXJnZXNzJ3MgY29tbWl0IHdoaWNoIGNoYW5nZXMgZW51bQotOzsg cmFuZ2VfdHlwZSBpbnRvIGEgYml0IGZpZWxkIGVudW0uCi0KLWdkYjogQ29udmVydCBlbnVtIHJh bmdlX3R5cGUgdG8gYSBiaXQgZmllbGQgZW51bQotCi1UaGUgZXhwcmVzc2lvbiByYW5nZV90eXBl IGVudW0gcmVwcmVzZW50cyB0aGUgZm9sbG93aW5nIGlkZWFzOgotCi0gIC0gTG93ZXIgYm91bmQg aXMgc2V0IHRvIGRlZmF1bHQsCi0gIC0gVXBwZXIgYm91bmQgaXMgc2V0IHRvIGRlZmF1bHQsCi0g IC0gVXBwZXIgYm91bmQgaXMgZXhjbHVzaXZlLgotCi1UaGVyZSBhcmUgY3VycmVudGx5IDYgZW50 cmllcyBpbiB0aGUgZW51bSB0byByZXByZXNlbnQgdGhlIGNvbWJpbmF0aW9uCi1vZiBhbGwgdGhv c2UgaWRlYXMuCi0KLUluIGEgZnV0dXJlIGNvbW1pdCBJJ2QgbGlrZSB0byBhZGQgc3RyaWRlIGlu Zm9ybWF0aW9uIHRvIHRoZSByYW5nZSwKLXRoaXMgY291bGQgaW4gdGhlb3J5IGFwcGVhciB3aXRo IGFueSBvZiB0aGUgZXhpc3RpbmcgZW51bSBlbnRyaWVzLCBzbwotdGhpcyB3b3VsZCB0YWtlIHVz IHRvIDEyIGVudW0gZW50cmllcy4KLQotVGhpcyBmZWVscyBsaWtlIGl0cyBnZXR0aW5nIGEgbGl0 dGxlIG91dCBvZiBoYW5kLCBzbyBpbiB0aGlzIGNvbW1pdCBJCi1zd2l0Y2ggdGhlIHJhbmdlX3R5 cGUgZW51bSBvdmVyIHRvIGJlaW5nIGEgZmxhZ3Mgc3R5bGUgZW51bS4gIFRoZXJlJ3MKLW9uZSBl bnRyeSB0byByZXByZXNlbnQgbm8gZmxhZ3MgYmVpbmcgc2V0LCB0aGVuIDMgZmxhZ3MgdG8gcmVw cmVzZW50Ci10aGUgMyBpZGVhcyBhYm92ZS4gIEFkZGluZyBzdHJpZGUgaW5mb3JtYXRpb24gd2ls bCByZXF1aXJlIGFkZGluZyBvbmx5Ci1vbmUgbW9yZSBlbnVtIGZsYWcuCi0KLUkndmUgdGhlbiBn b25lIHRocm91Z2ggYW5kIHVwZGF0ZWQgdGhlIGNvZGUgdG8gaGFuZGxlIHRoaXMgY2hhbmdlLgot Ci1UaGVyZSBzaG91bGQgYmUgbm8gdXNlciB2aXNpYmxlIGNoYW5nZXMgYWZ0ZXIgdGhpcyBjb21t aXQuCi0KLWdkYi9DaGFuZ2VMb2c6Ci0KLQkqIGV4cHByaW50LmMgKHByaW50X3N1YmV4cF9zdGFu ZGFyZCk6IFVwZGF0ZSB0byByZWZsZWN0IGNoYW5nZXMgdG8KLQllbnVtIHJhbmdlX3R5cGUuCi0J KGR1bXBfc3ViZXhwX2JvZHlfc3RhbmRhcmQpOiBMaWtld2lzZS4KLQkqIGV4cHJlc3Npb24uaCAo ZW51bSByYW5nZV90eXBlKTogQ29udmVydCB0byBhIGJpdCBmaWVsZCBlbnVtLCBhbmQKLQltYWtl IHRoZSBlbnVtIHVuc2lnbmVkLgotCSogZi1leHAueSAoc3VicmFuZ2UpOiBVcGRhdGUgdG8gcmVm bGVjdCBjaGFuZ2VzIHRvIGVudW0KLQlyYW5nZV90eXBlLgotCSogZi1sYW5nLmMgKHZhbHVlX2Y5 MF9zdWJhcnJheSk6IExpa2V3aXNlLgotCSogcGFyc2UuYyAob3BlcmF0b3JfbGVuZ3RoX3N0YW5k YXJkKTogTGlrZXdpc2UuCi0JKiBydXN0LWV4cC55IChydXN0X3BhcnNlcjo6Y29udmVydF9hc3Rf dG9fZXhwcmVzc2lvbik6IExpa2V3aXNlLgotCSogcnVzdC1sYW5nLmMgKHJ1c3RfcmFuZ2UpOiBM aWtld2lzZS4KLQkocnVzdF9jb21wdXRlX3JhbmdlKTogTGlrZXdpc2UuCi0JKHJ1c3Rfc3Vic2Ny aXB0KTogTGlrZXdpc2UuCi0KLWRpZmYgLS1naXQgYS9nZGIvZXhwcHJpbnQuYyBiL2dkYi9leHBw cmludC5jCi0tLS0gYS9nZGIvZXhwcHJpbnQuYwotKysrIGIvZ2RiL2V4cHByaW50LmMKLUBAIC01 ODQsMTcgKzU4NCwxMyBAQCBwcmludF9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCBleHByZXNzaW9u ICpleHAsIGludCAqcG9zLAotIAkgIGxvbmdlc3RfdG9faW50IChleHAtPmVsdHNbcGMgKyAxXS5s b25nY29uc3QpOwotIAkqcG9zICs9IDI7Ci0gCi0tCWlmIChyYW5nZV90eXBlID09IE5PTkVfQk9V TkRfREVGQVVMVF9FWENMVVNJVkUKLS0JICAgIHx8IHJhbmdlX3R5cGUgPT0gTE9XX0JPVU5EX0RF RkFVTFRfRVhDTFVTSVZFKQotKwlpZiAocmFuZ2VfdHlwZSAmIFJBTkdFX0hJR0hfQk9VTkRfRVhD TFVTSVZFKQotIAkgIGZwdXRzX2ZpbHRlcmVkICgiRVhDTFVTSVZFXyIsIHN0cmVhbSk7Ci0gCWZw dXRzX2ZpbHRlcmVkICgiUkFOR0UoIiwgc3RyZWFtKTsKLS0JaWYgKHJhbmdlX3R5cGUgPT0gSElH SF9CT1VORF9ERUZBVUxUCi0tCSAgICB8fCByYW5nZV90eXBlID09IE5PTkVfQk9VTkRfREVGQVVM VAotLQkgICAgfHwgcmFuZ2VfdHlwZSA9PSBOT05FX0JPVU5EX0RFRkFVTFRfRVhDTFVTSVZFKQot KwlpZiAoIShyYW5nZV90eXBlICYgUkFOR0VfTE9XX0JPVU5EX0RFRkFVTFQpKQotIAkgIHByaW50 X3N1YmV4cCAoZXhwLCBwb3MsIHN0cmVhbSwgUFJFQ19BQk9WRV9DT01NQSk7Ci0gCWZwdXRzX2Zp bHRlcmVkICgiLi4iLCBzdHJlYW0pOwotLQlpZiAocmFuZ2VfdHlwZSA9PSBMT1dfQk9VTkRfREVG QVVMVAotLQkgICAgfHwgcmFuZ2VfdHlwZSA9PSBOT05FX0JPVU5EX0RFRkFVTFQpCi0rCWlmICgh KHJhbmdlX3R5cGUgJiBSQU5HRV9ISUdIX0JPVU5EX0RFRkFVTFQpKQotIAkgIHByaW50X3N1YmV4 cCAoZXhwLCBwb3MsIHN0cmVhbSwgUFJFQ19BQk9WRV9DT01NQSk7Ci0gCWZwdXRzX2ZpbHRlcmVk ICgiKSIsIHN0cmVhbSk7Ci0gCXJldHVybjsKLUBAIC0xMTE0LDM2ICsxMTEwLDE5IEBAIGR1bXBf c3ViZXhwX2JvZHlfc3RhbmRhcmQgKHN0cnVjdCBleHByZXNzaW9uICpleHAsCi0gCSAgbG9uZ2Vz dF90b19pbnQgKGV4cC0+ZWx0c1tlbHRdLmxvbmdjb25zdCk7Ci0gCWVsdCArPSAyOwotIAotLQlz d2l0Y2ggKHJhbmdlX3R5cGUpCi0tCSAgewotLQkgIGNhc2UgQk9USF9CT1VORF9ERUZBVUxUOgot LQkgICAgZnB1dHNfZmlsdGVyZWQgKCJSYW5nZSAnLi4nIiwgc3RyZWFtKTsKLS0JICAgIGJyZWFr OwotLQkgIGNhc2UgTE9XX0JPVU5EX0RFRkFVTFQ6Ci0tCSAgICBmcHV0c19maWx0ZXJlZCAoIlJh bmdlICcuLkVYUCciLCBzdHJlYW0pOwotLQkgICAgYnJlYWs7Ci0tCSAgY2FzZSBMT1dfQk9VTkRf REVGQVVMVF9FWENMVVNJVkU6Ci0tCSAgICBmcHV0c19maWx0ZXJlZCAoIkV4Y2x1c2l2ZVJhbmdl ICcuLkVYUCciLCBzdHJlYW0pOwotLQkgICAgYnJlYWs7Ci0tCSAgY2FzZSBISUdIX0JPVU5EX0RF RkFVTFQ6Ci0tCSAgICBmcHV0c19maWx0ZXJlZCAoIlJhbmdlICdFWFAuLiciLCBzdHJlYW0pOwot LQkgICAgYnJlYWs7Ci0tCSAgY2FzZSBOT05FX0JPVU5EX0RFRkFVTFQ6Ci0tCSAgICBmcHV0c19m aWx0ZXJlZCAoIlJhbmdlICdFWFAuLkVYUCciLCBzdHJlYW0pOwotLQkgICAgYnJlYWs7Ci0tCSAg Y2FzZSBOT05FX0JPVU5EX0RFRkFVTFRfRVhDTFVTSVZFOgotLQkgICAgZnB1dHNfZmlsdGVyZWQg KCJFeGNsdXNpdmVSYW5nZSAnRVhQLi5FWFAnIiwgc3RyZWFtKTsKLS0JICAgIGJyZWFrOwotLQkg IGRlZmF1bHQ6Ci0tCSAgICBmcHV0c19maWx0ZXJlZCAoIkludmFsaWQgUmFuZ2UhIiwgc3RyZWFt KTsKLS0JICAgIGJyZWFrOwotLQkgIH0KLSsJaWYgKHJhbmdlX3R5cGUgJiBSQU5HRV9ISUdIX0JP VU5EX0VYQ0xVU0lWRSkKLSsJICBmcHV0c19maWx0ZXJlZCAoIkV4Y2x1c2l2ZSIsIHN0cmVhbSk7 Ci0rCWZwdXRzX2ZpbHRlcmVkICgiUmFuZ2UgJyIsIHN0cmVhbSk7Ci0rCWlmICghKHJhbmdlX3R5 cGUgJiBSQU5HRV9MT1dfQk9VTkRfREVGQVVMVCkpCi0rCSAgZnB1dHNfZmlsdGVyZWQgKCJFWFAi LCBzdHJlYW0pOwotKwlmcHV0c19maWx0ZXJlZCAoIi4uIiwgc3RyZWFtKTsKLSsJaWYgKCEocmFu Z2VfdHlwZSAmIFJBTkdFX0hJR0hfQk9VTkRfREVGQVVMVCkpCi0rCSAgZnB1dHNfZmlsdGVyZWQg KCJFWFAiLCBzdHJlYW0pOwotKwlmcHV0c19maWx0ZXJlZCAoIiciLCBzdHJlYW0pOwotIAotLQlp ZiAocmFuZ2VfdHlwZSA9PSBISUdIX0JPVU5EX0RFRkFVTFQKLS0JICAgIHx8IHJhbmdlX3R5cGUg PT0gTk9ORV9CT1VORF9ERUZBVUxUKQotKwlpZiAoIShyYW5nZV90eXBlICYgUkFOR0VfTE9XX0JP VU5EX0RFRkFVTFQpKQotIAkgIGVsdCA9IGR1bXBfc3ViZXhwIChleHAsIHN0cmVhbSwgZWx0KTsK LS0JaWYgKHJhbmdlX3R5cGUgPT0gTE9XX0JPVU5EX0RFRkFVTFQKLS0JICAgIHx8IHJhbmdlX3R5 cGUgPT0gTk9ORV9CT1VORF9ERUZBVUxUKQotKwlpZiAoIShyYW5nZV90eXBlICYgUkFOR0VfSElH SF9CT1VORF9ERUZBVUxUKSkKLSAJICBlbHQgPSBkdW1wX3N1YmV4cCAoZXhwLCBzdHJlYW0sIGVs dCk7Ci0gICAgICAgfQotICAgICAgIGJyZWFrOwotZGlmZiAtLWdpdCBhL2dkYi9leHByZXNzaW9u LmggYi9nZGIvZXhwcmVzc2lvbi5oCi0tLS0gYS9nZGIvZXhwcmVzc2lvbi5oCi0rKysgYi9nZGIv ZXhwcmVzc2lvbi5oCi1AQCAtMTg1LDIyICsxODUsMjIgQEAgZXh0ZXJuIHZvaWQgZHVtcF9wcmVm aXhfZXhwcmVzc2lvbiAoc3RydWN0IGV4cHJlc3Npb24gKiwgc3RydWN0IHVpX2ZpbGUgKik7Ci0g ICAgb3IgaW5jbHVzaXZlLiAgU28gd2UgaGF2ZSBzaXggc29ydHMgb2Ygc3VicmFuZ2UuICBUaGlz IGVudW1lcmF0aW9uCi0gICAgdHlwZSBpcyB0byBpZGVudGlmeSB0aGlzLiAgKi8KLSAKLS1lbnVt IHJhbmdlX3R5cGUKLStlbnVtIHJhbmdlX3R5cGUgOiB1bnNpZ25lZAotIHsKLS0gIC8qIE5laXRo ZXIgdGhlIGxvdyBub3IgdGhlIGhpZ2ggYm91bmQgd2FzIGdpdmVuIC0tIHNvIHRoaXMgcmVmZXJz IHRvCi0tICAgICB0aGUgZW50aXJlIGF2YWlsYWJsZSByYW5nZS4gICovCi0tICBCT1RIX0JPVU5E X0RFRkFVTFQsCi0tICAvKiBUaGUgbG93IGJvdW5kIHdhcyBub3QgZ2l2ZW4gYW5kIHRoZSBoaWdo IGJvdW5kIGlzIGluY2x1c2l2ZS4gICovCi0tICBMT1dfQk9VTkRfREVGQVVMVCwKLS0gIC8qIFRo ZSBoaWdoIGJvdW5kIHdhcyBub3QgZ2l2ZW4gYW5kIHRoZSBsb3cgYm91bmQgaW4gaW5jbHVzaXZl LiAgKi8KLS0gIEhJR0hfQk9VTkRfREVGQVVMVCwKLS0gIC8qIEJvdGggYm91bmRzIHdlcmUgZ2l2 ZW4gYW5kIGJvdGggYXJlIGluY2x1c2l2ZS4gICovCi0tICBOT05FX0JPVU5EX0RFRkFVTFQsCi0t ICAvKiBUaGUgbG93IGJvdW5kIHdhcyBub3QgZ2l2ZW4gYW5kIHRoZSBoaWdoIGJvdW5kIGlzIGV4 Y2x1c2l2ZS4gICovCi0tICBOT05FX0JPVU5EX0RFRkFVTFRfRVhDTFVTSVZFLAotLSAgLyogQm90 aCBib3VuZHMgd2VyZSBnaXZlbi4gIFRoZSBsb3cgYm91bmQgaXMgaW5jbHVzaXZlIGFuZCB0aGUg aGlnaAotLSAgICAgYm91bmQgaXMgZXhjbHVzaXZlLiAgKi8KLS0gIExPV19CT1VORF9ERUZBVUxU X0VYQ0xVU0lWRSwKLSsgIC8qIFRoaXMgaXMgYSBzdGFuZGFyZCByYW5nZS4gIEJvdGggdGhlIGxv d2VyIGFuZCB1cHBlciBib3VuZHMgYXJlCi0rICAgICBkZWZpbmVkLCBhbmQgdGhlIGJvdW5kcyBh cmUgaW5jbHVzaXZlLiAgKi8KLSsgIFJBTkdFX1NUQU5EQVJEID0gMCwKLSsKLSsgIC8qIFRoZSBs b3cgYm91bmQgd2FzIG5vdCBnaXZlbi4gICovCi0rICBSQU5HRV9MT1dfQk9VTkRfREVGQVVMVCA9 IDEgPDwgMCwKLSsKLSsgIC8qIFRoZSBoaWdoIGJvdW5kIHdhcyBub3QgZ2l2ZW4uICAqLwotKyAg UkFOR0VfSElHSF9CT1VORF9ERUZBVUxUID0gMSA8PCAxLAotKwotKyAgLyogVGhlIGhpZ2ggYm91 bmQgb2YgdGhpcyByYW5nZSBpcyBleGNsdXNpdmUuICAqLwotKyAgUkFOR0VfSElHSF9CT1VORF9F WENMVVNJVkUgPSAxIDw8IDIsCi0gfTsKLSAKLStERUZfRU5VTV9GTEFHU19UWVBFIChlbnVtIHJh bmdlX3R5cGUsIHJhbmdlX3R5cGVzKTsKLSsKLSAjZW5kaWYgLyogIWRlZmluZWQgKEVYUFJFU1NJ T05fSCkgKi8KLWRpZmYgLS1naXQgYS9nZGIvZi1leHAueSBiL2dkYi9mLWV4cC55Ci0tLS0gYS9n ZGIvZi1leHAueQotKysrIGIvZ2RiL2YtZXhwLnkKLUBAIC0yODcsMjYgKzI4NywzMCBAQCBhcmds aXN0CToJYXJnbGlzdCAnLCcgZXhwICAgJXByZWMgQUJPVkVfQ09NTUEKLSAvKiBUaGVyZSBhcmUg Zm91ciBzb3J0cyBvZiBzdWJyYW5nZSB0eXBlcyBpbiBGOTAuICAqLwotIAotIHN1YnJhbmdlOgll eHAgJzonIGV4cAklcHJlYyBBQk9WRV9DT01NQQotLQkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUg KHBzdGF0ZSwgT1BfUkFOR0UpOyAKLS0JCQkgIHdyaXRlX2V4cF9lbHRfbG9uZ2NzdCAocHN0YXRl LCBOT05FX0JPVU5EX0RFRkFVTFQpOwotKwkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0 ZSwgT1BfUkFOR0UpOwotKwkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIFJBTkdF X1NUQU5EQVJEKTsKLSAJCQkgIHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdF KTsgfQotIAk7Ci0gCi0gc3VicmFuZ2U6CWV4cCAnOicJJXByZWMgQUJPVkVfQ09NTUEKLSAJCQl7 IHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdFKTsKLS0JCQkgIHdyaXRlX2V4 cF9lbHRfbG9uZ2NzdCAocHN0YXRlLCBISUdIX0JPVU5EX0RFRkFVTFQpOwotKwkJCSAgd3JpdGVf ZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsCi0rCQkJCQkJIFJBTkdFX0hJR0hfQk9VTkRfREVGQVVM VCk7Ci0gCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7IH0KLSAJ OwotIAotIHN1YnJhbmdlOgknOicgZXhwCSVwcmVjIEFCT1ZFX0NPTU1BCi0gCQkJeyB3cml0ZV9l eHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7Ci0tCQkJICB3cml0ZV9leHBfZWx0X2xv bmdjc3QgKHBzdGF0ZSwgTE9XX0JPVU5EX0RFRkFVTFQpOwotKwkJCSAgd3JpdGVfZXhwX2VsdF9s b25nY3N0IChwc3RhdGUsCi0rCQkJCQkJIFJBTkdFX0xPV19CT1VORF9ERUZBVUxUKTsKLSAJCQkg IHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdFKTsgfQotIAk7Ci0gCi0gc3Vi cmFuZ2U6CSc6JwklcHJlYyBBQk9WRV9DT01NQQotIAkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUg KHBzdGF0ZSwgT1BfUkFOR0UpOwotLQkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUs IEJPVEhfQk9VTkRfREVGQVVMVCk7Ci0rCQkJICB3cml0ZV9leHBfZWx0X2xvbmdjc3QgKHBzdGF0 ZSwKLSsJCQkJCQkgKFJBTkdFX0xPV19CT1VORF9ERUZBVUxUCi0rCQkJCQkJICB8IFJBTkdFX0hJ R0hfQk9VTkRfREVGQVVMVCkpOwotIAkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwg T1BfUkFOR0UpOyB9Ci0gCTsKLSAKLWRpZmYgLS1naXQgYS9nZGIvZi1sYW5nLmMgYi9nZGIvZi1s YW5nLmMKLS0tLSBhL2dkYi9mLWxhbmcuYwotKysrIGIvZ2RiL2YtbGFuZy5jCi1AQCAtMTMxLDEy ICsxMzEsMTIgQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LAotIAot ICAgKnBvcyArPSAzOwotIAotLSAgaWYgKHJhbmdlX3R5cGUgPT0gTE9XX0JPVU5EX0RFRkFVTFQg fHwgcmFuZ2VfdHlwZSA9PSBCT1RIX0JPVU5EX0RFRkFVTFQpCi0rICBpZiAocmFuZ2VfdHlwZSAm IFJBTkdFX0xPV19CT1VORF9ERUZBVUxUKQotICAgICBsb3dfYm91bmQgPSByYW5nZS0+Ym91bmRz ICgpLT5sb3cuY29uc3RfdmFsICgpOwotICAgZWxzZQotICAgICBsb3dfYm91bmQgPSB2YWx1ZV9h c19sb25nIChldmFsdWF0ZV9zdWJleHAgKG51bGxwdHIsIGV4cCwgcG9zLCBub3NpZGUpKTsKLSAK LS0gIGlmIChyYW5nZV90eXBlID09IEhJR0hfQk9VTkRfREVGQVVMVCB8fCByYW5nZV90eXBlID09 IEJPVEhfQk9VTkRfREVGQVVMVCkKLSsgIGlmIChyYW5nZV90eXBlICYgUkFOR0VfSElHSF9CT1VO RF9ERUZBVUxUKQotICAgICBoaWdoX2JvdW5kID0gcmFuZ2UtPmJvdW5kcyAoKS0+aGlnaC5jb25z dF92YWwgKCk7Ci0gICBlbHNlCi0gICAgIGhpZ2hfYm91bmQgPSB2YWx1ZV9hc19sb25nIChldmFs dWF0ZV9zdWJleHAgKG51bGxwdHIsIGV4cCwgcG9zLCBub3NpZGUpKTsKLWRpZmYgLS1naXQgYS9n ZGIvcGFyc2UuYyBiL2dkYi9wYXJzZS5jCi0tLS0gYS9nZGIvcGFyc2UuYwotKysrIGIvZ2RiL3Bh cnNlLmMKLUBAIC05MjEsMjEgKzkyMSwxMyBAQCBvcGVyYXRvcl9sZW5ndGhfc3RhbmRhcmQgKGNv bnN0IHN0cnVjdCBleHByZXNzaW9uICpleHByLCBpbnQgZW5kcG9zLAotICAgICAgIHJhbmdlX3R5 cGUgPSAoZW51bSByYW5nZV90eXBlKQotIAlsb25nZXN0X3RvX2ludCAoZXhwci0+ZWx0c1tlbmRw b3MgLSAyXS5sb25nY29uc3QpOwotIAotLSAgICAgIHN3aXRjaCAocmFuZ2VfdHlwZSkKLS0Jewot LQljYXNlIExPV19CT1VORF9ERUZBVUxUOgotLQljYXNlIExPV19CT1VORF9ERUZBVUxUX0VYQ0xV U0lWRToKLS0JY2FzZSBISUdIX0JPVU5EX0RFRkFVTFQ6Ci0tCSAgYXJncyA9IDE7Ci0tCSAgYnJl YWs7Ci0tCWNhc2UgQk9USF9CT1VORF9ERUZBVUxUOgotLQkgIGFyZ3MgPSAwOwotLQkgIGJyZWFr OwotLQljYXNlIE5PTkVfQk9VTkRfREVGQVVMVDoKLS0JY2FzZSBOT05FX0JPVU5EX0RFRkFVTFRf RVhDTFVTSVZFOgotLQkgIGFyZ3MgPSAyOwotLQkgIGJyZWFrOwotLQl9Ci0rICAgICAgLyogQXNz dW1lIHRoZSByYW5nZSBoYXMgMiBhcmd1bWVudHMgKGxvdyBib3VuZCBhbmQgaGlnaCBib3VuZCks IHRoZW4KLSsJIHJlZHVjZSB0aGUgYXJndW1lbnQgY291bnQgaWYgYW55IGJvdW5kcyBhcmUgc2V0 IHRvIGRlZmF1bHQuICAqLwotKyAgICAgIGFyZ3MgPSAyOwotKyAgICAgIGlmIChyYW5nZV90eXBl ICYgUkFOR0VfTE9XX0JPVU5EX0RFRkFVTFQpCi0rCS0tYXJnczsKLSsgICAgICBpZiAocmFuZ2Vf dHlwZSAmIFJBTkdFX0hJR0hfQk9VTkRfREVGQVVMVCkKLSsJLS1hcmdzOwotIAotICAgICAgIGJy ZWFrOwotIAotZGlmZiAtLWdpdCBhL2dkYi9ydXN0LWV4cC55IGIvZ2RiL3J1c3QtZXhwLnkKLS0t LSBhL2dkYi9ydXN0LWV4cC55Ci0rKysgYi9nZGIvcnVzdC1leHAueQotQEAgLTI0OTIsMjQgKzI0 OTIsMjkgQEAgcnVzdF9wYXJzZXI6OmNvbnZlcnRfYXN0X3RvX2V4cHJlc3Npb24gKGNvbnN0IHN0 cnVjdCBydXN0X29wICpvcGVyYXRpb24sCi0gCi0gICAgIGNhc2UgT1BfUkFOR0U6Ci0gICAgICAg ewotLQllbnVtIHJhbmdlX3R5cGUga2luZCA9IEJPVEhfQk9VTkRfREVGQVVMVDsKLSsJZW51bSBy YW5nZV90eXBlIGtpbmQgPSAoUkFOR0VfSElHSF9CT1VORF9ERUZBVUxUCi0rCQkJCXwgUkFOR0Vf TE9XX0JPVU5EX0RFRkFVTFQpOwotIAotIAlpZiAob3BlcmF0aW9uLT5sZWZ0Lm9wICE9IE5VTEwp Ci0gCSAgewotIAkgICAgY29udmVydF9hc3RfdG9fZXhwcmVzc2lvbiAob3BlcmF0aW9uLT5sZWZ0 Lm9wLCB0b3ApOwotLQkgICAga2luZCA9IEhJR0hfQk9VTkRfREVGQVVMVDsKLSsJICAgIGtpbmQg Jj0gflJBTkdFX0xPV19CT1VORF9ERUZBVUxUOwotIAkgIH0KLSAJaWYgKG9wZXJhdGlvbi0+cmln aHQub3AgIT0gTlVMTCkKLSAJICB7Ci0gCSAgICBjb252ZXJ0X2FzdF90b19leHByZXNzaW9uIChv cGVyYXRpb24tPnJpZ2h0Lm9wLCB0b3ApOwotLQkgICAgaWYgKGtpbmQgPT0gQk9USF9CT1VORF9E RUZBVUxUKQotLQkgICAgICBraW5kID0gKG9wZXJhdGlvbi0+aW5jbHVzaXZlCi0tCQkgICAgICA/ IExPV19CT1VORF9ERUZBVUxUIDogTE9XX0JPVU5EX0RFRkFVTFRfRVhDTFVTSVZFKTsKLSsJICAg IGlmIChraW5kID09IChSQU5HRV9ISUdIX0JPVU5EX0RFRkFVTFQgfCBSQU5HRV9MT1dfQk9VTkRf REVGQVVMVCkpCi0rCSAgICAgIHsKLSsJCWtpbmQgPSBSQU5HRV9MT1dfQk9VTkRfREVGQVVMVDsK LSsJCWlmICghb3BlcmF0aW9uLT5pbmNsdXNpdmUpCi0rCQkgIGtpbmQgfD0gUkFOR0VfSElHSF9C T1VORF9FWENMVVNJVkU7Ci0rCSAgICAgIH0KLSAJICAgIGVsc2UKLSAJICAgICAgewotLQkJZ2Ri X2Fzc2VydCAoa2luZCA9PSBISUdIX0JPVU5EX0RFRkFVTFQpOwotLQkJa2luZCA9IChvcGVyYXRp b24tPmluY2x1c2l2ZQotLQkJCT8gTk9ORV9CT1VORF9ERUZBVUxUIDogTk9ORV9CT1VORF9ERUZB VUxUX0VYQ0xVU0lWRSk7Ci0rCQlnZGJfYXNzZXJ0IChraW5kID09IFJBTkdFX0hJR0hfQk9VTkRf REVGQVVMVCk7Ci0rCQlraW5kID0gUkFOR0VfU1RBTkRBUkQ7Ci0rCQlpZiAoIW9wZXJhdGlvbi0+ aW5jbHVzaXZlKQotKwkJICBraW5kIHw9IFJBTkdFX0hJR0hfQk9VTkRfRVhDTFVTSVZFOwotIAkg ICAgICB9Ci0gCSAgfQotIAllbHNlCi1kaWZmIC0tZ2l0IGEvZ2RiL3J1c3QtbGFuZy5jIGIvZ2Ri L3J1c3QtbGFuZy5jCi0tLS0gYS9nZGIvcnVzdC1sYW5nLmMKLSsrKyBiL2dkYi9ydXN0LWxhbmcu YwotQEAgLTEwODIsMTMgKzEwODIsMTEgQEAgcnVzdF9yYW5nZSAoc3RydWN0IGV4cHJlc3Npb24g KmV4cCwgaW50ICpwb3MsIGVudW0gbm9zaWRlIG5vc2lkZSkKLSAgIGtpbmQgPSAoZW51bSByYW5n ZV90eXBlKSBsb25nZXN0X3RvX2ludCAoZXhwLT5lbHRzWypwb3MgKyAxXS5sb25nY29uc3QpOwot ICAgKnBvcyArPSAzOwotIAotLSAgaWYgKGtpbmQgPT0gSElHSF9CT1VORF9ERUZBVUxUIHx8IGtp bmQgPT0gTk9ORV9CT1VORF9ERUZBVUxUCi0tICAgICAgfHwga2luZCA9PSBOT05FX0JPVU5EX0RF RkFVTFRfRVhDTFVTSVZFKQotKyAgaWYgKCEoa2luZCAmIFJBTkdFX0xPV19CT1VORF9ERUZBVUxU KSkKLSAgICAgbG93ID0gZXZhbHVhdGVfc3ViZXhwIChudWxscHRyLCBleHAsIHBvcywgbm9zaWRl KTsKLS0gIGlmIChraW5kID09IExPV19CT1VORF9ERUZBVUxUIHx8IGtpbmQgPT0gTE9XX0JPVU5E X0RFRkFVTFRfRVhDTFVTSVZFCi0tICAgICAgfHwga2luZCA9PSBOT05FX0JPVU5EX0RFRkFVTFQg fHwga2luZCA9PSBOT05FX0JPVU5EX0RFRkFVTFRfRVhDTFVTSVZFKQotKyAgaWYgKCEoa2luZCAm IFJBTkdFX0hJR0hfQk9VTkRfREVGQVVMVCkpCi0gICAgIGhpZ2ggPSBldmFsdWF0ZV9zdWJleHAg KG51bGxwdHIsIGV4cCwgcG9zLCBub3NpZGUpOwotLSAgYm9vbCBpbmNsdXNpdmUgPSAoa2luZCA9 PSBOT05FX0JPVU5EX0RFRkFVTFQgfHwga2luZCA9PSBMT1dfQk9VTkRfREVGQVVMVCk7Ci0rICBi b29sIGluY2x1c2l2ZSA9ICEoa2luZCAmIFJBTkdFX0hJR0hfQk9VTkRfRVhDTFVTSVZFKTsKLSAK LSAgIGlmIChub3NpZGUgPT0gRVZBTF9TS0lQKQotICAgICByZXR1cm4gdmFsdWVfZnJvbV9sb25n ZXN0IChidWlsdGluX3R5cGUgKGV4cC0+Z2RiYXJjaCktPmJ1aWx0aW5faW50LCAxKTsKLUBAIC0x MTcxLDEzICsxMTY5LDEzIEBAIHJ1c3RfcmFuZ2UgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGlu dCAqcG9zLCBlbnVtIG5vc2lkZSBub3NpZGUpCi0gc3RhdGljIHZvaWQKLSBydXN0X2NvbXB1dGVf cmFuZ2UgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdmFsdWUgKnJhbmdlLAotIAkJICAgIExP TkdFU1QgKmxvdywgTE9OR0VTVCAqaGlnaCwKLS0JCSAgICBlbnVtIHJhbmdlX3R5cGUgKmtpbmQp Ci0rCQkgICAgcmFuZ2VfdHlwZXMgKmtpbmQpCi0gewotICAgaW50IGk7Ci0gCi0gICAqbG93ID0g MDsKLSAgICpoaWdoID0gMDsKLS0gICpraW5kID0gQk9USF9CT1VORF9ERUZBVUxUOwotKyAgKmtp bmQgPSBSQU5HRV9MT1dfQk9VTkRfREVGQVVMVCB8IFJBTkdFX0hJR0hfQk9VTkRfREVGQVVMVDsK LSAKLSAgIGlmICh0eXBlLT5udW1fZmllbGRzICgpID09IDApCi0gICAgIHJldHVybjsKLUBAIC0x MTg1LDE1ICsxMTgzLDE1IEBAIHJ1c3RfY29tcHV0ZV9yYW5nZSAoc3RydWN0IHR5cGUgKnR5cGUs IHN0cnVjdCB2YWx1ZSAqcmFuZ2UsCi0gICBpID0gMDsKLSAgIGlmIChzdHJjbXAgKFRZUEVfRklF TERfTkFNRSAodHlwZSwgMCksICJzdGFydCIpID09IDApCi0gICAgIHsKLS0gICAgICAqa2luZCA9 IEhJR0hfQk9VTkRfREVGQVVMVDsKLSsgICAgICAqa2luZCA9IFJBTkdFX0hJR0hfQk9VTkRfREVG QVVMVDsKLSAgICAgICAqbG93ID0gdmFsdWVfYXNfbG9uZyAodmFsdWVfZmllbGQgKHJhbmdlLCAw KSk7Ci0gICAgICAgKytpOwotICAgICB9Ci0gICBpZiAodHlwZS0+bnVtX2ZpZWxkcyAoKSA+IGkK LSAgICAgICAmJiBzdHJjbXAgKFRZUEVfRklFTERfTkFNRSAodHlwZSwgaSksICJlbmQiKSA9PSAw KQotICAgICB7Ci0tICAgICAgKmtpbmQgPSAoKmtpbmQgPT0gQk9USF9CT1VORF9ERUZBVUxUCi0t CSAgICAgICA/IExPV19CT1VORF9ERUZBVUxUIDogTk9ORV9CT1VORF9ERUZBVUxUKTsKLSsgICAg ICAqa2luZCA9ICgqa2luZCA9PSAoUkFOR0VfTE9XX0JPVU5EX0RFRkFVTFQgfCBSQU5HRV9ISUdI X0JPVU5EX0RFRkFVTFQpCi0rCSAgICAgICA/IFJBTkdFX0xPV19CT1VORF9ERUZBVUxUIDogUkFO R0VfU1RBTkRBUkQpOwotICAgICAgICpoaWdoID0gdmFsdWVfYXNfbG9uZyAodmFsdWVfZmllbGQg KHJhbmdlLCBpKSk7Ci0gCi0gICAgICAgaWYgKHJ1c3RfaW5jbHVzaXZlX3JhbmdlX3R5cGVfcCAo dHlwZSkpCi1AQCAtMTIxMSw3ICsxMjA5LDcgQEAgcnVzdF9zdWJzY3JpcHQgKHN0cnVjdCBleHBy ZXNzaW9uICpleHAsIGludCAqcG9zLCBlbnVtIG5vc2lkZSBub3NpZGUsCi0gICBzdHJ1Y3QgdHlw ZSAqcmhzdHlwZTsKLSAgIExPTkdFU1QgbG93LCBoaWdoX2JvdW5kOwotICAgLyogSW5pdGlhbGl6 ZWQgdG8gYXBwZWFzZSB0aGUgY29tcGlsZXIuICAqLwotLSAgZW51bSByYW5nZV90eXBlIGtpbmQg PSBCT1RIX0JPVU5EX0RFRkFVTFQ7Ci0rICByYW5nZV90eXBlcyBraW5kID0gUkFOR0VfTE9XX0JP VU5EX0RFRkFVTFQgfCBSQU5HRV9ISUdIX0JPVU5EX0RFRkFVTFQ7Ci0gICBMT05HRVNUIGhpZ2gg PSAwOwotICAgaW50IHdhbnRfc2xpY2UgPSAwOwotIAotQEAgLTEzMDgsOCArMTMwNiw3IEBAIHJ1 c3Rfc3Vic2NyaXB0IChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgKnBvcywgZW51bSBub3Np ZGUgbm9zaWRlLAotICAgICAgIGVsc2UKLSAJZXJyb3IgKF8oIkNhbm5vdCBzdWJzY3JpcHQgbm9u LWFycmF5IHR5cGUiKSk7Ci0gCi0tICAgICAgaWYgKHdhbnRfc2xpY2UKLS0JICAmJiAoa2luZCA9 PSBCT1RIX0JPVU5EX0RFRkFVTFQgfHwga2luZCA9PSBMT1dfQk9VTkRfREVGQVVMVCkpCi0rICAg ICAgaWYgKHdhbnRfc2xpY2UgJiYgKGtpbmQgJiBSQU5HRV9MT1dfQk9VTkRfREVGQVVMVCkpCi0g CWxvdyA9IGxvd19ib3VuZDsKLSAgICAgICBpZiAobG93IDwgMCkKLSAJZXJyb3IgKF8oIkluZGV4 IGxlc3MgdGhhbiB6ZXJvIikpOwotQEAgLTEzMjcsNyArMTMyNCw3IEBAIHJ1c3Rfc3Vic2NyaXB0 IChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgKnBvcywgZW51bSBub3NpZGUgbm9zaWRlLAot IAkgIENPUkVfQUREUiBhZGRyOwotIAkgIHN0cnVjdCB2YWx1ZSAqYWRkcnZhbCwgKnRlbTsKLSAK LS0JICBpZiAoa2luZCA9PSBCT1RIX0JPVU5EX0RFRkFVTFQgfHwga2luZCA9PSBISUdIX0JPVU5E X0RFRkFVTFQpCi0rCSAgaWYgKGtpbmQgJiBSQU5HRV9ISUdIX0JPVU5EX0RFRkFVTFQpCi0gCSAg ICBoaWdoID0gaGlnaF9ib3VuZDsKLSAJICBpZiAoaGlnaCA8IDApCi0gCSAgICBlcnJvciAoXygi SGlnaCBpbmRleCBsZXNzIHRoYW4gemVybyIpKTsKCmRpZmYgLS1naXQgYS9nZGItcmhiejE5NjQx NjctZm9ydHJhbi1hcnJheS1zbGljZXMtYXQtcHJvbXB0LnBhdGNoIGIvZ2RiLXJoYnoxOTY0MTY3 LWZvcnRyYW4tYXJyYXktc2xpY2VzLWF0LXByb21wdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDVlNTg5MC4uMDAwMDAwMAotLS0gYS9nZGItcmhiejE5NjQxNjctZm9ydHJh bi1hcnJheS1zbGljZXMtYXQtcHJvbXB0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjY2MCAr MCwwIEBACi1Gcm9tIEZFRE9SQV9QQVRDSEVTIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJv bTogS2V2aW4gQnVldHRuZXIgPGtldmluYkByZWRoYXQuY29tPgotRGF0ZTogTW9uLCAyNCBNYXkg MjAyMSAyMjo0NjoyMSAtMDcwMAotU3ViamVjdDogZ2RiLXJoYnoxOTY0MTY3LWZvcnRyYW4tYXJy YXktc2xpY2VzLWF0LXByb21wdC5wYXRjaAotCi07OyBbZm9ydHJhbl0gQmFja3BvcnQgQW5kcmV3 IEJ1cmdlc3MncyBjb21taXQgZm9yIEZvcnRyYW4gYXJyYXkKLTs7IHNsaWNlIHN1cHBvcnQKLQot Z2RiL2ZvcnRyYW46IEFkZCBzdXBwb3J0IGZvciBGb3J0cmFuIGFycmF5IHNsaWNlcyBhdCB0aGUg R0RCIHByb21wdAotCi1UaGlzIGNvbW1pdCBicmluZ3MgYXJyYXkgc2xpY2Ugc3VwcG9ydCB0byBH REIuCi0KLVdBUk5JTkc6IFRoaXMgcGF0Y2ggY29udGFpbnMgYSByYXRoZXIgYmlnIGhhY2sgd2hp Y2ggaXMgbGltaXRlZCB0bwotRm9ydHJhbiBhcnJheXMsIHRoaXMgY2FuIGJlIHNlZW4gaW4gZ2Ri dHlwZXMuYyBhbmQgZi1sYW5nLmMuICBNb3JlCi1kZXRhaWxzIG9uIHRoaXMgYmVsb3cuCi0KLVRo aXMgcGF0Y2ggcmV3cml0ZXMgdHdvIGFyZWFzIG9mIEdEQidzIEZvcnRyYW4gc3VwcG9ydCwgdGhl IGNvZGUgdG8KLWV4dHJhY3QgYW4gYXJyYXkgc2xpY2UsIGFuZCB0aGUgY29kZSB0byBwcmludCBh biBhcnJheS4KLQotQWZ0ZXIgdGhpcyBjb21taXQgYSB1c2VyIGNhbiwgZnJvbSB0aGUgR0RCIHBy b21wdCwgYXNrIGZvciBhIHNsaWNlIG9mCi1hIEZvcnRyYW4gYXJyYXkgYW5kIHNob3VsZCBnZXQg dGhlIGNvcnJlY3QgcmVzdWx0IGJhY2suICBTbGljZXMgY2FuCi0ob3B0aW9uYWxseSkgaGF2ZSB0 aGUgbG93ZXIgYm91bmQsIHVwcGVyIGJvdW5kLCBhbmQgYSBzdHJpZGUKLXNwZWNpZmllZC4gIFNs aWNlcyBjYW4gYWxzbyBoYXZlIGEgbmVnYXRpdmUgc3RyaWRlLgotCi1Gb3J0cmFuIGhhcyB0aGUg Y29uY2VwdCBvZiByZXBhY2tpbmcgYXJyYXkgc2xpY2VzLiAgV2l0aGluIGEgY29tcGlsZWQKLUZv cnRyYW4gcHJvZ3JhbSBpZiBhIHVzZXIgcGFzc2VzIGEgbm9uLWNvbnRpZ3VvdXMgYXJyYXkgc2xp Y2UgdG8gYQotZnVuY3Rpb24gdGhlbiB0aGUgY29tcGlsZXIgbWF5IGhhdmUgdG8gcmVwYWNrIHRo ZSBzbGljZSwgdGhpcyBpbnZvbHZlcwotY29weWluZyB0aGUgZWxlbWVudHMgb2YgdGhlIHNsaWNl IHRvIGEgbmV3IGFyZWEgb2YgbWVtb3J5IGJlZm9yZSB0aGUKLWNhbGwsIGFuZCBjb3B5aW5nIHRo ZSBlbGVtZW50cyBiYWNrIHRvIHRoZSBvcmlnaW5hbCBhcnJheSBhZnRlciB0aGUKLWNhbGwuICBX aGV0aGVyIHJlcGFja2luZyBvY2N1cnMgd2lsbCBkZXBlbmQgb24gd2hpY2ggdmVyc2lvbiBvZgot Rm9ydHJhbiBpcyBiZWluZyB1c2VkLCBhbmQgd2hhdCB0eXBlIG9mIGZ1bmN0aW9uIGlzIGJlaW5n IGNhbGxlZC4KLQotVGhpcyBjb21taXQgYWRkcyBzdXBwb3J0IGZvciBib3RoIHBhY2tlZCwgYW5k IHVucGFja2VkIGFycmF5IHNsaWNpbmcsCi13aXRoIHRoZSBkZWZhdWx0IGJlaW5nIHVucGFja2Vk LgotCi1XaXRoIGFuIHVucGFja2VkIGFycmF5IHNsaWNlLCB3aGVuIHRoZSB1c2VyIGFza3MgZm9y IGEgc2xpY2Ugb2YgYW4KLWFycmF5IEdEQiBjcmVhdGVzIGEgbmV3IHR5cGUgdGhhdCBhY2N1cmF0 ZWx5IGRlc2NyaWJlcyB3aGVyZSB0aGUKLWVsZW1lbnRzIG9mIHRoZSBzbGljZSBjYW4gYmUgZm91 bmQgd2l0aGluIHRoZSBvcmlnaW5hbCBhcnJheSwgYQotdmFsdWUgb2YgdGhpcyB0eXBlIGlzIHRo ZW4gcmV0dXJuZWQgdG8gdGhlIHVzZXIuICBUaGUgYWRkcmVzcyBvZiBhbgotZWxlbWVudCB3aXRo aW4gdGhlIHNsaWNlIHdpbGwgYmUgZXF1YWwgdG8gdGhlIGFkZHJlc3Mgb2YgYW4gZWxlbWVudAot d2l0aGluIHRoZSBvcmlnaW5hbCBhcnJheS4KLQotQSB1c2VyIGNhbiBjaG9vc2UgdG8gc2VsZWN0 IHBhY2tlZCBhcnJheSBzbGljZXMgaW5zdGVhZCB1c2luZzoKLQotICAoZ2RiKSBzZXQgZm9ydHJh biByZXBhY2stYXJyYXktc2xpY2VzIG9ufG9mZgotICAoZ2RiKSBzaG93IGZvcnRyYW4gcmVwYWNr LWFycmF5LXNsaWNlcwotCi1XaXRoIHBhY2tlZCBhcnJheSBzbGljZXMgR0RCIGNyZWF0ZXMgYSBu ZXcgdHlwZSB0aGF0IHJlZmxlY3RzIGhvdyB0aGUKLWVsZW1lbnRzIG9mIHRoZSBzbGljZSB3b3Vs ZCBsb29rIGlmIHRoZXkgd2VyZSBsYWlkIG91dCBpbiBjb250aWd1b3VzCi1tZW1vcnksIGFsbG9j YXRlcyBhIHZhbHVlIG9mIHRoaXMgdHlwZSwgYW5kIHRoZW4gZmV0Y2hlcyB0aGUgZWxlbWVudHMK LWZyb20gdGhlIG9yaWdpbmFsIGFycmF5IGFuZCBwbGFjZXMgdGhlbiBpbnRvIHRoZSBjb250ZW50 cyBidWZmZXIgb2YKLXRoZSBuZXcgdmFsdWUuCi0KLU9uZSBiZW5lZml0IG9mIHVzaW5nIHBhY2tl ZCBzbGljZXMgb3ZlciB1bnBhY2tlZCBzbGljZXMgaXMgdGhlIG1lbW9yeQotdXNhZ2UsIHRha2lu ZyBhIHNtYWxsIHNsaWNlIG9mIE4gZWxlbWVudHMgZnJvbSBhIGxhcmdlIGFycmF5IHdpbGwKLXJl cXVpcmUgKGluIEdEQikgTiAqIEVMRU1FTlRfU0laRSBieXRlcyBvZiBtZW1vcnksIHdoaWxlIGFu IHVucGFja2VkCi1hcnJheSB3aWxsIGFsc28gaW5jbHVkZSBhbGwgb2YgdGhlICJwYWRkaW5nIiBi ZXR3ZWVuIHRoZQotbm9uLWNvbnRpZ3VvdXMgZWxlbWVudHMuICBUaGVyZSBhcmUgbmV3IHRlc3Rz IGFkZGVkIHRoYXQgaGlnaGxpZ2h0Ci10aGlzIGRpZmZlcmVuY2UuCi0KLVRoZXJlIGlzIGFsc28g YSBuZXcgZGVidWdnaW5nIGZsYWcgYWRkZWQgd2l0aCB0aGlzIGNvbW1pdCB0aGF0Ci1pbnRyb2R1 Y2VzIHRoZXNlIGNvbW1hbmRzOgotCi0gIChnZGIpIHNldCBkZWJ1ZyBmb3J0cmFuLWFycmF5LXNs aWNpbmcgb258b2ZmCi0gIChnZGIpIHNob3cgZGVidWcgZm9ydHJhbi1hcnJheS1zbGljaW5nCi0K LVRoaXMgcHJpbnRzIGluZm9ybWF0aW9uIGFib3V0IGhvdyB0aGUgYXJyYXkgc2xpY2VzIGFyZSBi ZWluZyBidWlsdC4KLQotQXMgYm90aCB0aGUgcmVwYWNraW5nLCBhbmQgdGhlIGFycmF5IHByaW50 aW5nIHJlcXVpcmVzIEdEQiB0byB3YWxrCi10aHJvdWdoIGEgbXVsdGktZGltZW5zaW9uYWwgRm9y dHJhbiBhcnJheSB2aXNpdGluZyBlYWNoIGVsZW1lbnQsIHRoaXMKLWNvbW1pdCBhZGRzIHRoZSBm aWxlIGYtYXJyYXktd2Fsay5oLCB3aGljaCBpbnRyb2R1Y2VzIHNvbWUKLWluZnJhc3RydWN0dXJl IHRvIHN1cHBvcnQgdGhpcyBwcm9jZXNzLiAgVGhpcyBtZWFucyB0aGUgYXJyYXkgcHJpbnRpbmcK LWNvZGUgaW4gZi12YWxwcmludC5jIGlzIHNpZ25pZmljYW50bHkgcmVkdWNlZC4KLQotVGhlIG9u bHkgc2xpZ2h0IGlzc3VlIHdpdGggdGhpcyBjb21taXQgaXMgdGhlICJyYXRoZXIgYmlnIGhhY2si IHRoYXQgSQotbWVudGlvbmVkIGFib3ZlLiAgVGhpcyBoYWNrIGFsbG93cyB1cyB0byBoYW5kbGUg b25lIHNwZWNpZmljIGNhc2UsCi1hcnJheSBzbGljZXMgd2l0aCBuZWdhdGl2ZSBzdHJpZGVzLiAg VGhpcyBpcyBzb21ldGhpbmcgdGhhdCBJIGRvbid0Ci1iZWxpZXZlIHRoZSBjdXJyZW50IEdEQiB2 YWx1ZSBjb250ZW50cyBtb2RlbCB3aWxsIGFsbG93IHVzIHRvCi1jb3JyZWN0bHkgaGFuZGxlLCBh bmQgcmF0aGVyIHRoYW4gcmV3cml0ZSB0aGUgdmFsdWUgY29udGVudHMgY29kZQotcmlnaHQgbm93 LCBJJ20gaG9waW5nIHRvIHNsaXAgdGhpcyBoYWNrIGluIGFzIGEgd29yayBhcm91bmQuCi0KLVRo ZSBwcm9ibGVtIGlzIHRoYXQsIGFzIEkgc2VlIGl0LCB0aGUgY3VycmVudCB2YWx1ZSBjb250ZW50 cyBtb2RlbAotYXNzdW1lcyB0aGF0IGFuIG9iamVjdCBiYXNlIGFkZHJlc3Mgd2lsbCBiZSB0aGUg bG93ZXN0IGFkZHJlc3Mgd2l0aGluCi10aGF0IG9iamVjdCwgYW5kIHRoYXQgdGhlIGNvbnRlbnRz IG9mIHRoZSBvYmplY3Qgc3RhcnQgYXQgdGhpcyBiYXNlCi1hZGRyZXNzIGFuZCBvY2N1cHkgdGhl IFRZUEVfTEVOR1RIIGJ5dGVzIGFmdGVyIHRoYXQuCi0KLSggV2UgZG8gaGF2ZSB0aGUgZW1iZWRk ZWRfb2Zmc2V0LCB3aGljaCBpcyB1c2VkIGZvciBDKysgc3ViLWNsYXNzZXMsCi1zdWNoIHRoYXQg YW4gb2JqZWN0IGNhbiBzdGFydCBhdCBzb21lIG9mZnNldCBmcm9tIHRoZSBjb250ZW50IGJ1ZmZl ciwKLWhvd2V2ZXIsIHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhlIG9iamVjdCB0aGVuIG9jY3VwaWVz IHRoZSBuZXh0Ci1UWVBFX0xFTkdUSCBieXRlcyBpcyBzdGlsbCB0cnVlIHdpdGhpbiBHREIuICkK LQotVGhlIHByb2JsZW0gaXMgdGhhdCBGb3J0cmFuIGFycmF5cyB3aXRoIGEgbmVnYXRpdmUgc3Ry aWRlIGRvbid0IGZvbGxvdwotdGhpcyBwYXR0ZXJuLiAgSW4gdGhpcyBjYXNlIHRoZSBiYXNlIGFk ZHJlc3Mgb2YgdGhlIG9iamVjdCBwb2ludHMgdG8KLXRoZSBlbGVtZW50IHdpdGggdGhlIGhpZ2hl c3QgYWRkcmVzcywgdGhlIGNvbnRlbnRzIG9mIHRoZSBhcnJheSB0aGVuCi1zdGFydCBhdCBzb21l IG9mZnNldCBfYmVmb3JlXyB0aGUgYmFzZSBhZGRyZXNzLCBhbmQgcHJvY2VlZCBmb3Igb25lCi1l bGVtZW50IF9wYXN0XyB0aGUgYmFzZSBhZGRyZXNzLgotCi1BcyB0aGUgc3RyaWRlIGZvciBzdWNo IGFuIGFycmF5IHdvdWxkIGJlIG5lZ2F0aXZlIHRoZW4sIGluIHRoZW9yeSB0aGUKLVRZUEVfTEVO R1RIIGZvciB0aGlzIHR5cGUgd291bGQgYWxzbyBiZSBuZWdhdGl2ZS4gIEhvd2V2ZXIsIGluIG1h bnkKLXBsYWNlcyBhIHZhbHVlIGluIEdEQiB3aWxsIGRlZ3JhZGUgdG8gYSBwb2ludGVyICsgbGVu Z3RoLCBhbmQgdGhlCi1sZW5ndGggYWxtb3N0IGFsd2F5cyBjb21lcyBmcm9tIHRoZSBUWVBFX0xF TkdUSC4KLQotSXQgaXMgbXkgYmVsaWVmIHRoYXQgaW4gb3JkZXIgdG8gY29ycmVjdGx5IG1vZGVs IHRoaXMgY2FzZSB0aGUgdmFsdWUKLWNvbnRlbnQgaGFuZGxpbmcgb2YgR0RCIHdpbGwgbmVlZCB0 byBiZSByZXdvcmtlZCB0byBzcGxpdCBhcGFydCB0aGUKLXZhbHVlJ3MgY29udGVudCBidWZmZXIg KHdoaWNoIGlzIGEgYmxvY2sgb2YgbWVtb3J5IHdpdGggYSBsZW5ndGgpLCBhbmQKLXRoZSBvYmpl Y3QncyBpbiBtZW1vcnkgYmFzZSBhZGRyZXNzIGFuZCBsZW5ndGgsIHdoaWNoIGNvdWxkIGJlCi1u ZWdhdGl2ZS4KLQotVGhpbmdzIGFyZSBmdXJ0aGVyIGNvbXBsaWNhdGVkIGJlY2F1c2UgYXJyYXlz IHdpdGggbmVnYXRpdmUgc3RyaWRlcwotbGlrZSB0aGlzIGFyZSBhbHdheXMgZHluYW1pYyB0eXBl cy4gIFdoZW4gYSB2YWx1ZSBoYXMgYSBkeW5hbWljIHR5cGUKLWFuZCBpdHMgYmFzZSBhZGRyZXNz IG5lZWRzIHJlc29sdmluZyB3ZSBhY3R1YWxseSBzdG9yZSB0aGUgYWRkcmVzcyBvZgotdGhlIG9i amVjdCB3aXRoaW4gdGhlIHJlc29sdmVkIGR5bmFtaWMgdHlwZSwgbm90IHdpdGhpbiB0aGUgdmFs dWUKLW9iamVjdCBpdHNlbGYuCi0KLUluIHNob3J0IEkgZG9uJ3QgY3VycmVudGx5IHNlZSBhbiBl YXN5IHBhdGggdG8gY2xlYW5seSBzdXBwb3J0IHRoaXMKLXNpdHVhdGlvbiB3aXRoaW4gR0RCLiAg QW5kIHNvIEkgYmVsaWV2ZSB0aGF0IGxlYXZlcyB0d28gb3B0aW9ucywKLWVpdGhlciBhZGQgYSB3 b3JrIGFyb3VuZCwgb3IgY2F0Y2ggY2FzZXMgd2hlcmUgdGhlIHVzZXIgdHJpZXMgdG8gbWFrZQot dXNlIG9mIGEgbmVnYXRpdmUgc3RyaWRlLCBvciBhY2Nlc3MgYW4gYXJyYXkgd2l0aCBhIG5lZ2F0 aXZlIHN0cmlkZSwKLWFuZCB0aHJvdyBhbiBlcnJvci4KLQotVGhpcyBwYXRjaCBjdXJyZW50bHkg Z29lcyB3aXRoIGFkZGluZyBhIHdvcmsgYXJvdW5kLCB3aGljaCBpcyB0aGF0Ci13aGVuIHdlIHJl c29sdmUgYSBkeW5hbWljIEZvcnRyYW4gYXJyYXkgdHlwZSwgaWYgdGhlIHN0cmlkZSBpcwotbmVn YXRpdmUsIHRoZW4gd2UgYWRqdXN0IHRoZSBiYXNlIGFkZHJlc3MgdG8gcG9pbnQgdG8gdGhlIGxv d2VzdAotYWRkcmVzcyByZXF1aXJlZCBieSB0aGUgYXJyYXkuICBUaGUgcHJpbnRpbmcgYW5kIHNs aWNpbmcgY29kZSBpcyBhd2FyZQotb2YgdGhpcyBhZGp1c3RtZW50IGFuZCB3aWxsIGNvcnJlY3Rs eSBzbGljZSBhbmQgcHJpbnQgRm9ydHJhbiBhcnJheXMuCi0KLVdoZXJlIHRoaXMgaGFjayB3aWxs IHNob3cgdGhyb3VnaCB0byB0aGUgdXNlciBpcyBpZiB0aGV5IGFzayBmb3IgdGhlCi1hZGRyZXNz IG9mIGFuIGFycmF5IGluIHRoZWlyIHByb2dyYW0gd2l0aCBhIG5lZ2F0aXZlIGFycmF5IHN0cmlk ZSwgdGhlCi1hZGRyZXNzIHRoZXkgZ2V0IGZyb20gR0RCIHdpbGwgbm90IG1hdGNoIHRoZSBhZGRy ZXNzIHRoYXQgd291bGQgYmUKLWNvbXB1dGVkIHdpdGhpbiB0aGUgRm9ydHJhbiBwcm9ncmFtLgot Ci1nZGIvQ2hhbmdlTG9nOgotCi0JKiBNYWtlZmlsZS5pbiAoSEZJTEVTX05PX1NSQ0RJUik6IEFk ZCBmLWFycmF5LXdhbGtlci5oLgotCSogTkVXUzogTWVudGlvbiBuZXcgb3B0aW9ucy4KLQkqIGYt YXJyYXktd2Fsa2VyLmg6IE5ldyBmaWxlLgotCSogZi1sYW5nLmM6IEluY2x1ZGUgJ2dkYmNtZC5o JyBhbmQgJ2YtYXJyYXktd2Fsa2VyLmgnLgotCShyZXBhY2tfYXJyYXlfc2xpY2VzKTogTmV3IHN0 YXRpYyBnbG9iYWwuCi0JKHNob3dfcmVwYWNrX2FycmF5X3NsaWNlcyk6IE5ldyBmdW5jdGlvbi4K LQkoZm9ydHJhbl9hcnJheV9zbGljaW5nX2RlYnVnKTogTmV3IHN0YXRpYyBnbG9iYWwuCi0JKHNo b3dfZm9ydHJhbl9hcnJheV9zbGljaW5nX2RlYnVnKTogTmV3IGZ1bmN0aW9uLgotCSh2YWx1ZV9m OTBfc3ViYXJyYXkpOiBEZWxldGUuCi0JKHNraXBfdW5kZXRlcm1pbmVkX2FyZ2xpc3QpOiBEZWxl dGUuCi0JKGNsYXNzIGZvcnRyYW5fYXJyYXlfcmVwYWNrZXJfYmFzZV9pbXBsKTogTmV3IGNsYXNz LgotCShjbGFzcyBmb3J0cmFuX2xhenlfYXJyYXlfcmVwYWNrZXJfaW1wbCk6IE5ldyBjbGFzcy4K LQkoY2xhc3MgZm9ydHJhbl9hcnJheV9yZXBhY2tlcl9pbXBsKTogTmV3IGNsYXNzLgotCShmb3J0 cmFuX3ZhbHVlX3N1YmFycmF5KTogQ29tcGxldGUgcmV3cml0ZS4KLQkoc2V0X2ZvcnRyYW5fbGlz dCk6IE5ldyBzdGF0aWMgZ2xvYmFsLgotCShzaG93X2ZvcnRyYW5fbGlzdCk6IExpa2V3aXNlLgot CShfaW5pdGlhbGl6ZV9mX2xhbmd1YWdlKTogUmVnaXN0ZXIgbmV3IGNvbW1hbmRzLgotCShmb3J0 cmFuX2FkanVzdF9keW5hbWljX2FycmF5X2Jhc2VfYWRkcmVzc19oYWNrKTogTmV3IGZ1bmN0aW9u LgotCSogZi1sYW5nLmggKGZvcnRyYW5fYWRqdXN0X2R5bmFtaWNfYXJyYXlfYmFzZV9hZGRyZXNz X2hhY2spOgotCURlY2xhcmUuCi0JKiBmLXZhbHByaW50LmM6IEluY2x1ZGUgJ2YtYXJyYXktd2Fs a2VyLmgnLgotCShjbGFzcyBmb3J0cmFuX2FycmF5X3ByaW50ZXJfaW1wbCk6IE5ldyBjbGFzcy4K LQkoZjc3X3ByaW50X2FycmF5XzEpOiBEZWxldGUuCi0JKGY3N19wcmludF9hcnJheSk6IERlbGV0 ZS4KLQkoZm9ydHJhbl9wcmludF9hcnJheSk6IE5ldy4KLQkoZl92YWx1ZV9wcmludF9pbm5lcik6 IFVwZGF0ZSB0byBjYWxsIGZvcnRyYW5fcHJpbnRfYXJyYXkuCi0JKiBnZGJ0eXBlcy5jOiBJbmNs dWRlICdmLWxhbmcuaCcuCi0JKHJlc29sdmVfZHluYW1pY190eXBlX2ludGVybmFsKTogQ2FsbAot CWZvcnRyYW5fYWRqdXN0X2R5bmFtaWNfYXJyYXlfYmFzZV9hZGRyZXNzX2hhY2suCi0KLWdkYi90 ZXN0c3VpdGUvQ2hhbmdlTG9nOgotCi0gICAgICAgICogZ2RiLmZvcnRyYW4vYXJyYXktc2xpY2Vz LWJhZC5leHA6IE5ldyBmaWxlLgotICAgICAgICAqIGdkYi5mb3J0cmFuL2FycmF5LXNsaWNlcy1i YWQuZjkwOiBOZXcgZmlsZS4KLSAgICAgICAgKiBnZGIuZm9ydHJhbi9hcnJheS1zbGljZXMtc3Vi LXNsaWNlcy5leHA6IE5ldyBmaWxlLgotICAgICAgICAqIGdkYi5mb3J0cmFuL2FycmF5LXNsaWNl cy1zdWItc2xpY2VzLmY5MDogTmV3IGZpbGUuCi0gICAgICAgICogZ2RiLmZvcnRyYW4vYXJyYXkt c2xpY2VzLmV4cDogUmV3cml0ZSB0ZXN0cy4KLSAgICAgICAgKiBnZGIuZm9ydHJhbi9hcnJheS1z bGljZXMuZjkwOiBSZXdyaXRlIHRlc3RzLgotICAgICAgICAqIGdkYi5mb3J0cmFuL3ZsYS1zaXpl b2YuZXhwOiBDb3JyZWN0IGV4cGVjdGVkIHJlc3VsdHMuCi0KLWdkYi9kb2MvQ2hhbmdlTG9nOgot Ci0gICAgICAgICogZ2RiLnRleGluZm8gKERlYnVnZ2luZyBPdXRwdXQpOiBEb2N1bWVudCAnc2V0 L3Nob3cgZGVidWcKLSAgICAgICAgZm9ydHJhbi1hcnJheS1zbGljaW5nJy4KLSAgICAgICAgKFNw ZWNpYWwgRm9ydHJhbiBDb21tYW5kcyk6IERvY3VtZW50ICdzZXQvc2hvdyBmb3J0cmFuCi0gICAg ICAgIHJlcGFjay1hcnJheS1zbGljZXMnLgotCi1kaWZmIC0tZ2l0IGEvZ2RiL01ha2VmaWxlLmlu IGIvZ2RiL01ha2VmaWxlLmluCi0tLS0gYS9nZGIvTWFrZWZpbGUuaW4KLSsrKyBiL2dkYi9NYWtl ZmlsZS5pbgotQEAgLTEyNjgsNiArMTI2OCw3IEBAIEhGSUxFU19OT19TUkNESVIgPSBcCi0gCWV4 cHJlc3Npb24uaCBcCi0gCWV4dGVuc2lvbi5oIFwKLSAJZXh0ZW5zaW9uLXByaXYuaCBcCi0rCWYt YXJyYXktd2Fsa2VyLmggXAotIAlmLWxhbmcuaCBcCi0gCWZic2QtbmF0LmggXAotIAlmYnNkLXRk ZXAuaCBcCi1kaWZmIC0tZ2l0IGEvZ2RiL05FV1MgYi9nZGIvTkVXUwotLS0tIGEvZ2RiL05FV1MK LSsrKyBiL2dkYi9ORVdTCi1AQCAtMTExLDYgKzExMSwxOSBAQCBtYWludGVuYW5jZSBwcmludCBj b3JlLWZpbGUtYmFja2VkLW1hcHBpbmdzCi0gICBQcmludHMgZmlsZS1iYWNrZWQgbWFwcGluZ3Mg bG9hZGVkIGZyb20gYSBjb3JlIGZpbGUncyBub3RlIHNlY3Rpb24uCi0gICBPdXRwdXQgaXMgZXhw ZWN0ZWQgdG8gYmUgc2ltaWxhciB0byB0aGF0IG9mICJpbmZvIHByb2MgbWFwcGluZ3MiLgotIAot K3NldCBkZWJ1ZyBmb3J0cmFuLWFycmF5LXNsaWNpbmcgb258b2ZmCi0rc2hvdyBkZWJ1ZyBmb3J0 cmFuLWFycmF5LXNsaWNpbmcKLSsgIFByaW50IGRlYnVnZ2luZyB3aGVuIHRha2luZyBzbGljZXMg b2YgRm9ydHJhbiBhcnJheXMuCi0rCi0rc2V0IGZvcnRyYW4gcmVwYWNrLWFycmF5LXNsaWNlcyBv bnxvZmYKLStzaG93IGZvcnRyYW4gcmVwYWNrLWFycmF5LXNsaWNlcwotKyAgV2hlbiB0YWtpbmcg c2xpY2VzIGZyb20gRm9ydHJhbiBhcnJheXMgYW5kIHN0cmluZ3MsIGlmIHRoZSBzbGljZSBpcwot KyAgbm9uLWNvbnRpZ3VvdXMgd2l0aGluIHRoZSBvcmlnaW5hbCB2YWx1ZSB0aGVuLCB3aGVuIHRo aXMgb3B0aW9uIGlzCi0rICBvbiwgdGhlIG5ldyB2YWx1ZSB3aWxsIGJlIHJlcGFja2VkIGludG8g YSBzaW5nbGUgY29udGlndW91cyB2YWx1ZS4KLSsgIFdoZW4gdGhpcyBvcHRpb24gaXMgb2ZmLCB0 aGVuIHRoZSB2YWx1ZSByZXR1cm5lZCB3aWxsIGNvbnNpc3Qgb2YgYQotKyAgZGVzY3JpcHRvciB0 aGF0IGRlc2NyaWJlcyB0aGUgc2xpY2Ugd2l0aGluIHRoZSBtZW1vcnkgb2YgdGhlCi0rICBvcmln aW5hbCBwYXJlbnQgdmFsdWUuCi0rCi0gKiBDaGFuZ2VkIGNvbW1hbmRzCi0gCi0gYWxpYXMgWy1h XSBbLS1dIEFMSUFTID0gQ09NTUFORCBbREVGQVVMVC1BUkdTLi4uXQotZGlmZiAtLWdpdCBhL2dk Yi9kb2MvZ2RiLnRleGluZm8gYi9nZGIvZG9jL2dkYi50ZXhpbmZvCi0tLS0gYS9nZGIvZG9jL2dk Yi50ZXhpbmZvCi0rKysgYi9nZGIvZG9jL2dkYi50ZXhpbmZvCi1AQCAtMTY5MTksNiArMTY5MTks MjkgQEAgVGhpcyBjb21tYW5kIHByaW50cyB0aGUgdmFsdWVzIGNvbnRhaW5lZCBpbiB0aGUgRm9y dHJhbiBAY29kZXtDT01NT059Ci0gYmxvY2sgd2hvc2UgbmFtZSBpcyBAdmFye2NvbW1vbi1uYW1l fS4gIFdpdGggbm8gYXJndW1lbnQsIHRoZSBuYW1lcyBvZgotIGFsbCBAY29kZXtDT01NT059IGJs b2NrcyB2aXNpYmxlIGF0IHRoZSBjdXJyZW50IHByb2dyYW0gbG9jYXRpb24gYXJlCi0gcHJpbnRl ZC4KLStAY2luZGV4IGFycmF5cyBzbGljZXMgKEZvcnRyYW4pCi0rQGtpbmRleCBzZXQgZm9ydHJh biByZXBhY2stYXJyYXktc2xpY2VzCi0rQGtpbmRleCBzaG93IGZvcnRyYW4gcmVwYWNrLWFycmF5 LXNsaWNlcwotK0BpdGVtIHNldCBmb3J0cmFuIHJlcGFjay1hcnJheS1zbGljZXMgW29ufG9mZl0K LStAaXRlbSBzaG93IGZvcnRyYW4gcmVwYWNrLWFycmF5LXNsaWNlcwotK1doZW4gdGFraW5nIGEg c2xpY2UgZnJvbSBhbiBhcnJheSwgYSBGb3J0cmFuIGNvbXBpbGVyIGNhbiBjaG9vc2UgdG8KLStl aXRoZXIgcHJvZHVjZSBhbiBhcnJheSBkZXNjcmlwdG9yIHRoYXQgZGVzY3JpYmVzIHRoZSBzbGlj ZSBpbiBwbGFjZSwKLStvciBpdCBtYXkgcmVwYWNrIHRoZSBzbGljZSwgY29weWluZyB0aGUgZWxl bWVudHMgb2YgdGhlIHNsaWNlIGludG8gYQotK25ldyByZWdpb24gb2YgbWVtb3J5LgotKwotK1do ZW4gdGhpcyBzZXR0aW5nIGlzIG9uLCB0aGVuIEB2YWx1ZXtHREJOfSB3aWxsIGFsc28gcmVwYWNr IGFycmF5Ci0rc2xpY2VzIGluIHNvbWUgc2l0dWF0aW9ucy4gIFdoZW4gdGhpcyBzZXR0aW5nIGlz IG9mZiwgdGhlbgotK0B2YWx1ZXtHREJOfSB3aWxsIGNyZWF0ZSBhcnJheSBkZXNjcmlwdG9ycyBm b3Igc2xpY2VzIHRoYXQgcmVmZXJlbmNlCi0rdGhlIG9yaWdpbmFsIGRhdGEgaW4gcGxhY2UuCi0r Ci0rQHZhbHVle0dEQk59IHdpbGwgbmV2ZXIgcmVwYWNrIGFuIGFycmF5IHNsaWNlIGlmIHRoZSBk YXRhIGZvciB0aGUKLStzbGljZSBpcyBjb250aWd1b3VzIHdpdGhpbiB0aGUgb3JpZ2luYWwgYXJy YXkuCi0rCi0rQHZhbHVle0dEQk59IHdpbGwgYWx3YXlzIHJlcGFjayBzdHJpbmcgc2xpY2VzIGlm IHRoZSBkYXRhIGZvciB0aGUKLStzbGljZSBpcyBub24tY29udGlndW91cyB3aXRoaW4gdGhlIG9y aWdpbmFsIHN0cmluZyBhcyBAdmFsdWV7R0RCTn0KLStkb2VzIG5vdCBzdXBwb3J0IHByaW50aW5n IG5vbi1jb250aWd1b3VzIHN0cmluZ3MuCi0rCi0rVGhlIGRlZmF1bHQgZm9yIHRoaXMgc2V0dGlu ZyBpcyBAY29kZXtvZmZ9LgotIEBlbmQgdGFibGUKLSAKLSBAbm9kZSBQYXNjYWwKLUBAIC0yNjUw Nyw2ICsyNjUzMCwxNiBAQCBTaG93IHRoZSBjdXJyZW50IHN0YXRlIG9mIEZyZWVCU0QgTFdQIGRl YnVnZ2luZyBtZXNzYWdlcy4KLSBUdXJucyBvbiBvciBvZmYgZGVidWdnaW5nIG1lc3NhZ2VzIGZy b20gdGhlIEZyZWVCU0QgbmF0aXZlIHRhcmdldC4KLSBAaXRlbSBzaG93IGRlYnVnIGZic2QtbmF0 Ci0gU2hvdyB0aGUgY3VycmVudCBzdGF0ZSBvZiBGcmVlQlNEIG5hdGl2ZSB0YXJnZXQgZGVidWdn aW5nIG1lc3NhZ2VzLgotKwotK0BpdGVtIHNldCBkZWJ1ZyBmb3J0cmFuLWFycmF5LXNsaWNpbmcK LStAY2luZGV4IGZvcnRyYW4gYXJyYXkgc2xpY2luZyBkZWJ1Z2dpbmcgaW5mbwotK1R1cm5zIG9u IG9yIG9mZiBkaXNwbGF5IG9mIEB2YWx1ZXtHREJOfSBGb3J0cmFuIGFycmF5IHNsaWNpbmcKLStk ZWJ1Z2dpbmcgaW5mby4gIFRoZSBkZWZhdWx0IGlzIG9mZi4KLSsKLStAaXRlbSBzaG93IGRlYnVn IGZvcnRyYW4tYXJyYXktc2xpY2luZwotK0Rpc3BsYXlzIHRoZSBjdXJyZW50IHN0YXRlIG9mIGRp c3BsYXlpbmcgQHZhbHVle0dEQk59IEZvcnRyYW4gYXJyYXkKLStzbGljaW5nIGRlYnVnZ2luZyBp bmZvLgotKwotIEBpdGVtIHNldCBkZWJ1ZyBmcmFtZQotIEBjaW5kZXggZnJhbWUgZGVidWdnaW5n IGluZm8KLSBUdXJucyBvbiBvciBvZmYgZGlzcGxheSBvZiBAdmFsdWV7R0RCTn0gZnJhbWUgZGVi dWdnaW5nIGluZm8uICBUaGUKLWRpZmYgLS1naXQgYS9nZGIvZi1hcnJheS13YWxrZXIuaCBiL2dk Yi9mLWFycmF5LXdhbGtlci5oCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotLS0tIC9kZXYvbnVsbAot KysrIGIvZ2RiL2YtYXJyYXktd2Fsa2VyLmgKLUBAIC0wLDAgKzEsMjY1IEBACi0rLyogQ29weXJp Z2h0IChDKSAyMDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyAgIFRoaXMg ZmlsZSBpcyBwYXJ0IG9mIEdEQi4KLSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyAgIGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 Ci0rICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0 aGUgTGljZW5zZSwgb3IKLSsgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgot KwotKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAotKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyAgIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rCi0rICAgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsgICBhbG9uZyB3 aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5z ZXMvPi4gICovCi0rCi0rLyogU3VwcG9ydCBjbGFzc2VzIHRvIHdyYXAgdXAgdGhlIHByb2Nlc3Mg b2YgaXRlcmF0aW5nIG92ZXIgYQotKyAgIG11bHRpLWRpbWVuc2lvbmFsIEZvcnRyYW4gYXJyYXku ICAqLwotKwotKyNpZm5kZWYgRl9BUlJBWV9XQUxLRVJfSAotKyNkZWZpbmUgRl9BUlJBWV9XQUxL RVJfSAotKwotKyNpbmNsdWRlICJkZWZzLmgiCi0rI2luY2x1ZGUgImdkYnR5cGVzLmgiCi0rI2lu Y2x1ZGUgImYtbGFuZy5oIgotKwotKy8qIENsYXNzIGZvciBjYWxjdWxhdGluZyB0aGUgYnl0ZSBv ZmZzZXQgZm9yIGVsZW1lbnRzIHdpdGhpbiBhIHNpbmdsZQotKyAgIGRpbWVuc2lvbiBvZiBhIEZv cnRyYW4gYXJyYXkuICAqLwotK2NsYXNzIGZvcnRyYW5fYXJyYXlfb2Zmc2V0X2NhbGN1bGF0b3IK LSt7Ci0rcHVibGljOgotKyAgLyogQ3JlYXRlIGEgbmV3IG9mZnNldCBjYWxjdWxhdG9yIGZvciBU WVBFLCB3aGljaCBpcyBlaXRoZXIgYW4gYXJyYXkgb3IgYQotKyAgICAgc3RyaW5nLiAgKi8KLSsg IGV4cGxpY2l0IGZvcnRyYW5fYXJyYXlfb2Zmc2V0X2NhbGN1bGF0b3IgKHN0cnVjdCB0eXBlICp0 eXBlKQotKyAgewotKyAgICAvKiBWYWxpZGF0ZSB0aGUgdHlwZS4gICovCi0rICAgIHR5cGUgPSBj aGVja190eXBlZGVmICh0eXBlKTsKLSsgICAgaWYgKHR5cGUtPmNvZGUgKCkgIT0gVFlQRV9DT0RF X0FSUkFZCi0rCSYmICh0eXBlLT5jb2RlICgpICE9IFRZUEVfQ09ERV9TVFJJTkcpKQotKyAgICAg IGVycm9yIChfKCJjYW4gb25seSBjb21wdXRlIG9mZnNldHMgZm9yIGFycmF5cyBhbmQgc3RyaW5n cyIpKTsKLSsKLSsgICAgLyogR2V0IHRoZSByYW5nZSwgYW5kIGV4dHJhY3QgdGhlIGJvdW5kcy4g ICovCi0rICAgIHN0cnVjdCB0eXBlICpyYW5nZV90eXBlID0gdHlwZS0+aW5kZXhfdHlwZSAoKTsK LSsgICAgaWYgKCFnZXRfZGlzY3JldGVfYm91bmRzIChyYW5nZV90eXBlLCAmbV9sb3dlcmJvdW5k LCAmbV91cHBlcmJvdW5kKSkKLSsgICAgICBlcnJvciAoInVuYWJsZSB0byByZWFkIGFycmF5IGJv dW5kcyIpOwotKwotKyAgICAvKiBGaWd1cmUgb3V0IHRoZSBzdHJpZGUgZm9yIHRoaXMgYXJyYXku ICAqLwotKyAgICBzdHJ1Y3QgdHlwZSAqZWx0X3R5cGUgPSBjaGVja190eXBlZGVmIChUWVBFX1RB UkdFVF9UWVBFICh0eXBlKSk7Ci0rICAgIG1fc3RyaWRlID0gdHlwZS0+aW5kZXhfdHlwZSAoKS0+ Ym91bmRzICgpLT5iaXRfc3RyaWRlICgpOwotKyAgICBpZiAobV9zdHJpZGUgPT0gMCkKLSsgICAg ICBtX3N0cmlkZSA9IHR5cGVfbGVuZ3RoX3VuaXRzIChlbHRfdHlwZSk7Ci0rICAgIGVsc2UKLSsg ICAgICB7Ci0rCXN0cnVjdCBnZGJhcmNoICphcmNoID0gZ2V0X3R5cGVfYXJjaCAoZWx0X3R5cGUp OwotKwlpbnQgdW5pdF9zaXplID0gZ2RiYXJjaF9hZGRyZXNzYWJsZV9tZW1vcnlfdW5pdF9zaXpl IChhcmNoKTsKLSsJbV9zdHJpZGUgLz0gKHVuaXRfc2l6ZSAqIDgpOwotKyAgICAgIH0KLSsgIH07 Ci0rCi0rICAvKiBHZXQgdGhlIGJ5dGUgb2Zmc2V0IGZvciBlbGVtZW50IElOREVYIHdpdGhpbiB0 aGUgdHlwZSB3ZSBhcmUgd29ya2luZwotKyAgICAgb24uICBUaGVyZSBpcyBubyBib3VuZHMgY2hl Y2tpbmcgZG9uZSBvbiBJTkRFWC4gIElmIHRoZSBzdHJpZGUgaXMKLSsgICAgIG5lZ2F0aXZlIHRo ZW4gd2Ugc3RpbGwgYXNzdW1lIHRoYXQgdGhlIGJhc2UgYWRkcmVzcyAoZm9yIHRoZSBhcnJheQot KyAgICAgb2JqZWN0KSBwb2ludHMgdG8gdGhlIGVsZW1lbnQgd2l0aCB0aGUgbG93ZXN0IG1lbW9y eSBhZGRyZXNzLCB3ZSB0aGVuCi0rICAgICBjYWxjdWxhdGUgYW4gb2Zmc2V0IGFzc3VtaW5nIHRo YXQgaW5kZXggMCB3aWxsIGJlIHRoZSBlbGVtZW50IGF0IHRoZQotKyAgICAgaGlnaGVzdCBhZGRy ZXNzLCBpbmRleCAxIHRoZSBuZXh0IGhpZ2hlc3QsIGFuZCBzbyBvbi4gIFRoaXMgaXMgbm90Ci0r ICAgICBxdWl0ZSBob3cgRm9ydHJhbiB3b3JrcyBpbiByZWFsaXR5OyBpbiByZWFsaXR5IHRoZSBi YXNlIGFkZHJlc3Mgb2YKLSsgICAgIHRoZSBvYmplY3Qgd291bGQgcG9pbnQgYXQgdGhlIGVsZW1l bnQgd2l0aCB0aGUgaGlnaGVzdCBhZGRyZXNzLCBhbmQKLSsgICAgIHdlIHdvdWxkIGluZGV4IGJh Y2t3YXJkcyBmcm9tIHRoZXJlIGluIHRoZSAibm9ybWFsIiB3YXksIGhvd2V2ZXIsCi0rICAgICBH REIncyBjdXJyZW50IHZhbHVlIGNvbnRlbnRzIG1vZGVsIGRvZXNuJ3Qgc3VwcG9ydCBoYXZpbmcg dGhlIGJhc2UKLSsgICAgIGFkZHJlc3MgYmUgbmVhciB0byB0aGUgZW5kIG9mIHRoZSB2YWx1ZSBj b250ZW50cywgc28gd2UgY3VycmVudGx5Ci0rICAgICBhZGp1c3QgdGhlIGJhc2UgYWRkcmVzcyBv ZiBGb3J0cmFuIGFycmF5cyB3aXRoIG5lZ2F0aXZlIHN0cmlkZXMgc28KLSsgICAgIHRoZWlyIGJh c2UgYWRkcmVzcyBwb2ludHMgYXQgdGhlIGxvd2VzdCBtZW1vcnkgYWRkcmVzcy4gIFRoaXMgY29k ZQotKyAgICAgaGVyZSBpcyBwYXJ0IG9mIHdvcmtpbmcgYXJvdW5kIHRoaXMgd2VpcmRuZXNzLiAg Ki8KLSsgIExPTkdFU1QgaW5kZXhfb2Zmc2V0IChMT05HRVNUIGluZGV4KQotKyAgewotKyAgICBM T05HRVNUIG9mZnNldDsKLSsgICAgaWYgKG1fc3RyaWRlIDwgMCkKLSsgICAgICBvZmZzZXQgPSBz dGQ6OmFicyAobV9zdHJpZGUpICogKG1fdXBwZXJib3VuZCAtIGluZGV4KTsKLSsgICAgZWxzZQot KyAgICAgIG9mZnNldCA9IHN0ZDo6YWJzIChtX3N0cmlkZSkgKiAoaW5kZXggLSBtX2xvd2VyYm91 bmQpOwotKyAgICByZXR1cm4gb2Zmc2V0OwotKyAgfQotKwotK3ByaXZhdGU6Ci0rCi0rICAvKiBU aGUgc3RyaWRlIGZvciB0aGUgdHlwZSB3ZSBhcmUgd29ya2luZyB3aXRoLiAgKi8KLSsgIExPTkdF U1QgbV9zdHJpZGU7Ci0rCi0rICAvKiBUaGUgdXBwZXIgYm91bmQgZm9yIHRoZSB0eXBlIHdlIGFy ZSB3b3JraW5nIHdpdGguICAqLwotKyAgTE9OR0VTVCBtX3VwcGVyYm91bmQ7Ci0rCi0rICAvKiBU aGUgbG93ZXIgYm91bmQgZm9yIHRoZSB0eXBlIHdlIGFyZSB3b3JraW5nIHdpdGguICAqLwotKyAg TE9OR0VTVCBtX2xvd2VyYm91bmQ7Ci0rfTsKLSsKLSsvKiBBIGJhc2UgY2xhc3MgdXNlZCBieSBm b3J0cmFuX2FycmF5X3dhbGtlci4gIFRoZXJlJ3Mgbm8gdmlydHVhbCBtZXRob2RzCi0rICAgaGVy ZSwgc3ViLWNsYXNzZXMgc2hvdWxkIGp1c3Qgb3ZlcnJpZGUgdGhlIGZ1bmN0aW9ucyB0aGV5IHdh bnQgaW4gb3JkZXIKLSsgICB0byBzcGVjaWFsaXNlIHRoZSBiZWhhdmlvdXIgdG8gdGhlaXIgbmVl ZHMuICBUaGUgZnVuY3Rpb25hbGl0eQotKyAgIHByb3ZpZGVkIGluIHRoZXNlIGRlZmF1bHQgaW1w bGVtZW50YXRpb25zIHdpbGwgdmlzaXQgZXZlcnkgYXJyYXkKLSsgICBlbGVtZW50LCBidXQgZG8g bm90aGluZyBmb3IgZWFjaCBlbGVtZW50LiAgKi8KLSsKLStzdHJ1Y3QgZm9ydHJhbl9hcnJheV93 YWxrZXJfYmFzZV9pbXBsCi0rewotKyAgLyogQ2FsbGVkIHdoZW4gaXRlcmF0aW5nIGJldHdlZW4g dGhlIGxvd2VyIGFuZCB1cHBlciBib3VuZHMgb2YgZWFjaAotKyAgICAgZGltZW5zaW9uIG9mIHRo ZSBhcnJheS4gIFJldHVybiB0cnVlIGlmIEdEQiBzaG91bGQgY29udGludWUgaXRlcmF0aW5nLAot KyAgICAgb3RoZXJ3aXNlLCByZXR1cm4gZmFsc2UuCi0rCi0rICAgICBTSE9VTERfQ09OVElOVUUg aW5kaWNhdGVzIGlmIEdEQiBpcyBnb2luZyB0byBzdG9wIGFueXdheSwgYW5kIHNob3VsZAotKyAg ICAgYmUgdGFrZW4gaW50byBjb25zaWRlcmF0aW9uIHdoZW4gZGVjaWRpbmcgd2hhdCB0byByZXR1 cm4uICBJZgotKyAgICAgU0hPVUxEX0NPTlRJTlVFIGlzIGZhbHNlIHRoZW4gdGhpcyBmdW5jdGlv biBtdXN0IGFsc28gcmV0dXJuIGZhbHNlLAotKyAgICAgdGhlIGZ1bmN0aW9uIGlzIHN0aWxsIGNh bGxlZCB0aG91Z2ggaW4gY2FzZSBleHRyYSB3b3JrIG5lZWRzIHRvIGJlCi0rICAgICBkb25lIGFz IHBhcnQgb2YgdGhlIHN0b3BwaW5nIHByb2Nlc3MuICAqLwotKyAgYm9vbCBjb250aW51ZV93YWxr aW5nIChib29sIHNob3VsZF9jb250aW51ZSkKLSsgIHsgcmV0dXJuIHNob3VsZF9jb250aW51ZTsg fQotKwotKyAgLyogQ2FsbGVkIHdoZW4gR0RCIHN0YXJ0cyBpdGVyYXRpbmcgb3ZlciBhIGRpbWVu c2lvbiBvZiB0aGUgYXJyYXkuICBUaGUKLSsgICAgIGFyZ3VtZW50IElOTkVSX1AgaXMgdHJ1ZSBm b3IgdGhlIGlubmVyIG1vc3QgZGltZW5zaW9uICh0aGUgZGltZW5zaW9uCi0rICAgICBjb250YWlu aW5nIHRoZSBhY3R1YWwgZWxlbWVudHMgb2YgdGhlIGFycmF5KSwgYW5kIGZhbHNlIGZvciBtb3Jl IG91dGVyCi0rICAgICBkaW1lbnNpb25zLiAgRm9yIGEgY29uY3JldGUgZXhhbXBsZSBvZiBob3cg dGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQKLSsgICAgIHNlZSB0aGUgY29tbWVudCBvbiBwcm9jZXNz X2VsZW1lbnQgYmVsb3cuICAqLwotKyAgdm9pZCBzdGFydF9kaW1lbnNpb24gKGJvb2wgaW5uZXJf cCkKLSsgIHsgLyogTm90aGluZy4gICovIH0KLSsKLSsgIC8qIENhbGxlZCB3aGVuIEdEQiBmaW5p c2hlcyBpdGVyYXRpbmcgb3ZlciBhIGRpbWVuc2lvbiBvZiB0aGUgYXJyYXkuICBUaGUKLSsgICAg IGFyZ3VtZW50IElOTkVSX1AgaXMgdHJ1ZSBmb3IgdGhlIGlubmVyIG1vc3QgZGltZW5zaW9uICh0 aGUgZGltZW5zaW9uCi0rICAgICBjb250YWluaW5nIHRoZSBhY3R1YWwgZWxlbWVudHMgb2YgdGhl IGFycmF5KSwgYW5kIGZhbHNlIGZvciBtb3JlIG91dGVyCi0rICAgICBkaW1lbnNpb25zLiAgTEFT VF9QIGlzIHRydWUgZm9yIHRoZSBsYXN0IGNhbGwgYXQgYSBwYXJ0aWN1bGFyCi0rICAgICBkaW1l bnNpb24uICBGb3IgYSBjb25jcmV0ZSBleGFtcGxlIG9mIGhvdyB0aGlzIGZ1bmN0aW9uIGlzIGNh bGxlZAotKyAgICAgc2VlIHRoZSBjb21tZW50IG9uIHByb2Nlc3NfZWxlbWVudCBiZWxvdy4gICov Ci0rICB2b2lkIGZpbmlzaF9kaW1lbnNpb24gKGJvb2wgaW5uZXJfcCwgYm9vbCBsYXN0X3ApCi0r ICB7IC8qIE5vdGhpbmcuICAqLyB9Ci0rCi0rICAvKiBDYWxsZWQgd2hlbiBwcm9jZXNzaW5nIHRo ZSBpbm5lciBtb3N0IGRpbWVuc2lvbiBvZiB0aGUgYXJyYXksIGZvcgotKyAgICAgZXZlcnkgZWxl bWVudCBpbiB0aGUgYXJyYXkuICBFTFRfVFlQRSBpcyB0aGUgdHlwZSBvZiB0aGUgZWxlbWVudCBi ZWluZwotKyAgICAgZXh0cmFjdGVkLCBhbmQgRUxUX09GRiBpcyB0aGUgb2Zmc2V0IG9mIHRoZSBl bGVtZW50IGZyb20gdGhlIHN0YXJ0IG9mCi0rICAgICBhcnJheSBiZWluZyB3YWxrZWQsIGFuZCBM QVNUX1AgaXMgdHJ1ZSBvbmx5IHdoZW4gdGhpcyBpcyB0aGUgbGFzdAotKyAgICAgZWxlbWVudCB0 aGF0IHdpbGwgYmUgcHJvY2Vzc2VkIGluIHRoaXMgZGltZW5zaW9uLgotKwotKyAgICAgR2l2ZW4g dGhpcyB0d28gZGltZW5zaW9uYWwgYXJyYXkgKCgxLCAyKSAoMywgNCkpLCB0aGUgY2FsbHMgdG8K LSsgICAgIHN0YXJ0X2RpbWVuc2lvbiwgcHJvY2Vzc19lbGVtZW50LCBhbmQgZmluaXNoX2RpbWVu c2lvbiBsb29rIGxpa2UgdGhpczoKLSsKLSsgICAgIHN0YXJ0X2RpbWVuc2lvbiAoZmFsc2UpOwot KyAgICAgICBzdGFydF9kaW1lbnNpb24gKHRydWUpOwotKyAgICAgICAgIHByb2Nlc3NfZWxlbWVu dCAoVFlQRSwgT0ZGU0VULCBmYWxzZSk7Ci0rICAgICAgICAgcHJvY2Vzc19lbGVtZW50IChUWVBF LCBPRkZTRVQsIHRydWUpOwotKyAgICAgICBmaW5pc2hfZGltZW5zaW9uICh0cnVlLCBmYWxzZSk7 Ci0rICAgICAgIHN0YXJ0X2RpbWVuc2lvbiAodHJ1ZSk7Ci0rICAgICAgICAgcHJvY2Vzc19lbGVt ZW50IChUWVBFLCBPRkZTRVQsIGZhbHNlKTsKLSsgICAgICAgICBwcm9jZXNzX2VsZW1lbnQgKFRZ UEUsIE9GRlNFVCwgdHJ1ZSk7Ci0rICAgICAgIGZpbmlzaF9kaW1lbnNpb24gKHRydWUsIHRydWUp OwotKyAgICAgZmluaXNoX2RpbWVuc2lvbiAoZmFsc2UsIHRydWUpOyAgKi8KLSsgIHZvaWQgcHJv Y2Vzc19lbGVtZW50IChzdHJ1Y3QgdHlwZSAqZWx0X3R5cGUsIExPTkdFU1QgZWx0X29mZiwgYm9v bCBsYXN0X3ApCi0rICB7IC8qIE5vdGhpbmcuICAqLyB9Ci0rfTsKLSsKLSsvKiBBIGNsYXNzIHRv IHdyYXAgdXAgdGhlIHByb2Nlc3Mgb2YgaXRlcmF0aW5nIG92ZXIgYSBtdWx0aS1kaW1lbnNpb25h bAotKyAgIEZvcnRyYW4gYXJyYXkuICBJTVBMIGlzIHVzZWQgdG8gc3BlY2lhbGlzZSB3aGF0IGhh cHBlbnMgYXMgd2Ugd2FsayBvdmVyCi0rICAgdGhlIGFycmF5LiAgU2VlIGNsYXNzIEZPUlRSQU5f QVJSQVlfV0FMS0VSX0JBU0VfSU1QTCAoYWJvdmUpIGZvciB0aGUKLSsgICBtZXRob2RzIHRoYW4g Y2FuIGJlIHVzZWQgdG8gY3VzdG9taXNlIHRoZSBhcnJheSB3YWxrLiAgKi8KLSt0ZW1wbGF0ZTx0 eXBlbmFtZSBJbXBsPgotK2NsYXNzIGZvcnRyYW5fYXJyYXlfd2Fsa2VyCi0rewotKyAgLyogRW5z dXJlIHRoYXQgSW1wbCBpcyBkZXJpdmVkIGZyb20gdGhlIHJlcXVpcmVkIGJhc2UgY2xhc3MuICBU aGlzIGp1c3QKLSsgICAgIGVuc3VyZXMgdGhhdCBhbGwgb2YgdGhlIHJlcXVpcmVkIEFQSSBtZXRo b2RzIGFyZSBhdmFpbGFibGUgYW5kIGhhdmUgYQotKyAgICAgc2Vuc2libGUgZGVmYXVsdCBpbXBs ZW1lbnRhdGlvbi4gICovCi0rICBnZGJfc3RhdGljX2Fzc2VydCAoKHN0ZDo6aXNfYmFzZV9vZjxm b3J0cmFuX2FycmF5X3dhbGtlcl9iYXNlX2ltcGwsSW1wbD46OnZhbHVlKSk7Ci0rCi0rcHVibGlj OgotKyAgLyogQ3JlYXRlIGEgbmV3IGFycmF5IHdhbGtlci4gIFRZUEUgaXMgdGhlIHR5cGUgb2Yg dGhlIGFycmF5IGJlaW5nIHdhbGtlZAotKyAgICAgb3ZlciwgYW5kIEFERFJFU1MgaXMgdGhlIGJh c2UgYWRkcmVzcyBmb3IgdGhlIG9iamVjdCBvZiBUWVBFIGluCi0rICAgICBtZW1vcnkuICBBbGwg b3RoZXIgYXJndW1lbnRzIGFyZSBmb3J3YXJkZWQgdG8gdGhlIGNvbnN0cnVjdG9yIG9mIHRoZQot KyAgICAgdGVtcGxhdGUgcGFyYW1ldGVyIGNsYXNzIElNUEwuICAqLwotKyAgdGVtcGxhdGUgPHR5 cGVuYW1lIC4uLkFyZ3M+Ci0rICBmb3J0cmFuX2FycmF5X3dhbGtlciAoc3RydWN0IHR5cGUgKnR5 cGUsIENPUkVfQUREUiBhZGRyZXNzLAotKwkJCUFyZ3MuLi4gYXJncykKLSsgICAgOiBtX3R5cGUg KHR5cGUpLAotKyAgICAgIG1fYWRkcmVzcyAoYWRkcmVzcyksCi0rICAgICAgbV9pbXBsICh0eXBl LCBhZGRyZXNzLCBhcmdzLi4uKQotKyAgewotKyAgICBtX25kaW1lbnNpb25zID0gIGNhbGNfZjc3 X2FycmF5X2RpbXMgKG1fdHlwZSk7Ci0rICB9Ci0rCi0rICAvKiBXYWxrIHRoZSBhcnJheS4gICov Ci0rICB2b2lkCi0rICB3YWxrICgpCi0rICB7Ci0rICAgIHdhbGtfMSAoMSwgbV90eXBlLCAwLCBm YWxzZSk7Ci0rICB9Ci0rCi0rcHJpdmF0ZToKLSsgIC8qIFRoZSBjb3JlIG9mIHRoZSBhcnJheSB3 YWxraW5nIGFsZ29yaXRobS4gIE5TUyBpcyB0aGUgY3VycmVudAotKyAgICAgZGltZW5zaW9uIG51 bWJlciBiZWluZyBwcm9jZXNzZWQsIFRZUEUgaXMgdGhlIHR5cGUgb2YgdGhpcyBkaW1lbnNpb24s Ci0rICAgICBhbmQgT0ZGU0VUIGlzIHRoZSBvZmZzZXQgKGluIGJ5dGVzKSBmb3IgdGhlIHN0YXJ0 IG9mIHRoaXMgZGltZW5zaW9uLiAgKi8KLSsgIHZvaWQKLSsgIHdhbGtfMSAoaW50IG5zcywgc3Ry dWN0IHR5cGUgKnR5cGUsIGludCBvZmZzZXQsIGJvb2wgbGFzdF9wKQotKyAgewotKyAgICAvKiBF eHRyYWN0IHRoZSByYW5nZSwgYW5kIGdldCBsb3dlciBhbmQgdXBwZXIgYm91bmRzLiAgKi8KLSsg ICAgc3RydWN0IHR5cGUgKnJhbmdlX3R5cGUgPSBjaGVja190eXBlZGVmICh0eXBlKS0+aW5kZXhf dHlwZSAoKTsKLSsgICAgTE9OR0VTVCBsb3dlcmJvdW5kLCB1cHBlcmJvdW5kOwotKyAgICBpZiAo IWdldF9kaXNjcmV0ZV9ib3VuZHMgKHJhbmdlX3R5cGUsICZsb3dlcmJvdW5kLCAmdXBwZXJib3Vu ZCkpCi0rICAgICAgZXJyb3IgKCJmYWlsZWQgdG8gZ2V0IHJhbmdlIGJvdW5kcyIpOwotKwotKyAg ICAvKiBDQUxDIGlzIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSBvZmZzZXRzIGZvciBlYWNoIGVsZW1l bnQgaW4gdGhpcwotKyAgICAgICBkaW1lbnNpb24uICAqLwotKyAgICBmb3J0cmFuX2FycmF5X29m ZnNldF9jYWxjdWxhdG9yIGNhbGMgKHR5cGUpOwotKwotKyAgICBtX2ltcGwuc3RhcnRfZGltZW5z aW9uIChuc3MgPT0gbV9uZGltZW5zaW9ucyk7Ci0rCi0rICAgIGlmIChuc3MgIT0gbV9uZGltZW5z aW9ucykKLSsgICAgICB7Ci0rCS8qIEZvciBkaW1lbnNpb25zIG90aGVyIHRoYW4gdGhlIGlubmVy IG1vc3QsIHdhbGsgZWFjaCBlbGVtZW50IGFuZAotKwkgICByZWN1cnNlIHdoaWxlIHBlZWxpbmcg b2ZmIG9uZSBtb3JlIGRpbWVuc2lvbiBvZiB0aGUgYXJyYXkuICAqLwotKwlmb3IgKExPTkdFU1Qg aSA9IGxvd2VyYm91bmQ7Ci0rCSAgICAgbV9pbXBsLmNvbnRpbnVlX3dhbGtpbmcgKGkgPCB1cHBl cmJvdW5kICsgMSk7Ci0rCSAgICAgaSsrKQotKwkgIHsKLSsJICAgIC8qIFVzZSB0aGUgaW5kZXgg YW5kIHRoZSBzdHJpZGUgdG8gd29yayBvdXQgYSBuZXcgb2Zmc2V0LiAgKi8KLSsJICAgIExPTkdF U1QgbmV3X29mZnNldCA9IG9mZnNldCArIGNhbGMuaW5kZXhfb2Zmc2V0IChpKTsKLSsKLSsJICAg IC8qIE5vdyBwcmludCB0aGUgbG93ZXIgZGltZW5zaW9uLiAgKi8KLSsJICAgIHN0cnVjdCB0eXBl ICpzdWJhcnJheV90eXBlCi0rCSAgICAgID0gVFlQRV9UQVJHRVRfVFlQRSAoY2hlY2tfdHlwZWRl ZiAodHlwZSkpOwotKwkgICAgd2Fsa18xIChuc3MgKyAxLCBzdWJhcnJheV90eXBlLCBuZXdfb2Zm c2V0LCAoaSA9PSB1cHBlcmJvdW5kKSk7Ci0rCSAgfQotKyAgICAgIH0KLSsgICAgZWxzZQotKyAg ICAgIHsKLSsJLyogRm9yIHRoZSBpbm5lciBtb3N0IGRpbWVuc2lvbiBvZiB0aGUgYXJyYXksIHBy b2Nlc3MgZWFjaCBlbGVtZW50Ci0rCSAgIHdpdGhpbiB0aGlzIGRpbWVuc2lvbi4gICovCi0rCWZv ciAoTE9OR0VTVCBpID0gbG93ZXJib3VuZDsKLSsJICAgICBtX2ltcGwuY29udGludWVfd2Fsa2lu ZyAoaSA8IHVwcGVyYm91bmQgKyAxKTsKLSsJICAgICBpKyspCi0rCSAgewotKwkgICAgTE9OR0VT VCBlbHRfb2ZmID0gb2Zmc2V0ICsgY2FsYy5pbmRleF9vZmZzZXQgKGkpOwotKwotKwkgICAgc3Ry dWN0IHR5cGUgKmVsdF90eXBlID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9UQVJHRVRfVFlQRSAodHlw ZSkpOwotKwkgICAgaWYgKGlzX2R5bmFtaWNfdHlwZSAoZWx0X3R5cGUpKQotKwkgICAgICB7Ci0r CQlDT1JFX0FERFIgZV9hZGRyZXNzID0gbV9hZGRyZXNzICsgZWx0X29mZjsKLSsJCWVsdF90eXBl ID0gcmVzb2x2ZV9keW5hbWljX3R5cGUgKGVsdF90eXBlLCB7fSwgZV9hZGRyZXNzKTsKLSsJICAg ICAgfQotKwotKwkgICAgbV9pbXBsLnByb2Nlc3NfZWxlbWVudCAoZWx0X3R5cGUsIGVsdF9vZmYs IChpID09IHVwcGVyYm91bmQpKTsKLSsJICB9Ci0rICAgICAgfQotKwotKyAgICBtX2ltcGwuZmlu aXNoX2RpbWVuc2lvbiAobnNzID09IG1fbmRpbWVuc2lvbnMsIGxhc3RfcCB8fCBuc3MgPT0gMSk7 Ci0rICB9Ci0rCi0rICAvKiBUaGUgYXJyYXkgdHlwZSBiZWluZyBwcm9jZXNzZWQuICAqLwotKyAg c3RydWN0IHR5cGUgKm1fdHlwZTsKLSsKLSsgIC8qIFRoZSBhZGRyZXNzIGluIHRhcmdldCBtZW1v cnkgZm9yIHRoZSBvYmplY3Qgb2YgTV9UWVBFIGJlaW5nCi0rICAgICBwcm9jZXNzZWQuICBUaGlz IGlzIHJlcXVpcmVkIGluIG9yZGVyIHRvIHJlc29sdmUgZHluYW1pYyB0eXBlcy4gICovCi0rICBD T1JFX0FERFIgbV9hZGRyZXNzOwotKwotKyAgLyogQW4gaW5zdGFuY2Ugb2YgdGhlIHRlbXBsYXRl IHNwZWNpYWxpc2F0aW9uIGNsYXNzLiAgKi8KLSsgIEltcGwgbV9pbXBsOwotKwotKyAgLyogVGhl IHRvdGFsIG51bWJlciBvZiBkaW1lbnNpb25zIGluIE1fVFlQRS4gICovCi0rICBpbnQgbV9uZGlt ZW5zaW9uczsKLSt9OwotKwotKyNlbmRpZiAvKiBGX0FSUkFZX1dBTEtFUl9IICovCi1kaWZmIC0t Z2l0IGEvZ2RiL2YtbGFuZy5jIGIvZ2RiL2YtbGFuZy5jCi0tLS0gYS9nZGIvZi1sYW5nLmMKLSsr KyBiL2dkYi9mLWxhbmcuYwotQEAgLTM2LDkgKzM2LDM2IEBACi0gI2luY2x1ZGUgImMtbGFuZy5o IgotICNpbmNsdWRlICJ0YXJnZXQtZmxvYXQuaCIKLSAjaW5jbHVkZSAiZ2RiYXJjaC5oIgotKyNp bmNsdWRlICJnZGJjbWQuaCIKLSsjaW5jbHVkZSAiZi1hcnJheS13YWxrZXIuaCIKLSAKLSAjaW5j bHVkZSA8bWF0aC5oPgotIAotKy8qIFdoZXRoZXIgR0RCIHNob3VsZCByZXBhY2sgYXJyYXkgc2xp Y2VzIGNyZWF0ZWQgYnkgdGhlIHVzZXIuICAqLwotK3N0YXRpYyBib29sIHJlcGFja19hcnJheV9z bGljZXMgPSBmYWxzZTsKLSsKLSsvKiBJbXBsZW1lbnQgJ3Nob3cgZm9ydHJhbiByZXBhY2stYXJy YXktc2xpY2VzJy4gICovCi0rc3RhdGljIHZvaWQKLStzaG93X3JlcGFja19hcnJheV9zbGljZXMg KHN0cnVjdCB1aV9maWxlICpmaWxlLCBpbnQgZnJvbV90dHksCi0rCQkJICBzdHJ1Y3QgY21kX2xp c3RfZWxlbWVudCAqYywgY29uc3QgY2hhciAqdmFsdWUpCi0rewotKyAgZnByaW50Zl9maWx0ZXJl ZCAoZmlsZSwgXygiUmVwYWNraW5nIG9mIEZvcnRyYW4gYXJyYXkgc2xpY2VzIGlzICVzLlxuIiks Ci0rCQkgICAgdmFsdWUpOwotK30KLSsKLSsvKiBEZWJ1Z2dpbmcgb2YgRm9ydHJhbidzIGFycmF5 IHNsaWNpbmcuICAqLwotK3N0YXRpYyBib29sIGZvcnRyYW5fYXJyYXlfc2xpY2luZ19kZWJ1ZyA9 IGZhbHNlOwotKwotKy8qIEltcGxlbWVudCAnc2hvdyBkZWJ1ZyBmb3J0cmFuLWFycmF5LXNsaWNp bmcnLiAgKi8KLStzdGF0aWMgdm9pZAotK3Nob3dfZm9ydHJhbl9hcnJheV9zbGljaW5nX2RlYnVn IChzdHJ1Y3QgdWlfZmlsZSAqZmlsZSwgaW50IGZyb21fdHR5LAotKwkJCQkgIHN0cnVjdCBjbWRf bGlzdF9lbGVtZW50ICpjLAotKwkJCQkgIGNvbnN0IGNoYXIgKnZhbHVlKQotK3sKLSsgIGZwcmlu dGZfZmlsdGVyZWQgKGZpbGUsIF8oIkRlYnVnZ2luZyBvZiBGb3J0cmFuIGFycmF5IHNsaWNpbmcg aXMgJXMuXG4iKSwKLSsJCSAgICB2YWx1ZSk7Ci0rfQotKwotIC8qIExvY2FsIGZ1bmN0aW9ucyAq LwotIAotIC8qIFJldHVybiB0aGUgZW5jb2RpbmcgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhl IGNoYXJhY3RlciB0eXBlCi1AQCAtMTE0LDU3ICsxNDEsNiBAQCBlbnVtIGZfcHJpbWl0aXZlX3R5 cGVzIHsKLSAgIG5yX2ZfcHJpbWl0aXZlX3R5cGVzCi0gfTsKLSAKLS0vKiBDYWxsZWQgZnJvbSBm b3J0cmFuX3ZhbHVlX3N1YmFycmF5IHRvIHRha2UgYSBzbGljZSBvZiBhbiBhcnJheSBvciBhCi0t ICAgc3RyaW5nLiAgQVJSQVkgaXMgdGhlIGFycmF5IG9yIHN0cmluZyB0byBiZSBhY2Nlc3NlZC4g IEVYUCwgUE9TLCBhbmQKLS0gICBOT1NJREUgYXJlIGFzIGZvciBldmFsdWF0ZV9zdWJleHBfc3Rh bmRhcmQuICBSZXR1cm4gYSB2YWx1ZSB0aGF0IGlzIGEKLS0gICBzbGljZSBvZiB0aGUgYXJyYXku ICAqLwotLQotLXN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgotLXZhbHVlX2Y5MF9zdWJhcnJheSAoc3Ry dWN0IHZhbHVlICphcnJheSwKLS0JCSAgICBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgKnBv cywgZW51bSBub3NpZGUgbm9zaWRlKQotLXsKLS0gIGludCBwYyA9ICgqcG9zKSArIDE7Ci0tICBM T05HRVNUIGxvd19ib3VuZCwgaGlnaF9ib3VuZCwgc3RyaWRlOwotLSAgc3RydWN0IHR5cGUgKnJh bmdlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJyYXkpLT5pbmRleF90eXBlICgpKTsK LS0gIGVudW0gcmFuZ2VfZmxhZyByYW5nZV9mbGFnCi0tICAgID0gKGVudW0gcmFuZ2VfZmxhZykg bG9uZ2VzdF90b19pbnQgKGV4cC0+ZWx0c1twY10ubG9uZ2NvbnN0KTsKLS0KLS0gICpwb3MgKz0g MzsKLS0KLS0gIGlmIChyYW5nZV9mbGFnICYgUkFOR0VfTE9XX0JPVU5EX0RFRkFVTFQpCi0tICAg IGxvd19ib3VuZCA9IHJhbmdlLT5ib3VuZHMgKCktPmxvdy5jb25zdF92YWwgKCk7Ci0tICBlbHNl Ci0tICAgIGxvd19ib3VuZCA9IHZhbHVlX2FzX2xvbmcgKGV2YWx1YXRlX3N1YmV4cCAobnVsbHB0 ciwgZXhwLCBwb3MsIG5vc2lkZSkpOwotLQotLSAgaWYgKHJhbmdlX2ZsYWcgJiBSQU5HRV9ISUdI X0JPVU5EX0RFRkFVTFQpCi0tICAgIGhpZ2hfYm91bmQgPSByYW5nZS0+Ym91bmRzICgpLT5oaWdo LmNvbnN0X3ZhbCAoKTsKLS0gIGVsc2UKLS0gICAgaGlnaF9ib3VuZCA9IHZhbHVlX2FzX2xvbmcg KGV2YWx1YXRlX3N1YmV4cCAobnVsbHB0ciwgZXhwLCBwb3MsIG5vc2lkZSkpOwotLQotLSAgaWYg KHJhbmdlX2ZsYWcgJiBSQU5HRV9IQVNfU1RSSURFKQotLSAgICBzdHJpZGUgPSB2YWx1ZV9hc19s b25nIChldmFsdWF0ZV9zdWJleHAgKG51bGxwdHIsIGV4cCwgcG9zLCBub3NpZGUpKTsKLS0gIGVs c2UKLS0gICAgc3RyaWRlID0gMTsKLS0KLS0gIGlmIChzdHJpZGUgIT0gMSkKLS0gICAgZXJyb3Ig KF8oIkZvcnRyYW4gYXJyYXkgc3RyaWRlcyBhcmUgbm90IGN1cnJlbnRseSBzdXBwb3J0ZWQiKSk7 Ci0tCi0tICByZXR1cm4gdmFsdWVfc2xpY2UgKGFycmF5LCBsb3dfYm91bmQsIGhpZ2hfYm91bmQg LSBsb3dfYm91bmQgKyAxKTsKLS19Ci0tCi0tLyogSGVscGVyIGZvciBza2lwcGluZyBhbGwgdGhl IGFyZ3VtZW50cyBpbiBhbiB1bmRldGVybWluZWQgYXJndW1lbnQgbGlzdC4KLS0gICBUaGlzIGZ1 bmN0aW9uIHdhcyBkZXNpZ25lZCBmb3IgdXNlIGluIHRoZSBPUF9GNzdfVU5ERVRFUk1JTkVEX0FS R0xJU1QKLS0gICBjYXNlIG9mIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCBhcyBtdWx0aXBsZSwg YnV0IG5vdCBhbGwsIGNvZGUgcGF0aHMKLS0gICByZXF1aXJlIGEgZ2VuZXJpYyBza2lwLiAgKi8K LS0KLS1zdGF0aWMgdm9pZAotLXNraXBfdW5kZXRlcm1pbmVkX2FyZ2xpc3QgKGludCBuYXJncywg c3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50ICpwb3MsCi0tCQkJICAgZW51bSBub3NpZGUgbm9z aWRlKQotLXsKLS0gIGZvciAoaW50IGkgPSAwOyBpIDwgbmFyZ3M7ICsraSkKLS0gICAgZXZhbHVh dGVfc3ViZXhwIChudWxscHRyLCBleHAsIHBvcywgbm9zaWRlKTsKLS19Ci0tCi0gLyogUmV0dXJu IHRoZSBudW1iZXIgb2YgZGltZW5zaW9ucyBmb3IgYSBGb3J0cmFuIGFycmF5IG9yIHN0cmluZy4g ICovCi0gCi0gaW50Ci1AQCAtMTg5LDYgKzE2NSwxNDUgQEAgY2FsY19mNzdfYXJyYXlfZGltcyAo c3RydWN0IHR5cGUgKmFycmF5X3R5cGUpCi0gICByZXR1cm4gbmRpbWVuOwotIH0KLSAKLSsvKiBB IGNsYXNzIHVzZWQgYnkgRk9SVFJBTl9WQUxVRV9TVUJBUlJBWSB3aGVuIHJlcGFja2luZyBGb3J0 cmFuIGFycmF5Ci0rICAgc2xpY2VzLiAgVGhpcyBpcyBhIGJhc2UgY2xhc3MgZm9yIHR3byBhbHRl cm5hdGl2ZSByZXBhY2tpbmcgbWVjaGFuaXNtcywKLSsgICBvbmUgZm9yIHdoZW4gcmVwYWNraW5n IGZyb20gYSBsYXp5IHZhbHVlLCBhbmQgb25lIGZvciByZXBhY2tpbmcgZnJvbSBhCi0rICAgbm9u LWxhenkgKGFscmVhZHkgbG9hZGVkKSB2YWx1ZS4gICovCi0rY2xhc3MgZm9ydHJhbl9hcnJheV9y ZXBhY2tlcl9iYXNlX2ltcGwKLSsgIDogcHVibGljIGZvcnRyYW5fYXJyYXlfd2Fsa2VyX2Jhc2Vf aW1wbAotK3sKLStwdWJsaWM6Ci0rICAvKiBDb25zdHJ1Y3RvciwgREVTVCBpcyB0aGUgdmFsdWUg d2UgYXJlIHJlcGFja2luZyBpbnRvLiAgKi8KLSsgIGZvcnRyYW5fYXJyYXlfcmVwYWNrZXJfYmFz ZV9pbXBsIChzdHJ1Y3QgdmFsdWUgKmRlc3QpCi0rICAgIDogbV9kZXN0IChkZXN0KSwKLSsgICAg ICBtX2Rlc3Rfb2Zmc2V0ICgwKQotKyAgeyAvKiBOb3RoaW5nLiAgKi8gfQotKwotKyAgLyogV2hl biB3ZSBzdGFydCBwcm9jZXNzaW5nIHRoZSBpbm5lciBtb3N0IGRpbWVuc2lvbiwgdGhpcyBpcyB3 aGVyZSB3ZQotKyAgICAgd2lsbCBiZSBjcmVhdGluZyB2YWx1ZXMgZm9yIGVhY2ggZWxlbWVudCBh cyB3ZSBsb2FkIHRoZW0gYW5kIHRoZW4gY29weQotKyAgICAgdGhlbSBpbnRvIHRoZSBNX0RFU1Qg dmFsdWUuICBTZXQgYSB2YWx1ZSBtYXJrIHNvIHdlIGNhbiBmcmVlIHRoZXNlCi0rICAgICB0ZW1w b3JhcnkgdmFsdWVzLiAgKi8KLSsgIHZvaWQgc3RhcnRfZGltZW5zaW9uIChib29sIGlubmVyX3Ap Ci0rICB7Ci0rICAgIGlmIChpbm5lcl9wKQotKyAgICAgIHsKLSsJZ2RiX2Fzc2VydCAobV9tYXJr ID09IG51bGxwdHIpOwotKwltX21hcmsgPSB2YWx1ZV9tYXJrICgpOwotKyAgICAgIH0KLSsgIH0K LSsKLSsgIC8qIFdoZW4gd2UgZmluaXNoIHByb2Nlc3NpbmcgdGhlIGlubmVyIG1vc3QgZGltZW5z aW9uIGZyZWUgYWxsIHRlbXBvcmFyeQotKyAgICAgdmFsdWUgdGhhdCB3ZXJlIGNyZWF0ZWQuICAq LwotKyAgdm9pZCBmaW5pc2hfZGltZW5zaW9uIChib29sIGlubmVyX3AsIGJvb2wgbGFzdF9wKQot KyAgewotKyAgICBpZiAoaW5uZXJfcCkKLSsgICAgICB7Ci0rCWdkYl9hc3NlcnQgKG1fbWFyayAh PSBudWxscHRyKTsKLSsJdmFsdWVfZnJlZV90b19tYXJrIChtX21hcmspOwotKwltX21hcmsgPSBu dWxscHRyOwotKyAgICAgIH0KLSsgIH0KLSsKLStwcm90ZWN0ZWQ6Ci0rICAvKiBDb3B5IHRoZSBj b250ZW50cyBvZiBhcnJheSBlbGVtZW50IEVMVCBpbnRvIE1fREVTVCBhdCB0aGUgbmV4dAotKyAg ICAgYXZhaWxhYmxlIG9mZnNldC4gICovCi0rICB2b2lkIGNvcHlfZWxlbWVudF90b19kZXN0IChz dHJ1Y3QgdmFsdWUgKmVsdCkKLSsgIHsKLSsgICAgdmFsdWVfY29udGVudHNfY29weSAobV9kZXN0 LCBtX2Rlc3Rfb2Zmc2V0LCBlbHQsIDAsCi0rCQkJIFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlIChl bHQpKSk7Ci0rICAgIG1fZGVzdF9vZmZzZXQgKz0gVFlQRV9MRU5HVEggKHZhbHVlX3R5cGUgKGVs dCkpOwotKyAgfQotKwotKyAgLyogVGhlIHZhbHVlIGJlaW5nIHdyaXR0ZW4gdG8uICAqLwotKyAg c3RydWN0IHZhbHVlICptX2Rlc3Q7Ci0rCi0rICAvKiBUaGUgYnl0ZSBvZmZzZXQgaW4gTV9ERVNU IGF0IHdoaWNoIHRoZSBuZXh0IGVsZW1lbnQgc2hvdWxkIGJlCi0rICAgICB3cml0dGVuLiAgKi8K LSsgIExPTkdFU1QgbV9kZXN0X29mZnNldDsKLSsKLSsgIC8qIFNldCB3aXRoIGEgY2FsbCB0byBW QUxVRV9NQVJLLCBhbmQgdGhlbiByZXNldCBhZnRlciBjYWxsaW5nCi0rICAgICBWQUxVRV9GUkVF X1RPX01BUksuICAqLwotKyAgc3RydWN0IHZhbHVlICptX21hcmsgPSBudWxscHRyOwotK307Ci0r Ci0rLyogQSBjbGFzcyB1c2VkIGJ5IEZPUlRSQU5fVkFMVUVfU1VCQVJSQVkgd2hlbiByZXBhY2tp bmcgRm9ydHJhbiBhcnJheQotKyAgIHNsaWNlcy4gIFRoaXMgY2xhc3MgaXMgc3BlY2lhbGlzZWQg Zm9yIHJlcGFja2luZyBhbiBhcnJheSBzbGljZSBmcm9tIGEKLSsgICBsYXp5IGFycmF5IHZhbHVl LCBhcyBzdWNoIGl0IGRvZXMgbm90IHJlcXVpcmUgdGhlIHBhcmVudCBhcnJheSB2YWx1ZSB0bwot KyAgIGJlIGxvYWRlZCBpbnRvIEdEQidzIG1lbW9yeTsgdGhlIHBhcmVudCB2YWx1ZSBjb3VsZCBi ZSBodWdlLCB3aGlsZSB0aGUKLSsgICBzbGljZSBjb3VsZCBiZSB0aW55LiAgKi8KLStjbGFzcyBm b3J0cmFuX2xhenlfYXJyYXlfcmVwYWNrZXJfaW1wbAotKyAgOiBwdWJsaWMgZm9ydHJhbl9hcnJh eV9yZXBhY2tlcl9iYXNlX2ltcGwKLSt7Ci0rcHVibGljOgotKyAgLyogQ29uc3RydWN0b3IuICBU WVBFIGlzIHRoZSB0eXBlIG9mIHRoZSBzbGljZSBiZWluZyBsb2FkZWQgZnJvbSB0aGUKLSsgICAg IHBhcmVudCB2YWx1ZSwgc28gdGhpcyB0eXBlIHdpbGwgY29ycmVjdGx5IHJlZmxlY3QgdGhlIHN0 cmlkZXMgcmVxdWlyZWQKLSsgICAgIHRvIGZpbmQgYWxsIG9mIHRoZSBlbGVtZW50cyBmcm9tIHRo ZSBwYXJlbnQgdmFsdWUuICBBRERSRVNTIGlzIHRoZQotKyAgICAgYWRkcmVzcyBpbiB0YXJnZXQg bWVtb3J5IG9mIHZhbHVlIG1hdGNoaW5nIFRZUEUsIGFuZCBERVNUIGlzIHRoZSB2YWx1ZQotKyAg ICAgd2UgYXJlIHJlcGFja2luZyBpbnRvLiAgKi8KLSsgIGV4cGxpY2l0IGZvcnRyYW5fbGF6eV9h cnJheV9yZXBhY2tlcl9pbXBsIChzdHJ1Y3QgdHlwZSAqdHlwZSwKLSsJCQkJCSAgICAgQ09SRV9B RERSIGFkZHJlc3MsCi0rCQkJCQkgICAgIHN0cnVjdCB2YWx1ZSAqZGVzdCkKLSsgICAgOiBmb3J0 cmFuX2FycmF5X3JlcGFja2VyX2Jhc2VfaW1wbCAoZGVzdCksCi0rICAgICAgbV9hZGRyIChhZGRy ZXNzKQotKyAgeyAvKiBOb3RoaW5nLiAgKi8gfQotKwotKyAgLyogQ3JlYXRlIGEgbGF6eSB2YWx1 ZSBpbiB0YXJnZXQgbWVtb3J5IHJlcHJlc2VudGluZyBhIHNpbmdsZSBlbGVtZW50LAotKyAgICAg dGhlbiBsb2FkIHRoZSBlbGVtZW50IGludG8gR0RCJ3MgbWVtb3J5IGFuZCBjb3B5IHRoZSBjb250 ZW50cyBpbnRvIHRoZQotKyAgICAgZGVzdGluYXRpb24gdmFsdWUuICAqLwotKyAgdm9pZCBwcm9j ZXNzX2VsZW1lbnQgKHN0cnVjdCB0eXBlICplbHRfdHlwZSwgTE9OR0VTVCBlbHRfb2ZmLCBib29s IGxhc3RfcCkKLSsgIHsKLSsgICAgY29weV9lbGVtZW50X3RvX2Rlc3QgKHZhbHVlX2F0X2xhenkg KGVsdF90eXBlLCBtX2FkZHIgKyBlbHRfb2ZmKSk7Ci0rICB9Ci0rCi0rcHJpdmF0ZToKLSsgIC8q IFRoZSBhZGRyZXNzIGluIHRhcmdldCBtZW1vcnkgd2hlcmUgdGhlIHBhcmVudCB2YWx1ZSBzdGFy dHMuICAqLwotKyAgQ09SRV9BRERSIG1fYWRkcjsKLSt9OwotKwotKy8qIEEgY2xhc3MgdXNlZCBi eSBGT1JUUkFOX1ZBTFVFX1NVQkFSUkFZIHdoZW4gcmVwYWNraW5nIEZvcnRyYW4gYXJyYXkKLSsg ICBzbGljZXMuICBUaGlzIGNsYXNzIGlzIHNwZWNpYWxpc2VkIGZvciByZXBhY2tpbmcgYW4gYXJy YXkgc2xpY2UgZnJvbSBhCi0rICAgcHJldmlvdXNseSBsb2FkZWQgKG5vbi1sYXp5KSBhcnJheSB2 YWx1ZSwgYXMgc3VjaCBpdCBmZXRjaGVzIHRoZQotKyAgIGVsZW1lbnQgdmFsdWVzIGZyb20gdGhl IGNvbnRlbnRzIG9mIHRoZSBwYXJlbnQgdmFsdWUuICAqLwotK2NsYXNzIGZvcnRyYW5fYXJyYXlf cmVwYWNrZXJfaW1wbAotKyAgOiBwdWJsaWMgZm9ydHJhbl9hcnJheV9yZXBhY2tlcl9iYXNlX2lt cGwKLSt7Ci0rcHVibGljOgotKyAgLyogQ29uc3RydWN0b3IuICBUWVBFIGlzIHRoZSB0eXBlIGZv ciB0aGUgYXJyYXkgc2xpY2Ugd2l0aGluIHRoZSBwYXJlbnQKLSsgICAgIHZhbHVlLCBhcyBzdWNo IGl0IGhhcyBzdHJpZGUgdmFsdWVzIGFzIHJlcXVpcmVkIHRvIGZpbmQgdGhlIGVsZW1lbnRzCi0r ICAgICB3aXRoaW4gdGhlIG9yaWdpbmFsIHBhcmVudCB2YWx1ZS4gIEFERFJFU1MgaXMgdGhlIGFk ZHJlc3MgaW4gdGFyZ2V0Ci0rICAgICBtZW1vcnkgb2YgdGhlIHZhbHVlIG1hdGNoaW5nIFRZUEUu ICBCQVNFX09GRlNFVCBpcyB0aGUgb2Zmc2V0IGZyb20KLSsgICAgIHRoZSBzdGFydCBvZiBWQUwn cyBjb250ZW50IGJ1ZmZlciB0byB0aGUgc3RhcnQgb2YgdGhlIG9iamVjdCBvZiBUWVBFLAotKyAg ICAgVkFMIGlzIHRoZSBwYXJlbnQgb2JqZWN0IGZyb20gd2hpY2ggd2UgYXJlIGxvYWRpbmcgdGhl IHZhbHVlLCBhbmQKLSsgICAgIERFU1QgaXMgdGhlIHZhbHVlIGludG8gd2hpY2ggd2UgYXJlIHJl cGFja2luZy4gICovCi0rICBleHBsaWNpdCBmb3J0cmFuX2FycmF5X3JlcGFja2VyX2ltcGwgKHN0 cnVjdCB0eXBlICp0eXBlLCBDT1JFX0FERFIgYWRkcmVzcywKLSsJCQkJCUxPTkdFU1QgYmFzZV9v ZmZzZXQsCi0rCQkJCQlzdHJ1Y3QgdmFsdWUgKnZhbCwgc3RydWN0IHZhbHVlICpkZXN0KQotKyAg ICA6IGZvcnRyYW5fYXJyYXlfcmVwYWNrZXJfYmFzZV9pbXBsIChkZXN0KSwKLSsgICAgICBtX2Jh c2Vfb2Zmc2V0IChiYXNlX29mZnNldCksCi0rICAgICAgbV92YWwgKHZhbCkKLSsgIHsKLSsgICAg Z2RiX2Fzc2VydCAoIXZhbHVlX2xhenkgKHZhbCkpOwotKyAgfQotKwotKyAgLyogRXh0cmFjdCBh biBlbGVtZW50IG9mIEVMVF9UWVBFIGF0IG9mZnNldCAoTV9CQVNFX09GRlNFVCArIEVMVF9PRkYp Ci0rICAgICBmcm9tIHRoZSBjb250ZW50IGJ1ZmZlciBvZiBNX1ZBTCB0aGVuIGNvcHkgdGhpcyBl eHRyYWN0ZWQgdmFsdWUgaW50bwotKyAgICAgdGhlIHJlcGFja2VkIGRlc3RpbmF0aW9uIHZhbHVl LiAgKi8KLSsgIHZvaWQgcHJvY2Vzc19lbGVtZW50IChzdHJ1Y3QgdHlwZSAqZWx0X3R5cGUsIExP TkdFU1QgZWx0X29mZiwgYm9vbCBsYXN0X3ApCi0rICB7Ci0rICAgIHN0cnVjdCB2YWx1ZSAqZWx0 Ci0rICAgICAgPSB2YWx1ZV9mcm9tX2NvbXBvbmVudCAobV92YWwsIGVsdF90eXBlLCAoZWx0X29m ZiArIG1fYmFzZV9vZmZzZXQpKTsKLSsgICAgY29weV9lbGVtZW50X3RvX2Rlc3QgKGVsdCk7Ci0r ICB9Ci0rCi0rcHJpdmF0ZToKLSsgIC8qIFRoZSBvZmZzZXQgaW50byB0aGUgY29udGVudCBidWZm ZXIgb2YgTV9WQUwgdG8gdGhlIHN0YXJ0IG9mIHRoZSBzbGljZQotKyAgICAgYmVpbmcgZXh0cmFj dGVkLiAgKi8KLSsgIExPTkdFU1QgbV9iYXNlX29mZnNldDsKLSsKLSsgIC8qIFRoZSBwYXJlbnQg dmFsdWUgZnJvbSB3aGljaCB3ZSBhcmUgZXh0cmFjdGluZyBhIHNsaWNlLiAgKi8KLSsgIHN0cnVj dCB2YWx1ZSAqbV92YWw7Ci0rfTsKLSsKLSAvKiBDYWxsZWQgZnJvbSBldmFsdWF0ZV9zdWJleHBf c3RhbmRhcmQgdG8gcGVyZm9ybSBhcnJheSBpbmRleGluZywgYW5kCi0gICAgc3ViLXJhbmdlIGV4 dHJhY3Rpb24sIGZvciBGb3J0cmFuLiAgQXMgd2VsbCBhcyBhcnJheXMgdGhpcyBmdW5jdGlvbgot ICAgIGFsc28gaGFuZGxlcyBzdHJpbmdzIGFzIHRoZXkgY2FuIGJlIHRyZWF0ZWQgbGlrZSBhcnJh eXMgb2YgY2hhcmFjdGVycy4KLUBAIC0yMDAsNTEgKzMxNSwzOTQgQEAgc3RhdGljIHN0cnVjdCB2 YWx1ZSAqCi0gZm9ydHJhbl92YWx1ZV9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3Ry dWN0IGV4cHJlc3Npb24gKmV4cCwKLSAJCQlpbnQgKnBvcywgaW50IG5hcmdzLCBlbnVtIG5vc2lk ZSBub3NpZGUpCi0gewotLSAgaWYgKGV4cC0+ZWx0c1sqcG9zXS5vcGNvZGUgPT0gT1BfUkFOR0Up Ci0tICAgIHJldHVybiB2YWx1ZV9mOTBfc3ViYXJyYXkgKGFycmF5LCBleHAsIHBvcywgbm9zaWRl KTsKLS0KLS0gIGlmIChub3NpZGUgPT0gRVZBTF9TS0lQKQotKyAgdHlwZSAqb3JpZ2luYWxfYXJy YXlfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFycmF5KSk7Ci0rICBib29sIGlz X3N0cmluZ19wID0gb3JpZ2luYWxfYXJyYXlfdHlwZS0+Y29kZSAoKSA9PSBUWVBFX0NPREVfU1RS SU5HOwotKwotKyAgLyogUGVyZm9ybSBjaGVja3MgZm9yIEFSUkFZIG5vdCBiZWluZyBhdmFpbGFi bGUuICBUaGUgc29tZXdoYXQgb3Zlcmx5Ci0rICAgICBjb21wbGV4IGxvZ2ljIGhlcmUgaXMganVz dCB0byBrZWVwIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUKLSsgICAgIGVycm9ycyB0 aGF0IHdlIHVzZWQgdG8gZ2V0IGJlZm9yZSBGT1JUUkFOX1ZBTFVFX1NVQkFSUkFZIHdhcwotKyAg ICAgcmV3cml0dGVuLiAgTWF5YmUgYSBmdXR1cmUgdGFzayB3b3VsZCBzdHJlYW1saW5lIHRoZSBl cnJvciBtZXNzYWdlcyB3ZQotKyAgICAgZ2V0IGhlcmUsIGFuZCB1cGRhdGUgYWxsIHRoZSBleHBl Y3RlZCB0ZXN0IHJlc3VsdHMuICAqLwotKyAgaWYgKGV4cC0+ZWx0c1sqcG9zXS5vcGNvZGUgIT0g T1BfUkFOR0UpCi0gICAgIHsKLS0gICAgICBza2lwX3VuZGV0ZXJtaW5lZF9hcmdsaXN0IChuYXJn cywgZXhwLCBwb3MsIG5vc2lkZSk7Ci0tICAgICAgLyogUmV0dXJuIHRoZSBkdW1teSB2YWx1ZSB3 aXRoIHRoZSBjb3JyZWN0IHR5cGUuICAqLwotLSAgICAgIHJldHVybiBhcnJheTsKLSsgICAgICBp ZiAodHlwZV9ub3RfYXNzb2NpYXRlZCAob3JpZ2luYWxfYXJyYXlfdHlwZSkpCi0rCWVycm9yIChf KCJubyBzdWNoIHZlY3RvciBlbGVtZW50ICh2ZWN0b3Igbm90IGFzc29jaWF0ZWQpIikpOwotKyAg ICAgIGVsc2UgaWYgKHR5cGVfbm90X2FsbG9jYXRlZCAob3JpZ2luYWxfYXJyYXlfdHlwZSkpCi0r CWVycm9yIChfKCJubyBzdWNoIHZlY3RvciBlbGVtZW50ICh2ZWN0b3Igbm90IGFsbG9jYXRlZCki KSk7Ci0rICAgIH0KLSsgIGVsc2UKLSsgICAgewotKyAgICAgIGlmICh0eXBlX25vdF9hc3NvY2lh dGVkIChvcmlnaW5hbF9hcnJheV90eXBlKSkKLSsJZXJyb3IgKF8oImFycmF5IG5vdCBhc3NvY2lh dGVkIikpOwotKyAgICAgIGVsc2UgaWYgKHR5cGVfbm90X2FsbG9jYXRlZCAob3JpZ2luYWxfYXJy YXlfdHlwZSkpCi0rCWVycm9yIChfKCJhcnJheSBub3QgYWxsb2NhdGVkIikpOwotICAgICB9Ci0g Ci0tICBMT05HRVNUIHN1YnNjcmlwdF9hcnJheVtNQVhfRk9SVFJBTl9ESU1TXTsKLS0gIGludCBu ZGltZW5zaW9ucyA9IDE7Ci0tICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZh bHVlX3R5cGUgKGFycmF5KSk7Ci0rICAvKiBGaXJzdCBjaGVjayB0aGF0IHRoZSBudW1iZXIgb2Yg ZGltZW5zaW9ucyBpbiB0aGUgdHlwZSB3ZSBhcmUgc2xpY2luZwotKyAgICAgbWF0Y2hlcyB0aGUg bnVtYmVyIG9mIGFyZ3VtZW50cyB3ZSB3ZXJlIHBhc3NlZC4gICovCi0rICBpbnQgbmRpbWVuc2lv bnMgPSBjYWxjX2Y3N19hcnJheV9kaW1zIChvcmlnaW5hbF9hcnJheV90eXBlKTsKLSsgIGlmIChu YXJncyAhPSBuZGltZW5zaW9ucykKLSsgICAgZXJyb3IgKF8oIldyb25nIG51bWJlciBvZiBzdWJz Y3JpcHRzIikpOwotIAotLSAgaWYgKG5hcmdzID4gTUFYX0ZPUlRSQU5fRElNUykKLS0gICAgZXJy b3IgKF8oIlRvbyBtYW55IHN1YnNjcmlwdHMgZm9yIEY3NyAoJWQgTWF4KSIpLCBNQVhfRk9SVFJB Tl9ESU1TKTsKLSsgIC8qIFRoaXMgd2lsbCBiZSBpbml0aWFsaXNlZCBiZWxvdyB3aXRoIHRoZSB0 eXBlIG9mIHRoZSBlbGVtZW50cyBoZWxkIGluCi0rICAgICBBUlJBWS4gICovCi0rICBzdHJ1Y3Qg dHlwZSAqaW5uZXJfZWxlbWVudF90eXBlOwotIAotLSAgbmRpbWVuc2lvbnMgPSBjYWxjX2Y3N19h cnJheV9kaW1zICh0eXBlKTsKLSsgIC8qIEV4dHJhY3QgdGhlIHR5cGVzIG9mIGVhY2ggYXJyYXkg ZGltZW5zaW9uIGZyb20gdGhlIG9yaWdpbmFsIGFycmF5Ci0rICAgICB0eXBlLiAgV2UgbmVlZCB0 aGVzZSBhdmFpbGFibGUgc28gd2UgY2FuIGZpbGwgaW4gdGhlIGRlZmF1bHQgdXBwZXIgYW5kCi0r ICAgICBsb3dlciBib3VuZHMgaWYgdGhlIHVzZXIgcmVxdWVzdGVkIHNsaWNlIGRvZXNuJ3QgcHJv dmlkZSB0aGF0Ci0rICAgICBpbmZvcm1hdGlvbi4gIEFkZGl0aW9uYWxseSB1bnBhY2tpbmcgdGhl IGRpbWVuc2lvbnMgbGlrZSB0aGlzIGdpdmVzIHVzCi0rICAgICB0aGUgaW5uZXIgZWxlbWVudCB0 eXBlLiAgKi8KLSsgIHN0ZDo6dmVjdG9yPHN0cnVjdCB0eXBlICo+IGRpbV90eXBlczsKLSsgIHsK LSsgICAgZGltX3R5cGVzLnJlc2VydmUgKG5kaW1lbnNpb25zKTsKLSsgICAgc3RydWN0IHR5cGUg KnR5cGUgPSBvcmlnaW5hbF9hcnJheV90eXBlOwotKyAgICBmb3IgKGludCBpID0gMDsgaSA8IG5k aW1lbnNpb25zOyArK2kpCi0rICAgICAgewotKwlkaW1fdHlwZXMucHVzaF9iYWNrICh0eXBlKTsK LSsJdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpOwotKyAgICAgIH0KLSsgICAgLyogVFlQ RSBpcyBub3cgdGhlIGlubmVyIGVsZW1lbnQgdHlwZSBvZiB0aGUgYXJyYXksIHdlIHN0YXJ0IHRo ZSBuZXcKLSsgICAgICAgYXJyYXkgc2xpY2Ugb2ZmIGFzIHRoaXMgdHlwZSwgdGhlbiBhcyB3ZSBw cm9jZXNzIHRoZSByZXF1ZXN0ZWQgc2xpY2UKLSsgICAgICAgKGZyb20gdGhlIHVzZXIpIHdlIHdy YXAgbmV3IHR5cGVzIGFyb3VuZCB0aGlzIHRvIGJ1aWxkIHVwIHRoZSBmaW5hbAotKyAgICAgICBz bGljZSB0eXBlLiAgKi8KLSsgICAgaW5uZXJfZWxlbWVudF90eXBlID0gdHlwZTsKLSsgIH0KLSAK LS0gIGlmIChuYXJncyAhPSBuZGltZW5zaW9ucykKLS0gICAgZXJyb3IgKF8oIldyb25nIG51bWJl ciBvZiBzdWJzY3JpcHRzIikpOwotKyAgLyogQXMgd2UgYW5hbHlzZSB0aGUgbmV3IHNsaWNlIHR5 cGUgd2UgbmVlZCB0byB1bmRlcnN0YW5kIGlmIHRoZSBkYXRhCi0rICAgICBiZWluZyByZWZlcmVu Y2VkIGlzIGNvbnRpZ3VvdXMuICBEbyBkZWNpZGUgdGhpcyB3ZSBtdXN0IHRyYWNrIHRoZSBzaXpl Ci0rICAgICBvZiBhbiBlbGVtZW50IGF0IGVhY2ggZGltZW5zaW9uIG9mIHRoZSBuZXcgc2xpY2Ug YXJyYXkuICBJbml0aWFsbHkgdGhlCi0rICAgICBlbGVtZW50cyBvZiB0aGUgaW5uZXIgbW9zdCBk aW1lbnNpb24gb2YgdGhlIGFycmF5IGFyZSB0aGUgc2FtZSBpbm5lcgotKyAgICAgbW9zdCBlbGVt ZW50cyBhcyB0aGUgb3JpZ2luYWwgQVJSQVkuICAqLwotKyAgTE9OR0VTVCBzbGljZV9lbGVtZW50 X3NpemUgPSBUWVBFX0xFTkdUSCAoaW5uZXJfZWxlbWVudF90eXBlKTsKLSsKLSsgIC8qIFN0YXJ0 IG9mZiBhc3N1bWluZyBhbGwgZGF0YSBpcyBjb250aWd1b3VzLCB0aGlzIHdpbGwgYmUgc2V0IHRv IGZhbHNlCi0rICAgICBpZiBhY2Nlc3MgdG8gYW55IGRpbWVuc2lvbiByZXN1bHRzIGluIG5vbi1j b250aWd1b3VzIGRhdGEuICAqLwotKyAgYm9vbCBpc19hbGxfY29udGlndW91cyA9IHRydWU7Ci0r Ci0rICAvKiBUaGUgVE9UQUxfT0ZGU0VUIGlzIHRoZSBkaXN0YW5jZSBpbiBieXRlcyBmcm9tIHRo ZSBzdGFydCBvZiB0aGUKLSsgICAgIG9yaWdpbmFsIEFSUkFZIHRvIHRoZSBzdGFydCBvZiB0aGUg bmV3IHNsaWNlLiAgVGhpcyBpcyBjYWxjdWxhdGVkIGFzCi0rICAgICB3ZSBwcm9jZXNzIHRoZSBp bmZvcm1hdGlvbiBmcm9tIHRoZSB1c2VyLiAgKi8KLSsgIExPTkdFU1QgdG90YWxfb2Zmc2V0ID0g MDsKLSsKLSsgIC8qIEEgc3RydWN0dXJlIHJlcHJlc2VudGluZyBpbmZvcm1hdGlvbiBhYm91dCBl YWNoIGRpbWVuc2lvbiBvZiB0aGUKLSsgICAgIHJlc3VsdGluZyBzbGljZS4gICovCi0rICBzdHJ1 Y3Qgc2xpY2VfZGltCi0rICB7Ci0rICAgIC8qIENvbnN0cnVjdG9yLiAgKi8KLSsgICAgc2xpY2Vf ZGltIChMT05HRVNUIGwsIExPTkdFU1QgaCwgTE9OR0VTVCBzLCBzdHJ1Y3QgdHlwZSAqaWR4KQot KyAgICAgIDogbG93IChsKSwKLSsJaGlnaCAoaCksCi0rCXN0cmlkZSAocyksCi0rCWluZGV4IChp ZHgpCi0rICAgIHsgLyogTm90aGluZy4gICovIH0KLSsKLSsgICAgLyogVGhlIGxvdyBib3VuZCBm b3IgdGhpcyBkaW1lbnNpb24gb2YgdGhlIHNsaWNlLiAgKi8KLSsgICAgTE9OR0VTVCBsb3c7Ci0r Ci0rICAgIC8qIFRoZSBoaWdoIGJvdW5kIGZvciB0aGlzIGRpbWVuc2lvbiBvZiB0aGUgc2xpY2Uu ICAqLwotKyAgICBMT05HRVNUIGhpZ2g7Ci0rCi0rICAgIC8qIFRoZSBieXRlIHN0cmlkZSBmb3Ig dGhpcyBkaW1lbnNpb24gb2YgdGhlIHNsaWNlLiAgKi8KLSsgICAgTE9OR0VTVCBzdHJpZGU7Ci0r Ci0rICAgIHN0cnVjdCB0eXBlICppbmRleDsKLSsgIH07Ci0rCi0rICAvKiBUaGUgZGltZW5zaW9u cyBvZiB0aGUgcmVzdWx0aW5nIHNsaWNlLiAgKi8KLSsgIHN0ZDo6dmVjdG9yPHNsaWNlX2RpbT4g c2xpY2VfZGltczsKLSsKLSsgIC8qIFByb2Nlc3MgdGhlIGluY29taW5nIGFyZ3VtZW50cy4gICBU aGVzZSBhcmd1bWVudHMgYXJlIGluIHRoZSByZXZlcnNlCi0rICAgICBvcmRlciB0byB0aGUgYXJy YXkgZGltZW5zaW9ucywgdGhhdCBpcyB0aGUgZmlyc3QgYXJndW1lbnQgcmVmZXJzIHRvCi0rICAg ICB0aGUgbGFzdCBhcnJheSBkaW1lbnNpb24uICAqLwotKyAgaWYgKGZvcnRyYW5fYXJyYXlfc2xp Y2luZ19kZWJ1ZykKLSsgICAgZGVidWdfcHJpbnRmICgiUHJvY2Vzc2luZyBhcnJheSBhY2Nlc3M6 XG4iKTsKLSsgIGZvciAoaW50IGkgPSAwOyBpIDwgbmFyZ3M7ICsraSkKLSsgICAgewotKyAgICAg IC8qIEZvciBlYWNoIGRpbWVuc2lvbiBvZiB0aGUgYXJyYXkgdGhlIHVzZXIgd2lsbCBoYXZlIGVp dGhlciBwcm92aWRlZAotKwkgYSByYW5nZWQgYWNjZXNzIHdpdGggb3B0aW9uYWwgbG93ZXIgYm91 bmQsIHVwcGVyIGJvdW5kLCBhbmQKLSsJIHN0cmlkZSwgb3IgdGhlIHVzZXIgd2lsbCBoYXZlIHN1 cHBsaWVkIGEgc2luZ2xlIGluZGV4LiAgKi8KLSsgICAgICBzdHJ1Y3QgdHlwZSAqZGltX3R5cGUg PSBkaW1fdHlwZXNbbmRpbWVuc2lvbnMgLSAoaSArIDEpXTsKLSsgICAgICBpZiAoZXhwLT5lbHRz Wypwb3NdLm9wY29kZSA9PSBPUF9SQU5HRSkKLSsJewotKwkgIGludCBwYyA9ICgqcG9zKSArIDE7 Ci0rCSAgZW51bSByYW5nZV9mbGFnIHJhbmdlX2ZsYWcgPSAoZW51bSByYW5nZV9mbGFnKSBleHAt PmVsdHNbcGNdLmxvbmdjb25zdDsKLSsJICAqcG9zICs9IDM7Ci0rCi0rCSAgTE9OR0VTVCBsb3cs IGhpZ2gsIHN0cmlkZTsKLSsJICBsb3cgPSBoaWdoID0gc3RyaWRlID0gMDsKLSsKLSsJICBpZiAo KHJhbmdlX2ZsYWcgJiBSQU5HRV9MT1dfQk9VTkRfREVGQVVMVCkgPT0gMCkKLSsJICAgIGxvdyA9 IHZhbHVlX2FzX2xvbmcgKGV2YWx1YXRlX3N1YmV4cCAobnVsbHB0ciwgZXhwLCBwb3MsIG5vc2lk ZSkpOwotKwkgIGVsc2UKLSsJICAgIGxvdyA9IGY3N19nZXRfbG93ZXJib3VuZCAoZGltX3R5cGUp OwotKwkgIGlmICgocmFuZ2VfZmxhZyAmIFJBTkdFX0hJR0hfQk9VTkRfREVGQVVMVCkgPT0gMCkK LSsJICAgIGhpZ2ggPSB2YWx1ZV9hc19sb25nIChldmFsdWF0ZV9zdWJleHAgKG51bGxwdHIsIGV4 cCwgcG9zLCBub3NpZGUpKTsKLSsJICBlbHNlCi0rCSAgICBoaWdoID0gZjc3X2dldF91cHBlcmJv dW5kIChkaW1fdHlwZSk7Ci0rCSAgaWYgKChyYW5nZV9mbGFnICYgUkFOR0VfSEFTX1NUUklERSkg PT0gUkFOR0VfSEFTX1NUUklERSkKLSsJICAgIHN0cmlkZSA9IHZhbHVlX2FzX2xvbmcgKGV2YWx1 YXRlX3N1YmV4cCAobnVsbHB0ciwgZXhwLCBwb3MsIG5vc2lkZSkpOwotKwkgIGVsc2UKLSsJICAg IHN0cmlkZSA9IDE7Ci0rCi0rCSAgaWYgKHN0cmlkZSA9PSAwKQotKwkgICAgZXJyb3IgKF8oInN0 cmlkZSBtdXN0IG5vdCBiZSAwIikpOwotKwotKwkgIC8qIEdldCBpbmZvcm1hdGlvbiBhYm91dCB0 aGlzIGRpbWVuc2lvbiBpbiB0aGUgb3JpZ2luYWwgQVJSQVkuICAqLwotKwkgIHN0cnVjdCB0eXBl ICp0YXJnZXRfdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKGRpbV90eXBlKTsKLSsJICBzdHJ1Y3Qg dHlwZSAqaW5kZXhfdHlwZSA9IGRpbV90eXBlLT5pbmRleF90eXBlICgpOwotKwkgIExPTkdFU1Qg bGIgPSBmNzdfZ2V0X2xvd2VyYm91bmQgKGRpbV90eXBlKTsKLSsJICBMT05HRVNUIHViID0gZjc3 X2dldF91cHBlcmJvdW5kIChkaW1fdHlwZSk7Ci0rCSAgTE9OR0VTVCBzZCA9IGluZGV4X3R5cGUt PmJpdF9zdHJpZGUgKCk7Ci0rCSAgaWYgKHNkID09IDApCi0rCSAgICBzZCA9IFRZUEVfTEVOR1RI ICh0YXJnZXRfdHlwZSkgKiA4OwotKwotKwkgIGlmIChmb3J0cmFuX2FycmF5X3NsaWNpbmdfZGVi dWcpCi0rCSAgICB7Ci0rCSAgICAgIGRlYnVnX3ByaW50ZiAoInwtPiBSYW5nZSBhY2Nlc3NcbiIp OwotKwkgICAgICBzdGQ6OnN0cmluZyBzdHIgPSB0eXBlX3RvX3N0cmluZyAoZGltX3R5cGUpOwot KwkgICAgICBkZWJ1Z19wcmludGYgKCJ8ICAgfC0+IFR5cGU6ICVzXG4iLCBzdHIuY19zdHIgKCkp OwotKwkgICAgICBkZWJ1Z19wcmludGYgKCJ8ICAgfC0+IEFycmF5OlxuIik7Ci0rCSAgICAgIGRl YnVnX3ByaW50ZiAoInwgICB8ICAgfC0+IExvdyBib3VuZDogJWxkXG4iLCBsYik7Ci0rCSAgICAg IGRlYnVnX3ByaW50ZiAoInwgICB8ICAgfC0+IEhpZ2ggYm91bmQ6ICVsZFxuIiwgdWIpOwotKwkg ICAgICBkZWJ1Z19wcmludGYgKCJ8ICAgfCAgIHwtPiBCaXQgc3RyaWRlOiAlbGRcbiIsIHNkKTsK LSsJICAgICAgZGVidWdfcHJpbnRmICgifCAgIHwgICB8LT4gQnl0ZSBzdHJpZGU6ICVsZFxuIiwg c2QgLyA4KTsKLSsJICAgICAgZGVidWdfcHJpbnRmICgifCAgIHwgICB8LT4gVHlwZSBzaXplOiAl bGRcbiIsCi0rCQkJICAgIFRZUEVfTEVOR1RIIChkaW1fdHlwZSkpOwotKwkgICAgICBkZWJ1Z19w cmludGYgKCJ8ICAgfCAgICctPiBUYXJnZXQgdHlwZSBzaXplOiAlbGRcbiIsCi0rCQkJICAgIFRZ UEVfTEVOR1RIICh0YXJnZXRfdHlwZSkpOwotKwkgICAgICBkZWJ1Z19wcmludGYgKCJ8ICAgfC0+ IEFjY2Vzc2luZzpcbiIpOwotKwkgICAgICBkZWJ1Z19wcmludGYgKCJ8ICAgfCAgIHwtPiBMb3cg Ym91bmQ6ICVsZFxuIiwKLSsJCQkgICAgbG93KTsKLSsJICAgICAgZGVidWdfcHJpbnRmICgifCAg IHwgICB8LT4gSGlnaCBib3VuZDogJWxkXG4iLAotKwkJCSAgICBoaWdoKTsKLSsJICAgICAgZGVi dWdfcHJpbnRmICgifCAgIHwgICAnLT4gRWxlbWVudCBzdHJpZGU6ICVsZFxuIiwKLSsJCQkgICAg c3RyaWRlKTsKLSsJICAgIH0KLSsKLSsJICAvKiBDaGVjayB0aGUgdXNlciBoYXNuJ3QgYXNrZWQg Zm9yIHNvbWV0aGluZyBpbnZhbGlkLiAgKi8KLSsJICBpZiAoaGlnaCA+IHViIHx8IGxvdyA8IGxi KQotKwkgICAgZXJyb3IgKF8oImFycmF5IHN1YnNjcmlwdCBvdXQgb2YgYm91bmRzIikpOwotKwot KwkgIC8qIENhbGN1bGF0ZSB3aGF0IHRoaXMgZGltZW5zaW9uIG9mIHRoZSBuZXcgc2xpY2UgYXJy YXkgd2lsbCBsb29rCi0rCSAgICAgbGlrZS4gIE9GRlNFVCBpcyB0aGUgYnl0ZSBvZmZzZXQgZnJv bSB0aGUgc3RhcnQgb2YgdGhlCi0rCSAgICAgcHJldmlvdXMgKG1vcmUgb3V0ZXIpIGRpbWVuc2lv biB0byB0aGUgc3RhcnQgb2YgdGhpcwotKwkgICAgIGRpbWVuc2lvbi4gIEVfQ09VTlQgaXMgdGhl IG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGlzCi0rCSAgICAgZGltZW5zaW9uLiAgUkVNQUlOREVS IGlzIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgcmVtYWluaW5nCi0rCSAgICAgYmV0d2VlbiB0aGUg bGFzdCBpbmNsdWRlZCBlbGVtZW50IGFuZCB0aGUgdXBwZXIgYm91bmQuICBGb3IKLSsJICAgICBl eGFtcGxlIGFuIGFjY2VzcyAnMTo2OjInIHdpbGwgaW5jbHVkZSBlbGVtZW50cyAxLCAzLCA1IGFu ZAotKwkgICAgIGhhdmUgYSByZW1haW5kZXIgb2YgMSAoZWxlbWVudCAjNikuICAqLwotKwkgIExP TkdFU1QgbG93ZXN0ID0gc3RkOjptaW4gKGxvdywgaGlnaCk7Ci0rCSAgTE9OR0VTVCBvZmZzZXQg PSAoc2QgLyA4KSAqIChsb3dlc3QgLSBsYik7Ci0rCSAgTE9OR0VTVCBlX2NvdW50ID0gc3RkOjph YnMgKGhpZ2ggLSBsb3cpICsgMTsKLSsJICBlX2NvdW50ID0gKGVfY291bnQgKyAoc3RkOjphYnMg KHN0cmlkZSkgLSAxKSkgLyBzdGQ6OmFicyAoc3RyaWRlKTsKLSsJICBMT05HRVNUIG5ld19sb3cg PSAxOwotKwkgIExPTkdFU1QgbmV3X2hpZ2ggPSBuZXdfbG93ICsgZV9jb3VudCAtIDE7Ci0rCSAg TE9OR0VTVCBuZXdfc3RyaWRlID0gKHNkICogc3RyaWRlKSAvIDg7Ci0rCSAgTE9OR0VTVCBsYXN0 X2VsZW0gPSBsb3cgKyAoKGVfY291bnQgLSAxKSAqIHN0cmlkZSk7Ci0rCSAgTE9OR0VTVCByZW1h aW5kZXIgPSBoaWdoIC0gbGFzdF9lbGVtOwotKwkgIGlmIChsb3cgPiBoaWdoKQotKwkgICAgewot KwkgICAgICBvZmZzZXQgKz0gc3RkOjphYnMgKHJlbWFpbmRlcikgKiBUWVBFX0xFTkdUSCAodGFy Z2V0X3R5cGUpOwotKwkgICAgICBpZiAoc3RyaWRlID4gMCkKLSsJCWVycm9yIChfKCJpbmNvcnJl Y3Qgc3RyaWRlIGFuZCBib3VuZGFyeSBjb21iaW5hdGlvbiIpKTsKLSsJICAgIH0KLSsJICBlbHNl IGlmIChzdHJpZGUgPCAwKQotKwkgICAgZXJyb3IgKF8oImluY29ycmVjdCBzdHJpZGUgYW5kIGJv dW5kYXJ5IGNvbWJpbmF0aW9uIikpOwotKwotKwkgIC8qIElzIHRoZSBkYXRhIHdpdGhpbiB0aGlz IGRpbWVuc2lvbiBjb250aWd1b3VzPyAgSXQgaXMgaWYgdGhlCi0rCSAgICAgbmV3bHkgY29tcHV0 ZWQgc3RyaWRlIGlzIHRoZSBzYW1lIHNpemUgYXMgYSBzaW5nbGUgZWxlbWVudCBvZgotKwkgICAg IHRoaXMgZGltZW5zaW9uLiAgKi8KLSsJICBib29sIGlzX2RpbV9jb250aWd1b3VzID0gKG5ld19z dHJpZGUgPT0gc2xpY2VfZWxlbWVudF9zaXplKTsKLSsJICBpc19hbGxfY29udGlndW91cyAmPSBp c19kaW1fY29udGlndW91czsKLSsKLSsJICBpZiAoZm9ydHJhbl9hcnJheV9zbGljaW5nX2RlYnVn KQotKwkgICAgewotKwkgICAgICBkZWJ1Z19wcmludGYgKCJ8ICAgJy0+IFJlc3VsdHM6XG4iKTsK LSsJICAgICAgZGVidWdfcHJpbnRmICgifCAgICAgICB8LT4gT2Zmc2V0ID0gJWxkXG4iLCBvZmZz ZXQpOwotKwkgICAgICBkZWJ1Z19wcmludGYgKCJ8ICAgICAgIHwtPiBFbGVtZW50cyA9ICVsZFxu IiwgZV9jb3VudCk7Ci0rCSAgICAgIGRlYnVnX3ByaW50ZiAoInwgICAgICAgfC0+IExvdyBib3Vu ZCA9ICVsZFxuIiwgbmV3X2xvdyk7Ci0rCSAgICAgIGRlYnVnX3ByaW50ZiAoInwgICAgICAgfC0+ IEhpZ2ggYm91bmQgPSAlbGRcbiIsIG5ld19oaWdoKTsKLSsJICAgICAgZGVidWdfcHJpbnRmICgi fCAgICAgICB8LT4gQnl0ZSBzdHJpZGUgPSAlbGRcbiIsIG5ld19zdHJpZGUpOwotKwkgICAgICBk ZWJ1Z19wcmludGYgKCJ8ICAgICAgIHwtPiBMYXN0IGVsZW1lbnQgPSAlbGRcbiIsIGxhc3RfZWxl bSk7Ci0rCSAgICAgIGRlYnVnX3ByaW50ZiAoInwgICAgICAgfC0+IFJlbWFpbmRlciA9ICVsZFxu IiwgcmVtYWluZGVyKTsKLSsJICAgICAgZGVidWdfcHJpbnRmICgifCAgICAgICAnLT4gQ29udGln dW91cyA9ICVzXG4iLAotKwkJCSAgICAoaXNfZGltX2NvbnRpZ3VvdXMgPyAiWWVzIiA6ICJObyIp KTsKLSsJICAgIH0KLSsKLSsJICAvKiBGaWd1cmUgb3V0IGhvdyBiaWcgKGluIGJ5dGVzKSBhbiBl bGVtZW50IG9mIHRoaXMgZGltZW5zaW9uIG9mCi0rCSAgICAgdGhlIG5ldyBhcnJheSBzbGljZSB3 aWxsIGJlLiAgKi8KLSsJICBzbGljZV9lbGVtZW50X3NpemUgPSBzdGQ6OmFicyAobmV3X3N0cmlk ZSAqIGVfY291bnQpOwotKwotKwkgIHNsaWNlX2RpbXMuZW1wbGFjZV9iYWNrIChuZXdfbG93LCBu ZXdfaGlnaCwgbmV3X3N0cmlkZSwKLSsJCQkJICAgaW5kZXhfdHlwZSk7Ci0rCi0rCSAgLyogVXBk YXRlIHRoZSB0b3RhbCBvZmZzZXQuICAqLwotKwkgIHRvdGFsX29mZnNldCArPSBvZmZzZXQ7Ci0r CX0KLSsgICAgICBlbHNlCi0rCXsKLSsJICAvKiBUaGVyZSBpcyBhIHNpbmdsZSBpbmRleCBmb3Ig dGhpcyBkaW1lbnNpb24uICAqLwotKwkgIExPTkdFU1QgaW5kZXgKLSsJICAgID0gdmFsdWVfYXNf bG9uZyAoZXZhbHVhdGVfc3ViZXhwX3dpdGhfY29lcmNpb24gKGV4cCwgcG9zLCBub3NpZGUpKTsK LSsKLSsJICAvKiBHZXQgaW5mb3JtYXRpb24gYWJvdXQgdGhpcyBkaW1lbnNpb24gaW4gdGhlIG9y aWdpbmFsIEFSUkFZLiAgKi8KLSsJICBzdHJ1Y3QgdHlwZSAqdGFyZ2V0X3R5cGUgPSBUWVBFX1RB UkdFVF9UWVBFIChkaW1fdHlwZSk7Ci0rCSAgc3RydWN0IHR5cGUgKmluZGV4X3R5cGUgPSBkaW1f dHlwZS0+aW5kZXhfdHlwZSAoKTsKLSsJICBMT05HRVNUIGxiID0gZjc3X2dldF9sb3dlcmJvdW5k IChkaW1fdHlwZSk7Ci0rCSAgTE9OR0VTVCB1YiA9IGY3N19nZXRfdXBwZXJib3VuZCAoZGltX3R5 cGUpOwotKwkgIExPTkdFU1Qgc2QgPSBpbmRleF90eXBlLT5iaXRfc3RyaWRlICgpIC8gODsKLSsJ ICBpZiAoc2QgPT0gMCkKLSsJICAgIHNkID0gVFlQRV9MRU5HVEggKHRhcmdldF90eXBlKTsKLSsK LSsJICBpZiAoZm9ydHJhbl9hcnJheV9zbGljaW5nX2RlYnVnKQotKwkgICAgewotKwkgICAgICBk ZWJ1Z19wcmludGYgKCJ8LT4gSW5kZXggYWNjZXNzXG4iKTsKLSsJICAgICAgc3RkOjpzdHJpbmcg c3RyID0gdHlwZV90b19zdHJpbmcgKGRpbV90eXBlKTsKLSsJICAgICAgZGVidWdfcHJpbnRmICgi fCAgIHwtPiBUeXBlOiAlc1xuIiwgc3RyLmNfc3RyICgpKTsKLSsJICAgICAgZGVidWdfcHJpbnRm ICgifCAgIHwtPiBBcnJheTpcbiIpOwotKwkgICAgICBkZWJ1Z19wcmludGYgKCJ8ICAgfCAgIHwt PiBMb3cgYm91bmQ6ICVsZFxuIiwgbGIpOwotKwkgICAgICBkZWJ1Z19wcmludGYgKCJ8ICAgfCAg IHwtPiBIaWdoIGJvdW5kOiAlbGRcbiIsIHViKTsKLSsJICAgICAgZGVidWdfcHJpbnRmICgifCAg IHwgICB8LT4gQnl0ZSBzdHJpZGU6ICVsZFxuIiwgc2QpOwotKwkgICAgICBkZWJ1Z19wcmludGYg KCJ8ICAgfCAgIHwtPiBUeXBlIHNpemU6ICVsZFxuIiwgVFlQRV9MRU5HVEggKGRpbV90eXBlKSk7 Ci0rCSAgICAgIGRlYnVnX3ByaW50ZiAoInwgICB8ICAgJy0+IFRhcmdldCB0eXBlIHNpemU6ICVs ZFxuIiwKLSsJCQkgICAgVFlQRV9MRU5HVEggKHRhcmdldF90eXBlKSk7Ci0rCSAgICAgIGRlYnVn X3ByaW50ZiAoInwgICAnLT4gQWNjZXNzaW5nOlxuIik7Ci0rCSAgICAgIGRlYnVnX3ByaW50ZiAo InwgICAgICAgJy0+IEluZGV4OiAlbGRcbiIsIGluZGV4KTsKLSsJICAgIH0KLSsKLSsJICAvKiBJ ZiB0aGUgYXJyYXkgaGFzIGFjdHVhbCBjb250ZW50IHRoZW4gY2hlY2sgdGhlIGluZGV4IGlzIGlu Ci0rCSAgICAgYm91bmRzLiAgQW4gYXJyYXkgd2l0aG91dCBjb250ZW50IChhbiB1bmJvdW5kIGFy cmF5KSBkb2Vzbid0Ci0rCSAgICAgaGF2ZSBhIGtub3duIHVwcGVyIGJvdW5kLCBzbyBkb24ndCBl cnJvciBjaGVjayBpbiB0aGF0Ci0rCSAgICAgc2l0dWF0aW9uLiAgKi8KLSsJICBpZiAoaW5kZXgg PCBsYgotKwkgICAgICB8fCAoZGltX3R5cGUtPmluZGV4X3R5cGUgKCktPmJvdW5kcyAoKS0+aGln aC5raW5kICgpICE9IFBST1BfVU5ERUZJTkVECi0rCQkgICYmIGluZGV4ID4gdWIpCi0rCSAgICAg IHx8IChWQUxVRV9MVkFMIChhcnJheSkgIT0gbHZhbF9tZW1vcnkKLSsJCSAgJiYgZGltX3R5cGUt PmluZGV4X3R5cGUgKCktPmJvdW5kcyAoKS0+aGlnaC5raW5kICgpID09IFBST1BfVU5ERUZJTkVE KSkKLSsJICAgIHsKLSsJICAgICAgaWYgKHR5cGVfbm90X2Fzc29jaWF0ZWQgKGRpbV90eXBlKSkK LSsJCWVycm9yIChfKCJubyBzdWNoIHZlY3RvciBlbGVtZW50ICh2ZWN0b3Igbm90IGFzc29jaWF0 ZWQpIikpOwotKwkgICAgICBlbHNlIGlmICh0eXBlX25vdF9hbGxvY2F0ZWQgKGRpbV90eXBlKSkK LSsJCWVycm9yIChfKCJubyBzdWNoIHZlY3RvciBlbGVtZW50ICh2ZWN0b3Igbm90IGFsbG9jYXRl ZCkiKSk7Ci0rCSAgICAgIGVsc2UKLSsJCWVycm9yIChfKCJubyBzdWNoIHZlY3RvciBlbGVtZW50 IikpOwotKwkgICAgfQotIAotLSAgZ2RiX2Fzc2VydCAobmFyZ3MgPiAwKTsKLSsJICAvKiBDYWxj dWxhdGUgdXNpbmcgdGhlIHR5cGUgc3RyaWRlLCBub3QgdGhlIHRhcmdldCB0eXBlIHNpemUuICAq LwotKwkgIExPTkdFU1Qgb2Zmc2V0ID0gc2QgKiAoaW5kZXggLSBsYik7Ci0rCSAgdG90YWxfb2Zm c2V0ICs9IG9mZnNldDsKLSsJfQotKyAgICB9Ci0gCi0tICAvKiBOb3cgdGhhdCB3ZSBrbm93IHdl IGhhdmUgYSBsZWdhbCBhcnJheSBzdWJzY3JpcHQgZXhwcmVzc2lvbiBsZXQgdXMKLS0gICAgIGFj dHVhbGx5IGZpbmQgb3V0IHdoZXJlIHRoaXMgZWxlbWVudCBleGlzdHMgaW4gdGhlIGFycmF5LiAg Ki8KLSsgIGlmIChub3NpZGUgPT0gRVZBTF9TS0lQKQotKyAgICByZXR1cm4gYXJyYXk7Ci0gCi0t ICAvKiBUYWtlIGFycmF5IGluZGljZXMgbGVmdCB0byByaWdodC4gICovCi0tICBmb3IgKGludCBp ID0gMDsgaSA8IG5hcmdzOyBpKyspCi0rICAvKiBCdWlsZCBhIHR5cGUgdGhhdCByZXByZXNlbnRz IHRoZSBuZXcgYXJyYXkgc2xpY2UgaW4gdGhlIHRhcmdldCBtZW1vcnkKLSsgICAgIG9mIHRoZSBv cmlnaW5hbCBBUlJBWSwgdGhpcyB0eXBlIG1ha2VzIHVzZSBvZiBzdHJpZGVzIHRvIGNvcnJlY3Rs eQotKyAgICAgZmluZCBvbmx5IHRob3NlIGVsZW1lbnRzIHRoYXQgYXJlIHBhcnQgb2YgdGhlIG5l dyBzbGljZS4gICovCi0rICBzdHJ1Y3QgdHlwZSAqYXJyYXlfc2xpY2VfdHlwZSA9IGlubmVyX2Vs ZW1lbnRfdHlwZTsKLSsgIGZvciAoY29uc3QgYXV0byAmZCA6IHNsaWNlX2RpbXMpCi0gICAgIHsK LS0gICAgICAvKiBFdmFsdWF0ZSBlYWNoIHN1YnNjcmlwdDsgaXQgbXVzdCBiZSBhIGxlZ2FsIGlu dGVnZXIgaW4gRjc3LiAgKi8KLS0gICAgICB2YWx1ZSAqYXJnMiA9IGV2YWx1YXRlX3N1YmV4cF93 aXRoX2NvZXJjaW9uIChleHAsIHBvcywgbm9zaWRlKTsKLSsgICAgICAvKiBDcmVhdGUgdGhlIHJh bmdlLiAgKi8KLSsgICAgICBkeW5hbWljX3Byb3AgcF9sb3csIHBfaGlnaCwgcF9zdHJpZGU7Ci0r Ci0rICAgICAgcF9sb3cuc2V0X2NvbnN0X3ZhbCAoZC5sb3cpOwotKyAgICAgIHBfaGlnaC5zZXRf Y29uc3RfdmFsIChkLmhpZ2gpOwotKyAgICAgIHBfc3RyaWRlLnNldF9jb25zdF92YWwgKGQuc3Ry aWRlKTsKLSsKLSsgICAgICBzdHJ1Y3QgdHlwZSAqbmV3X3JhbmdlCi0rCT0gY3JlYXRlX3Jhbmdl X3R5cGVfd2l0aF9zdHJpZGUgKChzdHJ1Y3QgdHlwZSAqKSBOVUxMLAotKwkJCQkJIFRZUEVfVEFS R0VUX1RZUEUgKGQuaW5kZXgpLAotKwkJCQkJICZwX2xvdywgJnBfaGlnaCwgMCwgJnBfc3RyaWRl LAotKwkJCQkJIHRydWUpOwotKyAgICAgIGFycmF5X3NsaWNlX3R5cGUKLSsJPSBjcmVhdGVfYXJy YXlfdHlwZSAobnVsbHB0ciwgYXJyYXlfc2xpY2VfdHlwZSwgbmV3X3JhbmdlKTsKLSsgICAgfQot IAotLSAgICAgIC8qIEZpbGwgaW4gdGhlIHN1YnNjcmlwdCBhcnJheS4gICovCi0tICAgICAgc3Vi c2NyaXB0X2FycmF5W2ldID0gdmFsdWVfYXNfbG9uZyAoYXJnMik7Ci0rICBpZiAoZm9ydHJhbl9h cnJheV9zbGljaW5nX2RlYnVnKQotKyAgICB7Ci0rICAgICAgZGVidWdfcHJpbnRmICgiJy0+IEZp bmFsIHJlc3VsdDpcbiIpOwotKyAgICAgIGRlYnVnX3ByaW50ZiAoIiAgICB8LT4gVHlwZTogJXNc biIsCi0rCQkgICAgdHlwZV90b19zdHJpbmcgKGFycmF5X3NsaWNlX3R5cGUpLmNfc3RyICgpKTsK LSsgICAgICBkZWJ1Z19wcmludGYgKCIgICAgfC0+IFRvdGFsIG9mZnNldDogJWxkXG4iLCB0b3Rh bF9vZmZzZXQpOwotKyAgICAgIGRlYnVnX3ByaW50ZiAoIiAgICB8LT4gQmFzZSBhZGRyZXNzOiAl c1xuIiwKLSsJCSAgICBjb3JlX2FkZHJfdG9fc3RyaW5nICh2YWx1ZV9hZGRyZXNzIChhcnJheSkp KTsKLSsgICAgICBkZWJ1Z19wcmludGYgKCIgICAgJy0+IENvbnRpZ3VvdXMgPSAlc1xuIiwKLSsJ CSAgICAoaXNfYWxsX2NvbnRpZ3VvdXMgPyAiWWVzIiA6ICJObyIpKTsKLSAgICAgfQotIAotLSAg LyogSW50ZXJuYWwgdHlwZSBvZiBhcnJheSBpcyBhcnJhbmdlZCByaWdodCB0byBsZWZ0LiAgKi8K LS0gIGZvciAoaW50IGkgPSBuYXJnczsgaSA+IDA7IGktLSkKLSsgIC8qIFNob3VsZCB3ZSByZXBh Y2sgdGhpcyBhcnJheSBzbGljZT8gICovCi0rICBpZiAoIWlzX2FsbF9jb250aWd1b3VzICYmIChy ZXBhY2tfYXJyYXlfc2xpY2VzIHx8IGlzX3N0cmluZ19wKSkKLSAgICAgewotLSAgICAgIHN0cnVj dCB0eXBlICphcnJheV90eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJyYXkpKTsK LS0gICAgICBMT05HRVNUIGluZGV4ID0gc3Vic2NyaXB0X2FycmF5W2kgLSAxXTsKLSsgICAgICAv KiBCdWlsZCBhIHR5cGUgZm9yIHRoZSByZXBhY2tlZCBzbGljZS4gICovCi0rICAgICAgc3RydWN0 IHR5cGUgKnJlcGFja2VkX2FycmF5X3R5cGUgPSBpbm5lcl9lbGVtZW50X3R5cGU7Ci0rICAgICAg Zm9yIChjb25zdCBhdXRvICZkIDogc2xpY2VfZGltcykKLSsJewotKwkgIC8qIENyZWF0ZSB0aGUg cmFuZ2UuICAqLwotKwkgIGR5bmFtaWNfcHJvcCBwX2xvdywgcF9oaWdoLCBwX3N0cmlkZTsKLSsK LSsJICBwX2xvdy5zZXRfY29uc3RfdmFsIChkLmxvdyk7Ci0rCSAgcF9oaWdoLnNldF9jb25zdF92 YWwgKGQuaGlnaCk7Ci0rCSAgcF9zdHJpZGUuc2V0X2NvbnN0X3ZhbCAoVFlQRV9MRU5HVEggKHJl cGFja2VkX2FycmF5X3R5cGUpKTsKLSsKLSsJICBzdHJ1Y3QgdHlwZSAqbmV3X3JhbmdlCi0rCSAg ICA9IGNyZWF0ZV9yYW5nZV90eXBlX3dpdGhfc3RyaWRlICgoc3RydWN0IHR5cGUgKikgTlVMTCwK LSsJCQkJCSAgICAgVFlQRV9UQVJHRVRfVFlQRSAoZC5pbmRleCksCi0rCQkJCQkgICAgICZwX2xv dywgJnBfaGlnaCwgMCwgJnBfc3RyaWRlLAotKwkJCQkJICAgICB0cnVlKTsKLSsJICByZXBhY2tl ZF9hcnJheV90eXBlCi0rCSAgICA9IGNyZWF0ZV9hcnJheV90eXBlIChudWxscHRyLCByZXBhY2tl ZF9hcnJheV90eXBlLCBuZXdfcmFuZ2UpOwotKwl9Ci0gCi0tICAgICAgYXJyYXkgPSB2YWx1ZV9z dWJzY3JpcHRlZF9ydmFsdWUgKGFycmF5LCBpbmRleCwKLS0JCQkJCWY3N19nZXRfbG93ZXJib3Vu ZCAoYXJyYXlfdHlwZSkpOwotKyAgICAgIC8qIE5vdyBjb3B5IHRoZSBlbGVtZW50cyBmcm9tIHRo ZSBvcmlnaW5hbCBBUlJBWSBpbnRvIHRoZSBwYWNrZWQKLSsJIGFycmF5IHZhbHVlIERFU1QuICAq LwotKyAgICAgIHN0cnVjdCB2YWx1ZSAqZGVzdCA9IGFsbG9jYXRlX3ZhbHVlIChyZXBhY2tlZF9h cnJheV90eXBlKTsKLSsgICAgICBpZiAodmFsdWVfbGF6eSAoYXJyYXkpCi0rCSAgfHwgKHRvdGFs X29mZnNldCArIFRZUEVfTEVOR1RIIChhcnJheV9zbGljZV90eXBlKQotKwkgICAgICA+IFRZUEVf TEVOR1RIIChjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcnJheSkpKSkpCi0rCXsKLSsJICBm b3J0cmFuX2FycmF5X3dhbGtlcjxmb3J0cmFuX2xhenlfYXJyYXlfcmVwYWNrZXJfaW1wbD4gcAot KwkgICAgKGFycmF5X3NsaWNlX3R5cGUsIHZhbHVlX2FkZHJlc3MgKGFycmF5KSArIHRvdGFsX29m ZnNldCwgZGVzdCk7Ci0rCSAgcC53YWxrICgpOwotKwl9Ci0rICAgICAgZWxzZQotKwl7Ci0rCSAg Zm9ydHJhbl9hcnJheV93YWxrZXI8Zm9ydHJhbl9hcnJheV9yZXBhY2tlcl9pbXBsPiBwCi0rCSAg ICAoYXJyYXlfc2xpY2VfdHlwZSwgdmFsdWVfYWRkcmVzcyAoYXJyYXkpICsgdG90YWxfb2Zmc2V0 LAotKwkgICAgIHRvdGFsX29mZnNldCwgYXJyYXksIGRlc3QpOwotKwkgIHAud2FsayAoKTsKLSsJ fQotKyAgICAgIGFycmF5ID0gZGVzdDsKLSsgICAgfQotKyAgZWxzZQotKyAgICB7Ci0rICAgICAg aWYgKFZBTFVFX0xWQUwgKGFycmF5KSA9PSBsdmFsX21lbW9yeSkKLSsJewotKwkgIC8qIElmIHRo ZSB2YWx1ZSB3ZSdyZSB0YWtpbmcgYSBzbGljZSBmcm9tIGlzIG5vdCB5ZXQgbG9hZGVkLCBvcgot KwkgICAgIHRoZSByZXF1ZXN0ZWQgc2xpY2UgaXMgb3V0c2lkZSB0aGUgdmFsdWVzIGNvbnRlbnQg cmFuZ2UgdGhlbgotKwkgICAgIGp1c3QgY3JlYXRlIGEgbmV3IGxhenkgdmFsdWUgcG9pbnRpbmcg YXQgdGhlIG1lbW9yeSB3aGVyZSB0aGUKLSsJICAgICBjb250ZW50cyB3ZSdyZSBsb29raW5nIGZv ciBleGlzdC4gICovCi0rCSAgaWYgKHZhbHVlX2xhenkgKGFycmF5KQotKwkgICAgICB8fCAodG90 YWxfb2Zmc2V0ICsgVFlQRV9MRU5HVEggKGFycmF5X3NsaWNlX3R5cGUpCi0rCQkgID4gVFlQRV9M RU5HVEggKGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFycmF5KSkpKSkKLSsJICAgIGFycmF5 ID0gdmFsdWVfYXRfbGF6eSAoYXJyYXlfc2xpY2VfdHlwZSwKLSsJCQkJICAgdmFsdWVfYWRkcmVz cyAoYXJyYXkpICsgdG90YWxfb2Zmc2V0KTsKLSsJICBlbHNlCi0rCSAgICBhcnJheSA9IHZhbHVl X2Zyb21fY29udGVudHNfYW5kX2FkZHJlc3MgKGFycmF5X3NsaWNlX3R5cGUsCi0rCQkJCQkJICAg ICAodmFsdWVfY29udGVudHMgKGFycmF5KQotKwkJCQkJCSAgICAgICsgdG90YWxfb2Zmc2V0KSwK LSsJCQkJCQkgICAgICh2YWx1ZV9hZGRyZXNzIChhcnJheSkKLSsJCQkJCQkgICAgICArIHRvdGFs X29mZnNldCkpOwotKwl9Ci0rICAgICAgZWxzZSBpZiAoIXZhbHVlX2xhenkgKGFycmF5KSkKLSsJ ewotKwkgIGNvbnN0IHZvaWQgKnZhbGFkZHIgPSB2YWx1ZV9jb250ZW50cyAoYXJyYXkpICsgdG90 YWxfb2Zmc2V0OwotKwkgIGFycmF5ID0gYWxsb2NhdGVfdmFsdWUgKGFycmF5X3NsaWNlX3R5cGUp OwotKwkgIG1lbWNweSAodmFsdWVfY29udGVudHNfcmF3IChhcnJheSksIHZhbGFkZHIsIFRZUEVf TEVOR1RIIChhcnJheV9zbGljZV90eXBlKSk7Ci0rCX0KLSsgICAgICBlbHNlCi0rCWVycm9yIChf KCJjYW5ub3Qgc3Vic2NyaXB0IGFycmF5cyB0aGF0IGFyZSBub3QgaW4gbWVtb3J5IikpOwotICAg ICB9Ci0gCi0gICByZXR1cm4gYXJyYXk7Ci1AQCAtMTAzMSwxMSArMTQ4OSw1MCBAQCBidWlsdGlu X2ZfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gpCi0gICByZXR1cm4gKGNvbnN0IHN0cnVj dCBidWlsdGluX2ZfdHlwZSAqKSBnZGJhcmNoX2RhdGEgKGdkYmFyY2gsIGZfdHlwZV9kYXRhKTsK LSB9Ci0gCi0rLyogQ29tbWFuZC1saXN0IGZvciB0aGUgInNldC9zaG93IGZvcnRyYW4iIHByZWZp eCBjb21tYW5kLiAgKi8KLStzdGF0aWMgc3RydWN0IGNtZF9saXN0X2VsZW1lbnQgKnNldF9mb3J0 cmFuX2xpc3Q7Ci0rc3RhdGljIHN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICpzaG93X2ZvcnRyYW5f bGlzdDsKLSsKLSB2b2lkIF9pbml0aWFsaXplX2ZfbGFuZ3VhZ2UgKCk7Ci0gdm9pZAotIF9pbml0 aWFsaXplX2ZfbGFuZ3VhZ2UgKCkKLSB7Ci0gICBmX3R5cGVfZGF0YSA9IGdkYmFyY2hfZGF0YV9y ZWdpc3Rlcl9wb3N0X2luaXQgKGJ1aWxkX2ZvcnRyYW5fdHlwZXMpOwotKwotKyAgYWRkX2Jhc2lj X3ByZWZpeF9jbWQgKCJmb3J0cmFuIiwgbm9fY2xhc3MsCi0rCQkJXygiUHJlZml4IGNvbW1hbmQg Zm9yIGNoYW5naW5nIEZvcnRyYW4tc3BlY2lmaWMgc2V0dGluZ3MuIiksCi0rCQkJJnNldF9mb3J0 cmFuX2xpc3QsICJzZXQgZm9ydHJhbiAiLCAwLCAmc2V0bGlzdCk7Ci0rCi0rICBhZGRfc2hvd19w cmVmaXhfY21kICgiZm9ydHJhbiIsIG5vX2NsYXNzLAotKwkJICAgICAgIF8oIkdlbmVyaWMgY29t bWFuZCBmb3Igc2hvd2luZyBGb3J0cmFuLXNwZWNpZmljIHNldHRpbmdzLiIpLAotKwkJICAgICAg ICZzaG93X2ZvcnRyYW5fbGlzdCwgInNob3cgZm9ydHJhbiAiLCAwLCAmc2hvd2xpc3QpOwotKwot KyAgYWRkX3NldHNob3dfYm9vbGVhbl9jbWQgKCJyZXBhY2stYXJyYXktc2xpY2VzIiwgY2xhc3Nf dmFycywKLSsJCQkgICAmcmVwYWNrX2FycmF5X3NsaWNlcywgXygiXAotK0VuYWJsZSBvciBkaXNh YmxlIHJlcGFja2luZyBvZiBub24tY29udGlndW91cyBhcnJheSBzbGljZXMuIiksIF8oIlwKLStT aG93IHdoZXRoZXIgbm9uLWNvbnRpZ3VvdXMgYXJyYXkgc2xpY2VzIGFyZSByZXBhY2tlZC4iKSwg XygiXAotK1doZW4gdGhlIHVzZXIgcmVxdWVzdHMgYSBzbGljZSBvZiBhIEZvcnRyYW4gYXJyYXkg dGhlbiB3ZSBjYW4gZWl0aGVyIHJldHVyblxuXAotK2EgZGVzY3JpcHRvciB0aGF0IGRlc2NyaWJl cyB0aGUgYXJyYXkgaW4gcGxhY2UgKHVzaW5nIHRoZSBvcmlnaW5hbCBhcnJheSBkYXRhXG5cCi0r aW4gaXRzIGV4aXN0aW5nIGxvY2F0aW9uKSBvciB0aGUgb3JpZ2luYWwgZGF0YSBjYW4gYmUgcmVw YWNrZWQgKGNvcGllZCkgdG8gYVxuXAotK25ldyBsb2NhdGlvbi5cblwKLStcblwKLStXaGVuIHRo ZSBjb250ZW50IG9mIHRoZSBhcnJheSBzbGljZSBpcyBjb250aWd1b3VzIHdpdGhpbiB0aGUgb3Jp Z2luYWwgYXJyYXlcblwKLSt0aGVuIHRoZSByZXN1bHQgd2lsbCBuZXZlciBiZSByZXBhY2tlZCwg YnV0IHdoZW4gdGhlIGRhdGEgZm9yIHRoZSBuZXcgYXJyYXlcblwKLStpcyBub24tY29udGlndW91 cyB3aXRoaW4gdGhlIG9yaWdpbmFsIGFycmF5IHJlcGFja2luZyB3aWxsIG9ubHkgYmUgcGVyZm9y bWVkXG5cCi0rd2hlbiB0aGlzIHNldHRpbmcgaXMgb24uIiksCi0rCQkJICAgTlVMTCwKLSsJCQkg ICBzaG93X3JlcGFja19hcnJheV9zbGljZXMsCi0rCQkJICAgJnNldF9mb3J0cmFuX2xpc3QsICZz aG93X2ZvcnRyYW5fbGlzdCk7Ci0rCi0rICAvKiBEZWJ1ZyBGb3J0cmFuJ3MgYXJyYXkgc2xpY2lu ZyBsb2dpYy4gICovCi0rICBhZGRfc2V0c2hvd19ib29sZWFuX2NtZCAoImZvcnRyYW4tYXJyYXkt c2xpY2luZyIsIGNsYXNzX21haW50ZW5hbmNlLAotKwkJCSAgICZmb3J0cmFuX2FycmF5X3NsaWNp bmdfZGVidWcsIF8oIlwKLStTZXQgZGVidWdnaW5nIG9mIEZvcnRyYW4gYXJyYXkgc2xpY2luZy4i KSwgXygiXAotK1Nob3cgZGVidWdnaW5nIG9mIEZvcnRyYW4gYXJyYXkgc2xpY2luZy4iKSwgXygi XAotK1doZW4gb24sIGRlYnVnZ2luZyBvZiBGb3J0cmFuIGFycmF5IHNsaWNpbmcgaXMgZW5hYmxl ZC4iKSwKLSsJCQkgICAgTlVMTCwKLSsJCQkgICAgc2hvd19mb3J0cmFuX2FycmF5X3NsaWNpbmdf ZGVidWcsCi0rCQkJICAgICZzZXRkZWJ1Z2xpc3QsICZzaG93ZGVidWdsaXN0KTsKLSB9Ci0gCi0g LyogU2VlIGYtbGFuZy5oLiAgKi8KLUBAIC0xMDc0LDMgKzE1NzEsNTYgQEAgZm9ydHJhbl9wcmVz ZXJ2ZV9hcmdfcG9pbnRlciAoc3RydWN0IHZhbHVlICphcmcsIHN0cnVjdCB0eXBlICp0eXBlKQot ICAgICByZXR1cm4gdmFsdWVfdHlwZSAoYXJnKTsKLSAgIHJldHVybiB0eXBlOwotIH0KLSsKLSsv KiBTZWUgZi1sYW5nLmguICAqLwotKwotK0NPUkVfQUREUgotK2ZvcnRyYW5fYWRqdXN0X2R5bmFt aWNfYXJyYXlfYmFzZV9hZGRyZXNzX2hhY2sgKHN0cnVjdCB0eXBlICp0eXBlLAotKwkJCQkJCUNP UkVfQUREUiBhZGRyZXNzKQotK3sKLSsgIGdkYl9hc3NlcnQgKHR5cGUtPmNvZGUgKCkgPT0gVFlQ RV9DT0RFX0FSUkFZKTsKLSsKLSsgIGludCBuZGltZW5zaW9ucyA9IGNhbGNfZjc3X2FycmF5X2Rp bXMgKHR5cGUpOwotKyAgTE9OR0VTVCB0b3RhbF9vZmZzZXQgPSAwOwotKwotKyAgLyogV2FsayB0 aHJvdWdoIGVhY2ggb2YgdGhlIGRpbWVuc2lvbnMgb2YgdGhpcyBhcnJheSB0eXBlIGFuZCBmaWd1 cmUgb3V0Ci0rICAgICBpZiBhbnkgb2YgdGhlIGRpbWVuc2lvbnMgYXJlICJiYWNrd2FyZHMiLCB0 aGF0IGlzIHRoZSBiYXNlIGFkZHJlc3MKLSsgICAgIGZvciB0aGlzIGRpbWVuc2lvbiBwb2ludHMg dG8gdGhlIGVsZW1lbnQgYXQgdGhlIGhpZ2hlc3QgbWVtb3J5Ci0rICAgICBhZGRyZXNzIGFuZCB0 aGUgc3RyaWRlIGlzIG5lZ2F0aXZlLiAgKi8KLSsgIHN0cnVjdCB0eXBlICp0bXBfdHlwZSA9IHR5 cGU7Ci0rICBmb3IgKGludCBpID0gMCA7IGkgPCBuZGltZW5zaW9uczsgKytpKQotKyAgICB7Ci0r ICAgICAgLyogR3JhYiB0aGUgcmFuZ2UgZm9yIHRoaXMgZGltZW5zaW9uIGFuZCBleHRyYWN0IHRo ZSBsb3dlciBhbmQgdXBwZXIKLSsJIGJvdW5kcy4gICovCi0rICAgICAgdG1wX3R5cGUgPSBjaGVj a190eXBlZGVmICh0bXBfdHlwZSk7Ci0rICAgICAgc3RydWN0IHR5cGUgKnJhbmdlX3R5cGUgPSB0 bXBfdHlwZS0+aW5kZXhfdHlwZSAoKTsKLSsgICAgICBMT05HRVNUIGxvd2VyYm91bmQsIHVwcGVy Ym91bmQsIHN0cmlkZTsKLSsgICAgICBpZiAoIWdldF9kaXNjcmV0ZV9ib3VuZHMgKHJhbmdlX3R5 cGUsICZsb3dlcmJvdW5kLCAmdXBwZXJib3VuZCkpCi0rCWVycm9yICgiZmFpbGVkIHRvIGdldCBy YW5nZSBib3VuZHMiKTsKLSsKLSsgICAgICAvKiBGaWd1cmUgb3V0IHRoZSBzdHJpZGUgZm9yIHRo aXMgZGltZW5zaW9uLiAgKi8KLSsgICAgICBzdHJ1Y3QgdHlwZSAqZWx0X3R5cGUgPSBjaGVja190 eXBlZGVmIChUWVBFX1RBUkdFVF9UWVBFICh0bXBfdHlwZSkpOwotKyAgICAgIHN0cmlkZSA9IHRt cF90eXBlLT5pbmRleF90eXBlICgpLT5ib3VuZHMgKCktPmJpdF9zdHJpZGUgKCk7Ci0rICAgICAg aWYgKHN0cmlkZSA9PSAwKQotKwlzdHJpZGUgPSB0eXBlX2xlbmd0aF91bml0cyAoZWx0X3R5cGUp OwotKyAgICAgIGVsc2UKLSsJewotKwkgIHN0cnVjdCBnZGJhcmNoICphcmNoID0gZ2V0X3R5cGVf YXJjaCAoZWx0X3R5cGUpOwotKwkgIGludCB1bml0X3NpemUgPSBnZGJhcmNoX2FkZHJlc3NhYmxl X21lbW9yeV91bml0X3NpemUgKGFyY2gpOwotKwkgIHN0cmlkZSAvPSAodW5pdF9zaXplICogOCk7 Ci0rCX0KLSsKLSsgICAgICAvKiBJZiB0aGlzIGRpbWVuc2lvbiBpcyAiYmFja3dhcmQiIHRoZW4g ZmlndXJlIG91dCB0aGUgb2Zmc2V0Ci0rCSBhZGp1c3RtZW50IHJlcXVpcmVkIHRvIHBvaW50IHRv IHRoZSBlbGVtZW50IGF0IHRoZSBsb3dlc3QgbWVtb3J5Ci0rCSBhZGRyZXNzLCBhbmQgYWRkIHRo aXMgdG8gdGhlIHRvdGFsIG9mZnNldC4gICovCi0rICAgICAgTE9OR0VTVCBvZmZzZXQgPSAwOwot KyAgICAgIGlmIChzdHJpZGUgPCAwICYmIGxvd2VyYm91bmQgPCB1cHBlcmJvdW5kKQotKwlvZmZz ZXQgPSAodXBwZXJib3VuZCAtIGxvd2VyYm91bmQpICogc3RyaWRlOwotKyAgICAgIHRvdGFsX29m ZnNldCArPSBvZmZzZXQ7Ci0rICAgICAgdG1wX3R5cGUgPSBUWVBFX1RBUkdFVF9UWVBFICh0bXBf dHlwZSk7Ci0rICAgIH0KLSsKLSsgIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBvZiB0aGlzIG9iamVj dCBhbmQgcmV0dXJuIGl0LiAgKi8KLSsgIGFkZHJlc3MgKz0gdG90YWxfb2Zmc2V0OwotKyAgcmV0 dXJuIGFkZHJlc3M7Ci0rfQotZGlmZiAtLWdpdCBhL2dkYi9mLWxhbmcuaCBiL2dkYi9mLWxhbmcu aAotLS0tIGEvZ2RiL2YtbGFuZy5oCi0rKysgYi9nZGIvZi1sYW5nLmgKLUBAIC02NCw3ICs2NCw2 IEBAIGV4dGVybiB2b2lkIGY3N19nZXRfZHluYW1pY19hcnJheV9sZW5ndGggKHN0cnVjdCB0eXBl ICopOwotIAotIGV4dGVybiBpbnQgY2FsY19mNzdfYXJyYXlfZGltcyAoc3RydWN0IHR5cGUgKik7 Ci0gCi0tCi0gLyogRm9ydHJhbiAoRjc3KSB0eXBlcyAqLwotIAotIHN0cnVjdCBidWlsdGluX2Zf dHlwZQotQEAgLTEyMiw0ICsxMjEsMjIgQEAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqZm9ydHJhbl9h cmd1bWVudF9jb252ZXJ0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlLAotIGV4dGVybiBzdHJ1Y3QgdHlw ZSAqZm9ydHJhbl9wcmVzZXJ2ZV9hcmdfcG9pbnRlciAoc3RydWN0IHZhbHVlICphcmcsCi0gCQkJ CQkJICBzdHJ1Y3QgdHlwZSAqdHlwZSk7Ci0gCi0rLyogRm9ydHJhbiBhcnJheXMgY2FuIGhhdmUg YSBuZWdhdGl2ZSBzdHJpZGUuICBXaGVuIHRoaXMgaGFwcGVucyBpdCBpcwotKyAgIG9mdGVuIHRo ZSBjYXNlIHRoYXQgdGhlIGJhc2UgYWRkcmVzcyBmb3IgYW4gb2JqZWN0IGlzIG5vdCB0aGUgbG93 ZXN0Ci0rICAgYWRkcmVzcyBvY2N1cGllZCBieSB0aGF0IG9iamVjdC4gIEZvciBleGFtcGxlLCBh biBhcnJheSBzbGljZSAoMTA6MTotMSkKLSsgICB3aWxsIGJlIGVuY29kZWQgd2l0aCBsb3dlciBi b3VuZCAxLCB1cHBlciBib3VuZCAxMCwgYSBzdHJpZGUgb2YKLSsgICAtRUxFTUVOVF9TSVpFLCBh bmQgaGF2ZSBhIGJhc2UgYWRkcmVzcyBwb2ludGVyIHRoYXQgcG9pbnRzIGF0IHRoZQotKyAgIGVs ZW1lbnQgd2l0aCB0aGUgaGlnaGVzdCBhZGRyZXNzIGluIG1lbW9yeS4KLSsKLSsgICBUaGlzIHJl YWxseSBkb2Vzbid0IHBsYXkgd2VsbCB3aXRoIG91ciBjdXJyZW50IG1vZGVsIG9mIHZhbHVlIGNv bnRlbnRzLAotKyAgIGJ1dCBjb3VsZCBlYXNpbHkgcmVxdWlyZSBhIHNpZ25pZmljYW50IHVwZGF0 ZSBpbiBvcmRlciB0byBiZSBzdXBwb3J0ZWQKLSsgICAiY29ycmVjdGx5Ii4KLSsKLSsgICBGb3Ig bm93LCB3ZSBtYW51YWxseSBmb3JjZSB0aGUgYmFzZSBhZGRyZXNzIHRvIGJlIHRoZSBsb3dlc3Qg YWRkcmVzc2VkCi0rICAgZWxlbWVudCBoZXJlLiAgWWVzLCB0aGlzIHdpbGwgYnJlYWsgc29tZSB0 aGluZ3MsIGJ1dCBpdCBmaXhlcyBvdGhlcgotKyAgIHRoaW5ncy4gIFRoZSBob3BlIGlzIHRoYXQg aXQgZml4ZXMgbW9yZSB0aGFuIGl0IGJyZWFrcy4gICovCi0rCi0rZXh0ZXJuIENPUkVfQUREUiBm b3J0cmFuX2FkanVzdF9keW5hbWljX2FycmF5X2Jhc2VfYWRkcmVzc19oYWNrCi0rCShzdHJ1Y3Qg dHlwZSAqdHlwZSwgQ09SRV9BRERSIGFkZHJlc3MpOwotKwotICNlbmRpZiAvKiBGX0xBTkdfSCAq LwotZGlmZiAtLWdpdCBhL2dkYi9mLXZhbHByaW50LmMgYi9nZGIvZi12YWxwcmludC5jCi0tLS0g YS9nZGIvZi12YWxwcmludC5jCi0rKysgYi9nZGIvZi12YWxwcmludC5jCi1AQCAtMzUsNiArMzUs NyBAQAotICNpbmNsdWRlICJkaWN0aW9uYXJ5LmgiCi0gI2luY2x1ZGUgImNsaS9jbGktc3R5bGUu aCIKLSAjaW5jbHVkZSAiZ2RiYXJjaC5oIgotKyNpbmNsdWRlICJmLWFycmF5LXdhbGtlci5oIgot IAotIHN0YXRpYyB2b2lkIGY3N19nZXRfZHluYW1pY19sZW5ndGhfb2ZfYWdncmVnYXRlIChzdHJ1 Y3QgdHlwZSAqKTsKLSAKLUBAIC0xMDAsMTAwICsxMDEsMTAzIEBAIGY3N19nZXRfZHluYW1pY19s ZW5ndGhfb2ZfYWdncmVnYXRlIChzdHJ1Y3QgdHlwZSAqdHlwZSkKLSAgICAgKiBUWVBFX0xFTkdU SCAoY2hlY2tfdHlwZWRlZiAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpKTsKLSB9Ci0gCi0tLyog QWN0dWFsIGZ1bmN0aW9uIHdoaWNoIHByaW50cyBvdXQgRjc3IGFycmF5cywgVmFsYWRkciA9PSBh ZGRyZXNzIGluIAotLSAgIHRoZSBzdXBlcmlvci4gIEFkZHJlc3MgPT0gdGhlIGFkZHJlc3MgaW4g dGhlIGluZmVyaW9yLiAgKi8KLSsvKiBBIGNsYXNzIHVzZWQgYnkgRk9SVFJBTl9QUklOVF9BUlJB WSBhcyBhIHNwZWNpYWxpc2F0aW9uIG9mIHRoZSBhcnJheQotKyAgIHdhbGtpbmcgdGVtcGxhdGUu ICBUaGlzIHNwZWNpYWxpc2F0aW9uIHByaW50cyBGb3J0cmFuIGFycmF5cy4gICovCi0gCi0tc3Rh dGljIHZvaWQKLS1mNzdfcHJpbnRfYXJyYXlfMSAoaW50IG5zcywgaW50IG5kaW1lbnNpb25zLCBz dHJ1Y3QgdHlwZSAqdHlwZSwKLS0JCSAgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAotLQkJICAg aW50IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCi0tCQkgICBzdHJ1Y3QgdWlf ZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKLS0JCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFs LAotLQkJICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi0tCQkg ICBpbnQgKmVsdHMpCi0rY2xhc3MgZm9ydHJhbl9hcnJheV9wcmludGVyX2ltcGwgOiBwdWJsaWMg Zm9ydHJhbl9hcnJheV93YWxrZXJfYmFzZV9pbXBsCi0gewotLSAgc3RydWN0IHR5cGUgKnJhbmdl X3R5cGUgPSBjaGVja190eXBlZGVmICh0eXBlKS0+aW5kZXhfdHlwZSAoKTsKLS0gIENPUkVfQURE UiBhZGRyID0gYWRkcmVzcyArIGVtYmVkZGVkX29mZnNldDsKLS0gIExPTkdFU1QgbG93ZXJib3Vu ZCwgdXBwZXJib3VuZDsKLS0gIExPTkdFU1QgaTsKLS0KLS0gIGdldF9kaXNjcmV0ZV9ib3VuZHMg KHJhbmdlX3R5cGUsICZsb3dlcmJvdW5kLCAmdXBwZXJib3VuZCk7Ci0tCi0tICBpZiAobnNzICE9 IG5kaW1lbnNpb25zKQotLSAgICB7Ci0tICAgICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBn ZXRfdHlwZV9hcmNoICh0eXBlKTsKLS0gICAgICBzaXplX3QgZGltX3NpemUgPSB0eXBlX2xlbmd0 aF91bml0cyAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpOwotLSAgICAgIGludCB1bml0X3NpemUg PSBnZGJhcmNoX2FkZHJlc3NhYmxlX21lbW9yeV91bml0X3NpemUgKGdkYmFyY2gpOwotLSAgICAg IHNpemVfdCBieXRlX3N0cmlkZSA9IHR5cGUtPmJpdF9zdHJpZGUgKCkgLyAodW5pdF9zaXplICog OCk7Ci0tICAgICAgaWYgKGJ5dGVfc3RyaWRlID09IDApCi0tCWJ5dGVfc3RyaWRlID0gZGltX3Np emU7Ci0tICAgICAgc2l6ZV90IG9mZnMgPSAwOwotLQotLSAgICAgIGZvciAoaSA9IGxvd2VyYm91 bmQ7Ci0tCSAgIChpIDwgdXBwZXJib3VuZCArIDEgJiYgKCplbHRzKSA8IG9wdGlvbnMtPnByaW50 X21heCk7Ci0tCSAgIGkrKykKLS0JewotLQkgIHN0cnVjdCB2YWx1ZSAqc3ViYXJyYXkgPSB2YWx1 ZV9mcm9tX2NvbnRlbnRzX2FuZF9hZGRyZXNzCi0tCSAgICAoVFlQRV9UQVJHRVRfVFlQRSAodHlw ZSksIHZhbHVlX2NvbnRlbnRzX2Zvcl9wcmludGluZ19jb25zdCAodmFsKQotLQkgICAgICsgb2Zm cywgYWRkciArIG9mZnMpOwotLQotLQkgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIigiKTsK LS0JICBmNzdfcHJpbnRfYXJyYXlfMSAobnNzICsgMSwgbmRpbWVuc2lvbnMsIHZhbHVlX3R5cGUg KHN1YmFycmF5KSwKLS0JCQkgICAgIHZhbHVlX2NvbnRlbnRzX2Zvcl9wcmludGluZyAoc3ViYXJy YXkpLAotLQkJCSAgICAgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0IChzdWJhcnJheSksCi0tCQkJICAg ICB2YWx1ZV9hZGRyZXNzIChzdWJhcnJheSksCi0tCQkJICAgICBzdHJlYW0sIHJlY3Vyc2UsIHN1 YmFycmF5LCBvcHRpb25zLCBlbHRzKTsKLS0JICBvZmZzICs9IGJ5dGVfc3RyaWRlOwotLQkgIGZw cmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIikiKTsKLS0KLS0JICBpZiAoaSA8IHVwcGVyYm91bmQp Ci0tCSAgICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIgIik7Ci0tCX0KLS0gICAgICBpZiAo KmVsdHMgPj0gb3B0aW9ucy0+cHJpbnRfbWF4ICYmIGkgPCB1cHBlcmJvdW5kKQotLQlmcHJpbnRm X2ZpbHRlcmVkIChzdHJlYW0sICIuLi4iKTsKLS0gICAgfQotLSAgZWxzZQotLSAgICB7Ci0tICAg ICAgZm9yIChpID0gbG93ZXJib3VuZDsgaSA8IHVwcGVyYm91bmQgKyAxICYmICgqZWx0cykgPCBv cHRpb25zLT5wcmludF9tYXg7Ci0tCSAgIGkrKywgKCplbHRzKSsrKQotLQl7Ci0tCSAgc3RydWN0 IHZhbHVlICplbHQgPSB2YWx1ZV9zdWJzY3JpcHQgKChzdHJ1Y3QgdmFsdWUgKil2YWwsIGkpOwot LQotLQkgIGNvbW1vbl92YWxfcHJpbnQgKGVsdCwgc3RyZWFtLCByZWN1cnNlLCBvcHRpb25zLCBj dXJyZW50X2xhbmd1YWdlKTsKLS0KLS0JICBpZiAoaSAhPSB1cHBlcmJvdW5kKQotLQkgICAgZnBy aW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiLCAiKTsKLS0KLS0JICBpZiAoKCplbHRzID09IG9wdGlv bnMtPnByaW50X21heCAtIDEpCi0tCSAgICAgICYmIChpICE9IHVwcGVyYm91bmQpKQotLQkgICAg ZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiLi4uIik7Ci0tCX0KLS0gICAgfQotLX0KLStwdWJs aWM6Ci0rICAvKiBDb25zdHJ1Y3Rvci4gIFRZUEUgaXMgdGhlIGFycmF5IHR5cGUgYmVpbmcgcHJp bnRlZCwgQUREUkVTUyBpcyB0aGUKLSsgICAgIGFkZHJlc3MgaW4gdGFyZ2V0IG1lbW9yeSBmb3Ig dGhlIG9iamVjdCBvZiBUWVBFIGJlaW5nIHByaW50ZWQuICBWQUwgaXMKLSsgICAgIHRoZSBHREIg dmFsdWUgKG9mIFRZUEUpIGJlaW5nIHByaW50ZWQuICBTVFJFQU0gaXMgd2hlcmUgdG8gcHJpbnQg dG8sCi0rICAgICBSRUNPVVJTRSBpcyBwYXNzZWQgdGhyb3VnaCAoYW5kIHByZXZlbnRzIGluZmlu aXRlIHJlY3Vyc2lvbiksIGFuZAotKyAgICAgT1BUSU9OUyBhcmUgdGhlIHByaW50aW5nIGNvbnRy b2wgb3B0aW9ucy4gICovCi0rICBleHBsaWNpdCBmb3J0cmFuX2FycmF5X3ByaW50ZXJfaW1wbCAo c3RydWN0IHR5cGUgKnR5cGUsCi0rCQkJCSAgICAgICBDT1JFX0FERFIgYWRkcmVzcywKLSsJCQkJ ICAgICAgIHN0cnVjdCB2YWx1ZSAqdmFsLAotKwkJCQkgICAgICAgc3RydWN0IHVpX2ZpbGUgKnN0 cmVhbSwKLSsJCQkJICAgICAgIGludCByZWN1cnNlLAotKwkJCQkgICAgICAgY29uc3Qgc3RydWN0 IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCi0rICAgIDogbV9lbHRzICgwKSwKLSsgICAg ICBtX3ZhbCAodmFsKSwKLSsgICAgICBtX3N0cmVhbSAoc3RyZWFtKSwKLSsgICAgICBtX3JlY3Vy c2UgKHJlY3Vyc2UpLAotKyAgICAgIG1fb3B0aW9ucyAob3B0aW9ucykKLSsgIHsgLyogTm90aGlu Zy4gICovIH0KLSsKLSsgIC8qIENhbGxlZCB3aGlsZSBpdGVyYXRpbmcgb3ZlciB0aGUgYXJyYXkg Ym91bmRzLiAgV2hlbiBTSE9VTERfQ09OVElOVUUgaXMKLSsgICAgIGZhbHNlIHRoZW4gd2UgbXVz dCByZXR1cm4gZmFsc2UsIGFzIHdlIGhhdmUgcmVhY2hlZCB0aGUgZW5kIG9mIHRoZQotKyAgICAg YXJyYXkgYm91bmRzIGZvciB0aGlzIGRpbWVuc2lvbi4gIEhvd2V2ZXIsIHdlIGFsc28gcmV0dXJu IGZhbHNlIGlmIHdlCi0rICAgICBoYXZlIHByaW50ZWQgdG9vIG1hbnkgZWxlbWVudHMgKGFmdGVy IHByaW50aW5nICcuLi4nKS4gIEluIGFsbCBvdGhlcgotKyAgICAgY2FzZXMsIHJldHVybiB0cnVl LiAgKi8KLSsgIGJvb2wgY29udGludWVfd2Fsa2luZyAoYm9vbCBzaG91bGRfY29udGludWUpCi0r ICB7Ci0rICAgIGJvb2wgY29udCA9IHNob3VsZF9jb250aW51ZSAmJiAobV9lbHRzIDwgbV9vcHRp b25zLT5wcmludF9tYXgpOwotKyAgICBpZiAoIWNvbnQgJiYgc2hvdWxkX2NvbnRpbnVlKQotKyAg ICAgIGZwdXRzX2ZpbHRlcmVkICgiLi4uIiwgbV9zdHJlYW0pOwotKyAgICByZXR1cm4gY29udDsK LSsgIH0KLSsKLSsgIC8qIENhbGxlZCB3aGVuIHdlIHN0YXJ0IGl0ZXJhdGluZyBvdmVyIGEgZGlt ZW5zaW9uLiAgSWYgaXQncyBub3QgdGhlCi0rICAgICBpbm5lciBtb3N0IGRpbWVuc2lvbiB0aGVu IHByaW50IGFuIG9wZW5pbmcgJygnIGNoYXJhY3Rlci4gICovCi0rICB2b2lkIHN0YXJ0X2RpbWVu c2lvbiAoYm9vbCBpbm5lcl9wKQotKyAgewotKyAgICBmcHV0c19maWx0ZXJlZCAoIigiLCBtX3N0 cmVhbSk7Ci0rICB9Ci0rCi0rICAvKiBDYWxsZWQgd2hlbiB3ZSBmaW5pc2ggcHJvY2Vzc2luZyBh IGJhdGNoIG9mIGl0ZW1zIHdpdGhpbiBhIGRpbWVuc2lvbgotKyAgICAgb2YgdGhlIGFycmF5LiAg RGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhpcyBpcyB0aGUgaW5uZXIgbW9zdCBkaW1lbnNpb24KLSsg ICAgIG9yIG5vdCB3ZSBwcmludCBkaWZmZXJlbnQgdGhpbmdzLCBidXQgdGhpcyBpcyBhbGwgYWJv dXQgYWRkaW5nCi0rICAgICBzZXBhcmF0b3JzIGJldHdlZW4gZWxlbWVudHMsIGFuZCBkaW1lbnNp b25zIG9mIHRoZSBhcnJheS4gICovCi0rICB2b2lkIGZpbmlzaF9kaW1lbnNpb24gKGJvb2wgaW5u ZXJfcCwgYm9vbCBsYXN0X3ApCi0rICB7Ci0rICAgIGZwdXRzX2ZpbHRlcmVkICgiKSIsIG1fc3Ry ZWFtKTsKLSsgICAgaWYgKCFsYXN0X3ApCi0rICAgICAgZnB1dHNfZmlsdGVyZWQgKCIgIiwgbV9z dHJlYW0pOwotKyAgfQotKwotKyAgLyogQ2FsbGVkIHRvIHByb2Nlc3MgYW4gZWxlbWVudCBvZiBF TFRfVFlQRSBhdCBvZmZzZXQgRUxUX09GRiBmcm9tIHRoZQotKyAgICAgc3RhcnQgb2YgdGhlIHBh cmVudCBvYmplY3QuICAqLwotKyAgdm9pZCBwcm9jZXNzX2VsZW1lbnQgKHN0cnVjdCB0eXBlICpl bHRfdHlwZSwgTE9OR0VTVCBlbHRfb2ZmLCBib29sIGxhc3RfcCkKLSsgIHsKLSsgICAgLyogRXh0 cmFjdCB0aGUgZWxlbWVudCB2YWx1ZSBmcm9tIHRoZSBwYXJlbnQgdmFsdWUuICAqLwotKyAgICBz dHJ1Y3QgdmFsdWUgKmVfdmFsCi0rICAgICAgPSB2YWx1ZV9mcm9tX2NvbXBvbmVudCAobV92YWws IGVsdF90eXBlLCBlbHRfb2ZmKTsKLSsgICAgY29tbW9uX3ZhbF9wcmludCAoZV92YWwsIG1fc3Ry ZWFtLCBtX3JlY3Vyc2UsIG1fb3B0aW9ucywgY3VycmVudF9sYW5ndWFnZSk7Ci0rICAgIGlmICgh bGFzdF9wKQotKyAgICAgIGZwdXRzX2ZpbHRlcmVkICgiLCAiLCBtX3N0cmVhbSk7Ci0rICAgICsr bV9lbHRzOwotKyAgfQotKwotK3ByaXZhdGU6Ci0rICAvKiBUaGUgbnVtYmVyIG9mIGVsZW1lbnRz IHByaW50ZWQgc28gZmFyLiAgKi8KLSsgIGludCBtX2VsdHM7Ci0rCi0rICAvKiBUaGUgdmFsdWUg ZnJvbSB3aGljaCB3ZSBhcmUgcHJpbnRpbmcgZWxlbWVudHMuICAqLwotKyAgc3RydWN0IHZhbHVl ICptX3ZhbDsKLSsKLSsgIC8qIFRoZSBzdHJlYW0gd2Ugc2hvdWxkIHByaW50IHRvby4gICovCi0r ICBzdHJ1Y3QgdWlfZmlsZSAqbV9zdHJlYW07Ci0rCi0rICAvKiBUaGUgcmVjdXJzaW9uIGNvdW50 ZXIsIHBhc3NlZCB0aHJvdWdoIHdoZW4gd2UgcHJpbnQgZWFjaCBlbGVtZW50LiAgKi8KLSsgIGlu dCBtX3JlY3Vyc2U7Ci0rCi0rICAvKiBUaGUgcHJpbnQgY29udHJvbCBvcHRpb25zLiAgR2l2ZXMg dXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGVsZW1lbnRzIHRvCi0rICAgICBwcmludCwgYW5kIGlz IHBhc3NlZCB0aHJvdWdoIHRvIGVhY2ggZWxlbWVudCB0aGF0IHdlIHByaW50LiAgKi8KLSsgIGNv bnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICptX29wdGlvbnMgPSBudWxscHRyOwotK307 Ci0gCi0tLyogVGhpcyBmdW5jdGlvbiBnZXRzIGNhbGxlZCB0byBwcmludCBhbiBGNzcgYXJyYXks IHdlIHNldCB1cCBzb21lIAotLSAgIHN0dWZmIGFuZCB0aGVuIGltbWVkaWF0ZWx5IGNhbGwgZjc3 X3ByaW50X2FycmF5XzEoKS4gICovCi0rLyogVGhpcyBmdW5jdGlvbiBnZXRzIGNhbGxlZCB0byBw cmludCBhIEZvcnRyYW4gYXJyYXkuICAqLwotIAotIHN0YXRpYyB2b2lkCi0tZjc3X3ByaW50X2Fy cmF5IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCi0tCQkgaW50 IGVtYmVkZGVkX29mZnNldCwKLS0JCSBDT1JFX0FERFIgYWRkcmVzcywgc3RydWN0IHVpX2ZpbGUg KnN0cmVhbSwKLS0JCSBpbnQgcmVjdXJzZSwKLS0JCSBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwK LS0JCSBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKLStmb3J0cmFu X3ByaW50X2FycmF5IChzdHJ1Y3QgdHlwZSAqdHlwZSwgQ09SRV9BRERSIGFkZHJlc3MsCi0rCQkg ICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAotKwkJICAgICBjb25zdCBz dHJ1Y3QgdmFsdWUgKnZhbCwKLSsJCSAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlv bnMgKm9wdGlvbnMpCi0gewotLSAgaW50IG5kaW1lbnNpb25zOwotLSAgaW50IGVsdHMgPSAwOwot LQotLSAgbmRpbWVuc2lvbnMgPSBjYWxjX2Y3N19hcnJheV9kaW1zICh0eXBlKTsKLS0KLS0gIGlm IChuZGltZW5zaW9ucyA+IE1BWF9GT1JUUkFOX0RJTVMgfHwgbmRpbWVuc2lvbnMgPCAwKQotLSAg ICBlcnJvciAoXygiXAotLVR5cGUgbm9kZSBjb3JydXB0ISBGNzcgYXJyYXlzIGNhbm5vdCBoYXZl ICVkIHN1YnNjcmlwdHMgKCVkIE1heCkiKSwKLS0JICAgbmRpbWVuc2lvbnMsIE1BWF9GT1JUUkFO X0RJTVMpOwotLQotLSAgZjc3X3ByaW50X2FycmF5XzEgKDEsIG5kaW1lbnNpb25zLCB0eXBlLCB2 YWxhZGRyLCBlbWJlZGRlZF9vZmZzZXQsCi0tCQkgICAgIGFkZHJlc3MsIHN0cmVhbSwgcmVjdXJz ZSwgdmFsLCBvcHRpb25zLCAmZWx0cyk7Ci0rICBmb3J0cmFuX2FycmF5X3dhbGtlcjxmb3J0cmFu X2FycmF5X3ByaW50ZXJfaW1wbD4gcAotKyAgICAodHlwZSwgYWRkcmVzcywgKHN0cnVjdCB2YWx1 ZSAqKSB2YWwsIHN0cmVhbSwgcmVjdXJzZSwgb3B0aW9ucyk7Ci0rICBwLndhbGsgKCk7Ci0gfQot IAwKLSAKLUBAIC0yMzYsMTIgKzI0MCw3IEBAIGZfdmFsdWVfcHJpbnRfaW5uZXIgKHN0cnVjdCB2 YWx1ZSAqdmFsLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKLSAKLSAgICAg Y2FzZSBUWVBFX0NPREVfQVJSQVk6Ci0gICAgICAgaWYgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUp LT5jb2RlICgpICE9IFRZUEVfQ09ERV9DSEFSKQotLQl7Ci0tCSAgZnByaW50Zl9maWx0ZXJlZCAo c3RyZWFtLCAiKCIpOwotLQkgIGY3N19wcmludF9hcnJheSAodHlwZSwgdmFsYWRkciwgMCwKLS0J CQkgICBhZGRyZXNzLCBzdHJlYW0sIHJlY3Vyc2UsIHZhbCwgb3B0aW9ucyk7Ci0tCSAgZnByaW50 Zl9maWx0ZXJlZCAoc3RyZWFtLCAiKSIpOwotLQl9Ci0rCWZvcnRyYW5fcHJpbnRfYXJyYXkgKHR5 cGUsIGFkZHJlc3MsIHN0cmVhbSwgcmVjdXJzZSwgdmFsLCBvcHRpb25zKTsKLSAgICAgICBlbHNl Ci0gCXsKLSAJICBzdHJ1Y3QgdHlwZSAqY2hfdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUp OwotZGlmZiAtLWdpdCBhL2dkYi9nZGJ0eXBlcy5jIGIvZ2RiL2dkYnR5cGVzLmMKLS0tLSBhL2dk Yi9nZGJ0eXBlcy5jCi0rKysgYi9nZGIvZ2RidHlwZXMuYwotQEAgLTM5LDYgKzM5LDcgQEAKLSAj aW5jbHVkZSAiZHdhcmYyL2xvYy5oIgotICNpbmNsdWRlICJnZGJjb3JlLmgiCi0gI2luY2x1ZGUg ImZsb2F0Zm9ybWF0LmgiCi0rI2luY2x1ZGUgImYtbGFuZy5oIgotICNpbmNsdWRlIDxhbGdvcml0 aG0+Ci0gCi0gLyogSW5pdGlhbGl6ZSBCQURORVNTIGNvbnN0YW50cy4gICovCi1AQCAtMjY5NSw3 ICsyNjk2LDE2IEBAIHJlc29sdmVfZHluYW1pY190eXBlX2ludGVybmFsIChzdHJ1Y3QgdHlwZSAq dHlwZSwKLSAgIHByb3AgPSBUWVBFX0RBVEFfTE9DQVRJT04gKHJlc29sdmVkX3R5cGUpOwotICAg aWYgKHByb3AgIT0gTlVMTAotICAgICAgICYmIGR3YXJmMl9ldmFsdWF0ZV9wcm9wZXJ0eSAocHJv cCwgTlVMTCwgYWRkcl9zdGFjaywgJnZhbHVlKSkKLS0gICAgcHJvcC0+c2V0X2NvbnN0X3ZhbCAo dmFsdWUpOwotKyAgICB7Ci0rICAgICAgLyogU3RhcnQgb2YgRm9ydHJhbiBoYWNrLiAgU2VlIGNv bW1lbnQgaW4gZi1sYW5nLmggZm9yIHdoYXQgaXMgZ29pbmcKLSsJIG9uIGhlcmUuKi8KLSsgICAg ICBpZiAoY3VycmVudF9sYW5ndWFnZS0+bGFfbGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfZm9ydHJhbgot KwkgICYmIHJlc29sdmVkX3R5cGUtPmNvZGUgKCkgPT0gVFlQRV9DT0RFX0FSUkFZKQotKwl2YWx1 ZSA9IGZvcnRyYW5fYWRqdXN0X2R5bmFtaWNfYXJyYXlfYmFzZV9hZGRyZXNzX2hhY2sgKHJlc29s dmVkX3R5cGUsCi0rCQkJCQkJCQl2YWx1ZSk7Ci0rICAgICAgLyogRW5kIG9mIEZvcnRyYW4gaGFj ay4gICovCi0rICAgICAgcHJvcC0+c2V0X2NvbnN0X3ZhbCAodmFsdWUpOwotKyAgICB9Ci0gCi0g ICByZXR1cm4gcmVzb2x2ZWRfdHlwZTsKLSB9Ci1AQCAtMzYwMCw5ICszNjEwLDExIEBAIGlzX3Nj YWxhcl90eXBlX3JlY3Vyc2l2ZSAoc3RydWN0IHR5cGUgKnQpCi0gICAgICAgTE9OR0VTVCBsb3df Ym91bmQsIGhpZ2hfYm91bmQ7Ci0gICAgICAgc3RydWN0IHR5cGUgKmVsdF90eXBlID0gY2hlY2tf dHlwZWRlZiAoVFlQRV9UQVJHRVRfVFlQRSAodCkpOwotIAotLSAgICAgIGdldF9kaXNjcmV0ZV9i b3VuZHMgKHQtPmluZGV4X3R5cGUgKCksICZsb3dfYm91bmQsICZoaWdoX2JvdW5kKTsKLS0KLS0g ICAgICByZXR1cm4gaGlnaF9ib3VuZCA9PSBsb3dfYm91bmQgJiYgaXNfc2NhbGFyX3R5cGVfcmVj dXJzaXZlIChlbHRfdHlwZSk7Ci0rICAgICAgaWYgKGdldF9kaXNjcmV0ZV9ib3VuZHMgKHQtPmlu ZGV4X3R5cGUgKCksICZsb3dfYm91bmQsICZoaWdoX2JvdW5kKSkKLSsJcmV0dXJuIChoaWdoX2Jv dW5kID09IGxvd19ib3VuZAotKwkgICAgICAgICYmIGlzX3NjYWxhcl90eXBlX3JlY3Vyc2l2ZSAo ZWx0X3R5cGUpKTsKLSsgICAgICBlbHNlCi0rCXJldHVybiAwOwotICAgICB9Ci0gICAvKiBBcmUg d2UgZGVhbGluZyB3aXRoIGEgc3RydWN0IHdpdGggb25lIGVsZW1lbnQ/ICAqLwotICAgZWxzZSBp ZiAodC0+Y29kZSAoKSA9PSBUWVBFX0NPREVfU1RSVUNUICYmIHQtPm51bV9maWVsZHMgKCkgPT0g MSkKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2FycmF5LXNsaWNlcy1i YWQuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9hcnJheS1zbGljZXMtYmFkLmV4cAot bmV3IGZpbGUgbW9kZSAxMDA2NDQKLS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vYXJyYXktc2xpY2VzLWJhZC5leHAKLUBAIC0wLDAgKzEsNjkgQEAKLSsjIENv cHlyaWdodCAyMDIwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyMgVGhpcyBw cm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkKLSsjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyMgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KLSsjCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rIyBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlCi0rIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3 LmdudS5vcmcvbGljZW5zZXMvPiAuCi0rCi0rIyBUZXN0IGludmFsaWQgZWxlbWVudCBhbmQgc2xp Y2UgYXJyYXkgYWNjZXNzZXMuCi0rCi0raWYge1tza2lwX2ZvcnRyYW5fdGVzdHNdfSB7IHJldHVy biAtMSB9Ci0rCi0rc3RhbmRhcmRfdGVzdGZpbGUgIi5mOTAiCi0rbG9hZF9saWIgZm9ydHJhbi5l eHAKLSsKLStpZiB7W3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZp bGV9ICR7c3JjZmlsZX0gXAotKwkge2RlYnVnIGY5MH1dfSB7Ci0rICAgIHJldHVybiAtMQotK30K LSsKLStpZiAhW2ZvcnRyYW5fcnVudG9fbWFpbl0gewotKyAgICB1bnRlc3RlZCAiY291bGQgbm90 IHJ1biB0byBtYWluIgotKyAgICByZXR1cm4gLTEKLSt9Ci0rCi0rIyBnZGJfYnJlYWtwb2ludCBb Z2RiX2dldF9saW5lX251bWJlciAiRGlzcGxheSBNZXNzYWdlIEJyZWFrcG9pbnQiXQotK2dkYl9i cmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJGaXJzdCBCcmVha3BvaW50Il0KLStnZGJf YnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiU2Vjb25kIEJyZWFrcG9pbnQiXQotK2dk Yl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJGaW5hbCBCcmVha3BvaW50Il0KLSsK LStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiRmlyc3QgQnJlYWtwb2ludCIKLSsKLSsjIEFj Y2VzcyBub3QgeWV0IGFsbG9jYXRlZCBhcnJheS4KLStnZGJfdGVzdCAicHJpbnQgb3RoZXIiICIg PSA8bm90IGFsbG9jYXRlZD4iCi0rZ2RiX3Rlc3QgInByaW50IG90aGVyKDA6NCwyOjMpIiAiYXJy YXkgbm90IGFsbG9jYXRlZCIKLStnZGJfdGVzdCAicHJpbnQgb3RoZXIoMSwxKSIgIm5vIHN1Y2gg dmVjdG9yIGVsZW1lbnQgXFwodmVjdG9yIG5vdCBhbGxvY2F0ZWRcXCkiCi0rCi0rIyBBY2Nlc3Mg bm90IHlldCBhc3NvY2lhdGVkIHBvaW50ZXIuCi0rZ2RiX3Rlc3QgInByaW50IHBvaW50ZXIyZCIg IiA9IDxub3QgYXNzb2NpYXRlZD4iCi0rZ2RiX3Rlc3QgInByaW50IHBvaW50ZXIyZCgxOjIsMToy KSIgImFycmF5IG5vdCBhc3NvY2lhdGVkIgotK2dkYl90ZXN0ICJwcmludCBwb2ludGVyMmQoMSwx KSIgIm5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQgXFwodmVjdG9yIG5vdCBhc3NvY2lhdGVkXFwpIgot KwotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJTZWNvbmQgQnJlYWtwb2ludCIKLSsKLSsj IEFjY2Vzc2luZyBqdXN0IG91dHNpZGUgdGhlIGFycmF5cy4KLStmb3JlYWNoIG5hbWUge2FycmF5 IHBvaW50ZXIyZCBvdGhlcn0gewotKyAgICBnZGJfdGVzdCAicHJpbnQgJG5hbWUgKDA6LDopIiAi YXJyYXkgc3Vic2NyaXB0IG91dCBvZiBib3VuZHMiCi0rICAgIGdkYl90ZXN0ICJwcmludCAkbmFt ZSAoOjExLDopIiAiYXJyYXkgc3Vic2NyaXB0IG91dCBvZiBib3VuZHMiCi0rICAgIGdkYl90ZXN0 ICJwcmludCAkbmFtZSAoOiwwOikiICJhcnJheSBzdWJzY3JpcHQgb3V0IG9mIGJvdW5kcyIKLSsg ICAgZ2RiX3Rlc3QgInByaW50ICRuYW1lICg6LDoxMSkiICJhcnJheSBzdWJzY3JpcHQgb3V0IG9m IGJvdW5kcyIKLSsKLSsgICAgZ2RiX3Rlc3QgInByaW50ICRuYW1lICgwLDopIiAibm8gc3VjaCB2 ZWN0b3IgZWxlbWVudCIKLSsgICAgZ2RiX3Rlc3QgInByaW50ICRuYW1lICgxMSw6KSIgIm5vIHN1 Y2ggdmVjdG9yIGVsZW1lbnQiCi0rICAgIGdkYl90ZXN0ICJwcmludCAkbmFtZSAoOiwwKSIgIm5v IHN1Y2ggdmVjdG9yIGVsZW1lbnQiCi0rICAgIGdkYl90ZXN0ICJwcmludCAkbmFtZSAoOiwxMSki ICJubyBzdWNoIHZlY3RvciBlbGVtZW50IgotK30KLSsKLSsjIFN0cmlkZSBpbiB0aGUgd3Jvbmcg ZGlyZWN0aW9uLgotK2dkYl90ZXN0ICJwcmludCBhcnJheSAoMToxMDotMSw6KSIgImluY29ycmVj dCBzdHJpZGUgYW5kIGJvdW5kYXJ5IGNvbWJpbmF0aW9uIgotK2dkYl90ZXN0ICJwcmludCBhcnJh eSAoOiwxOjEwOi0xKSIgImluY29ycmVjdCBzdHJpZGUgYW5kIGJvdW5kYXJ5IGNvbWJpbmF0aW9u IgotK2dkYl90ZXN0ICJwcmludCBhcnJheSAoMTA6MToxLDopIiAiaW5jb3JyZWN0IHN0cmlkZSBh bmQgYm91bmRhcnkgY29tYmluYXRpb24iCi0rZ2RiX3Rlc3QgInByaW50IGFycmF5ICg6LDEwOjE6 MSkiICJpbmNvcnJlY3Qgc3RyaWRlIGFuZCBib3VuZGFyeSBjb21iaW5hdGlvbiIKLWRpZmYgLS1n aXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2FycmF5LXNsaWNlcy1iYWQuZjkwIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9hcnJheS1zbGljZXMtYmFkLmY5MAotbmV3IGZpbGUgbW9k ZSAxMDA2NDQKLS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v YXJyYXktc2xpY2VzLWJhZC5mOTAKLUBAIC0wLDAgKzEsNDIgQEAKLSshIENvcHlyaWdodCAyMDIw IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyEKLSshIFRoaXMgcHJvZ3JhbSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rISBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieQotKyEgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNp b24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSshIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl cnNpb24uCi0rIQotKyEgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rISBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyEgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyEgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSshCi0rISBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyEgYWxv bmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uCi0rCi0rIQotKyEgU3RhcnQgb2YgdGVzdCBwcm9ncmFtLgotKyEKLStwcm9ncmFt IHRlc3QKLSsKLSsgICEgRGVjbGFyZSB2YXJpYWJsZXMgdXNlZCBpbiB0aGlzIHRlc3QuCi0rICBp bnRlZ2VyLCBkaW1lbnNpb24gKDE6MTAsMToxMCkgOjogYXJyYXkKLSsgIGludGVnZXIsIGFsbG9j YXRhYmxlIDo6IG90aGVyICg6LCA6KQotKyAgaW50ZWdlciwgZGltZW5zaW9uKDosOiksIHBvaW50 ZXIgOjogcG9pbnRlcjJkID0+IG51bGwoKQotKyAgaW50ZWdlciwgZGltZW5zaW9uKDE6MTAsMTox MCksIHRhcmdldCA6OiB0YXJyYXkKLSsKLSsgIHByaW50ICosICIiICEgRmlyc3QgQnJlYWtwb2lu dC4KLSsKLSsgICEgQWxsb2NhdGUgb3IgYXNzb2NpYXRlIGFueSB2YXJpYWJsZXMgYXMgbmVlZGVk LgotKyAgYWxsb2NhdGUgKG90aGVyICgxOjEwLCAxOjEwKSkKLSsgIHBvaW50ZXIyZCA9PiB0YXJy YXkKLSsgIGFycmF5ID0gMAotKwotKyAgcHJpbnQgKiwgIiIgISBTZWNvbmQgQnJlYWtwb2ludC4K LSsKLSsgICEgQWxsIGRvbmUuICBEZWFsbG9jYXRlLgotKyAgZGVhbGxvY2F0ZSAob3RoZXIpCi0r Ci0rICAhIEdEQiBjYXRjaGVzIHRoaXMgZmluYWwgYnJlYWtwb2ludCB0byBpbmRpY2F0ZSB0aGUg ZW5kIG9mIHRoZSB0ZXN0LgotKyAgcHJpbnQgKiwgIiIgISBGaW5hbCBCcmVha3BvaW50LgotKwot K2VuZCBwcm9ncmFtIHRlc3QKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L2FycmF5LXNsaWNlcy1zdWItc2xpY2VzLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v YXJyYXktc2xpY2VzLXN1Yi1zbGljZXMuZXhwCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotLS0tIC9k ZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9hcnJheS1zbGljZXMtc3Vi LXNsaWNlcy5leHAKLUBAIC0wLDAgKzEsMTExIEBACi0rIyBDb3B5cmlnaHQgMjAyMCBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0 aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0r IwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyMgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0 aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4g LgotKwotKyMgQ3JlYXRlIGEgc2xpY2Ugb2YgYW4gYXJyYXksIHRoZW4gdGFrZSBhIHNsaWNlIG9m IHRoYXQgc2xpY2UuCi0rCi0raWYge1tza2lwX2ZvcnRyYW5fdGVzdHNdfSB7IHJldHVybiAtMSB9 Ci0rCi0rc3RhbmRhcmRfdGVzdGZpbGUgIi5mOTAiCi0rbG9hZF9saWIgZm9ydHJhbi5leHAKLSsK LStpZiB7W3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZpbGV9ICR7 c3JjZmlsZX0gXAotKwkge2RlYnVnIGY5MH1dfSB7Ci0rICAgIHJldHVybiAtMQotK30KLSsKLStp ZiAhW2ZvcnRyYW5fcnVudG9fbWFpbl0gewotKyAgICB1bnRlc3RlZCAiY291bGQgbm90IHJ1biB0 byBtYWluIgotKyAgICByZXR1cm4gLTEKLSt9Ci0rCi0rIyBnZGJfYnJlYWtwb2ludCBbZ2RiX2dl dF9saW5lX251bWJlciAiRGlzcGxheSBNZXNzYWdlIEJyZWFrcG9pbnQiXQotK2dkYl9icmVha3Bv aW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJTdG9wIEhlcmUiXQotK2dkYl9icmVha3BvaW50IFtn ZGJfZ2V0X2xpbmVfbnVtYmVyICJGaW5hbCBCcmVha3BvaW50Il0KLSsKLSsjIFdlJ3JlIGdvaW5n IHRvIHByaW50IHNvbWUgcmVhc29uYWJseSBsYXJnZSBhcnJheXMuCi0rZ2RiX3Rlc3Rfbm9fb3V0 cHV0ICJzZXQgcHJpbnQgZWxlbWVudHMgdW5saW1pdGVkIgotKwotK2dkYl9jb250aW51ZV90b19i cmVha3BvaW50ICJTdG9wIEhlcmUiCi0rCi0rIyBQcmludCBhIHNsaWNlLCBjYXB0dXJlIHRoZSBj b252ZW5pZW5jZSB2YXJpYWJsZSBuYW1lIGNyZWF0ZWQuCi0rc2V0IGNtZCAicHJpbnQgYXJyYXkg KDE6MTA6MiwgMToxMDoyKSIKLStnZGJfdGVzdF9tdWx0aXBsZSAkY21kICRjbWQgewotKyAgICAt cmUgIlxyXG5cXFwkKFxcZCspID0gLipcclxuJGdkYl9wcm9tcHQgJCIgewotKwlzZXQgdmFybmFt ZSAiXCQkZXhwZWN0X291dCgxLHN0cmluZykiCi0rICAgIH0KLSt9Ci0rCi0rIyBOb3cgY2hlY2sg dGhhdCB3ZSBjYW4gY29ycmVjdGx5IGV4dHJhY3QgYWxsIHRoZSBlbGVtZW50cyBmcm9tIHRoaXMK LSsjIHNsaWNlLgotK2ZvciB7IHNldCBqIDEgfSB7ICRqIDwgNiB9IHsgaW5jciBqIH0gewotKyAg ICBmb3IgeyBzZXQgaSAxIH0geyAkaSA8IDYgfSB7IGluY3IgaSB9IHsKLSsJc2V0IHZhbCBbZXhw ciAoKCgkaSAtIDEpICogMikgKyAoKCRqIC0gMSkgKiAyMCkpICsgMV0KLSsJZ2RiX3Rlc3QgInBy aW50ICR7dmFybmFtZX0gKCRpLCRqKSIgIiA9ICR2YWwiCi0rICAgIH0KLSt9Ci0rCi0rIyBOb3cg dGFrZSBhIHNsaWNlIG9mIHRoZSBzbGljZS4KLStnZGJfdGVzdCAicHJpbnQgJHt2YXJuYW1lfSAo Mzo1LCAzOjUpIiBcCi0rICAgICIgPSBcXChcXCg0NSwgNDcsIDQ5XFwpIFxcKDY1LCA2NywgNjlc XCkgXFwoODUsIDg3LCA4OVxcKVxcKSIKLSsKLSsjIE5vdyB0YWtlIGEgZGlmZmVyZW50IHNsaWNl IG9mIGEgc2xpY2UuCi0rc2V0IGNtZCAicHJpbnQgJHt2YXJuYW1lfSAoMTo1OjIsIDE6NToyKSIK LStnZGJfdGVzdF9tdWx0aXBsZSAkY21kICRjbWQgewotKyAgICAtcmUgIlxyXG5cXFwkKFxcZCsp ID0gXFwoXFwoMSwgNSwgOVxcKSBcXCg0MSwgNDUsIDQ5XFwpIFxcKDgxLCA4NSwgODlcXClcXClc clxuJGdkYl9wcm9tcHQgJCIgewotKwlzZXQgdmFybmFtZSAiXCQkZXhwZWN0X291dCgxLHN0cmlu ZykiCi0rCXBhc3MgJGdkYl90ZXN0X25hbWUKLSsgICAgfQotK30KLSsKLSsjIE5vdyB0YWtlIGEg c2xpY2UgZnJvbSB0aGUgc2xpY2UsIG9mIGEgc2xpY2UhCi0rc2V0IGNtZCAicHJpbnQgJHt2YXJu YW1lfSAoMTozOjIsIDE6MzoyKSIKLStnZGJfdGVzdF9tdWx0aXBsZSAkY21kICRjbWQgewotKyAg ICAtcmUgIlxyXG5cXFwkKFxcZCspID0gXFwoXFwoMSwgOVxcKSBcXCg4MSwgODlcXClcXClcclxu JGdkYl9wcm9tcHQgJCIgewotKwlzZXQgdmFybmFtZSAiXCQkZXhwZWN0X291dCgxLHN0cmluZyki Ci0rCXBhc3MgJGdkYl90ZXN0X25hbWUKLSsgICAgfQotK30KLSsKLSsjIEFuZCBhZ2FpbiEKLStz ZXQgY21kICJwcmludCAke3Zhcm5hbWV9ICgxOjI6MiwgMToyOjIpIgotK2dkYl90ZXN0X211bHRp cGxlICRjbWQgJGNtZCB7Ci0rICAgIC1yZSAiXHJcblxcXCQoXFxkKykgPSBcXChcXCgxXFwpXFwp XHJcbiRnZGJfcHJvbXB0ICQiIHsKLSsJc2V0IHZhcm5hbWUgIlwkJGV4cGVjdF9vdXQoMSxzdHJp bmcpIgotKwlwYXNzICRnZGJfdGVzdF9uYW1lCi0rICAgIH0KLSt9Ci0rCi0rIyBUZXN0IHRha2lu ZyBhIHNsaWNlIHdpdGggc3RyaWRlIG9mIGEgc3RyaW5nLiAgVGhpcyBpc24ndCBhY3R1YWxseQot KyMgc3VwcG9ydGVkIHdpdGhpbiBnZm9ydHJhbiAoYXQgbGVhc3QpLCBidXQgbmF0dXJhbGx5IGRy b3BzIG91dCBvZiBob3cKLSsjIEdEQiBtb2RlbHMgYXJyYXlzIGFuZCBzdHJpbmdzIGluIGEgc2lt aWxhciB3YXksIHNvIHdlIG1heSBhcyB3ZWxsCi0rIyB0ZXN0IHRoYXQgdGhpcyBpcyBzdGlsbCB3 b3JraW5nLgotK2dkYl90ZXN0ICJwcmludCBzdHIgKDE6MjY6MikiICIgPSAnYWNlZ2lrbW9xc3V3 eSciCi0rZ2RiX3Rlc3QgInByaW50IHN0ciAoMjY6MTotMSkiICIgPSAnenl4d3Z1dHNycXBvbm1s a2ppaGdmZWRjYmEnIgotK2dkYl90ZXN0ICJwcmludCBzdHIgKDI2OjE6LTIpIiAiID0gJ3p4dnRy cG5samhmZGInIgotKwotKyMgTm93IHRlc3QgdGhlIG1lbW9yeSByZXF1aXJlbWVudHMgb2YgdGFr aW5nIGEgc2xpY2UgZnJvbSBhbiBhcnJheS4KLSsjIFRoZSBpZGVhIGlzIHRoYXQgd2Ugc2hvdWxk bid0IHJlcXVpcmUgbW9yZSBtZW1vcnkgdG8gZXh0cmFjdCBhIHNsaWNlCi0rIyB0aGFuIHRoZSBz aXplIG9mIHRoZSBzbGljZS4KLSsjCi0rIyBUaGlzIHdpbGwgb25seSB3b3JrIGlmIGFycmF5IHJl cGFja2luZyBpcyB0dXJuZWQgb24sIG90aGVyd2lzZSBHREIKLSsjIHdpbGwgY3JlYXRlIHRoZSBz bGljZSBieSBnZW5lcmF0aW5nIGEgbmV3IHR5cGUgdGhhdCBzaXRzIG92ZXIgdGhlCi0rIyBleGlz dGluZyB2YWx1ZSBpbiBtZW1vcnkuCi0rZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgZm9ydHJhbiBy ZXBhY2stYXJyYXktc2xpY2VzIG9uIgotK3NldCBlbGVtZW50X3NpemUgW2dldF9pbnRlZ2VyX3Zh bHVlb2YgInNpemVvZiAoYXJyYXkgKDEsMSkpIiAidW5rbm93biJdCi0rc2V0IHNsaWNlX3NpemUg W2V4cHIgJGVsZW1lbnRfc2l6ZSAqIDRdCi0rZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgbWF4LXZh bHVlLXNpemUgJHNsaWNlX3NpemUiCi0rZ2RiX3Rlc3QgInByaW50IGFycmF5ICgxOjIsIDE6Miki ICI9IFxcKFxcKDEsIDJcXCkgXFwoMTEsIDEyXFwpXFwpIgotK2dkYl90ZXN0ICJwcmludCBhcnJh eSAoMjozLCAyOjMpIiAiPSBcXChcXCgxMiwgMTNcXCkgXFwoMjIsIDIzXFwpXFwpIgotK2dkYl90 ZXN0ICJwcmludCBhcnJheSAoMjo1OjIsIDI6NToyKSIgIj0gXFwoXFwoMTIsIDE0XFwpIFxcKDMy LCAzNFxcKVxcKSIKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2FycmF5 LXNsaWNlcy1zdWItc2xpY2VzLmY5MCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vYXJyYXkt c2xpY2VzLXN1Yi1zbGljZXMuZjkwCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotLS0tIC9kZXYvbnVs bAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9hcnJheS1zbGljZXMtc3ViLXNsaWNl cy5mOTAKLUBAIC0wLDAgKzEsOTYgQEAKLSshIENvcHlyaWdodCAyMDIwIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgotKyEKLSshIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rISBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyEg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGlj ZW5zZSwgb3IKLSshIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIQotKyEg VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCi0rISBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZgotKyEgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyEgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KLSshCi0rISBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyEgYWxvbmcgd2l0aCB0aGlzIHBy b2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0r IQotKyEgU3RhcnQgb2YgdGVzdCBwcm9ncmFtLgotKyEKLStwcm9ncmFtIHRlc3QKLSsgIGludGVn ZXIsIGRpbWVuc2lvbiAoMToxMCwxOjExKSA6OiBhcnJheQotKyAgY2hhcmFjdGVyIChsZW49MjYp IDo6IHN0ciA9ICJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIKLSsKLSsgIGNhbGwgZmlsbF9h cnJheV8yZCAoYXJyYXkpCi0rCi0rICAhIEdEQiBjYXRjaGVzIHRoaXMgZmluYWwgYnJlYWtwb2lu dCB0byBpbmRpY2F0ZSB0aGUgZW5kIG9mIHRoZSB0ZXN0LgotKyAgcHJpbnQgKiwgIiIgISBTdG9w IEhlcmUKLSsKLSsgIHByaW50ICosIGFycmF5Ci0rICBwcmludCAqLCBzdHIKLSsKLSsgICEgR0RC IGNhdGNoZXMgdGhpcyBmaW5hbCBicmVha3BvaW50IHRvIGluZGljYXRlIHRoZSBlbmQgb2YgdGhl IHRlc3QuCi0rICBwcmludCAqLCAiIiAhIEZpbmFsIEJyZWFrcG9pbnQuCi0rCi0rY29udGFpbnMK LSsKLSsgICEgRmlsbCBhIDFEIGFycmF5IHdpdGggYSB1bmlxdWUgcG9zaXRpdmUgaW50ZWdlciBp biBlYWNoIGVsZW1lbnQuCi0rICBzdWJyb3V0aW5lIGZpbGxfYXJyYXlfMWQgKGFycmF5KQotKyAg ICBpbnRlZ2VyLCBkaW1lbnNpb24gKDopIDo6IGFycmF5Ci0rICAgIGludGVnZXIgOjogY291bnRl cgotKwotKyAgICBjb3VudGVyID0gMQotKyAgICBkbyBqPUxCT1VORCAoYXJyYXksIDEpLCBVQk9V TkQgKGFycmF5LCAxKSwgMQotKyAgICAgICBhcnJheSAoaikgPSBjb3VudGVyCi0rICAgICAgIGNv dW50ZXIgPSBjb3VudGVyICsgMQotKyAgICBlbmQgZG8KLSsgIGVuZCBzdWJyb3V0aW5lIGZpbGxf YXJyYXlfMWQKLSsKLSsgICEgRmlsbCBhIDJEIGFycmF5IHdpdGggYSB1bmlxdWUgcG9zaXRpdmUg aW50ZWdlciBpbiBlYWNoIGVsZW1lbnQuCi0rICBzdWJyb3V0aW5lIGZpbGxfYXJyYXlfMmQgKGFy cmF5KQotKyAgICBpbnRlZ2VyLCBkaW1lbnNpb24gKDosOikgOjogYXJyYXkKLSsgICAgaW50ZWdl ciA6OiBjb3VudGVyCi0rCi0rICAgIGNvdW50ZXIgPSAxCi0rICAgIGRvIGk9TEJPVU5EIChhcnJh eSwgMiksIFVCT1VORCAoYXJyYXksIDIpLCAxCi0rICAgICAgIGRvIGo9TEJPVU5EIChhcnJheSwg MSksIFVCT1VORCAoYXJyYXksIDEpLCAxCi0rICAgICAgICAgIGFycmF5IChqLGkpID0gY291bnRl cgotKyAgICAgICAgICBjb3VudGVyID0gY291bnRlciArIDEKLSsgICAgICAgZW5kIGRvCi0rICAg IGVuZCBkbwotKyAgZW5kIHN1YnJvdXRpbmUgZmlsbF9hcnJheV8yZAotKwotKyAgISBGaWxsIGEg M0QgYXJyYXkgd2l0aCBhIHVuaXF1ZSBwb3NpdGl2ZSBpbnRlZ2VyIGluIGVhY2ggZWxlbWVudC4K LSsgIHN1YnJvdXRpbmUgZmlsbF9hcnJheV8zZCAoYXJyYXkpCi0rICAgIGludGVnZXIsIGRpbWVu c2lvbiAoOiw6LDopIDo6IGFycmF5Ci0rICAgIGludGVnZXIgOjogY291bnRlcgotKwotKyAgICBj b3VudGVyID0gMQotKyAgICBkbyBpPUxCT1VORCAoYXJyYXksIDMpLCBVQk9VTkQgKGFycmF5LCAz KSwgMQotKyAgICAgICBkbyBqPUxCT1VORCAoYXJyYXksIDIpLCBVQk9VTkQgKGFycmF5LCAyKSwg MQotKyAgICAgICAgICBkbyBrPUxCT1VORCAoYXJyYXksIDEpLCBVQk9VTkQgKGFycmF5LCAxKSwg MQotKyAgICAgICAgICAgICBhcnJheSAoaywgaixpKSA9IGNvdW50ZXIKLSsgICAgICAgICAgICAg Y291bnRlciA9IGNvdW50ZXIgKyAxCi0rICAgICAgICAgIGVuZCBkbwotKyAgICAgICBlbmQgZG8K LSsgICAgZW5kIGRvCi0rICBlbmQgc3Vicm91dGluZSBmaWxsX2FycmF5XzNkCi0rCi0rICAhIEZp bGwgYSA0RCBhcnJheSB3aXRoIGEgdW5pcXVlIHBvc2l0aXZlIGludGVnZXIgaW4gZWFjaCBlbGVt ZW50LgotKyAgc3Vicm91dGluZSBmaWxsX2FycmF5XzRkIChhcnJheSkKLSsgICAgaW50ZWdlciwg ZGltZW5zaW9uICg6LDosOiw6KSA6OiBhcnJheQotKyAgICBpbnRlZ2VyIDo6IGNvdW50ZXIKLSsK LSsgICAgY291bnRlciA9IDEKLSsgICAgZG8gaT1MQk9VTkQgKGFycmF5LCA0KSwgVUJPVU5EIChh cnJheSwgNCksIDEKLSsgICAgICAgZG8gaj1MQk9VTkQgKGFycmF5LCAzKSwgVUJPVU5EIChhcnJh eSwgMyksIDEKLSsgICAgICAgICAgZG8gaz1MQk9VTkQgKGFycmF5LCAyKSwgVUJPVU5EIChhcnJh eSwgMiksIDEKLSsgICAgICAgICAgICAgZG8gbD1MQk9VTkQgKGFycmF5LCAxKSwgVUJPVU5EIChh cnJheSwgMSksIDEKLSsgICAgICAgICAgICAgICAgYXJyYXkgKGwsIGssIGosaSkgPSBjb3VudGVy Ci0rICAgICAgICAgICAgICAgIGNvdW50ZXIgPSBjb3VudGVyICsgMQotKyAgICAgICAgICAgICBl bmQgZG8KLSsgICAgICAgICAgZW5kIGRvCi0rICAgICAgIGVuZCBkbwotKyAgICBlbmQgZG8KLSsg ICAgcHJpbnQgKiwgIiIKLSsgIGVuZCBzdWJyb3V0aW5lIGZpbGxfYXJyYXlfNGQKLStlbmQgcHJv Z3JhbSB0ZXN0Ci1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9hcnJheS1z bGljZXMuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9hcnJheS1zbGljZXMuZXhwCi0t LS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2FycmF5LXNsaWNlcy5leHAKLSsrKyBiL2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vYXJyYXktc2xpY2VzLmV4cAotQEAgLTE4LDYgKzE4LDIx IEBACi0gIyB0aGUgc3Vicm91dGluZS4gIFRoaXMgc2hvdWxkIGV4ZXJjaXNlIEdEQidzIGFiaWxp dHkgdG8gaGFuZGxlCi0gIyBkaWZmZXJlbnQgc3RyaWRlcyBmb3IgdGhlIGRpZmZlcmVudCBkaW1l bnNpb25zLgotIAotKyMgVGVzdGluZyBHREIncyBhYmlsaXR5IHRvIHByaW50IGFycmF5IChhbmQg c3RyaW5nKSBzbGljZXMsIGluY2x1ZGluZwotKyMgc2xpY2VzIHRoYXQgbWFrZSB1c2Ugb2YgYXJy YXkgc3RyaWRlcy4KLSsjCi0rIyBJbiB0aGUgRm9ydHJhbiBjb2RlIHZhcmlvdXMgYXJyYXlzIG9m IGRpZmZlcmVudCByYW5rcyBhcmUgZmlsbGVkCi0rIyB3aXRoIGRhdGEsIGFuZCBzbGljZXMgYXJl IHBhc3NlZCB0byBhIHNlcmllcyBvZiBzaG93IGZ1bmN0aW9ucy4KLSsjCi0rIyBJbiB0aGlzIHRl c3Qgc2NyaXB0IHdlIGJyZWFrIGluIGVhY2ggb2YgdGhlIHNob3cgZnVuY3Rpb25zLCBwcmludAot KyMgdGhlIGFycmF5IHNsaWNlIHRoYXQgd2FzIHBhc3NlZCBpbiwgYW5kIHRoZW4gbW92ZSB1cCB0 aGUgc3RhY2sgdG8KLSsjIHRoZSBwYXJlbnQgZnJhbWUgYW5kIGNoZWNrIEdEQiBjYW4gbWFudWFs bHkgZXh0cmFjdCB0aGUgc2FtZSBzbGljZS4KLSsjCi0rIyBUaGlzIHRlc3QgYWxzbyBjaGVja3Mg dGhhdCB0aGUgc2l6ZSBvZiB0aGUgYXJyYXkgc2xpY2UgcGFzc2VkIHRvIHRoZQotKyMgZnVuY3Rp b24gKHNvIGFzIGV4dHJhY3RlZCBhbmQgZGVzY3JpYmVkIGJ5IHRoZSBjb21waWxlciBhbmQgdGhl Ci0rIyBkZWJ1ZyBpbmZvcm1hdGlvbikgbWF0Y2hlcyB0aGUgc2l6ZSBvZiB0aGUgc2xpY2UgbWFu dWFsbHkgZXh0cmFjdGVkCi0rIyBieSBHREIuCi0rCi0gaWYge1tza2lwX2ZvcnRyYW5fdGVzdHNd fSB7IHJldHVybiAtMSB9Ci0gCi0gc3RhbmRhcmRfdGVzdGZpbGUgIi5mOTAiCi1AQCAtMjgsNTcg KzQzLDIyNCBAQCBpZiB7W3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVz dGZpbGV9ICR7c3JjZmlsZX0gXAotICAgICByZXR1cm4gLTEKLSB9Ci0gCi0taWYgIVtmb3J0cmFu X3J1bnRvX21haW5dIHsKLS0gICAgdW50ZXN0ZWQgImNvdWxkIG5vdCBydW4gdG8gbWFpbiIKLS0g ICAgcmV0dXJuIC0xCi0rIyBUYWtlcyB0aGUgbmFtZSBvZiBhbiBhcnJheSBzbGljZSBhcyB1c2Vk IGluIHRoZSB0ZXN0IHNvdXJjZSwgYW5kIGV4dHJhY3RzCi0rIyB0aGUgYmFzZSBhcnJheSBuYW1l LiAgRm9yIGV4YW1wbGU6ICdhcnJheSAoMSwyKScgYmVjb21lcyAnYXJyYXknLgotK3Byb2MgYXJy YXlfc2xpY2VfdG9fdmFyIHsgc2xpY2Vfc3RyIH0gewotKyAgICByZWdleHAgIl4oPzpcXHMqXFwo KSooXFteKCBcdFxdKykiICRzbGljZV9zdHIgbWF0Y2h2YXIgdmFybmFtZQotKyAgICByZXR1cm4g JHZhcm5hbWUKLSB9Ci0gCi0tZ2RiX2JyZWFrcG9pbnQgInNob3ciCi0tZ2RiX2JyZWFrcG9pbnQg W2dkYl9nZXRfbGluZV9udW1iZXIgIkZpbmFsIEJyZWFrcG9pbnQiXQotLQotLXNldCBhcnJheV9j b250ZW50cyBcCi0tICAgIFtsaXN0IFwKLS0JICIgPSBcXChcXCgxLCAyLCAzLCA0LCA1LCA2LCA3 LCA4LCA5LCAxMFxcKSBcXCgxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMFxc KSBcXCgyMSwgMjIsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5LCAzMFxcKSBcXCgzMSwgMzIs IDMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LCA0MFxcKSBcXCg0MSwgNDIsIDQzLCA0NCwgNDUs IDQ2LCA0NywgNDgsIDQ5LCA1MFxcKSBcXCg1MSwgNTIsIDUzLCA1NCwgNTUsIDU2LCA1NywgNTgs IDU5LCA2MFxcKSBcXCg2MSwgNjIsIDYzLCA2NCwgNjUsIDY2LCA2NywgNjgsIDY5LCA3MFxcKSBc XCg3MSwgNzIsIDczLCA3NCwgNzUsIDc2LCA3NywgNzgsIDc5LCA4MFxcKSBcXCg4MSwgODIsIDgz LCA4NCwgODUsIDg2LCA4NywgODgsIDg5LCA5MFxcKSBcXCg5MSwgOTIsIDkzLCA5NCwgOTUsIDk2 LCA5NywgOTgsIDk5LCAxMDBcXClcXCkiIFwKLS0JICIgPSBcXChcXCgxLCAyLCAzLCA0LCA1XFwp IFxcKDExLCAxMiwgMTMsIDE0LCAxNVxcKSBcXCgyMSwgMjIsIDIzLCAyNCwgMjVcXCkgXFwoMzEs IDMyLCAzMywgMzQsIDM1XFwpIFxcKDQxLCA0MiwgNDMsIDQ0LCA0NVxcKVxcKSIgXAotLQkgIiA9 IFxcKFxcKDEsIDMsIDUsIDcsIDlcXCkgXFwoMjEsIDIzLCAyNSwgMjcsIDI5XFwpIFxcKDQxLCA0 MywgNDUsIDQ3LCA0OVxcKSBcXCg2MSwgNjMsIDY1LCA2NywgNjlcXCkgXFwoODEsIDgzLCA4NSwg ODcsIDg5XFwpXFwpIiBcCi0tCSAiID0gXFwoXFwoMSwgNCwgNywgMTBcXCkgXFwoMjEsIDI0LCAy NywgMzBcXCkgXFwoNDEsIDQ0LCA0NywgNTBcXCkgXFwoNjEsIDY0LCA2NywgNzBcXCkgXFwoODEs IDg0LCA4NywgOTBcXClcXCkiIFwKLS0JICIgPSBcXChcXCgxLCA1LCA5XFwpIFxcKDMxLCAzNSwg MzlcXCkgXFwoNjEsIDY1LCA2OVxcKSBcXCg5MSwgOTUsIDk5XFwpXFwpIiBcCi0tCSAiID0gXFwo XFwoLTI2LCAtMjUsIC0yNCwgLTIzLCAtMjIsIC0yMSwgLTIwLCAtMTksIC0xOCwgLTE3XFwpIFxc KC0xOSwgLTE4LCAtMTcsIC0xNiwgLTE1LCAtMTQsIC0xMywgLTEyLCAtMTEsIC0xMFxcKSBcXCgt MTIsIC0xMSwgLTEwLCAtOSwgLTgsIC03LCAtNiwgLTUsIC00LCAtM1xcKSBcXCgtNSwgLTQsIC0z LCAtMiwgLTEsIDAsIDEsIDIsIDMsIDRcXCkgXFwoMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAs IDExXFwpIFxcKDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywgMThcXCkgXFwoMTYs IDE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNCwgMjVcXCkgXFwoMjMsIDI0LCAyNSwgMjYs IDI3LCAyOCwgMjksIDMwLCAzMSwgMzJcXCkgXFwoMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYs IDM3LCAzOCwgMzlcXCkgXFwoMzcsIDM4LCAzOSwgNDAsIDQxLCA0MiwgNDMsIDQ0LCA0NSwgNDZc XClcXCkiIFwKLS0JICIgPSBcXChcXCgtMjYsIC0yNSwgLTI0LCAtMjMsIC0yMiwgLTIxXFwpIFxc KC0xOSwgLTE4LCAtMTcsIC0xNiwgLTE1LCAtMTRcXCkgXFwoLTEyLCAtMTEsIC0xMCwgLTksIC04 LCAtN1xcKVxcKSIgXAotLQkgIiA9IFxcKFxcKC0yNiwgLTI0LCAtMjIsIC0yMCwgLTE4XFwpIFxc KC01LCAtMywgLTEsIDEsIDNcXCkgXFwoMTYsIDE4LCAyMCwgMjIsIDI0XFwpIFxcKDM3LCAzOSwg NDEsIDQzLCA0NVxcKVxcKSIgXQotLQotLXNldCBtZXNzYWdlX3N0cmluZ3MgXAotLSAgICBbbGlz dCBcCi0tCSAiID0gJ2FycmF5JyIgXAotLQkgIiA9ICdhcnJheSBcXCgxOjUsMTo1XFwpJyIgXAot LQkgIiA9ICdhcnJheSBcXCgxOjEwOjIsMToxMDoyXFwpJyIgXAotLQkgIiA9ICdhcnJheSBcXCgx OjEwOjMsMToxMDoyXFwpJyIgXAotLQkgIiA9ICdhcnJheSBcXCgxOjEwOjUsMToxMDozXFwpJyIg XQotLQotLXNldCBpIDAKLS1mb3JlYWNoIHJlc3VsdCAkYXJyYXlfY29udGVudHMgbXNnICRtZXNz YWdlX3N0cmluZ3MgewotLSAgICBpbmNyIGkKLS0gICAgd2l0aF90ZXN0X3ByZWZpeCAidGVzdCAk aSIgewotLQlnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAic2hvdyIKLS0JZ2RiX3Rlc3QgInAg YXJyYXkiICRyZXN1bHQKLS0JZ2RiX3Rlc3QgInAgbWVzc2FnZSIgIiRtc2ciCi0rcHJvYyBydW5f dGVzdCB7IHJlcGFjayB9IHsKLSsgICAgZ2xvYmFsIGJpbmZpbGUgZ2RiX3Byb21wdAotKwotKyAg ICBjbGVhbl9yZXN0YXJ0ICR7YmluZmlsZX0KLSsKLSsgICAgaWYgIVtmb3J0cmFuX3J1bnRvX21h aW5dIHsKLSsJdW50ZXN0ZWQgImNvdWxkIG5vdCBydW4gdG8gbWFpbiIKLSsJcmV0dXJuIC0xCi0g ICAgIH0KLS19Ci0gCi0tZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImNvbnRpbnVlIHRvIEZp bmFsIEJyZWFrcG9pbnQiCi0rICAgIGdkYl90ZXN0X25vX291dHB1dCAic2V0IGZvcnRyYW4gcmVw YWNrLWFycmF5LXNsaWNlcyAkcmVwYWNrIgotKwotKyAgICAjIGdkYl9icmVha3BvaW50IFtnZGJf Z2V0X2xpbmVfbnVtYmVyICJEaXNwbGF5IE1lc3NhZ2UgQnJlYWtwb2ludCJdCi0rICAgIGdkYl9i cmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJEaXNwbGF5IEVsZW1lbnQiXQotKyAgICBn ZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiRGlzcGxheSBTdHJpbmciXQotKyAg ICBnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiRGlzcGxheSBBcnJheSBTbGlj ZSAxRCJdCi0rICAgIGdkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJEaXNwbGF5 IEFycmF5IFNsaWNlIDJEIl0KLSsgICAgZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1i ZXIgIkRpc3BsYXkgQXJyYXkgU2xpY2UgM0QiXQotKyAgICBnZGJfYnJlYWtwb2ludCBbZ2RiX2dl dF9saW5lX251bWJlciAiRGlzcGxheSBBcnJheSBTbGljZSA0RCJdCi0rICAgIGdkYl9icmVha3Bv aW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJGaW5hbCBCcmVha3BvaW50Il0KLSsKLSsgICAgIyBX ZSdyZSBnb2luZyB0byBwcmludCBzb21lIHJlYXNvbmFibHkgbGFyZ2UgYXJyYXlzLgotKyAgICBn ZGJfdGVzdF9ub19vdXRwdXQgInNldCBwcmludCBlbGVtZW50cyB1bmxpbWl0ZWQiCi0rCi0rICAg IHNldCBmb3VuZF9maW5hbF9icmVha3BvaW50IGZhbHNlCi0rCi0rICAgICMgV2UgcGxhY2UgYSBs aW1pdCBvbiB0aGUgbnVtYmVyIG9mIHRlc3RzIHRoYXQgY2FuIGJlIHJ1biwganVzdCBpbgotKyAg ICAjIGNhc2Ugc29tZXRoaW5nIGdvZXMgd3JvbmcsIGFuZCBHREIgZ2V0cyBzdHVjayBpbiBhbiBs b29wIGhlcmUuCi0rICAgIHNldCB0ZXN0X2NvdW50IDAKLSsgICAgd2hpbGUgeyAkdGVzdF9jb3Vu dCA8IDUwMCB9IHsKLSsJd2l0aF90ZXN0X3ByZWZpeCAidGVzdCAkdGVzdF9jb3VudCIgewotKwkg ICAgaW5jciB0ZXN0X2NvdW50Ci0rCi0rCSAgICBzZXQgZm91bmRfZmluYWxfYnJlYWtwb2ludCBm YWxzZQotKwkgICAgc2V0IGV4cGVjdGVkX3Jlc3VsdCAiIgotKwkgICAgc2V0IGZ1bmNfbmFtZSAi IgotKwkgICAgZ2RiX3Rlc3RfbXVsdGlwbGUgImNvbnRpbnVlIiAiY29udGludWUiIHsKLSsJCS1y ZSAiLipHREIgPSAoXFteXHJcblxdKylcclxuIiB7Ci0rCQkgICAgc2V0IGV4cGVjdGVkX3Jlc3Vs dCAkZXhwZWN0X291dCgxLHN0cmluZykKLSsJCSAgICBleHBfY29udGludWUKLSsJCX0KLSsJCS1y ZSAiISBEaXNwbGF5IEVsZW1lbnQiIHsKLSsJCSAgICBzZXQgZnVuY19uYW1lICJzaG93X2VsZW0i Ci0rCQkgICAgZXhwX2NvbnRpbnVlCi0rCQl9Ci0rCQktcmUgIiEgRGlzcGxheSBTdHJpbmciIHsK LSsJCSAgICBzZXQgZnVuY19uYW1lICJzaG93X3N0ciIKLSsJCSAgICBleHBfY29udGludWUKLSsJ CX0KLSsJCS1yZSAiISBEaXNwbGF5IEFycmF5IFNsaWNlICguKUQiIHsKLSsJCSAgICBzZXQgZnVu Y19uYW1lICJzaG93XyRleHBlY3Rfb3V0KDEsc3RyaW5nKWQiCi0rCQkgICAgZXhwX2NvbnRpbnVl Ci0rCQl9Ci0rCQktcmUgIiEgRmluYWwgQnJlYWtwb2ludCIgewotKwkJICAgIHNldCBmb3VuZF9m aW5hbF9icmVha3BvaW50IHRydWUKLSsJCSAgICBleHBfY29udGludWUKLSsJCX0KLSsJCS1yZSAi JGdkYl9wcm9tcHQgJCIgewotKwkJICAgICMgV2UncmUgZG9uZS4KLSsJCX0KLSsJICAgIH0KLSAK LS0jIE5leHQgdGVzdCB0aGF0IGFza2luZyBmb3IgYW4gYXJyYXkgd2l0aCBzdHJpZGUgYXQgdGhl IENMSSBnaXZlcyBhbgotLSMgZXJyb3IuCi0tY2xlYW5fcmVzdGFydCAke3Rlc3RmaWxlfQotKwkg ICAgaWYgKCRmb3VuZF9maW5hbF9icmVha3BvaW50KSB7Ci0rCQlicmVhawotKwkgICAgfQotIAot LWlmICFbZm9ydHJhbl9ydW50b19tYWluXSB0aGVuIHsKLS0gICAgcGVycm9yICJjb3VsZG4ndCBy dW4gdG8gbWFpbiIKLS0gICAgY29udGludWUKLSsJICAgICMgV2Ugd2FudCB0byB0YWtlIGEgbG9v ayBhdCB0aGUgbGluZSBpbiB0aGUgcHJldmlvdXMgZnJhbWUgdGhhdAotKwkgICAgIyBjYWxsZWQg dGhlIGN1cnJlbnQgZnVuY3Rpb24uICBJIGNvdWxkbid0IGZpbmQgYSBiZXR0ZXIgd2F5IG9mCi0r CSAgICAjIGRvaW5nIHRoaXMgdGhhbiAndXAnLCB3aGljaCB3aWxsIHByaW50IHRoZSBsaW5lLCB0 aGVuICdkb3duJwotKwkgICAgIyBhZ2Fpbi4KLSsJICAgICMKLSsJICAgICMgSSBkb24ndCB3YW50 IHRvIGZpbGwgdGhlIGxvZyB3aXRoIHBhc3NlcyBmb3IgdGhlc2UgdXAvZG93bgotKwkgICAgIyBj b21tYW5kcywgc28gd2UgZG9uJ3QgcmVwb3J0IGFueS4gIElmIHNvbWV0aGluZyBnb2VzIHdyb25n IHRoZW4gd2UKLSsJICAgICMgc2hvdWxkIGdldCBhIGZhaWwgZnJvbSBnZGJfdGVzdF9tdWx0aXBs ZS4KLSsJICAgIHNldCBhcnJheV9zbGljZV9uYW1lICIiCi0rCSAgICBzZXQgdW5pcXVlX2lkICIi Ci0rCSAgICBhcnJheSB1bnNldCByZXBsYWNlbWVudF92YXJzCi0rCSAgICBhcnJheSBzZXQgcmVw bGFjZW1lbnRfdmFycyB7fQotKwkgICAgZ2RiX3Rlc3RfbXVsdGlwbGUgInVwIiAidXAiIHsKLSsJ CS1yZSAiXHJcblxbMC05XF0rXFsgXHRcXStjYWxsICR7ZnVuY19uYW1lfSBcXCgoXFteXHJcblxd KylcXClcclxuJGdkYl9wcm9tcHQgJCIgewotKwkJICAgIHNldCBhcnJheV9zbGljZV9uYW1lICRl eHBlY3Rfb3V0KDEsc3RyaW5nKQotKwkJfQotKwkJLXJlICJcclxuXFswLTlcXStcWyBcdFxdK2Nh bGwgJHtmdW5jX25hbWV9IFxcKChcW15cclxuXF0rKVxcKVxbIFx0XF0rISBWQVJTPShcW14gXHRc clxuXF0rKVxyXG4kZ2RiX3Byb21wdCAkIiB7Ci0rCQkgICAgc2V0IGFycmF5X3NsaWNlX25hbWUg JGV4cGVjdF9vdXQoMSxzdHJpbmcpCi0rCQkgICAgc2V0IHVuaXF1ZV9pZCAkZXhwZWN0X291dCgy LHN0cmluZykKLSsJCX0KLSsJICAgIH0KLSsJICAgIGlmIHskdW5pcXVlX2lkICE9ICIifSB7Ci0r CQlzZXQgc3RyICIiCi0rCQlmb3JlYWNoIHYgW3NwbGl0ICR1bmlxdWVfaWQgLF0gewotKwkJICAg IHNldCB2YWwgW2dldF9pbnRlZ2VyX3ZhbHVlb2YgIiR7dn0iICI/PyJcCi0rCQkJCSAiZ2V0IHZh cmlhYmxlICckdicgZm9yICckYXJyYXlfc2xpY2VfbmFtZSciXQotKwkJICAgIHNldCByZXBsYWNl bWVudF92YXJzKCR2KSAkdmFsCi0rCQkgICAgaWYgeyRzdHIgIT0gIiJ9IHsKLSsJCQlzZXQgc3Ry ICJTdHIsIgotKwkJICAgIH0KLSsJCSAgICBzZXQgc3RyICIkc3RyJHY9JHZhbCIKLSsJCX0KLSsJ CXNldCB1bmlxdWVfaWQgIiAkc3RyIgotKwkgICAgfQotKwkgICAgZ2RiX3Rlc3RfbXVsdGlwbGUg ImRvd24iICJkb3duIiB7Ci0rCQktcmUgIlxyXG4kZ2RiX3Byb21wdCAkIiB7Ci0rCQkgICAgIyBE b24ndCBpc3N1ZSBhIHBhc3MgaGVyZS4KLSsJCX0KLSsJICAgIH0KLSsKLSsJICAgICMgQ2hlY2sg d2UgaGF2ZSBhbGwgdGhlIGluZm9ybWF0aW9uIHdlIG5lZWQgdG8gc3VjY2Vzc2Z1bGx5IHJ1biBv bmUKLSsJICAgICMgb2YgdGhlc2UgdGVzdHMuCi0rCSAgICBpZiB7ICRleHBlY3RlZF9yZXN1bHQg PT0gIiIgfSB7Ci0rCQlwZXJyb3IgImZhaWxlZCB0byBleHRyYWN0IGV4cGVjdGVkIHJlc3VsdHMi Ci0rCQlyZXR1cm4gMAotKwkgICAgfQotKwkgICAgaWYgeyAkYXJyYXlfc2xpY2VfbmFtZSA9PSAi IiB9IHsKLSsJCXBlcnJvciAiZmFpbGVkIHRvIGV4dHJhY3QgYXJyYXkgc2xpY2UgbmFtZSIKLSsJ CXJldHVybiAwCi0rCSAgICB9Ci0rCi0rCSAgICAjIENoZWNrIEdEQiBjYW4gY29ycmVjdGx5IHBy aW50IHRoZSBhcnJheSBzbGljZSB0aGF0IHdhcyBwYXNzZWQgaW50bwotKwkgICAgIyB0aGUgY3Vy cmVudCBmcmFtZS4KLSsJICAgIHNldCBwYXR0ZXJuIFtzdHJpbmdfdG9fcmVnZXhwICIgPSAkZXhw ZWN0ZWRfcmVzdWx0Il0KLSsJICAgIGdkYl90ZXN0ICJwIGFycmF5IiAiJHBhdHRlcm4iIFwKLSsJ CSJjaGVjayB2YWx1ZSBvZiAnJGFycmF5X3NsaWNlX25hbWUnJHVuaXF1ZV9pZCIKLSsKLSsJICAg ICMgR2V0IHRoZSBzaXplIG9mIHRoZSBzbGljZS4KLSsJICAgIHNldCBzaXplX2luX3Nob3cgXAot KwkJW2dldF9pbnRlZ2VyX3ZhbHVlb2YgInNpemVvZiAoYXJyYXkpIiAic2hvd191bmtub3duIiBc Ci0rCQkgICAgICJnZXQgc2l6ZW9mICckYXJyYXlfc2xpY2VfbmFtZSckdW5pcXVlX2lkIGluIHNo b3ciXQotKwkgICAgc2V0IGFkZHJfaW5fc2hvdyBcCi0rCQlbZ2V0X2hleGFkZWNpbWFsX3ZhbHVl b2YgIiZhcnJheSIgInNob3dfdW5rbm93biIgXAotKwkJICAgICAiZ2V0IGFkZHJlc3MgJyRhcnJh eV9zbGljZV9uYW1lJyR1bmlxdWVfaWQgaW4gc2hvdyJdCi0rCi0rCSAgICAjIE5vdyBtb3ZlIGlu dG8gdGhlIHByZXZpb3VzIGZyYW1lLCBhbmQgc2VlIGlmIEdEQiBjYW4gZXh0cmFjdCB0aGUKLSsJ ICAgICMgYXJyYXkgc2xpY2UgZnJvbSB0aGUgb3JpZ2luYWwgcGFyZW50IG9iamVjdC4gIEFnYWlu LCB1c2Ugb2YKLSsJICAgICMgZ2RiX3Rlc3RfbXVsdGlwbGUgdG8gYXZvaWQgZmlsbGluZyB0aGUg bG9ncyB3aXRoIHVubmVjZXNzYXJ5Ci0rCSAgICAjIHBhc3Nlcy4KLSsJICAgIGdkYl90ZXN0X211 bHRpcGxlICJ1cCIgInVwIiB7Ci0rCQktcmUgIlxyXG4kZ2RiX3Byb21wdCAkIiB7Ci0rCQkgICAg IyBEbyBub3RoaW5nLgotKwkJfQotKwkgICAgfQotKwotKwkgICAgIyBQcmludCB0aGUgYXJyYXkg c2xpY2UsIHRoaXMgd2lsbCBmb3JjZSBHREIgdG8gbWFudWFsbHkgZXh0cmFjdCB0aGUKLSsJICAg ICMgc2xpY2UgZnJvbSB0aGUgcGFyZW50IGFycmF5LgotKwkgICAgZ2RiX3Rlc3QgInAgJGFycmF5 X3NsaWNlX25hbWUiICIkcGF0dGVybiIgXAotKwkJImNoZWNrIGFycmF5IHNsaWNlICckYXJyYXlf c2xpY2VfbmFtZSckdW5pcXVlX2lkIGNhbiBiZSBleHRyYWN0ZWQiCi0rCi0rCSAgICAjIEdldCB0 aGUgc2l6ZSBvZiB0aGUgc2xpY2UgaW4gdGhlIGNhbGxpbmcgZnJhbWUuCi0rCSAgICBzZXQgc2l6 ZV9pbl9wYXJlbnQgXAotKwkJW2dldF9pbnRlZ2VyX3ZhbHVlb2YgInNpemVvZiAoJGFycmF5X3Ns aWNlX25hbWUpIiBcCi0rCQkgICAgICJwYXJlbnRfdW5rbm93biIgXAotKwkJICAgICAiZ2V0IHNp emVvZiAnJGFycmF5X3NsaWNlX25hbWUnJHVuaXF1ZV9pZCBpbiBwYXJlbnQiXQotKwotKwkgICAg IyBGaWd1cmUgb3V0IHRoZSBzdGFydCBhbmQgZW5kIGFkZHJlc3NlcyBvZiB0aGUgZnVsbCBhcnJh eSBpbiB0aGUKLSsJICAgICMgcGFyZW50IGZyYW1lLgotKwkgICAgc2V0IGZ1bGxfdmFyX25hbWUg W2FycmF5X3NsaWNlX3RvX3ZhciAkYXJyYXlfc2xpY2VfbmFtZV0KLSsJICAgIHNldCBzdGFydF9h ZGRyIFtnZXRfaGV4YWRlY2ltYWxfdmFsdWVvZiAiJiR7ZnVsbF92YXJfbmFtZX0iIFwKLSsJCQkJ InN0YXJ0IHVua25vd24iXQotKwkgICAgc2V0IGVuZF9hZGRyIFtnZXRfaGV4YWRlY2ltYWxfdmFs dWVvZiBcCi0rCQkJICAgICAgIigmJHtmdWxsX3Zhcl9uYW1lfSkgKyBzaXplb2YgKCR7ZnVsbF92 YXJfbmFtZX0pIiBcCi0rCQkJICAgICAgImVuZCB1bmtub3duIl0KLSsKLSsJICAgICMgVGhlIEZv cnRyYW4gY29tcGlsZXIgY2FuIGNob29zZSB0byBlaXRoZXIgc2VuZCBhIGRlc2NyaXB0b3IgdGhh dAotKwkgICAgIyBkZXNjcmliZXMgdGhlIGFycmF5IHNsaWNlIHRvIHRoZSBzdWJyb3V0aW5lLCBv ciBpdCBjYW4gcmVwYWNrIHRoZQotKwkgICAgIyBzbGljZSBpbnRvIGFuIGFycmF5IHNlY3Rpb24g YW5kIHNlbmQgdGhhdC4KLSsJICAgICMKLSsJICAgICMgV2UgZmluZCB0aGUgYWRkcmVzcyByYW5n ZSBvZiB0aGUgb3JpZ2luYWwgYXJyYXkgaW4gdGhlIHBhcmVudCwKLSsJICAgICMgYW5kIHRoZSBh ZGRyZXNzIG9mIHRoZSBzbGljZSBpbiB0aGUgc2hvdyBmdW5jdGlvbiwgaWYgdGhlCi0rCSAgICAj IGFkZHJlc3Mgb2YgdGhlIHNsaWNlIChmcm9tIHNob3cpIGlzIGluIHRoZSByYW5nZSBvZiB0aGUg b3JpZ2luYWwKLSsJICAgICMgYXJyYXkgdGhlbiByZXBhY2tpbmcgaGFzIG5vdCBvY2N1cnJlZCwg b3RoZXJ3aXNlLCB0aGUgc2xpY2UgaXMKLSsJICAgICMgb3V0c2lkZSBvZiB0aGUgcGFyZW50LCBh bmQgcmVwYWNraW5nIG11c3QgaGF2ZSBvY2N1cnJlZC4KLSsJICAgICMKLSsJICAgICMgVGhlIGdv YWwgaGVyZSBpcyB0byBjb21wYXJlIHRoZSBzaXplcyBvZiB0aGUgc2xpY2UgaW4gc2hvdyB3aXRo Ci0rCSAgICAjIHRoZSBzaXplIG9mIHRoZSBzbGljZSBleHRyYWN0ZWQgYnkgR0RCLiAgU28gd2Ug Y2FuIG9ubHkgY29tcGFyZQotKwkgICAgIyBzaXplcyB3aGVuIEdEQidzIHJlcGFja2luZyBzZXR0 aW5nIG1hdGNoZXMgdGhlIHJlcGFja2luZwotKwkgICAgIyBiZWhhdmlvdXIgd2UgZ290IGZyb20g dGhlIGNvbXBpbGVyLgotKwkgICAgaWYgeyAoJGFkZHJfaW5fc2hvdyA8ICRzdGFydF9hZGRyIHx8 ICRhZGRyX2luX3Nob3cgPj0gJGVuZF9hZGRyKSBcCi0rCQkgPT0gKCRyZXBhY2sgPT0gIm9uIikg fSB7Ci0rCQlnZGJfYXNzZXJ0IHskc2l6ZV9pbl9zaG93ID09ICRzaXplX2luX3BhcmVudH0gXAot KwkJICAgICJjaGVjayBzaXplcyBtYXRjaCIKLSsJICAgIH0gZWxzZWlmIHsgJHJlcGFjayA9PSAi b2ZmIiB9IHsKLSsJCSMgR0RCJ3MgcmVwYWNraW5nIGlzIG9mZiAoc28gc2xpY2VzIGFyZSBsZWZ0 IHVucGFja2VkKSwgYnV0Ci0rCQkjIHRoZSBjb21waWxlciBkaWQgcGFjayB0aGlzIG9uZS4gIEFz IGEgcmVzdWx0IHdlIGNhbid0Ci0rCQkjIGNvbXBhcmUgdGhlIHNpemVzIGJldHdlZW4gdGhlIGNv bXBpbGVyJ3Mgc2xpY2UgYW5kIEdEQidzCi0rCQkjIHNsaWNlLgotKwkJdmVyYm9zZSAtbG9nICJz bGljZSAnJGFycmF5X3NsaWNlX25hbWUnIHdhcyByZXBhY2tlZCwgc2l6ZXMgY2FuJ3QgYmUgY29t cGFyZWQiCi0rCSAgICB9IGVsc2UgewotKwkJIyBMaWtlIHRoZSBhYm92ZSwgYnV0IHRoZSByZXZl cnNlLCBHREIncyByZXBhY2tpbmcgaXMgb24sIGJ1dAotKwkJIyB0aGUgY29tcGlsZXIgZGlkbid0 IHJlcGFjayB0aGlzIHNsaWNlLgotKwkJdmVyYm9zZSAtbG9nICJzbGljZSAnJGFycmF5X3NsaWNl X25hbWUnIHdhcyBub3QgcmVwYWNrZWQsIHNpemVzIGNhbid0IGJlIGNvbXBhcmVkIgotKwkgICAg fQotKwotKwkgICAgIyBJZiB0aGUgYXJyYXkgbmFtZSB3ZSBqdXN0IHRlc3RlZCBpbmNsdWRlZCB2 YXJpYWJsZSBuYW1lcywgdGhlbgotKwkgICAgIyB0ZXN0IGFnYWluIHdpdGggYWxsIHRoZSB2YXJp YWJsZXMgZXhwYW5kZWQuCi0rCSAgICBpZiB7JHVuaXF1ZV9pZCAhPSAiIn0gewotKwkJZm9yZWFj aCB2IFthcnJheSBuYW1lcyByZXBsYWNlbWVudF92YXJzXSB7Ci0rCQkgICAgc2V0IHZhbCAkcmVw bGFjZW1lbnRfdmFycygkdikKLSsJCSAgICBzZXQgYXJyYXlfc2xpY2VfbmFtZSBcCi0rCQkJW3Jl Z3N1YiAiXFx5JHt2fVxceSIgJGFycmF5X3NsaWNlX25hbWUgJHZhbF0KLSsJCX0KLSsJCWdkYl90 ZXN0ICJwICRhcnJheV9zbGljZV9uYW1lIiAiJHBhdHRlcm4iIFwKLSsJCSAgICAiY2hlY2sgYXJy YXkgc2xpY2UgJyRhcnJheV9zbGljZV9uYW1lJyR1bmlxdWVfaWQgY2FuIGJlIGV4dHJhY3RlZCwg d2l0aCB2YXJpYWJsZXMgZXhwYW5kZWQiCi0rCSAgICB9Ci0rCX0KLSsgICAgfQotKwotKyAgICAj IEVuc3VyZSB3ZSByZWFjaGVkIHRoZSBmaW5hbCBicmVha3BvaW50LiAgSWYgbW9yZSB0ZXN0cyBo YXZlIGJlZW4gYWRkZWQKLSsgICAgIyB0byB0aGUgdGVzdCBzY3JpcHQsIGFuZCB0aGlzIHN0YXJ0 cyBmYWlsaW5nLCB0aGVuIHRoZSBzYWZldHkgJ3doaWxlJwotKyAgICAjIGxvb3AgYWJvdmUgbWln aHQgbmVlZCB0byBiZSBpbmNyZWFzZWQuCi0rICAgIGdkYl9hc3NlcnQgeyRmb3VuZF9maW5hbF9i cmVha3BvaW50fSAicmFuIGFsbCB0ZXN0cyIKLSB9Ci0gCi0tZ2RiX2JyZWFrcG9pbnQgInNob3ci Ci0tZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInNob3ciCi0tZ2RiX3Rlc3QgInVwIiAiLioi Ci0tZ2RiX3Rlc3QgInAgYXJyYXkgKDE6MTA6MiwgMToxMDoyKSIgXAotLSAgICAiRm9ydHJhbiBh cnJheSBzdHJpZGVzIGFyZSBub3QgY3VycmVudGx5IHN1cHBvcnRlZCIgXAotLSAgICAidXNpbmcg YXJyYXkgc3RyaWRlIGdpdmVzIGFuIGVycm9yIgotK2ZvcmVhY2hfd2l0aF9wcmVmaXggcmVwYWNr IHsgb24gb2ZmIH0gewotKyAgICBydW5fdGVzdCAkcmVwYWNrCi0rfQotZGlmZiAtLWdpdCBhL2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vYXJyYXktc2xpY2VzLmY5MCBiL2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vYXJyYXktc2xpY2VzLmY5MAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi9hcnJheS1zbGljZXMuZjkwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2Fy cmF5LXNsaWNlcy5mOTAKLUBAIC0xMyw1OCArMTMsMzY4IEBACi0gISBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICEgYWxv bmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uCi0gCi0tc3Vicm91dGluZSBzaG93IChtZXNzYWdlLCBhcnJheSkKLS0gIGNoYXJh Y3RlciAobGVuPSopIDo6IG1lc3NhZ2UKLStzdWJyb3V0aW5lIHNob3dfZWxlbSAoYXJyYXkpCi0r ICBpbnRlZ2VyIDo6IGFycmF5Ci0rCi0rICBwcmludCAqLCAiIgotKyAgcHJpbnQgKiwgIkV4cGVj dGVkIEdEQiBPdXRwdXQ6IgotKyAgcHJpbnQgKiwgIiIKLSsKLSsgIHdyaXRlKCosIGZtdD0iKEEp IiwgYWR2YW5jZT0ibm8iKSAiR0RCID0gIgotKyAgd3JpdGUoKiwgZm10PSIoSTApIiwgYWR2YW5j ZT0ibm8iKSBhcnJheQotKyAgd3JpdGUoKiwgZm10PSIoQSkiLCBhZHZhbmNlPSJ5ZXMiKSAiIgot KwotKyAgcHJpbnQgKiwgIiIJISBEaXNwbGF5IEVsZW1lbnQKLStlbmQgc3Vicm91dGluZSBzaG93 X2VsZW0KLSsKLStzdWJyb3V0aW5lIHNob3dfc3RyIChhcnJheSkKLSsgIGNoYXJhY3RlciAobGVu PSopIDo6IGFycmF5Ci0rCi0rICBwcmludCAqLCAiIgotKyAgcHJpbnQgKiwgIkV4cGVjdGVkIEdE QiBPdXRwdXQ6IgotKyAgcHJpbnQgKiwgIiIKLSsgIHdyaXRlICgqLCBmbXQ9IihBKSIsIGFkdmFu Y2U9Im5vIikgIkdEQiA9ICciCi0rICB3cml0ZSAoKiwgZm10PSIoQSkiLCBhZHZhbmNlPSJubyIp IGFycmF5Ci0rICB3cml0ZSAoKiwgZm10PSIoQSkiLCBhZHZhbmNlPSJ5ZXMiKSAiJyIKLSsKLSsg IHByaW50ICosICIiCSEgRGlzcGxheSBTdHJpbmcKLStlbmQgc3Vicm91dGluZSBzaG93X3N0cgot KwotK3N1YnJvdXRpbmUgc2hvd18xZCAoYXJyYXkpCi0rICBpbnRlZ2VyLCBkaW1lbnNpb24gKDop IDo6IGFycmF5Ci0rCi0rICBwcmludCAqLCAiQXJyYXkgQ29udGVudHM6IgotKyAgcHJpbnQgKiwg IiIKLSsKLSsgIGRvIGk9TEJPVU5EIChhcnJheSwgMSksIFVCT1VORCAoYXJyYXksIDEpLCAxCi0r ICAgICB3cml0ZSgqLCBmbXQ9IihpNCkiLCBhZHZhbmNlPSJubyIpIGFycmF5IChpKQotKyAgZW5k IGRvCi0rCi0rICBwcmludCAqLCAiIgotKyAgcHJpbnQgKiwgIkV4cGVjdGVkIEdEQiBPdXRwdXQ6 IgotKyAgcHJpbnQgKiwgIiIKLSsKLSsgIHdyaXRlKCosIGZtdD0iKEEpIiwgYWR2YW5jZT0ibm8i KSAiR0RCID0gKCIKLSsgIGRvIGk9TEJPVU5EIChhcnJheSwgMSksIFVCT1VORCAoYXJyYXksIDEp LCAxCi0rICAgICBpZiAoaSA+IExCT1VORCAoYXJyYXksIDEpKSB0aGVuCi0rICAgICAgICB3cml0 ZSgqLCBmbXQ9IihBKSIsIGFkdmFuY2U9Im5vIikgIiwgIgotKyAgICAgZW5kIGlmCi0rICAgICB3 cml0ZSgqLCBmbXQ9IihJMCkiLCBhZHZhbmNlPSJubyIpIGFycmF5IChpKQotKyAgZW5kIGRvCi0r ICB3cml0ZSgqLCBmbXQ9IihBKSIsIGFkdmFuY2U9Im5vIikgIikiCi0rCi0rICBwcmludCAqLCAi IgkhIERpc3BsYXkgQXJyYXkgU2xpY2UgMUQKLStlbmQgc3Vicm91dGluZSBzaG93XzFkCi0rCi0r c3Vicm91dGluZSBzaG93XzJkIChhcnJheSkKLSAgIGludGVnZXIsIGRpbWVuc2lvbiAoOiw6KSA6 OiBhcnJheQotIAotLSAgcHJpbnQgKiwgbWVzc2FnZQotKyAgcHJpbnQgKiwgIkFycmF5IENvbnRl bnRzOiIKLSsgIHByaW50ICosICIiCi0rCi0gICBkbyBpPUxCT1VORCAoYXJyYXksIDIpLCBVQk9V TkQgKGFycmF5LCAyKSwgMQotICAgICAgZG8gaj1MQk9VTkQgKGFycmF5LCAxKSwgVUJPVU5EIChh cnJheSwgMSksIDEKLSAgICAgICAgIHdyaXRlKCosIGZtdD0iKGk0KSIsIGFkdmFuY2U9Im5vIikg YXJyYXkgKGosIGkpCi0gICAgICBlbmQgZG8KLSAgICAgIHByaW50ICosICIiCi0tIGVuZCBkbwot LSBwcmludCAqLCBhcnJheQotLSBwcmludCAqLCAiIgotKyAgZW5kIGRvCi0gCi0tZW5kIHN1YnJv dXRpbmUgc2hvdwotKyAgcHJpbnQgKiwgIiIKLSsgIHByaW50ICosICJFeHBlY3RlZCBHREIgT3V0 cHV0OiIKLSsgIHByaW50ICosICIiCi0gCi0tcHJvZ3JhbSB0ZXN0Ci0rICB3cml0ZSgqLCBmbXQ9 IihBKSIsIGFkdmFuY2U9Im5vIikgIkdEQiA9ICgiCi0rICBkbyBpPUxCT1VORCAoYXJyYXksIDIp LCBVQk9VTkQgKGFycmF5LCAyKSwgMQotKyAgICAgaWYgKGkgPiBMQk9VTkQgKGFycmF5LCAyKSkg dGhlbgotKyAgICAgICAgd3JpdGUoKiwgZm10PSIoQSkiLCBhZHZhbmNlPSJubyIpICIgIgotKyAg ICAgZW5kIGlmCi0rICAgICB3cml0ZSgqLCBmbXQ9IihBKSIsIGFkdmFuY2U9Im5vIikgIigiCi0r ICAgICBkbyBqPUxCT1VORCAoYXJyYXksIDEpLCBVQk9VTkQgKGFycmF5LCAxKSwgMQotKyAgICAg ICAgaWYgKGogPiBMQk9VTkQgKGFycmF5LCAxKSkgdGhlbgotKyAgICAgICAgICAgd3JpdGUoKiwg Zm10PSIoQSkiLCBhZHZhbmNlPSJubyIpICIsICIKLSsgICAgICAgIGVuZCBpZgotKyAgICAgICAg d3JpdGUoKiwgZm10PSIoSTApIiwgYWR2YW5jZT0ibm8iKSBhcnJheSAoaiwgaSkKLSsgICAgIGVu ZCBkbwotKyAgICAgd3JpdGUoKiwgZm10PSIoQSkiLCBhZHZhbmNlPSJubyIpICIpIgotKyAgZW5k IGRvCi0rICB3cml0ZSgqLCBmbXQ9IihBKSIsIGFkdmFuY2U9InllcyIpICIpIgotKwotKyAgcHJp bnQgKiwgIiIJISBEaXNwbGF5IEFycmF5IFNsaWNlIDJECi0rZW5kIHN1YnJvdXRpbmUgc2hvd18y ZAotKwotK3N1YnJvdXRpbmUgc2hvd18zZCAoYXJyYXkpCi0rICBpbnRlZ2VyLCBkaW1lbnNpb24g KDosOiw6KSA6OiBhcnJheQotKwotKyAgcHJpbnQgKiwgIiIKLSsgIHByaW50ICosICJFeHBlY3Rl ZCBHREIgT3V0cHV0OiIKLSsgIHByaW50ICosICIiCi0rCi0rICB3cml0ZSgqLCBmbXQ9IihBKSIs IGFkdmFuY2U9Im5vIikgIkdEQiA9ICgiCi0rICBkbyBpPUxCT1VORCAoYXJyYXksIDMpLCBVQk9V TkQgKGFycmF5LCAzKSwgMQotKyAgICAgaWYgKGkgPiBMQk9VTkQgKGFycmF5LCAzKSkgdGhlbgot KyAgICAgICAgd3JpdGUoKiwgZm10PSIoQSkiLCBhZHZhbmNlPSJubyIpICIgIgotKyAgICAgZW5k IGlmCi0rICAgICB3cml0ZSgqLCBmbXQ9IihBKSIsIGFkdmFuY2U9Im5vIikgIigiCi0rICAgICBk byBqPUxCT1VORCAoYXJyYXksIDIpLCBVQk9VTkQgKGFycmF5LCAyKSwgMQotKyAgICAgICAgaWYg KGogPiBMQk9VTkQgKGFycmF5LCAyKSkgdGhlbgotKyAgICAgICAgICAgd3JpdGUoKiwgZm10PSIo QSkiLCBhZHZhbmNlPSJubyIpICIgIgotKyAgICAgICAgZW5kIGlmCi0rICAgICAgICB3cml0ZSgq LCBmbXQ9IihBKSIsIGFkdmFuY2U9Im5vIikgIigiCi0rICAgICAgICBkbyBrPUxCT1VORCAoYXJy YXksIDEpLCBVQk9VTkQgKGFycmF5LCAxKSwgMQotKyAgICAgICAgICAgaWYgKGsgPiBMQk9VTkQg KGFycmF5LCAxKSkgdGhlbgotKyAgICAgICAgICAgICAgd3JpdGUoKiwgZm10PSIoQSkiLCBhZHZh bmNlPSJubyIpICIsICIKLSsgICAgICAgICAgIGVuZCBpZgotKyAgICAgICAgICAgd3JpdGUoKiwg Zm10PSIoSTApIiwgYWR2YW5jZT0ibm8iKSBhcnJheSAoaywgaiwgaSkKLSsgICAgICAgIGVuZCBk bwotKyAgICAgICAgd3JpdGUoKiwgZm10PSIoQSkiLCBhZHZhbmNlPSJubyIpICIpIgotKyAgICAg ZW5kIGRvCi0rICAgICB3cml0ZSgqLCBmbXQ9IihBKSIsIGFkdmFuY2U9Im5vIikgIikiCi0rICBl bmQgZG8KLSsgIHdyaXRlKCosIGZtdD0iKEEpIiwgYWR2YW5jZT0ieWVzIikgIikiCi0rCi0rICBw cmludCAqLCAiIgkhIERpc3BsYXkgQXJyYXkgU2xpY2UgM0QKLStlbmQgc3Vicm91dGluZSBzaG93 XzNkCi0rCi0rc3Vicm91dGluZSBzaG93XzRkIChhcnJheSkKLSsgIGludGVnZXIsIGRpbWVuc2lv biAoOiw6LDosOikgOjogYXJyYXkKLSsKLSsgIHByaW50ICosICIiCi0rICBwcmludCAqLCAiRXhw ZWN0ZWQgR0RCIE91dHB1dDoiCi0rICBwcmludCAqLCAiIgotKwotKyAgd3JpdGUoKiwgZm10PSIo QSkiLCBhZHZhbmNlPSJubyIpICJHREIgPSAoIgotKyAgZG8gaT1MQk9VTkQgKGFycmF5LCA0KSwg VUJPVU5EIChhcnJheSwgNCksIDEKLSsgICAgIGlmIChpID4gTEJPVU5EIChhcnJheSwgNCkpIHRo ZW4KLSsgICAgICAgIHdyaXRlKCosIGZtdD0iKEEpIiwgYWR2YW5jZT0ibm8iKSAiICIKLSsgICAg IGVuZCBpZgotKyAgICAgd3JpdGUoKiwgZm10PSIoQSkiLCBhZHZhbmNlPSJubyIpICIoIgotKyAg ICAgZG8gaj1MQk9VTkQgKGFycmF5LCAzKSwgVUJPVU5EIChhcnJheSwgMyksIDEKLSsgICAgICAg IGlmIChqID4gTEJPVU5EIChhcnJheSwgMykpIHRoZW4KLSsgICAgICAgICAgIHdyaXRlKCosIGZt dD0iKEEpIiwgYWR2YW5jZT0ibm8iKSAiICIKLSsgICAgICAgIGVuZCBpZgotKyAgICAgICAgd3Jp dGUoKiwgZm10PSIoQSkiLCBhZHZhbmNlPSJubyIpICIoIgotKwotKyAgICAgICAgZG8gaz1MQk9V TkQgKGFycmF5LCAyKSwgVUJPVU5EIChhcnJheSwgMiksIDEKLSsgICAgICAgICAgIGlmIChrID4g TEJPVU5EIChhcnJheSwgMikpIHRoZW4KLSsgICAgICAgICAgICAgIHdyaXRlKCosIGZtdD0iKEEp IiwgYWR2YW5jZT0ibm8iKSAiICIKLSsgICAgICAgICAgIGVuZCBpZgotKyAgICAgICAgICAgd3Jp dGUoKiwgZm10PSIoQSkiLCBhZHZhbmNlPSJubyIpICIoIgotKyAgICAgICAgICAgZG8gbD1MQk9V TkQgKGFycmF5LCAxKSwgVUJPVU5EIChhcnJheSwgMSksIDEKLSsgICAgICAgICAgICAgIGlmIChs ID4gTEJPVU5EIChhcnJheSwgMSkpIHRoZW4KLSsgICAgICAgICAgICAgICAgIHdyaXRlKCosIGZt dD0iKEEpIiwgYWR2YW5jZT0ibm8iKSAiLCAiCi0rICAgICAgICAgICAgICBlbmQgaWYKLSsgICAg ICAgICAgICAgIHdyaXRlKCosIGZtdD0iKEkwKSIsIGFkdmFuY2U9Im5vIikgYXJyYXkgKGwsIGss IGosIGkpCi0rICAgICAgICAgICBlbmQgZG8KLSsgICAgICAgICAgIHdyaXRlKCosIGZtdD0iKEEp IiwgYWR2YW5jZT0ibm8iKSAiKSIKLSsgICAgICAgIGVuZCBkbwotKyAgICAgICAgd3JpdGUoKiwg Zm10PSIoQSkiLCBhZHZhbmNlPSJubyIpICIpIgotKyAgICAgZW5kIGRvCi0rICAgICB3cml0ZSgq LCBmbXQ9IihBKSIsIGFkdmFuY2U9Im5vIikgIikiCi0rICBlbmQgZG8KLSsgIHdyaXRlKCosIGZt dD0iKEEpIiwgYWR2YW5jZT0ieWVzIikgIikiCi0rCi0rICBwcmludCAqLCAiIgkhIERpc3BsYXkg QXJyYXkgU2xpY2UgNEQKLStlbmQgc3Vicm91dGluZSBzaG93XzRkCi0gCi0rIQotKyEgU3RhcnQg b2YgdGVzdCBwcm9ncmFtLgotKyEKLStwcm9ncmFtIHRlc3QKLSAgIGludGVyZmFjZQotLSAgICAg c3Vicm91dGluZSBzaG93IChtZXNzYWdlLCBhcnJheSkKLS0gICAgICAgY2hhcmFjdGVyIChsZW49 KikgOjogbWVzc2FnZQotKyAgICAgc3Vicm91dGluZSBzaG93X3N0ciAoYXJyYXkpCi0rICAgICAg IGNoYXJhY3RlciAobGVuPSopIDo6IGFycmF5Ci0rICAgICBlbmQgc3Vicm91dGluZSBzaG93X3N0 cgotKwotKyAgICAgc3Vicm91dGluZSBzaG93XzFkIChhcnJheSkKLSsgICAgICAgaW50ZWdlciwg ZGltZW5zaW9uICg6KSA6OiBhcnJheQotKyAgICAgZW5kIHN1YnJvdXRpbmUgc2hvd18xZAotKwot KyAgICAgc3Vicm91dGluZSBzaG93XzJkIChhcnJheSkKLSAgICAgICAgaW50ZWdlciwgZGltZW5z aW9uKDosOikgOjogYXJyYXkKLS0gICAgIGVuZCBzdWJyb3V0aW5lIHNob3cKLSsgICAgIGVuZCBz dWJyb3V0aW5lIHNob3dfMmQKLSsKLSsgICAgIHN1YnJvdXRpbmUgc2hvd18zZCAoYXJyYXkpCi0r ICAgICAgIGludGVnZXIsIGRpbWVuc2lvbig6LDosOikgOjogYXJyYXkKLSsgICAgIGVuZCBzdWJy b3V0aW5lIHNob3dfM2QKLSsKLSsgICAgIHN1YnJvdXRpbmUgc2hvd180ZCAoYXJyYXkpCi0rICAg ICAgIGludGVnZXIsIGRpbWVuc2lvbig6LDosOiw6KSA6OiBhcnJheQotKyAgICAgZW5kIHN1YnJv dXRpbmUgc2hvd180ZAotICAgZW5kIGludGVyZmFjZQotIAotKyAgISBEZWNsYXJlIHZhcmlhYmxl cyB1c2VkIGluIHRoaXMgdGVzdC4KLSsgIGludGVnZXIsIGRpbWVuc2lvbiAoLTEwOi0xLC0xMDot MikgOjogbmVnX2FycmF5Ci0gICBpbnRlZ2VyLCBkaW1lbnNpb24gKDE6MTAsMToxMCkgOjogYXJy YXkKLSAgIGludGVnZXIsIGFsbG9jYXRhYmxlIDo6IG90aGVyICg6LCA6KQotKyAgY2hhcmFjdGVy IChsZW49MjYpIDo6IHN0cl8xID0gImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IgotKyAgaW50 ZWdlciwgZGltZW5zaW9uICgtMjoyLC0yOjIsLTI6MikgOjogYXJyYXkzZAotKyAgaW50ZWdlciwg ZGltZW5zaW9uICgtMzozLDc6MTAsLTM6MywtMTA6LTcpIDo6IGFycmF5NGQKLSsgIGludGVnZXIs IGRpbWVuc2lvbiAoMTA6MjApIDo6IGFycmF5MWQKLSsgIGludGVnZXIsIGRpbWVuc2lvbig6LDop LCBwb2ludGVyIDo6IHBvaW50ZXIyZCA9PiBudWxsKCkKLSsgIGludGVnZXIsIGRpbWVuc2lvbigt MTo5LC0xOjkpLCB0YXJnZXQgOjogdGFycmF5Ci0gCi0rICAhIEFsbG9jYXRlIG9yIGFzc29jaWF0 ZSBhbnkgdmFyaWFibGVzIGFzIG5lZWRlZC4KLSAgIGFsbG9jYXRlIChvdGhlciAoLTU6NCwgLTI6 NykpCi0rICBwb2ludGVyMmQgPT4gdGFycmF5Ci0gCi0tICBkbyBpPUxCT1VORCAoYXJyYXksIDIp LCBVQk9VTkQgKGFycmF5LCAyKSwgMQotLSAgICAgZG8gaj1MQk9VTkQgKGFycmF5LCAxKSwgVUJP VU5EIChhcnJheSwgMSksIDEKLS0gICAgICAgIGFycmF5IChqLGkpID0gKChpIC0gMSkgKiBVQk9V TkQgKGFycmF5LCAyKSkgKyBqCi0tICAgICBlbmQgZG8KLS0gIGVuZCBkbwotKyAgISBGaWxsIGFy cmF5cyB3aXRoIGNvbnRlbnRzIHJlYWR5IGZvciB0ZXN0aW5nLgotKyAgY2FsbCBmaWxsX2FycmF5 XzFkIChhcnJheTFkKQotKwotKyAgY2FsbCBmaWxsX2FycmF5XzJkIChuZWdfYXJyYXkpCi0rICBj YWxsIGZpbGxfYXJyYXlfMmQgKGFycmF5KQotKyAgY2FsbCBmaWxsX2FycmF5XzJkIChvdGhlcikK LSsgIGNhbGwgZmlsbF9hcnJheV8yZCAodGFycmF5KQotKwotKyAgY2FsbCBmaWxsX2FycmF5XzNk IChhcnJheTNkKQotKyAgY2FsbCBmaWxsX2FycmF5XzRkIChhcnJheTRkKQotKwotKyAgISBUaGUg dGVzdHMuICBFYWNoIGNhbGwgdG8gYSBzaG93XyogZnVuY3Rpb24gbXVzdCBoYXZlIGEgdW5pcXVl IHNldAotKyAgISBvZiBhcmd1bWVudHMgYXMgR0RCIHVzZXMgdGhlIGFyZ3VtZW50cyBhcmUgcGFy dCBvZiB0aGUgdGVzdCBuYW1lCi0rICAhIHN0cmluZywgc28gZHVwbGljYXRlIGFyZ3VtZW50cyB3 aWxsIHJlc3VsdCBpbiBkdXBsaWNhdGUgdGVzdAotKyAgISBuYW1lcy4KLSsgICEKLSsgICEgSWYg YSBzaG93XyogbGluZSBlbmRzIHdpdGggVkFSUz0uLi4gd2hlcmUgJy4uLicgaXMgYSBjb21tYQot KyAgISBzZXBhcmF0ZWQgbGlzdCBvZiB2YXJpYWJsZSBuYW1lcywgdGhlc2UgdmFyaWFibGVzIGFy ZSBhc3N1bWVkIHRvCi0rICAhIGJlIHBhcnQgb2YgdGhlIGNhbGwgbGluZSwgYW5kIHdpbGwgYmUg ZXhwYW5kZWQgYnkgdGhlIHRlc3Qgc2NyaXB0LAotKyAgISBmb3IgZXhhbXBsZToKLSsgICEKLSsg ICEgICAgIGRvIHg9MSw5LDEKLSsgICEgICAgICAgZG8geT14LDEwLDEKLSsgICEgICAgICAgICBj YWxsIHNob3dfMWQgKHNvbWVfYXJyYXkgKHgseSkpCSEgVkFSUz14LHkKLSsgICEgICAgICAgZW5k IGRvCi0rICAhICAgICBlbmQgZG8KLSsgICEKLSsgICEgSW4gdGhpcyBleGFtcGxlIHRoZSB0ZXN0 IHNjcmlwdCB3aWxsIGF1dG9tYXRpY2FsbHkgZXhwYW5kICd4JyBhbmQKLSsgICEgJ3knIGluIG9y ZGVyIHRvIGJldHRlciB0ZXN0IGRpZmZlcmVudCBhc3BlY3RzIG9mIEdEQi4gIERvIHRha2UKLSsg ICEgY2FyZSwgdGhlIGV4cGFuc2lvbiBpcyBub3QgdmVyeSAic21hcnQiLCBzbyB0cnkgdG8gYXZv aWQgY2xhc2hpbmcKLSsgICEgd2l0aCBvdGhlciB0ZXh0IG9uIHRoZSBsaW5lLCBpbiB0aGUgZXhh bXBsZSBhYm92ZSwgYXZvaWQgdmFyaWFibGVzCi0rICAhIG5hbWVkICdzb21lJyBvciAnYXJyYXkn LCBhcyB0aGVzZSB3aWxsIGxpa2VseSBjbGFzaCB3aXRoCi0rICAhICdzb21lX2FycmF5Jy4KLSsg IGNhbGwgc2hvd19zdHIgKHN0cl8xKQotKyAgY2FsbCBzaG93X3N0ciAoc3RyXzEgKDE6MjApKQot KyAgY2FsbCBzaG93X3N0ciAoc3RyXzEgKDEwOjIwKSkKLSAKLS0gIGRvIGk9TEJPVU5EIChvdGhl ciwgMiksIFVCT1VORCAob3RoZXIsIDIpLCAxCi0tICAgICBkbyBqPUxCT1VORCAob3RoZXIsIDEp LCBVQk9VTkQgKG90aGVyLCAxKSwgMQotLSAgICAgICAgb3RoZXIgKGosaSkgPSAoKGkgLSAxKSAq IFVCT1VORCAob3RoZXIsIDIpKSArIGoKLSsgIGNhbGwgc2hvd19lbGVtIChhcnJheTFkICgxMSkp Ci0rICBjYWxsIHNob3dfZWxlbSAocG9pbnRlcjJkICgyLDMpKQotKwotKyAgY2FsbCBzaG93XzFk IChhcnJheTFkKQotKyAgY2FsbCBzaG93XzFkIChhcnJheTFkICgxMzoxNykpCi0rICBjYWxsIHNo b3dfMWQgKGFycmF5MWQgKDE3OjEzOi0xKSkKLSsgIGNhbGwgc2hvd18xZCAoYXJyYXkgKDE6NSwx KSkKLSsgIGNhbGwgc2hvd18xZCAoYXJyYXk0ZCAoMSw3LDMsOikpCi0rICBjYWxsIHNob3dfMWQg KHBvaW50ZXIyZCAoLTE6MywgMikpCi0rICBjYWxsIHNob3dfMWQgKHBvaW50ZXIyZCAoLTEsIDI6 NCkpCi0rCi0rICAhIEVuY2xvc2luZyB0aGUgYXJyYXkgc2xpY2UgYXJndW1lbnQgaW4gKC4uLikg Y2F1c2VzcyBnZm9ydHJhbiB0bwotKyAgISByZXBhY2sgdGhlIGFycmF5LgotKyAgY2FsbCBzaG93 XzFkICgoYXJyYXkgKDE6NSwxKSkpCi0rCi0rICBjYWxsIHNob3dfMmQgKHBvaW50ZXIyZCkKLSsg IGNhbGwgc2hvd18yZCAoYXJyYXkpCi0rICBjYWxsIHNob3dfMmQgKGFycmF5ICgxOjUsMTo1KSkK LSsgIGRvIGk9MSwxMCwyCi0rICAgICBkbyBqPTEsMTAsMwotKyAgICAgICAgY2FsbCBzaG93XzJk IChhcnJheSAoMToxMDppLDE6MTA6aikpCSEgVkFSUz1pLGoKLSsgICAgICAgIGNhbGwgc2hvd18y ZCAoYXJyYXkgKDEwOjE6LWksMToxMDpqKSkJISBWQVJTPWksagotKyAgICAgICAgY2FsbCBzaG93 XzJkIChhcnJheSAoMTA6MTotaSwxMDoxOi1qKSkJISBWQVJTPWksagotKyAgICAgICAgY2FsbCBz aG93XzJkIChhcnJheSAoMToxMDppLDEwOjE6LWopKQkhIFZBUlM9aSxqCi0gICAgICBlbmQgZG8K LSAgIGVuZCBkbwotKyAgY2FsbCBzaG93XzJkIChhcnJheSAoNjoyOi0xLDM6OSkpCi0rICBjYWxs IHNob3dfMmQgKGFycmF5ICgxOjEwOjIsIDE6MTA6MikpCi0rICBjYWxsIHNob3dfMmQgKG90aGVy KQotKyAgY2FsbCBzaG93XzJkIChvdGhlciAoLTU6MCwgLTI6MCkpCi0rICBjYWxsIHNob3dfMmQg KG90aGVyICgtNTo0OjIsIC0yOjc6MykpCi0rICBjYWxsIHNob3dfMmQgKG5lZ19hcnJheSkKLSsg IGNhbGwgc2hvd18yZCAobmVnX2FycmF5ICgtMTA6LTMsLTg6LTQ6MikpCi0rCi0rICAhIEVuY2xv c2luZyB0aGUgYXJyYXkgc2xpY2UgYXJndW1lbnQgaW4gKC4uLikgY2F1c2VzcyBnZm9ydHJhbiB0 bwotKyAgISByZXBhY2sgdGhlIGFycmF5LgotKyAgY2FsbCBzaG93XzJkICgoYXJyYXkgKDE6MTA6 MywgMToxMDoyKSkpCi0rICBjYWxsIHNob3dfMmQgKChuZWdfYXJyYXkgKC0xMDotMywtODotNDoy KSkpCi0gCi0tICBjYWxsIHNob3cgKCJhcnJheSIsIGFycmF5KQotLSAgY2FsbCBzaG93ICgiYXJy YXkgKDE6NSwxOjUpIiwgYXJyYXkgKDE6NSwxOjUpKQotLSAgY2FsbCBzaG93ICgiYXJyYXkgKDE6 MTA6MiwxOjEwOjIpIiwgYXJyYXkgKDE6MTA6MiwxOjEwOjIpKQotLSAgY2FsbCBzaG93ICgiYXJy YXkgKDE6MTA6MywxOjEwOjIpIiwgYXJyYXkgKDE6MTA6MywxOjEwOjIpKQotLSAgY2FsbCBzaG93 ICgiYXJyYXkgKDE6MTA6NSwxOjEwOjMpIiwgYXJyYXkgKDE6MTA6NCwxOjEwOjMpKQotKyAgY2Fs bCBzaG93XzNkIChhcnJheTNkKQotKyAgY2FsbCBzaG93XzNkIChhcnJheTNkKC0xOjEsLTE6MSwt MToxKSkKLSsgIGNhbGwgc2hvd18zZCAoYXJyYXkzZCgxOi0xOi0xLDE6LTE6LTEsMTotMTotMSkp Ci0gCi0tICBjYWxsIHNob3cgKCJvdGhlciIsIG90aGVyKQotLSAgY2FsbCBzaG93ICgib3RoZXIg KC01OjAsIC0yOjApIiwgb3RoZXIgKC01OjAsIC0yOjApKQotLSAgY2FsbCBzaG93ICgib3RoZXIg KC01OjQ6MiwgLTI6NzozKSIsIG90aGVyICgtNTo0OjIsIC0yOjc6MykpCi0rICAhIEVuY2xvc2lu ZyB0aGUgYXJyYXkgc2xpY2UgYXJndW1lbnQgaW4gKC4uLikgY2F1c2VzcyBnZm9ydHJhbiB0bwot KyAgISByZXBhY2sgdGhlIGFycmF5LgotKyAgY2FsbCBzaG93XzNkICgoYXJyYXkzZCgxOi0xOi0x LDE6LTE6LTEsMTotMTotMSkpKQotIAotKyAgY2FsbCBzaG93XzRkIChhcnJheTRkKQotKyAgY2Fs bCBzaG93XzRkIChhcnJheTRkICgtMzowLDEwOjc6LTEsMDozLC03Oi0xMDotMSkpCi0rICBjYWxs IHNob3dfNGQgKGFycmF5NGQgKDM6MDotMSwgMTA6NzotMSwgOiwgLTc6LTEwOi0xKSkKLSsKLSsg ICEgRW5jbG9zaW5nIHRoZSBhcnJheSBzbGljZSBhcmd1bWVudCBpbiAoLi4uKSBjYXVzZXNzIGdm b3J0cmFuIHRvCi0rICAhIHJlcGFjayB0aGUgYXJyYXkuCi0rICBjYWxsIHNob3dfNGQgKChhcnJh eTRkICgzOi0yOi0yLCAxMDo3Oi0yLCA6LCAtNzotMTA6LTEpKSkKLSsKLSsgICEgQWxsIGRvbmUu ICBEZWFsbG9jYXRlLgotICAgZGVhbGxvY2F0ZSAob3RoZXIpCi0rCi0rICAhIEdEQiBjYXRjaGVz IHRoaXMgZmluYWwgYnJlYWtwb2ludCB0byBpbmRpY2F0ZSB0aGUgZW5kIG9mIHRoZSB0ZXN0Lgot ICAgcHJpbnQgKiwgIiIgISBGaW5hbCBCcmVha3BvaW50LgotKwotK2NvbnRhaW5zCi0rCi0rICAh IEZpbGwgYSAxRCBhcnJheSB3aXRoIGEgdW5pcXVlIHBvc2l0aXZlIGludGVnZXIgaW4gZWFjaCBl bGVtZW50LgotKyAgc3Vicm91dGluZSBmaWxsX2FycmF5XzFkIChhcnJheSkKLSsgICAgaW50ZWdl ciwgZGltZW5zaW9uICg6KSA6OiBhcnJheQotKyAgICBpbnRlZ2VyIDo6IGNvdW50ZXIKLSsKLSsg ICAgY291bnRlciA9IDEKLSsgICAgZG8gaj1MQk9VTkQgKGFycmF5LCAxKSwgVUJPVU5EIChhcnJh eSwgMSksIDEKLSsgICAgICAgYXJyYXkgKGopID0gY291bnRlcgotKyAgICAgICBjb3VudGVyID0g Y291bnRlciArIDEKLSsgICAgZW5kIGRvCi0rICBlbmQgc3Vicm91dGluZSBmaWxsX2FycmF5XzFk Ci0rCi0rICAhIEZpbGwgYSAyRCBhcnJheSB3aXRoIGEgdW5pcXVlIHBvc2l0aXZlIGludGVnZXIg aW4gZWFjaCBlbGVtZW50LgotKyAgc3Vicm91dGluZSBmaWxsX2FycmF5XzJkIChhcnJheSkKLSsg ICAgaW50ZWdlciwgZGltZW5zaW9uICg6LDopIDo6IGFycmF5Ci0rICAgIGludGVnZXIgOjogY291 bnRlcgotKwotKyAgICBjb3VudGVyID0gMQotKyAgICBkbyBpPUxCT1VORCAoYXJyYXksIDIpLCBV Qk9VTkQgKGFycmF5LCAyKSwgMQotKyAgICAgICBkbyBqPUxCT1VORCAoYXJyYXksIDEpLCBVQk9V TkQgKGFycmF5LCAxKSwgMQotKyAgICAgICAgICBhcnJheSAoaixpKSA9IGNvdW50ZXIKLSsgICAg ICAgICAgY291bnRlciA9IGNvdW50ZXIgKyAxCi0rICAgICAgIGVuZCBkbwotKyAgICBlbmQgZG8K LSsgIGVuZCBzdWJyb3V0aW5lIGZpbGxfYXJyYXlfMmQKLSsKLSsgICEgRmlsbCBhIDNEIGFycmF5 IHdpdGggYSB1bmlxdWUgcG9zaXRpdmUgaW50ZWdlciBpbiBlYWNoIGVsZW1lbnQuCi0rICBzdWJy b3V0aW5lIGZpbGxfYXJyYXlfM2QgKGFycmF5KQotKyAgICBpbnRlZ2VyLCBkaW1lbnNpb24gKDos Oiw6KSA6OiBhcnJheQotKyAgICBpbnRlZ2VyIDo6IGNvdW50ZXIKLSsKLSsgICAgY291bnRlciA9 IDEKLSsgICAgZG8gaT1MQk9VTkQgKGFycmF5LCAzKSwgVUJPVU5EIChhcnJheSwgMyksIDEKLSsg ICAgICAgZG8gaj1MQk9VTkQgKGFycmF5LCAyKSwgVUJPVU5EIChhcnJheSwgMiksIDEKLSsgICAg ICAgICAgZG8gaz1MQk9VTkQgKGFycmF5LCAxKSwgVUJPVU5EIChhcnJheSwgMSksIDEKLSsgICAg ICAgICAgICAgYXJyYXkgKGssIGosaSkgPSBjb3VudGVyCi0rICAgICAgICAgICAgIGNvdW50ZXIg PSBjb3VudGVyICsgMQotKyAgICAgICAgICBlbmQgZG8KLSsgICAgICAgZW5kIGRvCi0rICAgIGVu ZCBkbwotKyAgZW5kIHN1YnJvdXRpbmUgZmlsbF9hcnJheV8zZAotKwotKyAgISBGaWxsIGEgNEQg YXJyYXkgd2l0aCBhIHVuaXF1ZSBwb3NpdGl2ZSBpbnRlZ2VyIGluIGVhY2ggZWxlbWVudC4KLSsg IHN1YnJvdXRpbmUgZmlsbF9hcnJheV80ZCAoYXJyYXkpCi0rICAgIGludGVnZXIsIGRpbWVuc2lv biAoOiw6LDosOikgOjogYXJyYXkKLSsgICAgaW50ZWdlciA6OiBjb3VudGVyCi0rCi0rICAgIGNv dW50ZXIgPSAxCi0rICAgIGRvIGk9TEJPVU5EIChhcnJheSwgNCksIFVCT1VORCAoYXJyYXksIDQp LCAxCi0rICAgICAgIGRvIGo9TEJPVU5EIChhcnJheSwgMyksIFVCT1VORCAoYXJyYXksIDMpLCAx Ci0rICAgICAgICAgIGRvIGs9TEJPVU5EIChhcnJheSwgMiksIFVCT1VORCAoYXJyYXksIDIpLCAx Ci0rICAgICAgICAgICAgIGRvIGw9TEJPVU5EIChhcnJheSwgMSksIFVCT1VORCAoYXJyYXksIDEp LCAxCi0rICAgICAgICAgICAgICAgIGFycmF5IChsLCBrLCBqLGkpID0gY291bnRlcgotKyAgICAg ICAgICAgICAgICBjb3VudGVyID0gY291bnRlciArIDEKLSsgICAgICAgICAgICAgZW5kIGRvCi0r ICAgICAgICAgIGVuZCBkbwotKyAgICAgICBlbmQgZG8KLSsgICAgZW5kIGRvCi0rICAgIHByaW50 ICosICIiCi0rICBlbmQgc3Vicm91dGluZSBmaWxsX2FycmF5XzRkCi0gZW5kIHByb2dyYW0gdGVz dAotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXNpemVvZi5leHAg Yi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zaXplb2YuZXhwCi0tLS0gYS9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zaXplb2YuZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL3ZsYS1zaXplb2YuZXhwCi1AQCAtNDQsNyArNDQsNyBAQCBnZGJfY29udGludWVf dG9fYnJlYWtwb2ludCAidmxhMS1hbGxvY2F0ZWQiCi0gZ2RiX3Rlc3QgInByaW50IHNpemVvZih2 bGExKSIgIiA9IDQwMDAiICJwcmludCBzaXplb2YgYWxsb2NhdGVkIHZsYTEiCi0gZ2RiX3Rlc3Qg InByaW50IHNpemVvZih2bGExKDMsMiwxKSkiICI0IiBcCi0gICAgICJwcmludCBzaXplb2YgZWxl bWVudCBmcm9tIGFsbG9jYXRlZCB2bGExIgotLWdkYl90ZXN0ICJwcmludCBzaXplb2YodmxhMSgz OjQsMiwxKSkiICI4MDAiIFwKLStnZGJfdGVzdCAicHJpbnQgc2l6ZW9mKHZsYTEoMzo0LDIsMSkp IiAiOCIgXAotICAgICAicHJpbnQgc2l6ZW9mIHNsaWNlZCB2bGExIgotIAotICMgVHJ5IHRvIGFj Y2VzcyB2YWx1ZXMgaW4gdW5kZWZpbmVkIHBvaW50ZXIgdG8gVkxBIChkYW5nbGluZykKLUBAIC02 MSw3ICs2MSw3IEBAIGdkYl9jb250aW51ZV90b19icmVha3BvaW50ICJwdmxhLWFzc29jaWF0ZWQi Ci0gZ2RiX3Rlc3QgInByaW50IHNpemVvZihwdmxhKSIgIiA9IDQwMDAiICJwcmludCBzaXplb2Yg YXNzb2NpYXRlZCBwdmxhIgotIGdkYl90ZXN0ICJwcmludCBzaXplb2YocHZsYSgzLDIsMSkpIiAi NCIgXAotICAgICAicHJpbnQgc2l6ZW9mIGVsZW1lbnQgZnJvbSBhc3NvY2lhdGVkIHB2bGEiCi0t Z2RiX3Rlc3QgInByaW50IHNpemVvZihwdmxhKDM6NCwyLDEpKSIgIjgwMCIgInByaW50IHNpemVv ZiBzbGljZWQgcHZsYSIKLStnZGJfdGVzdCAicHJpbnQgc2l6ZW9mKHB2bGEoMzo0LDIsMSkpIiAi OCIgInByaW50IHNpemVvZiBzbGljZWQgcHZsYSIKLSAKLSBnZGJfYnJlYWtwb2ludCBbZ2RiX2dl dF9saW5lX251bWJlciAidmxhMS1uZWctYm91bmRzLXYxIl0KLSBnZGJfY29udGludWVfdG9fYnJl YWtwb2ludCAidmxhMS1uZWctYm91bmRzLXYxIgoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6MTk2NDE2 Ny1mb3J0cmFuLWFycmF5LXN0cmlkZXMtaW4tZXhwcmVzc2lvbnMucGF0Y2ggYi9nZGItcmhiejE5 NjQxNjctZm9ydHJhbi1hcnJheS1zdHJpZGVzLWluLWV4cHJlc3Npb25zLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMjNlYzM0Li4wMDAwMDAwCi0tLSBhL2dkYi1yaGJ6MTk2 NDE2Ny1mb3J0cmFuLWFycmF5LXN0cmlkZXMtaW4tZXhwcmVzc2lvbnMucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwxOTMgKzAsMCBAQAotRnJvbSBGRURPUkFfUEFUQ0hFUyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKLUZyb206IEtldmluIEJ1ZXR0bmVyIDxrZXZpbmJAcmVkaGF0LmNvbT4KLURh dGU6IE1vbiwgMjQgTWF5IDIwMjEgMjI6MzA6MzIgLTA3MDAKLVN1YmplY3Q6IGdkYi1yaGJ6MTk2 NDE2Ny1mb3J0cmFuLWFycmF5LXN0cmlkZXMtaW4tZXhwcmVzc2lvbnMucGF0Y2gKLQotOzsgW2Zv cnRyYW5dIEJhY2twb3J0IEFuZHJldyBCdXJnZXNzJ3MgY29tbWl0IHdoaWNoIGFkZHMgc3VwcG9y dAotOzsgZm9yIGFycmF5IHN0cmlkZXMgaW4gZXhwcmVzc2lvbnMuCi0KLWdkYi9mb3J0cmFuOiBh ZGQgc3VwcG9ydCBmb3IgcGFyc2luZyBhcnJheSBzdHJpZGVzIGluIGV4cHJlc3Npb25zCi0KLVdp dGggdGhpcyBjb21taXQgR0RCIG5vdyB1bmRlcnN0YW5kcyB0aGUgc3ludGF4IG9mIEZvcnRyYW4g YXJyYXkKLXN0cmlkZXMsIGEgdXNlciBjYW4gdHlwZSBhbiBleHByZXNzaW9uIGluY2x1ZGluZyBh biBhcnJheSBzdHJpZGUsIGJ1dAotdGhleSB3aWxsIG9ubHkgZ2V0IGFuIGVycm9yIGluZm9ybWlu ZyB0aGVtIHRoYXQgYXJyYXkgc3RyaWRlcyBhcmUgbm90Ci1zdXBwb3J0ZWQuCi0KLVRoaXMgYWxv bmUgaXMgYW4gaW1wcm92ZW1lbnQgb24gd2hhdCB3ZSBoYWQgYmVmb3JlIGluIEdEQiwgYmV0dGVy IHRvCi1naXZlIHRoZSB1c2VyIGEgaGVscGZ1bCBtZXNzYWdlIHRoYXQgYSBwYXJ0aWN1bGFyIGZl YXR1cmUgaXMgbm90Ci1zdXBwb3J0ZWQgdGhhbiB0byBqdXN0IGNsYWltIGEgc3ludGF4IGVycm9y LgotCi1CZWZvcmU6Ci0KLSAgKGdkYikgcCBhcnJheSAoMToxMDoyLCAyOjEwOjIpCi0gIEEgc3lu dGF4IGVycm9yIGluIGV4cHJlc3Npb24sIG5lYXIgYDoyLCAyOjEwOjIpJy4KLQotTm93OgotCi0g IChnZGIpIHAgYXJyYXkgKDE6MTA6MiwgMjoxMDoyKQotICBGb3J0cmFuIGFycmF5IHN0cmlkZXMg YXJlIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkCi0KLUxhdGVyIGNvbW1pdHMgd2lsbCBhbGxvdyBH REIgdG8gaGFuZGxlIGFycmF5IHN0cmlkZXMgY29ycmVjdGx5LgotCi1nZGIvQ2hhbmdlTG9nOgot Ci0JKiBleHBwcmludC5jIChkdW1wX3N1YmV4cF9ib2R5X3N0YW5kYXJkKTogUHJpbnQgUkFOR0Vf SEFTX1NUUklERS4KLQkqIGV4cHJlc3Npb24uaCAoZW51bSByYW5nZV90eXBlKTogQWRkIFJBTkdF X0hBU19TVFJJREUuCi0JKiBmLWV4cC55IChhcmdsaXN0KTogQWxsb3cgZm9yIGEgc2VyaWVzIG9m IHN1YnJhbmdlcy4KLQkoc3VicmFuZ2UpOiBBZGQgY2FzZXMgZm9yIHN1YnJhbmdlcyB3aXRoIHN0 cmlkZXMuCi0JKiBmLWxhbmcuYyAodmFsdWVfZjkwX3N1YmFycmF5KTogQ2F0Y2ggdXNlIG9mIGFy cmF5IHN0cmlkZXMgYW5kCi0JdGhyb3cgYW4gZXJyb3IuCi0JKiBwYXJzZS5jIChvcGVyYXRvcl9s ZW5ndGhfc3RhbmRhcmQpOiBIYW5kbGUgUkFOR0VfSEFTX1NUUklERS4KLQotZ2RiL3Rlc3RzdWl0 ZS9DaGFuZ2VMb2c6Ci0KLQkqIGdkYi5mb3J0cmFuL2FycmF5LXNsaWNlcy5leHA6IEFkZCBhIG5l dyB0ZXN0LgotCi1kaWZmIC0tZ2l0IGEvZ2RiL2V4cHByaW50LmMgYi9nZGIvZXhwcHJpbnQuYwot LS0tIGEvZ2RiL2V4cHByaW50LmMKLSsrKyBiL2dkYi9leHBwcmludC5jCi1AQCAtMTExOCwxMiAr MTExOCwxNiBAQCBkdW1wX3N1YmV4cF9ib2R5X3N0YW5kYXJkIChzdHJ1Y3QgZXhwcmVzc2lvbiAq ZXhwLAotIAlmcHV0c19maWx0ZXJlZCAoIi4uIiwgc3RyZWFtKTsKLSAJaWYgKCEocmFuZ2VfZmxh ZyAmIFJBTkdFX0hJR0hfQk9VTkRfREVGQVVMVCkpCi0gCSAgZnB1dHNfZmlsdGVyZWQgKCJFWFAi LCBzdHJlYW0pOwotKwlpZiAocmFuZ2VfZmxhZyAmIFJBTkdFX0hBU19TVFJJREUpCi0rCSAgZnB1 dHNfZmlsdGVyZWQgKCI6RVhQIiwgc3RyZWFtKTsKLSAJZnB1dHNfZmlsdGVyZWQgKCInIiwgc3Ry ZWFtKTsKLSAKLSAJaWYgKCEocmFuZ2VfZmxhZyAmIFJBTkdFX0xPV19CT1VORF9ERUZBVUxUKSkK LSAJICBlbHQgPSBkdW1wX3N1YmV4cCAoZXhwLCBzdHJlYW0sIGVsdCk7Ci0gCWlmICghKHJhbmdl X2ZsYWcgJiBSQU5HRV9ISUdIX0JPVU5EX0RFRkFVTFQpKQotIAkgIGVsdCA9IGR1bXBfc3ViZXhw IChleHAsIHN0cmVhbSwgZWx0KTsKLSsJaWYgKHJhbmdlX2ZsYWcgJiBSQU5HRV9IQVNfU1RSSURF KQotKwkgIGVsdCA9IGR1bXBfc3ViZXhwIChleHAsIHN0cmVhbSwgZWx0KTsKLSAgICAgICB9Ci0g ICAgICAgYnJlYWs7Ci0gCi1kaWZmIC0tZ2l0IGEvZ2RiL2V4cHJlc3Npb24uaCBiL2dkYi9leHBy ZXNzaW9uLmgKLS0tLSBhL2dkYi9leHByZXNzaW9uLmgKLSsrKyBiL2dkYi9leHByZXNzaW9uLmgK LUBAIC0xOTksNiArMTk5LDkgQEAgZW51bSByYW5nZV9mbGFnIDogdW5zaWduZWQKLSAKLSAgIC8q IFRoZSBoaWdoIGJvdW5kIG9mIHRoaXMgcmFuZ2UgaXMgZXhjbHVzaXZlLiAgKi8KLSAgIFJBTkdF X0hJR0hfQk9VTkRfRVhDTFVTSVZFID0gMSA8PCAyLAotKwotKyAgLyogVGhlIHJhbmdlIGhhcyBh IHN0cmlkZS4gICovCi0rICBSQU5HRV9IQVNfU1RSSURFID0gMSA8PCAzLAotIH07Ci0gCi0gREVG X0VOVU1fRkxBR1NfVFlQRSAoZW51bSByYW5nZV9mbGFnLCByYW5nZV9mbGFncyk7Ci1kaWZmIC0t Z2l0IGEvZ2RiL2YtZXhwLnkgYi9nZGIvZi1leHAueQotLS0tIGEvZ2RiL2YtZXhwLnkKLSsrKyBi L2dkYi9mLWV4cC55Ci1AQCAtMjg0LDYgKzI4NCwxMCBAQCBhcmdsaXN0CToJYXJnbGlzdCAnLCcg ZXhwICAgJXByZWMgQUJPVkVfQ09NTUEKLSAJCQl7IHBzdGF0ZS0+YXJnbGlzdF9sZW4rKzsgfQot IAk7Ci0gCi0rYXJnbGlzdAk6CWFyZ2xpc3QgJywnIHN1YnJhbmdlICAgJXByZWMgQUJPVkVfQ09N TUEKLSsJCQl7IHBzdGF0ZS0+YXJnbGlzdF9sZW4rKzsgfQotKwk7Ci0rCi0gLyogVGhlcmUgYXJl IGZvdXIgc29ydHMgb2Ygc3VicmFuZ2UgdHlwZXMgaW4gRjkwLiAgKi8KLSAKLSBzdWJyYW5nZToJ ZXhwICc6JyBleHAJJXByZWMgQUJPVkVfQ09NTUEKLUBAIC0zMTQsNiArMzE4LDM4IEBAIHN1YnJh bmdlOgknOicJJXByZWMgQUJPVkVfQ09NTUEKLSAJCQkgIHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChw c3RhdGUsIE9QX1JBTkdFKTsgfQotIAk7Ci0gCi0rLyogQW5kIGVhY2ggb2YgdGhlIGZvdXIgc3Vi cmFuZ2UgdHlwZXMgY2FuIGFsc28gaGF2ZSBhIHN0cmlkZS4gICovCi0rc3VicmFuZ2U6CWV4cCAn OicgZXhwICc6JyBleHAJJXByZWMgQUJPVkVfQ09NTUEKLSsJCQl7IHdyaXRlX2V4cF9lbHRfb3Bj b2RlIChwc3RhdGUsIE9QX1JBTkdFKTsKLSsJCQkgIHdyaXRlX2V4cF9lbHRfbG9uZ2NzdCAocHN0 YXRlLCBSQU5HRV9IQVNfU1RSSURFKTsKLSsJCQkgIHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3Rh dGUsIE9QX1JBTkdFKTsgfQotKwk7Ci0rCi0rc3VicmFuZ2U6CWV4cCAnOicgJzonIGV4cAklcHJl YyBBQk9WRV9DT01NQQotKwkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFO R0UpOwotKwkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsCi0rCQkJCQkJIChSQU5H RV9ISUdIX0JPVU5EX0RFRkFVTFQKLSsJCQkJCQkgIHwgUkFOR0VfSEFTX1NUUklERSkpOwotKwkJ CSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOyB9Ci0rCTsKLSsKLStz dWJyYW5nZToJJzonIGV4cCAnOicgZXhwCSVwcmVjIEFCT1ZFX0NPTU1BCi0rCQkJeyB3cml0ZV9l eHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7Ci0rCQkJICB3cml0ZV9leHBfZWx0X2xv bmdjc3QgKHBzdGF0ZSwKLSsJCQkJCQkgKFJBTkdFX0xPV19CT1VORF9ERUZBVUxUCi0rCQkJCQkJ ICB8IFJBTkdFX0hBU19TVFJJREUpKTsKLSsJCQkgIHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3Rh dGUsIE9QX1JBTkdFKTsgfQotKwk7Ci0rCi0rc3VicmFuZ2U6CSc6JyAnOicgZXhwCSVwcmVjIEFC T1ZFX0NPTU1BCi0rCQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7 Ci0rCQkJICB3cml0ZV9leHBfZWx0X2xvbmdjc3QgKHBzdGF0ZSwKLSsJCQkJCQkgKFJBTkdFX0xP V19CT1VORF9ERUZBVUxUCi0rCQkJCQkJICB8IFJBTkdFX0hJR0hfQk9VTkRfREVGQVVMVAotKwkJ CQkJCSAgfCBSQU5HRV9IQVNfU1RSSURFKSk7Ci0rCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAo cHN0YXRlLCBPUF9SQU5HRSk7IH0KLSsJOwotKwotIGNvbXBsZXhudW06ICAgICBleHAgJywnIGV4 cCAKLSAgICAgICAgICAgICAgICAgCXsgfSAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAg ICAgICA7Ci1kaWZmIC0tZ2l0IGEvZ2RiL2YtbGFuZy5jIGIvZ2RiL2YtbGFuZy5jCi0tLS0gYS9n ZGIvZi1sYW5nLmMKLSsrKyBiL2dkYi9mLWxhbmcuYwotQEAgLTEyNCw3ICsxMjQsNyBAQCB2YWx1 ZV9mOTBfc3ViYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJyYXksCi0gCQkgICAgc3RydWN0IGV4cHJl c3Npb24gKmV4cCwgaW50ICpwb3MsIGVudW0gbm9zaWRlIG5vc2lkZSkKLSB7Ci0gICBpbnQgcGMg PSAoKnBvcykgKyAxOwotLSAgTE9OR0VTVCBsb3dfYm91bmQsIGhpZ2hfYm91bmQ7Ci0rICBMT05H RVNUIGxvd19ib3VuZCwgaGlnaF9ib3VuZCwgc3RyaWRlOwotICAgc3RydWN0IHR5cGUgKnJhbmdl ID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJyYXkpLT5pbmRleF90eXBlICgpKTsKLSAg IGVudW0gcmFuZ2VfZmxhZyByYW5nZV9mbGFnCi0gICAgID0gKGVudW0gcmFuZ2VfZmxhZykgbG9u Z2VzdF90b19pbnQgKGV4cC0+ZWx0c1twY10ubG9uZ2NvbnN0KTsKLUBAIC0xNDEsNiArMTQxLDE0 IEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwKLSAgIGVsc2UKLSAg ICAgaGlnaF9ib3VuZCA9IHZhbHVlX2FzX2xvbmcgKGV2YWx1YXRlX3N1YmV4cCAobnVsbHB0ciwg ZXhwLCBwb3MsIG5vc2lkZSkpOwotIAotKyAgaWYgKHJhbmdlX2ZsYWcgJiBSQU5HRV9IQVNfU1RS SURFKQotKyAgICBzdHJpZGUgPSB2YWx1ZV9hc19sb25nIChldmFsdWF0ZV9zdWJleHAgKG51bGxw dHIsIGV4cCwgcG9zLCBub3NpZGUpKTsKLSsgIGVsc2UKLSsgICAgc3RyaWRlID0gMTsKLSsKLSsg IGlmIChzdHJpZGUgIT0gMSkKLSsgICAgZXJyb3IgKF8oIkZvcnRyYW4gYXJyYXkgc3RyaWRlcyBh cmUgbm90IGN1cnJlbnRseSBzdXBwb3J0ZWQiKSk7Ci0rCi0gICByZXR1cm4gdmFsdWVfc2xpY2Ug KGFycmF5LCBsb3dfYm91bmQsIGhpZ2hfYm91bmQgLSBsb3dfYm91bmQgKyAxKTsKLSB9Ci0gCi1k aWZmIC0tZ2l0IGEvZ2RiL3BhcnNlLmMgYi9nZGIvcGFyc2UuYwotLS0tIGEvZ2RiL3BhcnNlLmMK LSsrKyBiL2dkYi9wYXJzZS5jCi1AQCAtOTI0LDYgKzkyNCw4IEBAIG9wZXJhdG9yX2xlbmd0aF9z dGFuZGFyZCAoY29uc3Qgc3RydWN0IGV4cHJlc3Npb24gKmV4cHIsIGludCBlbmRwb3MsCi0gICAg ICAgLyogQXNzdW1lIHRoZSByYW5nZSBoYXMgMiBhcmd1bWVudHMgKGxvdyBib3VuZCBhbmQgaGln aCBib3VuZCksIHRoZW4KLSAJIHJlZHVjZSB0aGUgYXJndW1lbnQgY291bnQgaWYgYW55IGJvdW5k cyBhcmUgc2V0IHRvIGRlZmF1bHQuICAqLwotICAgICAgIGFyZ3MgPSAyOwotKyAgICAgIGlmIChy YW5nZV9mbGFnICYgUkFOR0VfSEFTX1NUUklERSkKLSsJKythcmdzOwotICAgICAgIGlmIChyYW5n ZV9mbGFnICYgUkFOR0VfTE9XX0JPVU5EX0RFRkFVTFQpCi0gCS0tYXJnczsKLSAgICAgICBpZiAo cmFuZ2VfZmxhZyAmIFJBTkdFX0hJR0hfQk9VTkRfREVGQVVMVCkKLWRpZmYgLS1naXQgYS9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL2FycmF5LXNsaWNlcy5leHAgYi9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL2FycmF5LXNsaWNlcy5leHAKLS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vYXJyYXktc2xpY2VzLmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9hcnJh eS1zbGljZXMuZXhwCi1AQCAtNjYsMyArNjYsMTkgQEAgZm9yZWFjaCByZXN1bHQgJGFycmF5X2Nv bnRlbnRzIG1zZyAkbWVzc2FnZV9zdHJpbmdzIHsKLSB9Ci0gCi0gZ2RiX2NvbnRpbnVlX3RvX2Jy ZWFrcG9pbnQgImNvbnRpbnVlIHRvIEZpbmFsIEJyZWFrcG9pbnQiCi0rCi0rIyBOZXh0IHRlc3Qg dGhhdCBhc2tpbmcgZm9yIGFuIGFycmF5IHdpdGggc3RyaWRlIGF0IHRoZSBDTEkgZ2l2ZXMgYW4K LSsjIGVycm9yLgotK2NsZWFuX3Jlc3RhcnQgJHt0ZXN0ZmlsZX0KLSsKLStpZiAhW2ZvcnRyYW5f cnVudG9fbWFpbl0gdGhlbiB7Ci0rICAgIHBlcnJvciAiY291bGRuJ3QgcnVuIHRvIG1haW4iCi0r ICAgIGNvbnRpbnVlCi0rfQotKwotK2dkYl9icmVha3BvaW50ICJzaG93IgotK2dkYl9jb250aW51 ZV90b19icmVha3BvaW50ICJzaG93IgotK2dkYl90ZXN0ICJ1cCIgIi4qIgotK2dkYl90ZXN0ICJw IGFycmF5ICgxOjEwOjIsIDE6MTA6MikiIFwKLSsgICAgIkZvcnRyYW4gYXJyYXkgc3RyaWRlcyBh cmUgbm90IGN1cnJlbnRseSBzdXBwb3J0ZWQiIFwKLSsgICAgInVzaW5nIGFycmF5IHN0cmlkZSBn aXZlcyBhbiBlcnJvciIKCmRpZmYgLS1naXQgYS9nZGItcmhiejE5NjQxNjctZm9ydHJhbi1jbGVh bi11cC1hcnJheS1leHByZXNzaW9uLWV2YWx1YXRpb24ucGF0Y2ggYi9nZGItcmhiejE5NjQxNjct Zm9ydHJhbi1jbGVhbi11cC1hcnJheS1leHByZXNzaW9uLWV2YWx1YXRpb24ucGF0Y2gKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdiNjIwMjIuLjAwMDAwMDAKLS0tIGEvZ2RiLXJoYnox OTY0MTY3LWZvcnRyYW4tY2xlYW4tdXAtYXJyYXktZXhwcmVzc2lvbi1ldmFsdWF0aW9uLnBhdGNo CisrKyAvZGV2L251bGwKQEAgLTEsMjA5ICswLDAgQEAKLUZyb20gRkVET1JBX1BBVENIRVMgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLZXZpbiBCdWV0dG5lciA8a2V2aW5iQHJlZGhh dC5jb20+Ci1EYXRlOiBNb24sIDI0IE1heSAyMDIxIDE2OjUzOjIyIC0wNzAwCi1TdWJqZWN0OiBn ZGItcmhiejE5NjQxNjctZm9ydHJhbi1jbGVhbi11cC1hcnJheS1leHByZXNzaW9uLWV2YWx1YXRp b24ucGF0Y2gKLQotOzsgW2ZvcnRyYW5dIEJhY2twb3J0IEFuZHJldyBCdXJnZXNzJ3MgY29tbWl0 IHdoaWNoIGNsZWFucyB1cAotOzsgYXJyYXkvc3RyaW5nIGV4cHJlc3Npb24gZXZhbHVhdGlvbi4K LQotZ2RiL2ZvcnRyYW46IENsZWFuIHVwIGFycmF5L3N0cmluZyBleHByZXNzaW9uIGV2YWx1YXRp b24KLQotVGhpcyBjb21taXQgaXMgYSByZWZhY3RvciBvZiBwYXJ0IG9mIHRoZSBGb3J0cmFuIGFy cmF5IGFuZCBzdHJpbmcKLWhhbmRsaW5nIGNvZGUuCi0KLVRoZSBjdXJyZW50IGNvZGUgaXMgc3Bs aXQgaW50byB0d28gYmxvY2tzLCBsaW5rZWQsIHdlaXJkbHksIHdpdGggYQotZ290by4gIEFmdGVy IHRoaXMgY29tbWl0IGFsbCB0aGUgY29kZSBpcyBtb3ZlZCB0byBpdHMgb3duIGZ1bmN0aW9uLAot YW5kIGFycmF5cyBhbmQgc3RyaW5ncyBhcmUgbm93IGhhbmRsZWQgdXNpbmcgdGhlIHNhbWUgY29k ZTsgdGhpcyB3aWxsCi1iZSB1c2VmdWwgbGF0ZXIgd2hlbiBJIHdhbnQgdG8gYWRkIGFycmF5IHN0 cmlkZSBzdXBwb3J0IHdoZXJlIHN0cmluZ3MKLXdpbGwgd2FudCB0byBiZSB0cmVhdGVkIGp1c3Qg bGlrZSBhcnJheXMsIGJ1dCBpcyBhIGdvb2QgY2xlYW4gdXAgZXZlbgotd2l0aG91dCB0aGUgYXJy YXkgc3RyaWRlIHdvcmssIHdoaWNoIGlzIHdoeSBJJ20gbWVyZ2luZyBpdCBub3cuCi0KLUZvciBu b3cgdGhlIG5ldyBmdW5jdGlvbiBpcyBhZGRlZCBhcyBhIHN0YXRpYyB3aXRoaW4gZXZhbC5jLCBl dmVuCi10aG91Z2ggdGhlIGZ1bmN0aW9uIGlzIEZvcnRyYW4gb25seS4gIEEgZm9sbG93aW5nIGNv bW1pdCB3aWxsIHJlbW92ZQotc29tZSBvZiB0aGUgRm9ydHJhbiBzcGVjaWZpYyBjb2RlIGZyb20g ZXZhbC5jIGludG8gb25lIG9mIHRoZSBGb3J0cmFuCi1zcGVjaWZpYyBmaWxlcywgaW5jbHVkaW5n IHRoaXMgbmV3IGZ1bmN0aW9uLgotCi1UaGVyZSBzaG91bGQgYmUgbm8gdXNlciB2aXNpYmxlIGNo YW5nZXMgYWZ0ZXIgdGhpcyBjb21taXQuCi0KLWdkYi9DaGFuZ2VMb2c6Ci0KLQkqIGV2YWwuYyAo Zm9ydHJhbl92YWx1ZV9zdWJhcnJheSk6IE5ldyBmdW5jdGlvbiwgY29udGVudCBpcyB0YWtlbgot CWZyb20uLi4KLQkoZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkKTogLi4uaGVyZSwgaW4gdHdvIHBs YWNlcy4gIE5vdyBhcnJheXMKLQlhbmQgc3RyaW5ncyBib3RoIGNhbGwgdGhlIG5ldyBmdW5jdGlv bi4KLQkoY2FsY19mNzdfYXJyYXlfZGltcyk6IEFkZCBoZWFkZXIgY29tbWVudCwgaGFuZGxlIHN0 cmluZ3MuCi0KLWRpZmYgLS1naXQgYS9nZGIvZXZhbC5jIGIvZ2RiL2V2YWwuYwotLS0tIGEvZ2Ri L2V2YWwuYwotKysrIGIvZ2RiL2V2YWwuYwotQEAgLTEyNjAsNiArMTI2MCw2NyBAQCBpc19pbnRl Z3JhbF9vcl9pbnRlZ3JhbF9yZWZlcmVuY2UgKHN0cnVjdCB0eXBlICp0eXBlKQotIAkgICYmIGlz X2ludGVncmFsX3R5cGUgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpKSk7Ci0gfQotIAotKy8qIENh bGxlZCBmcm9tIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCB0byBwZXJmb3JtIGFycmF5IGluZGV4 aW5nLCBhbmQKLSsgICBzdWItcmFuZ2UgZXh0cmFjdGlvbiwgZm9yIEZvcnRyYW4uICBBcyB3ZWxs IGFzIGFycmF5cyB0aGlzIGZ1bmN0aW9uCi0rICAgYWxzbyBoYW5kbGVzIHN0cmluZ3MgYXMgdGhl eSBjYW4gYmUgdHJlYXRlZCBsaWtlIGFycmF5cyBvZiBjaGFyYWN0ZXJzLgotKyAgIEFSUkFZIGlz IHRoZSBhcnJheSBvciBzdHJpbmcgYmVpbmcgYWNjZXNzZWQuICBFWFAsIFBPUywgYW5kIE5PU0lE RSBhcmUKLSsgICBhcyBmb3IgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkLCBhbmQgTkFSR1MgaXMg dGhlIG51bWJlciBvZiBhcmd1bWVudHMKLSsgICBpbiB0aGlzIGFjY2VzcyAoZS5nLiAnYXJyYXkg KDEsMiwzKScgd291bGQgYmUgTkFSR1MgMykuICAqLwotKwotK3N0YXRpYyBzdHJ1Y3QgdmFsdWUg KgotK2ZvcnRyYW5fdmFsdWVfc3ViYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIHN0cnVjdCBl eHByZXNzaW9uICpleHAsCi0rCQkJaW50ICpwb3MsIGludCBuYXJncywgZW51bSBub3NpZGUgbm9z aWRlKQotK3sKLSsgIGlmIChleHAtPmVsdHNbKnBvc10ub3Bjb2RlID09IE9QX1JBTkdFKQotKyAg ICByZXR1cm4gdmFsdWVfZjkwX3N1YmFycmF5IChhcnJheSwgZXhwLCBwb3MsIG5vc2lkZSk7Ci0r Ci0rICBpZiAobm9zaWRlID09IEVWQUxfU0tJUCkKLSsgICAgewotKyAgICAgIHNraXBfdW5kZXRl cm1pbmVkX2FyZ2xpc3QgKG5hcmdzLCBleHAsIHBvcywgbm9zaWRlKTsKLSsgICAgICAvKiBSZXR1 cm4gdGhlIGR1bW15IHZhbHVlIHdpdGggdGhlIGNvcnJlY3QgdHlwZS4gICovCi0rICAgICAgcmV0 dXJuIGFycmF5OwotKyAgICB9Ci0rCi0rICBMT05HRVNUIHN1YnNjcmlwdF9hcnJheVtNQVhfRk9S VFJBTl9ESU1TXTsKLSsgIGludCBuZGltZW5zaW9ucyA9IDE7Ci0rICBzdHJ1Y3QgdHlwZSAqdHlw ZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFycmF5KSk7Ci0rCi0rICBpZiAobmFyZ3Mg PiBNQVhfRk9SVFJBTl9ESU1TKQotKyAgICBlcnJvciAoXygiVG9vIG1hbnkgc3Vic2NyaXB0cyBm b3IgRjc3ICglZCBNYXgpIiksIE1BWF9GT1JUUkFOX0RJTVMpOwotKwotKyAgbmRpbWVuc2lvbnMg PSBjYWxjX2Y3N19hcnJheV9kaW1zICh0eXBlKTsKLSsKLSsgIGlmIChuYXJncyAhPSBuZGltZW5z aW9ucykKLSsgICAgZXJyb3IgKF8oIldyb25nIG51bWJlciBvZiBzdWJzY3JpcHRzIikpOwotKwot KyAgZ2RiX2Fzc2VydCAobmFyZ3MgPiAwKTsKLSsKLSsgIC8qIE5vdyB0aGF0IHdlIGtub3cgd2Ug aGF2ZSBhIGxlZ2FsIGFycmF5IHN1YnNjcmlwdCBleHByZXNzaW9uIGxldCB1cwotKyAgICAgYWN0 dWFsbHkgZmluZCBvdXQgd2hlcmUgdGhpcyBlbGVtZW50IGV4aXN0cyBpbiB0aGUgYXJyYXkuICAq LwotKwotKyAgLyogVGFrZSBhcnJheSBpbmRpY2VzIGxlZnQgdG8gcmlnaHQuICAqLwotKyAgZm9y IChpbnQgaSA9IDA7IGkgPCBuYXJnczsgaSsrKQotKyAgICB7Ci0rICAgICAgLyogRXZhbHVhdGUg ZWFjaCBzdWJzY3JpcHQ7IGl0IG11c3QgYmUgYSBsZWdhbCBpbnRlZ2VyIGluIEY3Ny4gICovCi0r ICAgICAgdmFsdWUgKmFyZzIgPSBldmFsdWF0ZV9zdWJleHBfd2l0aF9jb2VyY2lvbiAoZXhwLCBw b3MsIG5vc2lkZSk7Ci0rCi0rICAgICAgLyogRmlsbCBpbiB0aGUgc3Vic2NyaXB0IGFycmF5LiAg Ki8KLSsgICAgICBzdWJzY3JpcHRfYXJyYXlbaV0gPSB2YWx1ZV9hc19sb25nIChhcmcyKTsKLSsg ICAgfQotKwotKyAgLyogSW50ZXJuYWwgdHlwZSBvZiBhcnJheSBpcyBhcnJhbmdlZCByaWdodCB0 byBsZWZ0LiAgKi8KLSsgIGZvciAoaW50IGkgPSBuYXJnczsgaSA+IDA7IGktLSkKLSsgICAgewot KyAgICAgIHN0cnVjdCB0eXBlICphcnJheV90eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlw ZSAoYXJyYXkpKTsKLSsgICAgICBMT05HRVNUIGluZGV4ID0gc3Vic2NyaXB0X2FycmF5W2kgLSAx XTsKLSsKLSsgICAgICBhcnJheSA9IHZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAoYXJyYXksIGlu ZGV4LAotKwkJCQkJZjc3X2dldF9sb3dlcmJvdW5kIChhcnJheV90eXBlKSk7Ci0rICAgIH0KLSsK LSsgIHJldHVybiBhcnJheTsKLSt9Ci0rCi0gc3RydWN0IHZhbHVlICoKLSBldmFsdWF0ZV9zdWJl eHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKLSAJCQkgIHN0cnVjdCBleHBy ZXNzaW9uICpleHAsIGludCAqcG9zLAotQEAgLTE5NTMsMzMgKzIwMTQsOCBAQCBldmFsdWF0ZV9z dWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKLSAgICAgICBzd2l0Y2gg KGNvZGUpCi0gCXsKLSAJY2FzZSBUWVBFX0NPREVfQVJSQVk6Ci0tCSAgaWYgKGV4cC0+ZWx0c1sq cG9zXS5vcGNvZGUgPT0gT1BfUkFOR0UpCi0tCSAgICByZXR1cm4gdmFsdWVfZjkwX3N1YmFycmF5 IChhcmcxLCBleHAsIHBvcywgbm9zaWRlKTsKLS0JICBlbHNlCi0tCSAgICB7Ci0tCSAgICAgIGlm IChub3NpZGUgPT0gRVZBTF9TS0lQKQotLQkJewotLQkJICBza2lwX3VuZGV0ZXJtaW5lZF9hcmds aXN0IChuYXJncywgZXhwLCBwb3MsIG5vc2lkZSk7Ci0tCQkgIC8qIFJldHVybiB0aGUgZHVtbXkg dmFsdWUgd2l0aCB0aGUgY29ycmVjdCB0eXBlLiAgKi8KLS0JCSAgcmV0dXJuIGFyZzE7Ci0tCQl9 Ci0tCSAgICAgIGdvdG8gbXVsdGlfZjc3X3N1YnNjcmlwdDsKLS0JICAgIH0KLS0KLSAJY2FzZSBU WVBFX0NPREVfU1RSSU5HOgotLQkgIGlmIChleHAtPmVsdHNbKnBvc10ub3Bjb2RlID09IE9QX1JB TkdFKQotLQkgICAgcmV0dXJuIHZhbHVlX2Y5MF9zdWJhcnJheSAoYXJnMSwgZXhwLCBwb3MsIG5v c2lkZSk7Ci0tCSAgZWxzZQotLQkgICAgewotLQkgICAgICBpZiAobm9zaWRlID09IEVWQUxfU0tJ UCkKLS0JCXsKLS0JCSAgc2tpcF91bmRldGVybWluZWRfYXJnbGlzdCAobmFyZ3MsIGV4cCwgcG9z LCBub3NpZGUpOwotLQkJICAvKiBSZXR1cm4gdGhlIGR1bW15IHZhbHVlIHdpdGggdGhlIGNvcnJl Y3QgdHlwZS4gICovCi0tCQkgIHJldHVybiBhcmcxOwotLQkJfQotLQkgICAgICBhcmcyID0gZXZh bHVhdGVfc3ViZXhwX3dpdGhfY29lcmNpb24gKGV4cCwgcG9zLCBub3NpZGUpOwotLQkgICAgICBy ZXR1cm4gdmFsdWVfc3Vic2NyaXB0IChhcmcxLCB2YWx1ZV9hc19sb25nIChhcmcyKSk7Ci0tCSAg ICB9Ci0rCSAgcmV0dXJuIGZvcnRyYW5fdmFsdWVfc3ViYXJyYXkgKGFyZzEsIGV4cCwgcG9zLCBu YXJncywgbm9zaWRlKTsKLSAKLSAJY2FzZSBUWVBFX0NPREVfUFRSOgotIAljYXNlIFRZUEVfQ09E RV9GVU5DOgotQEAgLTI0MDAsNDkgKzI0MzYsNiBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQg KHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKLSAJfQotICAgICAgIHJldHVybiAoYXJnMSk7Ci0g Ci0tICAgIG11bHRpX2Y3N19zdWJzY3JpcHQ6Ci0tICAgICAgewotLQlMT05HRVNUIHN1YnNjcmlw dF9hcnJheVtNQVhfRk9SVFJBTl9ESU1TXTsKLS0JaW50IG5kaW1lbnNpb25zID0gMSwgaTsKLS0J c3RydWN0IHZhbHVlICphcnJheSA9IGFyZzE7Ci0tCi0tCWlmIChuYXJncyA+IE1BWF9GT1JUUkFO X0RJTVMpCi0tCSAgZXJyb3IgKF8oIlRvbyBtYW55IHN1YnNjcmlwdHMgZm9yIEY3NyAoJWQgTWF4 KSIpLCBNQVhfRk9SVFJBTl9ESU1TKTsKLS0KLS0JbmRpbWVuc2lvbnMgPSBjYWxjX2Y3N19hcnJh eV9kaW1zICh0eXBlKTsKLS0KLS0JaWYgKG5hcmdzICE9IG5kaW1lbnNpb25zKQotLQkgIGVycm9y IChfKCJXcm9uZyBudW1iZXIgb2Ygc3Vic2NyaXB0cyIpKTsKLS0KLS0JZ2RiX2Fzc2VydCAobmFy Z3MgPiAwKTsKLS0KLS0JLyogTm93IHRoYXQgd2Uga25vdyB3ZSBoYXZlIGEgbGVnYWwgYXJyYXkg c3Vic2NyaXB0IGV4cHJlc3Npb24gCi0tCSAgIGxldCB1cyBhY3R1YWxseSBmaW5kIG91dCB3aGVy ZSB0aGlzIGVsZW1lbnQgZXhpc3RzIGluIHRoZSBhcnJheS4gICovCi0tCi0tCS8qIFRha2UgYXJy YXkgaW5kaWNlcyBsZWZ0IHRvIHJpZ2h0LiAgKi8KLS0JZm9yIChpID0gMDsgaSA8IG5hcmdzOyBp KyspCi0tCSAgewotLQkgICAgLyogRXZhbHVhdGUgZWFjaCBzdWJzY3JpcHQ7IGl0IG11c3QgYmUg YSBsZWdhbCBpbnRlZ2VyIGluIEY3Ny4gICovCi0tCSAgICBhcmcyID0gZXZhbHVhdGVfc3ViZXhw X3dpdGhfY29lcmNpb24gKGV4cCwgcG9zLCBub3NpZGUpOwotLQotLQkgICAgLyogRmlsbCBpbiB0 aGUgc3Vic2NyaXB0IGFycmF5LiAgKi8KLS0KLS0JICAgIHN1YnNjcmlwdF9hcnJheVtpXSA9IHZh bHVlX2FzX2xvbmcgKGFyZzIpOwotLQkgIH0KLS0KLS0JLyogSW50ZXJuYWwgdHlwZSBvZiBhcnJh eSBpcyBhcnJhbmdlZCByaWdodCB0byBsZWZ0LiAgKi8KLS0JZm9yIChpID0gbmFyZ3M7IGkgPiAw OyBpLS0pCi0tCSAgewotLQkgICAgc3RydWN0IHR5cGUgKmFycmF5X3R5cGUgPSBjaGVja190eXBl ZGVmICh2YWx1ZV90eXBlIChhcnJheSkpOwotLQkgICAgTE9OR0VTVCBpbmRleCA9IHN1YnNjcmlw dF9hcnJheVtpIC0gMV07Ci0tCi0tCSAgICBhcnJheSA9IHZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1 ZSAoYXJyYXksIGluZGV4LAotLQkJCQkJICAgICAgZjc3X2dldF9sb3dlcmJvdW5kIChhcnJheV90 eXBlKSk7Ci0tCSAgfQotLQotLQlyZXR1cm4gYXJyYXk7Ci0tICAgICAgfQotLQotICAgICBjYXNl IEJJTk9QX0xPR0lDQUxfQU5EOgotICAgICAgIGFyZzEgPSBldmFsdWF0ZV9zdWJleHAgKG51bGxw dHIsIGV4cCwgcG9zLCBub3NpZGUpOwotICAgICAgIGlmIChub3NpZGUgPT0gRVZBTF9TS0lQKQot QEAgLTMzNTQsMTIgKzMzNDcsMTcgQEAgcGFyc2VfYW5kX2V2YWxfdHlwZSAoY2hhciAqcCwgaW50 IGxlbmd0aCkKLSAgIHJldHVybiBleHByLT5lbHRzWzFdLnR5cGU7Ci0gfQotIAotKy8qIFJldHVy biB0aGUgbnVtYmVyIG9mIGRpbWVuc2lvbnMgZm9yIGEgRm9ydHJhbiBhcnJheSBvciBzdHJpbmcu ICAqLwotKwotIGludAotIGNhbGNfZjc3X2FycmF5X2RpbXMgKHN0cnVjdCB0eXBlICphcnJheV90 eXBlKQotIHsKLSAgIGludCBuZGltZW4gPSAxOwotICAgc3RydWN0IHR5cGUgKnRtcF90eXBlOwot IAotKyAgaWYgKChhcnJheV90eXBlLT5jb2RlICgpID09IFRZUEVfQ09ERV9TVFJJTkcpKQotKyAg ICByZXR1cm4gMTsKLSsKLSAgIGlmICgoYXJyYXlfdHlwZS0+Y29kZSAoKSAhPSBUWVBFX0NPREVf QVJSQVkpKQotICAgICBlcnJvciAoXygiQ2FuJ3QgZ2V0IGRpbWVuc2lvbnMgZm9yIGEgbm9uLWFy cmF5IHR5cGUiKSk7Ci0gCgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYnoxOTY0MTY3LWZvcnRyYW4tZml4 LXR5cGUtZm9ybWF0LW1pc21hdGNoLWluLWYtbGFuZy5jLnBhdGNoIGIvZ2RiLXJoYnoxOTY0MTY3 LWZvcnRyYW4tZml4LXR5cGUtZm9ybWF0LW1pc21hdGNoLWluLWYtbGFuZy5jLnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyY2RiODI4Li4wMDAwMDAwCi0tLSBhL2dkYi1yaGJ6 MTk2NDE2Ny1mb3J0cmFuLWZpeC10eXBlLWZvcm1hdC1taXNtYXRjaC1pbi1mLWxhbmcuYy5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDEyOCArMCwwIEBACi1Gcm9tIEZFRE9SQV9QQVRDSEVTIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2V2aW4gQnVldHRuZXIgPGtldmluYkByZWRo YXQuY29tPgotRGF0ZTogVHVlLCAyNSBNYXkgMjAyMSAxNzozNDo1NyAtMDcwMAotU3ViamVjdDog Z2RiLXJoYnoxOTY0MTY3LWZvcnRyYW4tZml4LXR5cGUtZm9ybWF0LW1pc21hdGNoLWluLWYtbGFu Zy5jLnBhdGNoCi0KLTs7IFtmb3J0cmFuXSBCYWNrcG9ydCBTaW1vbiBNYXJjaGkncyBjb21taXQg d2hpY2ggZml4ZXMgYSAzMi1iaXQgYnVpbGQKLTs7IHByb2JsZW0gaW4gZ2RiL2YtbGFuZy5jLgot Ci1nZGI6IGZpeCBmb3JtYXQgc3RyaW5nIHdhcm5pbmdzIGluIGYtbGFuZy5jCi0KLUkgZ2V0IGEg YnVuY2ggb2YgdGhlc2Ugd2FybmluZ3Mgd2hlbiBjb21waWxpbmcgZm9yIGkzODYgKDMyLWJpdCk6 Ci0KLSAgICAgIENYWCAgICBmLWxhbmcubwotICAgIC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMt Z2RiL2dkYi9mLWxhbmcuYzogSW4gZnVuY3Rpb24gJ3ZhbHVlKiBmb3J0cmFuX3ZhbHVlX3N1YmFy cmF5KHZhbHVlKiwgZXhwcmVzc2lvbiosIGludCosIGludCwgbm9zaWRlKSc6Ci0gICAgL2hvbWUv c2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2RiL2YtbGFuZy5jOjQ1Mzo0ODogZXJyb3I6IGZvcm1h dCAnJWxkJyBleHBlY3RzIGFyZ3VtZW50IG9mIHR5cGUgJ2xvbmcgaW50JywgYnV0IGFyZ3VtZW50 IDIgaGFzIHR5cGUgJ0xPTkdFU1QnIHtha2EgJ2xvbmcgbG9uZyBpbnQnfSBbLVdlcnJvcj1mb3Jt YXQ9XQotICAgICAgNDUzIHwgICAgICAgIGRlYnVnX3ByaW50ZiAoInwgICB8ICAgfC0+IExvdyBi b3VuZDogJWxkXG4iLCBsYik7Ci0gICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB+fl4gICAgIH5+Ci0gICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwKLSAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgTE9OR0VT VCB7YWthIGxvbmcgbG9uZyBpbnR9Ci0gICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgaW50Ci0gICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlbGxkCi0KLUZpeCB0aGVtIGJ5IHVz aW5nIHBsb25nZXN0L3B1bG9uZ2VzdC4KLQotZ2RiL0NoYW5nZUxvZzoKLQotCSogZi1sYW5nLmMg KGZvcnRyYW5fdmFsdWVfc3ViYXJyYXkpOiBVc2UgcGxvbmdlc3QvcHVsb25nZXN0LgotCi1DaGFu Z2UtSWQ6IEk2NjZlYWQ1NTkzNjUzZDVhMWEzZGFiMmZmZGM3Mjk0MmM5MjhjN2QyCi0KLWRpZmYg LS1naXQgYS9nZGIvZi1sYW5nLmMgYi9nZGIvZi1sYW5nLmMKLS0tLSBhL2dkYi9mLWxhbmcuYwot KysrIGIvZ2RiL2YtbGFuZy5jCi1AQCAtNDYzLDIxICs0NjMsMjEgQEAgZm9ydHJhbl92YWx1ZV9z dWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKLSAJ ICAgICAgc3RkOjpzdHJpbmcgc3RyID0gdHlwZV90b19zdHJpbmcgKGRpbV90eXBlKTsKLSAJICAg ICAgZGVidWdfcHJpbnRmICgifCAgIHwtPiBUeXBlOiAlc1xuIiwgc3RyLmNfc3RyICgpKTsKLSAJ ICAgICAgZGVidWdfcHJpbnRmICgifCAgIHwtPiBBcnJheTpcbiIpOwotLQkgICAgICBkZWJ1Z19w cmludGYgKCJ8ICAgfCAgIHwtPiBMb3cgYm91bmQ6ICVsZFxuIiwgbGIpOwotLQkgICAgICBkZWJ1 Z19wcmludGYgKCJ8ICAgfCAgIHwtPiBIaWdoIGJvdW5kOiAlbGRcbiIsIHViKTsKLS0JICAgICAg ZGVidWdfcHJpbnRmICgifCAgIHwgICB8LT4gQml0IHN0cmlkZTogJWxkXG4iLCBzZCk7Ci0tCSAg ICAgIGRlYnVnX3ByaW50ZiAoInwgICB8ICAgfC0+IEJ5dGUgc3RyaWRlOiAlbGRcbiIsIHNkIC8g OCk7Ci0tCSAgICAgIGRlYnVnX3ByaW50ZiAoInwgICB8ICAgfC0+IFR5cGUgc2l6ZTogJWxkXG4i LAotLQkJCSAgICBUWVBFX0xFTkdUSCAoZGltX3R5cGUpKTsKLS0JICAgICAgZGVidWdfcHJpbnRm ICgifCAgIHwgICAnLT4gVGFyZ2V0IHR5cGUgc2l6ZTogJWxkXG4iLAotLQkJCSAgICBUWVBFX0xF TkdUSCAodGFyZ2V0X3R5cGUpKTsKLSsJICAgICAgZGVidWdfcHJpbnRmICgifCAgIHwgICB8LT4g TG93IGJvdW5kOiAlc1xuIiwgcGxvbmdlc3QgKGxiKSk7Ci0rCSAgICAgIGRlYnVnX3ByaW50ZiAo InwgICB8ICAgfC0+IEhpZ2ggYm91bmQ6ICVzXG4iLCBwbG9uZ2VzdCAodWIpKTsKLSsJICAgICAg ZGVidWdfcHJpbnRmICgifCAgIHwgICB8LT4gQml0IHN0cmlkZTogJXNcbiIsIHBsb25nZXN0IChz ZCkpOwotKwkgICAgICBkZWJ1Z19wcmludGYgKCJ8ICAgfCAgIHwtPiBCeXRlIHN0cmlkZTogJXNc biIsIHBsb25nZXN0IChzZCAvIDgpKTsKLSsJICAgICAgZGVidWdfcHJpbnRmICgifCAgIHwgICB8 LT4gVHlwZSBzaXplOiAlc1xuIiwKLSsJCQkgICAgcHVsb25nZXN0IChUWVBFX0xFTkdUSCAoZGlt X3R5cGUpKSk7Ci0rCSAgICAgIGRlYnVnX3ByaW50ZiAoInwgICB8ICAgJy0+IFRhcmdldCB0eXBl IHNpemU6ICVzXG4iLAotKwkJCSAgICBwdWxvbmdlc3QgKFRZUEVfTEVOR1RIICh0YXJnZXRfdHlw ZSkpKTsKLSAJICAgICAgZGVidWdfcHJpbnRmICgifCAgIHwtPiBBY2Nlc3Npbmc6XG4iKTsKLS0J ICAgICAgZGVidWdfcHJpbnRmICgifCAgIHwgICB8LT4gTG93IGJvdW5kOiAlbGRcbiIsCi0tCQkJ ICAgIGxvdyk7Ci0tCSAgICAgIGRlYnVnX3ByaW50ZiAoInwgICB8ICAgfC0+IEhpZ2ggYm91bmQ6 ICVsZFxuIiwKLS0JCQkgICAgaGlnaCk7Ci0tCSAgICAgIGRlYnVnX3ByaW50ZiAoInwgICB8ICAg Jy0+IEVsZW1lbnQgc3RyaWRlOiAlbGRcbiIsCi0tCQkJICAgIHN0cmlkZSk7Ci0rCSAgICAgIGRl YnVnX3ByaW50ZiAoInwgICB8ICAgfC0+IExvdyBib3VuZDogJXNcbiIsCi0rCQkJICAgIHBsb25n ZXN0IChsb3cpKTsKLSsJICAgICAgZGVidWdfcHJpbnRmICgifCAgIHwgICB8LT4gSGlnaCBib3Vu ZDogJXNcbiIsCi0rCQkJICAgIHBsb25nZXN0IChoaWdoKSk7Ci0rCSAgICAgIGRlYnVnX3ByaW50 ZiAoInwgICB8ICAgJy0+IEVsZW1lbnQgc3RyaWRlOiAlc1xuIiwKLSsJCQkgICAgcGxvbmdlc3Qg KHN0cmlkZSkpOwotIAkgICAgfQotIAotIAkgIC8qIENoZWNrIHRoZSB1c2VyIGhhc24ndCBhc2tl ZCBmb3Igc29tZXRoaW5nIGludmFsaWQuICAqLwotQEAgLTUxOSwxMyArNTE5LDE3IEBAIGZvcnRy YW5fdmFsdWVfc3ViYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIHN0cnVjdCBleHByZXNzaW9u ICpleHAsCi0gCSAgaWYgKGZvcnRyYW5fYXJyYXlfc2xpY2luZ19kZWJ1ZykKLSAJICAgIHsKLSAJ ICAgICAgZGVidWdfcHJpbnRmICgifCAgICctPiBSZXN1bHRzOlxuIik7Ci0tCSAgICAgIGRlYnVn X3ByaW50ZiAoInwgICAgICAgfC0+IE9mZnNldCA9ICVsZFxuIiwgb2Zmc2V0KTsKLS0JICAgICAg ZGVidWdfcHJpbnRmICgifCAgICAgICB8LT4gRWxlbWVudHMgPSAlbGRcbiIsIGVfY291bnQpOwot LQkgICAgICBkZWJ1Z19wcmludGYgKCJ8ICAgICAgIHwtPiBMb3cgYm91bmQgPSAlbGRcbiIsIG5l d19sb3cpOwotLQkgICAgICBkZWJ1Z19wcmludGYgKCJ8ICAgICAgIHwtPiBIaWdoIGJvdW5kID0g JWxkXG4iLCBuZXdfaGlnaCk7Ci0tCSAgICAgIGRlYnVnX3ByaW50ZiAoInwgICAgICAgfC0+IEJ5 dGUgc3RyaWRlID0gJWxkXG4iLCBuZXdfc3RyaWRlKTsKLS0JICAgICAgZGVidWdfcHJpbnRmICgi fCAgICAgICB8LT4gTGFzdCBlbGVtZW50ID0gJWxkXG4iLCBsYXN0X2VsZW0pOwotLQkgICAgICBk ZWJ1Z19wcmludGYgKCJ8ICAgICAgIHwtPiBSZW1haW5kZXIgPSAlbGRcbiIsIHJlbWFpbmRlcik7 Ci0rCSAgICAgIGRlYnVnX3ByaW50ZiAoInwgICAgICAgfC0+IE9mZnNldCA9ICVzXG4iLCBwbG9u Z2VzdCAob2Zmc2V0KSk7Ci0rCSAgICAgIGRlYnVnX3ByaW50ZiAoInwgICAgICAgfC0+IEVsZW1l bnRzID0gJXNcbiIsIHBsb25nZXN0IChlX2NvdW50KSk7Ci0rCSAgICAgIGRlYnVnX3ByaW50ZiAo InwgICAgICAgfC0+IExvdyBib3VuZCA9ICVzXG4iLCBwbG9uZ2VzdCAobmV3X2xvdykpOwotKwkg ICAgICBkZWJ1Z19wcmludGYgKCJ8ICAgICAgIHwtPiBIaWdoIGJvdW5kID0gJXNcbiIsCi0rCQkJ ICAgIHBsb25nZXN0IChuZXdfaGlnaCkpOwotKwkgICAgICBkZWJ1Z19wcmludGYgKCJ8ICAgICAg IHwtPiBCeXRlIHN0cmlkZSA9ICVzXG4iLAotKwkJCSAgICBwbG9uZ2VzdCAobmV3X3N0cmlkZSkp OwotKwkgICAgICBkZWJ1Z19wcmludGYgKCJ8ICAgICAgIHwtPiBMYXN0IGVsZW1lbnQgPSAlc1xu IiwKLSsJCQkgICAgcGxvbmdlc3QgKGxhc3RfZWxlbSkpOwotKwkgICAgICBkZWJ1Z19wcmludGYg KCJ8ICAgICAgIHwtPiBSZW1haW5kZXIgPSAlc1xuIiwKLSsJCQkgICAgcGxvbmdlc3QgKHJlbWFp bmRlcikpOwotIAkgICAgICBkZWJ1Z19wcmludGYgKCJ8ICAgICAgICctPiBDb250aWd1b3VzID0g JXNcbiIsCi0gCQkJICAgIChpc19kaW1fY29udGlndW91cyA/ICJZZXMiIDogIk5vIikpOwotIAkg ICAgfQotQEAgLTU2MSwxNCArNTY1LDE2IEBAIGZvcnRyYW5fdmFsdWVfc3ViYXJyYXkgKHN0cnVj dCB2YWx1ZSAqYXJyYXksIHN0cnVjdCBleHByZXNzaW9uICpleHAsCi0gCSAgICAgIHN0ZDo6c3Ry aW5nIHN0ciA9IHR5cGVfdG9fc3RyaW5nIChkaW1fdHlwZSk7Ci0gCSAgICAgIGRlYnVnX3ByaW50 ZiAoInwgICB8LT4gVHlwZTogJXNcbiIsIHN0ci5jX3N0ciAoKSk7Ci0gCSAgICAgIGRlYnVnX3By aW50ZiAoInwgICB8LT4gQXJyYXk6XG4iKTsKLS0JICAgICAgZGVidWdfcHJpbnRmICgifCAgIHwg ICB8LT4gTG93IGJvdW5kOiAlbGRcbiIsIGxiKTsKLS0JICAgICAgZGVidWdfcHJpbnRmICgifCAg IHwgICB8LT4gSGlnaCBib3VuZDogJWxkXG4iLCB1Yik7Ci0tCSAgICAgIGRlYnVnX3ByaW50ZiAo InwgICB8ICAgfC0+IEJ5dGUgc3RyaWRlOiAlbGRcbiIsIHNkKTsKLS0JICAgICAgZGVidWdfcHJp bnRmICgifCAgIHwgICB8LT4gVHlwZSBzaXplOiAlbGRcbiIsIFRZUEVfTEVOR1RIIChkaW1fdHlw ZSkpOwotLQkgICAgICBkZWJ1Z19wcmludGYgKCJ8ICAgfCAgICctPiBUYXJnZXQgdHlwZSBzaXpl OiAlbGRcbiIsCi0tCQkJICAgIFRZUEVfTEVOR1RIICh0YXJnZXRfdHlwZSkpOwotKwkgICAgICBk ZWJ1Z19wcmludGYgKCJ8ICAgfCAgIHwtPiBMb3cgYm91bmQ6ICVzXG4iLCBwbG9uZ2VzdCAobGIp KTsKLSsJICAgICAgZGVidWdfcHJpbnRmICgifCAgIHwgICB8LT4gSGlnaCBib3VuZDogJXNcbiIs IHBsb25nZXN0ICh1YikpOwotKwkgICAgICBkZWJ1Z19wcmludGYgKCJ8ICAgfCAgIHwtPiBCeXRl IHN0cmlkZTogJXNcbiIsIHBsb25nZXN0IChzZCkpOwotKwkgICAgICBkZWJ1Z19wcmludGYgKCJ8 ICAgfCAgIHwtPiBUeXBlIHNpemU6ICVzXG4iLAotKwkJCSAgICBwdWxvbmdlc3QgKFRZUEVfTEVO R1RIIChkaW1fdHlwZSkpKTsKLSsJICAgICAgZGVidWdfcHJpbnRmICgifCAgIHwgICAnLT4gVGFy Z2V0IHR5cGUgc2l6ZTogJXNcbiIsCi0rCQkJICAgIHB1bG9uZ2VzdCAoVFlQRV9MRU5HVEggKHRh cmdldF90eXBlKSkpOwotIAkgICAgICBkZWJ1Z19wcmludGYgKCJ8ICAgJy0+IEFjY2Vzc2luZzpc biIpOwotLQkgICAgICBkZWJ1Z19wcmludGYgKCJ8ICAgICAgICctPiBJbmRleDogJWxkXG4iLCBp bmRleCk7Ci0rCSAgICAgIGRlYnVnX3ByaW50ZiAoInwgICAgICAgJy0+IEluZGV4OiAlc1xuIiwK LSsJCQkgICAgcGxvbmdlc3QgKGluZGV4KSk7Ci0gCSAgICB9Ci0gCi0gCSAgLyogSWYgdGhlIGFy cmF5IGhhcyBhY3R1YWwgY29udGVudCB0aGVuIGNoZWNrIHRoZSBpbmRleCBpcyBpbgotQEAgLTYy NSw3ICs2MzEsOCBAQCBmb3J0cmFuX3ZhbHVlX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5 LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAotICAgICAgIGRlYnVnX3ByaW50ZiAoIictPiBGaW5h bCByZXN1bHQ6XG4iKTsKLSAgICAgICBkZWJ1Z19wcmludGYgKCIgICAgfC0+IFR5cGU6ICVzXG4i LAotIAkJICAgIHR5cGVfdG9fc3RyaW5nIChhcnJheV9zbGljZV90eXBlKS5jX3N0ciAoKSk7Ci0t ICAgICAgZGVidWdfcHJpbnRmICgiICAgIHwtPiBUb3RhbCBvZmZzZXQ6ICVsZFxuIiwgdG90YWxf b2Zmc2V0KTsKLSsgICAgICBkZWJ1Z19wcmludGYgKCIgICAgfC0+IFRvdGFsIG9mZnNldDogJXNc biIsCi0rCQkgICAgcGxvbmdlc3QgKHRvdGFsX29mZnNldCkpOwotICAgICAgIGRlYnVnX3ByaW50 ZiAoIiAgICB8LT4gQmFzZSBhZGRyZXNzOiAlc1xuIiwKLSAJCSAgICBjb3JlX2FkZHJfdG9fc3Ry aW5nICh2YWx1ZV9hZGRyZXNzIChhcnJheSkpKTsKLSAgICAgICBkZWJ1Z19wcmludGYgKCIgICAg Jy0+IENvbnRpZ3VvdXMgPSAlc1xuIiwKCmRpZmYgLS1naXQgYS9nZGItcmhiejE5NjQxNjctZm9y dHJhbi1yYW5nZV90eXBlLXRvLXJhbmdlX2ZsYWcucGF0Y2ggYi9nZGItcmhiejE5NjQxNjctZm9y dHJhbi1yYW5nZV90eXBlLXRvLXJhbmdlX2ZsYWcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IGZlZDIzOWEuLjAwMDAwMDAKLS0tIGEvZ2RiLXJoYnoxOTY0MTY3LWZvcnRyYW4t cmFuZ2VfdHlwZS10by1yYW5nZV9mbGFnLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjI0ICsw LDAgQEAKLUZyb20gRkVET1JBX1BBVENIRVMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9t OiBLZXZpbiBCdWV0dG5lciA8a2V2aW5iQHJlZGhhdC5jb20+Ci1EYXRlOiBNb24sIDI0IE1heSAy MDIxIDE3OjE1OjI3IC0wNzAwCi1TdWJqZWN0OiBnZGItcmhiejE5NjQxNjctZm9ydHJhbi1yYW5n ZV90eXBlLXRvLXJhbmdlX2ZsYWcucGF0Y2gKLQotOzsgW2ZvcnRyYW5dIEJhY2twb3J0IEFuZHJl dyBCdXJnZXNzJ3MgY29tbWl0IHdoaWNoIHJlbmFtZXMgZW51bQotOzsgcmFuZ2VfdHlwZSB0byBl bnVtIHJhbmdlX2ZsYWcuCi0KLWdkYjogcmVuYW1lICdlbnVtIHJhbmdlX3R5cGUnIHRvICdlbnVt IHJhbmdlX2ZsYWcnCi0KLVRvIGF2b2lkIGNvbmZ1c2lvbiB3aXRoIG90aGVyIHBhcnRzIG9mIEdE QiByZWxhdGluZyB0byB0eXBlcyBhbmQKLXJhbmdlcywgcmVuYW1lIHRoaXMgZW51bSB0byBtYWtl IGl0IGNsZWFyZXIgdGhhdCBpdCBpcyBhIHNldCBvZgotaW5kaXZpZHVhbCBmbGFncyByYXRoZXIg dGhhbiBhbiBlbnVtZXJhdGlvbiBvZiBkaWZmZXJlbnQgdHlwZXMgb2YKLXJhbmdlLgotCi1UaGVy ZSBzaG91bGQgYmUgbm8gdXNlciB2aXNpYmxlIGNoYW5nZXMgYWZ0ZXIgdGhpcyBjb21taXQuCi0K LWdkYi9DaGFuZ2VMb2c6Ci0KLQkqIGV4cHByaW50LmMgKHByaW50X3N1YmV4cF9zdGFuZGFyZCk6 IENoYW5nZSBlbnVtIHJhbmdlX3R5cGUgdG8KLQlyYW5nZV9mbGFnIGFuZCByZW5hbWUgdmFyaWFi bGVzIHRvIG1hdGNoLgotCShkdW1wX3N1YmV4cF9ib2R5X3N0YW5kYXJkKTogTGlrZXdpc2UuCi0J KiBleHByZXNzaW9uLmggKGVudW0gcmFuZ2VfdHlwZSk6IFJlbmFtZSB0by4uLgotCShlbnVtIHJh bmdlX2ZsYWcpOiAuLi50aGlzLgotCShyYW5nZV90eXBlcyk6IFJlbmFtZSB0by4uLgotCShyYW5n ZV9mbGFncyk6IC4uLnRoaXMuCi0JKiBmLWxhbmcuYyAodmFsdWVfZjkwX3N1YmFycmF5KTogQ2hh bmdlIGVudW0gcmFuZ2VfdHlwZSB0bwotCXJhbmdlX2ZsYWcgYW5kIHJlbmFtZSB2YXJpYWJsZXMg dG8gbWF0Y2guCi0JKiBwYXJzZS5jIChvcGVyYXRvcl9sZW5ndGhfc3RhbmRhcmQpOiBMaWtld2lz ZS4KLQkqIHJ1c3QtZXhwLnkgKHJ1c3RfcGFyc2VyOjpjb252ZXJ0X2FzdF90b19leHByZXNzaW9u KTogQ2hhbmdlIGVudW0KLQlyYW5nZV90eXBlIHRvIHJhbmdlX2ZsYWcuCi0JKiBydXN0LWxhbmcu YyAocnVzdF9ldmFsdWF0ZV9mdW5jYWxsKTogTGlrZXdpc2UuCi0JKHJ1c3RfcmFuZ2UpOiBMaWtl d2lzZS4KLQkocnVzdF9jb21wdXRlX3JhbmdlKTogTGlrZXdpc2UuCi0JKHJ1c3Rfc3Vic2NyaXB0 KTogTGlrZXdpc2UuCi0KLWRpZmYgLS1naXQgYS9nZGIvZXhwcHJpbnQuYyBiL2dkYi9leHBwcmlu dC5jCi0tLS0gYS9nZGIvZXhwcHJpbnQuYwotKysrIGIvZ2RiL2V4cHByaW50LmMKLUBAIC01Nzgs MTkgKzU3OCwxOSBAQCBwcmludF9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCBleHByZXNzaW9uICpl eHAsIGludCAqcG9zLAotIAotICAgICBjYXNlIE9QX1JBTkdFOgotICAgICAgIHsKLS0JZW51bSBy YW5nZV90eXBlIHJhbmdlX3R5cGU7Ci0rCWVudW0gcmFuZ2VfZmxhZyByYW5nZV9mbGFnOwotIAot LQlyYW5nZV90eXBlID0gKGVudW0gcmFuZ2VfdHlwZSkKLSsJcmFuZ2VfZmxhZyA9IChlbnVtIHJh bmdlX2ZsYWcpCi0gCSAgbG9uZ2VzdF90b19pbnQgKGV4cC0+ZWx0c1twYyArIDFdLmxvbmdjb25z dCk7Ci0gCSpwb3MgKz0gMjsKLSAKLS0JaWYgKHJhbmdlX3R5cGUgJiBSQU5HRV9ISUdIX0JPVU5E X0VYQ0xVU0lWRSkKLSsJaWYgKHJhbmdlX2ZsYWcgJiBSQU5HRV9ISUdIX0JPVU5EX0VYQ0xVU0lW RSkKLSAJICBmcHV0c19maWx0ZXJlZCAoIkVYQ0xVU0lWRV8iLCBzdHJlYW0pOwotIAlmcHV0c19m aWx0ZXJlZCAoIlJBTkdFKCIsIHN0cmVhbSk7Ci0tCWlmICghKHJhbmdlX3R5cGUgJiBSQU5HRV9M T1dfQk9VTkRfREVGQVVMVCkpCi0rCWlmICghKHJhbmdlX2ZsYWcgJiBSQU5HRV9MT1dfQk9VTkRf REVGQVVMVCkpCi0gCSAgcHJpbnRfc3ViZXhwIChleHAsIHBvcywgc3RyZWFtLCBQUkVDX0FCT1ZF X0NPTU1BKTsKLSAJZnB1dHNfZmlsdGVyZWQgKCIuLiIsIHN0cmVhbSk7Ci0tCWlmICghKHJhbmdl X3R5cGUgJiBSQU5HRV9ISUdIX0JPVU5EX0RFRkFVTFQpKQotKwlpZiAoIShyYW5nZV9mbGFnICYg UkFOR0VfSElHSF9CT1VORF9ERUZBVUxUKSkKLSAJICBwcmludF9zdWJleHAgKGV4cCwgcG9zLCBz dHJlYW0sIFBSRUNfQUJPVkVfQ09NTUEpOwotIAlmcHV0c19maWx0ZXJlZCAoIikiLCBzdHJlYW0p OwotIAlyZXR1cm47Ci1AQCAtMTEwNCwyNSArMTEwNCwyNSBAQCBkdW1wX3N1YmV4cF9ib2R5X3N0 YW5kYXJkIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAotICAgICAgIGJyZWFrOwotICAgICBjYXNl IE9QX1JBTkdFOgotICAgICAgIHsKLS0JZW51bSByYW5nZV90eXBlIHJhbmdlX3R5cGU7Ci0rCWVu dW0gcmFuZ2VfZmxhZyByYW5nZV9mbGFnOwotIAotLQlyYW5nZV90eXBlID0gKGVudW0gcmFuZ2Vf dHlwZSkKLSsJcmFuZ2VfZmxhZyA9IChlbnVtIHJhbmdlX2ZsYWcpCi0gCSAgbG9uZ2VzdF90b19p bnQgKGV4cC0+ZWx0c1tlbHRdLmxvbmdjb25zdCk7Ci0gCWVsdCArPSAyOwotIAotLQlpZiAocmFu Z2VfdHlwZSAmIFJBTkdFX0hJR0hfQk9VTkRfRVhDTFVTSVZFKQotKwlpZiAocmFuZ2VfZmxhZyAm IFJBTkdFX0hJR0hfQk9VTkRfRVhDTFVTSVZFKQotIAkgIGZwdXRzX2ZpbHRlcmVkICgiRXhjbHVz aXZlIiwgc3RyZWFtKTsKLSAJZnB1dHNfZmlsdGVyZWQgKCJSYW5nZSAnIiwgc3RyZWFtKTsKLS0J aWYgKCEocmFuZ2VfdHlwZSAmIFJBTkdFX0xPV19CT1VORF9ERUZBVUxUKSkKLSsJaWYgKCEocmFu Z2VfZmxhZyAmIFJBTkdFX0xPV19CT1VORF9ERUZBVUxUKSkKLSAJICBmcHV0c19maWx0ZXJlZCAo IkVYUCIsIHN0cmVhbSk7Ci0gCWZwdXRzX2ZpbHRlcmVkICgiLi4iLCBzdHJlYW0pOwotLQlpZiAo IShyYW5nZV90eXBlICYgUkFOR0VfSElHSF9CT1VORF9ERUZBVUxUKSkKLSsJaWYgKCEocmFuZ2Vf ZmxhZyAmIFJBTkdFX0hJR0hfQk9VTkRfREVGQVVMVCkpCi0gCSAgZnB1dHNfZmlsdGVyZWQgKCJF WFAiLCBzdHJlYW0pOwotIAlmcHV0c19maWx0ZXJlZCAoIiciLCBzdHJlYW0pOwotIAotLQlpZiAo IShyYW5nZV90eXBlICYgUkFOR0VfTE9XX0JPVU5EX0RFRkFVTFQpKQotKwlpZiAoIShyYW5nZV9m bGFnICYgUkFOR0VfTE9XX0JPVU5EX0RFRkFVTFQpKQotIAkgIGVsdCA9IGR1bXBfc3ViZXhwIChl eHAsIHN0cmVhbSwgZWx0KTsKLS0JaWYgKCEocmFuZ2VfdHlwZSAmIFJBTkdFX0hJR0hfQk9VTkRf REVGQVVMVCkpCi0rCWlmICghKHJhbmdlX2ZsYWcgJiBSQU5HRV9ISUdIX0JPVU5EX0RFRkFVTFQp KQotIAkgIGVsdCA9IGR1bXBfc3ViZXhwIChleHAsIHN0cmVhbSwgZWx0KTsKLSAgICAgICB9Ci0g ICAgICAgYnJlYWs7Ci1kaWZmIC0tZ2l0IGEvZ2RiL2V4cHJlc3Npb24uaCBiL2dkYi9leHByZXNz aW9uLmgKLS0tLSBhL2dkYi9leHByZXNzaW9uLmgKLSsrKyBiL2dkYi9leHByZXNzaW9uLmgKLUBA IC0xODUsNyArMTg1LDcgQEAgZXh0ZXJuIHZvaWQgZHVtcF9wcmVmaXhfZXhwcmVzc2lvbiAoc3Ry dWN0IGV4cHJlc3Npb24gKiwgc3RydWN0IHVpX2ZpbGUgKik7Ci0gICAgb3IgaW5jbHVzaXZlLiAg U28gd2UgaGF2ZSBzaXggc29ydHMgb2Ygc3VicmFuZ2UuICBUaGlzIGVudW1lcmF0aW9uCi0gICAg dHlwZSBpcyB0byBpZGVudGlmeSB0aGlzLiAgKi8KLSAKLS1lbnVtIHJhbmdlX3R5cGUgOiB1bnNp Z25lZAotK2VudW0gcmFuZ2VfZmxhZyA6IHVuc2lnbmVkCi0gewotICAgLyogVGhpcyBpcyBhIHN0 YW5kYXJkIHJhbmdlLiAgQm90aCB0aGUgbG93ZXIgYW5kIHVwcGVyIGJvdW5kcyBhcmUKLSAgICAg IGRlZmluZWQsIGFuZCB0aGUgYm91bmRzIGFyZSBpbmNsdXNpdmUuICAqLwotQEAgLTIwMSw2ICsy MDEsNiBAQCBlbnVtIHJhbmdlX3R5cGUgOiB1bnNpZ25lZAotICAgUkFOR0VfSElHSF9CT1VORF9F WENMVVNJVkUgPSAxIDw8IDIsCi0gfTsKLSAKLS1ERUZfRU5VTV9GTEFHU19UWVBFIChlbnVtIHJh bmdlX3R5cGUsIHJhbmdlX3R5cGVzKTsKLStERUZfRU5VTV9GTEFHU19UWVBFIChlbnVtIHJhbmdl X2ZsYWcsIHJhbmdlX2ZsYWdzKTsKLSAKLSAjZW5kaWYgLyogIWRlZmluZWQgKEVYUFJFU1NJT05f SCkgKi8KLWRpZmYgLS1naXQgYS9nZGIvZi1sYW5nLmMgYi9nZGIvZi1sYW5nLmMKLS0tLSBhL2dk Yi9mLWxhbmcuYwotKysrIGIvZ2RiL2YtbGFuZy5jCi1AQCAtMTI2LDE3ICsxMjYsMTcgQEAgdmFs dWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LAotICAgaW50IHBjID0gKCpwb3Mp ICsgMTsKLSAgIExPTkdFU1QgbG93X2JvdW5kLCBoaWdoX2JvdW5kOwotICAgc3RydWN0IHR5cGUg KnJhbmdlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJyYXkpLT5pbmRleF90eXBlICgp KTsKLS0gIGVudW0gcmFuZ2VfdHlwZSByYW5nZV90eXBlCi0tICAgID0gKGVudW0gcmFuZ2VfdHlw ZSkgbG9uZ2VzdF90b19pbnQgKGV4cC0+ZWx0c1twY10ubG9uZ2NvbnN0KTsKLSsgIGVudW0gcmFu Z2VfZmxhZyByYW5nZV9mbGFnCi0rICAgID0gKGVudW0gcmFuZ2VfZmxhZykgbG9uZ2VzdF90b19p bnQgKGV4cC0+ZWx0c1twY10ubG9uZ2NvbnN0KTsKLSAKLSAgICpwb3MgKz0gMzsKLSAKLS0gIGlm IChyYW5nZV90eXBlICYgUkFOR0VfTE9XX0JPVU5EX0RFRkFVTFQpCi0rICBpZiAocmFuZ2VfZmxh ZyAmIFJBTkdFX0xPV19CT1VORF9ERUZBVUxUKQotICAgICBsb3dfYm91bmQgPSByYW5nZS0+Ym91 bmRzICgpLT5sb3cuY29uc3RfdmFsICgpOwotICAgZWxzZQotICAgICBsb3dfYm91bmQgPSB2YWx1 ZV9hc19sb25nIChldmFsdWF0ZV9zdWJleHAgKG51bGxwdHIsIGV4cCwgcG9zLCBub3NpZGUpKTsK LSAKLS0gIGlmIChyYW5nZV90eXBlICYgUkFOR0VfSElHSF9CT1VORF9ERUZBVUxUKQotKyAgaWYg KHJhbmdlX2ZsYWcgJiBSQU5HRV9ISUdIX0JPVU5EX0RFRkFVTFQpCi0gICAgIGhpZ2hfYm91bmQg PSByYW5nZS0+Ym91bmRzICgpLT5oaWdoLmNvbnN0X3ZhbCAoKTsKLSAgIGVsc2UKLSAgICAgaGln aF9ib3VuZCA9IHZhbHVlX2FzX2xvbmcgKGV2YWx1YXRlX3N1YmV4cCAobnVsbHB0ciwgZXhwLCBw b3MsIG5vc2lkZSkpOwotZGlmZiAtLWdpdCBhL2dkYi9wYXJzZS5jIGIvZ2RiL3BhcnNlLmMKLS0t LSBhL2dkYi9wYXJzZS5jCi0rKysgYi9nZGIvcGFyc2UuYwotQEAgLTc3NCw3ICs3NzQsNyBAQCBv cGVyYXRvcl9sZW5ndGhfc3RhbmRhcmQgKGNvbnN0IHN0cnVjdCBleHByZXNzaW9uICpleHByLCBp bnQgZW5kcG9zLAotIHsKLSAgIGludCBvcGxlbiA9IDE7Ci0gICBpbnQgYXJncyA9IDA7Ci0tICBl bnVtIHJhbmdlX3R5cGUgcmFuZ2VfdHlwZTsKLSsgIGVudW0gcmFuZ2VfZmxhZyByYW5nZV9mbGFn OwotICAgaW50IGk7Ci0gCi0gICBpZiAoZW5kcG9zIDwgMSkKLUBAIC05MTgsMTUgKzkxOCwxNSBA QCBvcGVyYXRvcl9sZW5ndGhfc3RhbmRhcmQgKGNvbnN0IHN0cnVjdCBleHByZXNzaW9uICpleHBy LCBpbnQgZW5kcG9zLAotIAotICAgICBjYXNlIE9QX1JBTkdFOgotICAgICAgIG9wbGVuID0gMzsK LS0gICAgICByYW5nZV90eXBlID0gKGVudW0gcmFuZ2VfdHlwZSkKLSsgICAgICByYW5nZV9mbGFn ID0gKGVudW0gcmFuZ2VfZmxhZykKLSAJbG9uZ2VzdF90b19pbnQgKGV4cHItPmVsdHNbZW5kcG9z IC0gMl0ubG9uZ2NvbnN0KTsKLSAKLSAgICAgICAvKiBBc3N1bWUgdGhlIHJhbmdlIGhhcyAyIGFy Z3VtZW50cyAobG93IGJvdW5kIGFuZCBoaWdoIGJvdW5kKSwgdGhlbgotIAkgcmVkdWNlIHRoZSBh cmd1bWVudCBjb3VudCBpZiBhbnkgYm91bmRzIGFyZSBzZXQgdG8gZGVmYXVsdC4gICovCi0gICAg ICAgYXJncyA9IDI7Ci0tICAgICAgaWYgKHJhbmdlX3R5cGUgJiBSQU5HRV9MT1dfQk9VTkRfREVG QVVMVCkKLSsgICAgICBpZiAocmFuZ2VfZmxhZyAmIFJBTkdFX0xPV19CT1VORF9ERUZBVUxUKQot IAktLWFyZ3M7Ci0tICAgICAgaWYgKHJhbmdlX3R5cGUgJiBSQU5HRV9ISUdIX0JPVU5EX0RFRkFV TFQpCi0rICAgICAgaWYgKHJhbmdlX2ZsYWcgJiBSQU5HRV9ISUdIX0JPVU5EX0RFRkFVTFQpCi0g CS0tYXJnczsKLSAKLSAgICAgICBicmVhazsKLWRpZmYgLS1naXQgYS9nZGIvcnVzdC1leHAueSBi L2dkYi9ydXN0LWV4cC55Ci0tLS0gYS9nZGIvcnVzdC1leHAueQotKysrIGIvZ2RiL3J1c3QtZXhw LnkKLUBAIC0yNDkyLDcgKzI0OTIsNyBAQCBydXN0X3BhcnNlcjo6Y29udmVydF9hc3RfdG9fZXhw cmVzc2lvbiAoY29uc3Qgc3RydWN0IHJ1c3Rfb3AgKm9wZXJhdGlvbiwKLSAKLSAgICAgY2FzZSBP UF9SQU5HRToKLSAgICAgICB7Ci0tCWVudW0gcmFuZ2VfdHlwZSBraW5kID0gKFJBTkdFX0hJR0hf Qk9VTkRfREVGQVVMVAotKwl1bnNpZ25lZCBpbnQga2luZCA9IChSQU5HRV9ISUdIX0JPVU5EX0RF RkFVTFQKLSAJCQkJfCBSQU5HRV9MT1dfQk9VTkRfREVGQVVMVCk7Ci0gCi0gCWlmIChvcGVyYXRp b24tPmxlZnQub3AgIT0gTlVMTCkKLWRpZmYgLS1naXQgYS9nZGIvcnVzdC1sYW5nLmMgYi9nZGIv cnVzdC1sYW5nLmMKLS0tLSBhL2dkYi9ydXN0LWxhbmcuYwotKysrIGIvZ2RiL3J1c3QtbGFuZy5j Ci1AQCAtMTA3MCw3ICsxMDcwLDYgQEAgcnVzdF9ldmFsdWF0ZV9mdW5jYWxsIChzdHJ1Y3QgZXhw cmVzc2lvbiAqZXhwLCBpbnQgKnBvcywgZW51bSBub3NpZGUgbm9zaWRlKQotIHN0YXRpYyBzdHJ1 Y3QgdmFsdWUgKgotIHJ1c3RfcmFuZ2UgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCAqcG9z LCBlbnVtIG5vc2lkZSBub3NpZGUpCi0gewotLSAgZW51bSByYW5nZV90eXBlIGtpbmQ7Ci0gICBz dHJ1Y3QgdmFsdWUgKmxvdyA9IE5VTEwsICpoaWdoID0gTlVMTDsKLSAgIHN0cnVjdCB2YWx1ZSAq YWRkcnZhbCwgKnJlc3VsdDsKLSAgIENPUkVfQUREUiBhZGRyOwotQEAgLTEwNzksNyArMTA3OCw4 IEBAIHJ1c3RfcmFuZ2UgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCAqcG9zLCBlbnVtIG5v c2lkZSBub3NpZGUpCi0gICBzdHJ1Y3QgdHlwZSAqdGVtcF90eXBlOwotICAgY29uc3QgY2hhciAq bmFtZTsKLSAKLS0gIGtpbmQgPSAoZW51bSByYW5nZV90eXBlKSBsb25nZXN0X3RvX2ludCAoZXhw LT5lbHRzWypwb3MgKyAxXS5sb25nY29uc3QpOwotKyAgYXV0byBraW5kCi0rICAgID0gKGVudW0g cmFuZ2VfZmxhZykgbG9uZ2VzdF90b19pbnQgKGV4cC0+ZWx0c1sqcG9zICsgMV0ubG9uZ2NvbnN0 KTsKLSAgICpwb3MgKz0gMzsKLSAKLSAgIGlmICghKGtpbmQgJiBSQU5HRV9MT1dfQk9VTkRfREVG QVVMVCkpCi1AQCAtMTE2OSw3ICsxMTY5LDcgQEAgcnVzdF9yYW5nZSAoc3RydWN0IGV4cHJlc3Np b24gKmV4cCwgaW50ICpwb3MsIGVudW0gbm9zaWRlIG5vc2lkZSkKLSBzdGF0aWMgdm9pZAotIHJ1 c3RfY29tcHV0ZV9yYW5nZSAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB2YWx1ZSAqcmFuZ2Us Ci0gCQkgICAgTE9OR0VTVCAqbG93LCBMT05HRVNUICpoaWdoLAotLQkJICAgIHJhbmdlX3R5cGVz ICpraW5kKQotKwkJICAgIHJhbmdlX2ZsYWdzICpraW5kKQotIHsKLSAgIGludCBpOwotIAotQEAg LTEyMDksNyArMTIwOSw3IEBAIHJ1c3Rfc3Vic2NyaXB0IChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhw LCBpbnQgKnBvcywgZW51bSBub3NpZGUgbm9zaWRlLAotICAgc3RydWN0IHR5cGUgKnJoc3R5cGU7 Ci0gICBMT05HRVNUIGxvdywgaGlnaF9ib3VuZDsKLSAgIC8qIEluaXRpYWxpemVkIHRvIGFwcGVh c2UgdGhlIGNvbXBpbGVyLiAgKi8KLS0gIHJhbmdlX3R5cGVzIGtpbmQgPSBSQU5HRV9MT1dfQk9V TkRfREVGQVVMVCB8IFJBTkdFX0hJR0hfQk9VTkRfREVGQVVMVDsKLSsgIHJhbmdlX2ZsYWdzIGtp bmQgPSBSQU5HRV9MT1dfQk9VTkRfREVGQVVMVCB8IFJBTkdFX0hJR0hfQk9VTkRfREVGQVVMVDsK LSAgIExPTkdFU1QgaGlnaCA9IDA7Ci0gICBpbnQgd2FudF9zbGljZSA9IDA7Ci0gCgpkaWZmIC0t Z2l0IGEvZ2RiLXJoYnoxOTY0MTY3LWZvcnRyYW4td2hpdGVzcGFjZV9hcnJheS5wYXRjaCBiL2dk Yi1yaGJ6MTk2NDE2Ny1mb3J0cmFuLXdoaXRlc3BhY2VfYXJyYXkucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDkwMjE1NTkuLjAwMDAwMDAKLS0tIGEvZ2RiLXJoYnoxOTY0MTY3 LWZvcnRyYW4td2hpdGVzcGFjZV9hcnJheS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEzNyAr MCwwIEBACi1Gcm9tIEZFRE9SQV9QQVRDSEVTIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJv bTogS2V2aW4gQnVldHRuZXIgPGtldmluYkByZWRoYXQuY29tPgotRGF0ZTogTW9uLCAyNCBNYXkg MjAyMSAxNzowNzozNiAtMDcwMAotU3ViamVjdDogZ2RiLXJoYnoxOTY0MTY3LWZvcnRyYW4td2hp dGVzcGFjZV9hcnJheS5wYXRjaAotCi07OyBbZm9ydHJhbl0gQmFja3BvcnQgQW5kcmV3IEJ1cmdl c3MncyBjb21taXQgd2hpY2ggZWxpbWluYXRlcyB1bmRlc2lyYWJsZQotOzsgd2hpdGVzcGFjZSB3 aGVuIHByaW50aW5nIGFycmF5cy4KLQotZ2RiL2ZvcnRyYW46IENoYW5nZSB3aGl0ZXNwYWNlIHdo ZW4gcHJpbnRpbmcgYXJyYXlzCi0KLVRoaXMgY29tbWl0IG1ha2VzIHRoZSB3aGl0ZXNwYWNlIHVz YWdlIHdoZW4gcHJpbnRpbmcgRm9ydHJhbiBhcnJheXMKLW1vcmUgY29uc2lzdGVudCwgYW5kIG1v cmUgaW5saW5lIHdpdGggaG93IHdlIHByaW50IEMgYXJyYXlzLgotCi1DdXJyZW50bHkgYSAyIGRp bWVuc2lvbmFsIEZvdHJhbiBhcnJheSBpcyBwcmludGVkIGxpa2UgdGhpcywgSSBmaW5kCi10aGUg bWFya2VkIHdoaXRlc3BhY2UgdW5wbGVhc2FudDoKLQotICAoKCAxLCAyLCAzKSAoIDQsIDUsIDYp ICkKLSAgICBeICAgICAgICAgIF4gICAgICAgIF4KLQotQWZ0ZXIgdGhpcyBjb21taXQgdGhlIHNh bWUgYXJyYXkgaXMgcHJpbnRlZCBsaWtlIHRoaXM6Ci0KLSAgKCgxLCAyLCAzKSAoNCwgNSwgNikp Ci0KLVdoaWNoIHNlZW1zIG1vcmUgaW5saW5lIHdpdGggaG93IHdlIHByaW50IEMgYXJyYXlzLCBp biB0aGUgY2FzZSBvZiBDCi1hcnJheXMgd2UgZG9uJ3QgYWRkIGV4dHJhIHdoaXRlc3BhY2UgYmVm b3JlIHRoZSBmaXJzdCBlbGVtZW50LgotCi1nZGIvQ2hhbmdlTG9nOgotCi0JKiBmLXZhbHByaW50 LmMgKGY3N19wcmludF9hcnJheV8xKTogQWRqdXN0IHByaW50aW5nIG9mIHdoaXRlc3BhY2UKLQlm b3IgYXJyYXlzLgotCi1nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZzoKLQotCSogZ2RiLmZvcnRyYW4v YXJyYXktc2xpY2VzLmV4cDogVXBkYXRlIGV4cGVjdGVkIHJlc3VsdHMuCi0JKiBnZGIuZm9ydHJh bi9jbGFzcy1hbGxvY2F0YWJsZS1hcnJheS5leHA6IExpa2V3aXNlLgotCSogZ2RiLmZvcnRyYW4v bXVsdGktZGltLmV4cDogTGlrZXdpc2UuCi0JKiBnZGIuZm9ydHJhbi92bGEtdHlwZS5leHA6IExp a2V3aXNlLgotCSogZ2RiLm1pL21pLXZsYS1mb3J0cmFuLmV4cDogTGlrZXdpc2UuCi0KLWRpZmYg LS1naXQgYS9nZGIvZi12YWxwcmludC5jIGIvZ2RiL2YtdmFscHJpbnQuYwotLS0tIGEvZ2RiL2Yt dmFscHJpbnQuYwotKysrIGIvZ2RiL2YtdmFscHJpbnQuYwotQEAgLTEzNywxNCArMTM3LDE3IEBA IGY3N19wcmludF9hcnJheV8xIChpbnQgbnNzLCBpbnQgbmRpbWVuc2lvbnMsIHN0cnVjdCB0eXBl ICp0eXBlLAotIAkgICAgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpLCB2YWx1ZV9jb250ZW50c19m b3JfcHJpbnRpbmdfY29uc3QgKHZhbCkKLSAJICAgICArIG9mZnMsIGFkZHIgKyBvZmZzKTsKLSAK LS0JICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIoICIpOwotKwkgIGZwcmludGZfZmlsdGVy ZWQgKHN0cmVhbSwgIigiKTsKLSAJICBmNzdfcHJpbnRfYXJyYXlfMSAobnNzICsgMSwgbmRpbWVu c2lvbnMsIHZhbHVlX3R5cGUgKHN1YmFycmF5KSwKLSAJCQkgICAgIHZhbHVlX2NvbnRlbnRzX2Zv cl9wcmludGluZyAoc3ViYXJyYXkpLAotIAkJCSAgICAgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0IChz dWJhcnJheSksCi0gCQkJICAgICB2YWx1ZV9hZGRyZXNzIChzdWJhcnJheSksCi0gCQkJICAgICBz dHJlYW0sIHJlY3Vyc2UsIHN1YmFycmF5LCBvcHRpb25zLCBlbHRzKTsKLSAJICBvZmZzICs9IGJ5 dGVfc3RyaWRlOwotLQkgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIikgIik7Ci0rCSAgZnBy aW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiKSIpOwotKwotKwkgIGlmIChpIDwgdXBwZXJib3VuZCkK LSsJICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiAiKTsKLSAJfQotICAgICAgIGlmICgq ZWx0cyA+PSBvcHRpb25zLT5wcmludF9tYXggJiYgaSA8IHVwcGVyYm91bmQpCi0gCWZwcmludGZf ZmlsdGVyZWQgKHN0cmVhbSwgIi4uLiIpOwotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vYXJyYXktc2xpY2VzLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vYXJy YXktc2xpY2VzLmV4cAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9hcnJheS1zbGlj ZXMuZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2FycmF5LXNsaWNlcy5leHAK LUBAIC0zOCwxNCArMzgsMTQgQEAgZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIg IkZpbmFsIEJyZWFrcG9pbnQiXQotIAotIHNldCBhcnJheV9jb250ZW50cyBcCi0gICAgIFtsaXN0 IFwKLS0JICIgPSBcXChcXCggMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBcXCkgXFwoIDEx LCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwXFwpIFxcKCAyMSwgMjIsIDIzLCAy NCwgMjUsIDI2LCAyNywgMjgsIDI5LCAzMFxcKSBcXCggMzEsIDMyLCAzMywgMzQsIDM1LCAzNiwg MzcsIDM4LCAzOSwgNDBcXCkgXFwoIDQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OCwgNDks IDUwXFwpIFxcKCA1MSwgNTIsIDUzLCA1NCwgNTUsIDU2LCA1NywgNTgsIDU5LCA2MFxcKSBcXCgg NjEsIDYyLCA2MywgNjQsIDY1LCA2NiwgNjcsIDY4LCA2OSwgNzBcXCkgXFwoIDcxLCA3MiwgNzMs IDc0LCA3NSwgNzYsIDc3LCA3OCwgNzksIDgwXFwpIFxcKCA4MSwgODIsIDgzLCA4NCwgODUsIDg2 LCA4NywgODgsIDg5LCA5MFxcKSBcXCggOTEsIDkyLCA5MywgOTQsIDk1LCA5NiwgOTcsIDk4LCA5 OSwgMTAwXFwpIFxcKSIgXAotLQkgIiA9IFxcKFxcKCAxLCAyLCAzLCA0LCA1XFwpIFxcKCAxMSwg MTIsIDEzLCAxNCwgMTVcXCkgXFwoIDIxLCAyMiwgMjMsIDI0LCAyNVxcKSBcXCggMzEsIDMyLCAz MywgMzQsIDM1XFwpIFxcKCA0MSwgNDIsIDQzLCA0NCwgNDVcXCkgXFwpIiBcCi0tCSAiID0gXFwo XFwoIDEsIDMsIDUsIDcsIDlcXCkgXFwoIDIxLCAyMywgMjUsIDI3LCAyOVxcKSBcXCggNDEsIDQz LCA0NSwgNDcsIDQ5XFwpIFxcKCA2MSwgNjMsIDY1LCA2NywgNjlcXCkgXFwoIDgxLCA4MywgODUs IDg3LCA4OVxcKSBcXCkiIFwKLS0JICIgPSBcXChcXCggMSwgNCwgNywgMTBcXCkgXFwoIDIxLCAy NCwgMjcsIDMwXFwpIFxcKCA0MSwgNDQsIDQ3LCA1MFxcKSBcXCggNjEsIDY0LCA2NywgNzBcXCkg XFwoIDgxLCA4NCwgODcsIDkwXFwpIFxcKSIgXAotLQkgIiA9IFxcKFxcKCAxLCA1LCA5XFwpIFxc KCAzMSwgMzUsIDM5XFwpIFxcKCA2MSwgNjUsIDY5XFwpIFxcKCA5MSwgOTUsIDk5XFwpIFxcKSIg XAotLQkgIiA9IFxcKFxcKCAtMjYsIC0yNSwgLTI0LCAtMjMsIC0yMiwgLTIxLCAtMjAsIC0xOSwg LTE4LCAtMTdcXCkgXFwoIC0xOSwgLTE4LCAtMTcsIC0xNiwgLTE1LCAtMTQsIC0xMywgLTEyLCAt MTEsIC0xMFxcKSBcXCggLTEyLCAtMTEsIC0xMCwgLTksIC04LCAtNywgLTYsIC01LCAtNCwgLTNc XCkgXFwoIC01LCAtNCwgLTMsIC0yLCAtMSwgMCwgMSwgMiwgMywgNFxcKSBcXCggMiwgMywgNCwg NSwgNiwgNywgOCwgOSwgMTAsIDExXFwpIFxcKCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAx NiwgMTcsIDE4XFwpIFxcKCAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNVxc KSBcXCggMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzJcXCkgXFwoIDMwLCAz MSwgMzIsIDMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5XFwpIFxcKCAzNywgMzgsIDM5LCA0MCwg NDEsIDQyLCA0MywgNDQsIDQ1LCA0NlxcKSBcXCkiIFwKLS0JICIgPSBcXChcXCggLTI2LCAtMjUs IC0yNCwgLTIzLCAtMjIsIC0yMVxcKSBcXCggLTE5LCAtMTgsIC0xNywgLTE2LCAtMTUsIC0xNFxc KSBcXCggLTEyLCAtMTEsIC0xMCwgLTksIC04LCAtN1xcKSBcXCkiIFwKLS0JICIgPSBcXChcXCgg LTI2LCAtMjQsIC0yMiwgLTIwLCAtMThcXCkgXFwoIC01LCAtMywgLTEsIDEsIDNcXCkgXFwoIDE2 LCAxOCwgMjAsIDIyLCAyNFxcKSBcXCggMzcsIDM5LCA0MSwgNDMsIDQ1XFwpIFxcKSIgXQotKwkg IiA9IFxcKFxcKDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwXFwpIFxcKDExLCAxMiwgMTMs IDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwXFwpIFxcKDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYs IDI3LCAyOCwgMjksIDMwXFwpIFxcKDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzks IDQwXFwpIFxcKDQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OCwgNDksIDUwXFwpIFxcKDUx LCA1MiwgNTMsIDU0LCA1NSwgNTYsIDU3LCA1OCwgNTksIDYwXFwpIFxcKDYxLCA2MiwgNjMsIDY0 LCA2NSwgNjYsIDY3LCA2OCwgNjksIDcwXFwpIFxcKDcxLCA3MiwgNzMsIDc0LCA3NSwgNzYsIDc3 LCA3OCwgNzksIDgwXFwpIFxcKDgxLCA4MiwgODMsIDg0LCA4NSwgODYsIDg3LCA4OCwgODksIDkw XFwpIFxcKDkxLCA5MiwgOTMsIDk0LCA5NSwgOTYsIDk3LCA5OCwgOTksIDEwMFxcKVxcKSIgXAot KwkgIiA9IFxcKFxcKDEsIDIsIDMsIDQsIDVcXCkgXFwoMTEsIDEyLCAxMywgMTQsIDE1XFwpIFxc KDIxLCAyMiwgMjMsIDI0LCAyNVxcKSBcXCgzMSwgMzIsIDMzLCAzNCwgMzVcXCkgXFwoNDEsIDQy LCA0MywgNDQsIDQ1XFwpXFwpIiBcCi0rCSAiID0gXFwoXFwoMSwgMywgNSwgNywgOVxcKSBcXCgy MSwgMjMsIDI1LCAyNywgMjlcXCkgXFwoNDEsIDQzLCA0NSwgNDcsIDQ5XFwpIFxcKDYxLCA2Mywg NjUsIDY3LCA2OVxcKSBcXCg4MSwgODMsIDg1LCA4NywgODlcXClcXCkiIFwKLSsJICIgPSBcXChc XCgxLCA0LCA3LCAxMFxcKSBcXCgyMSwgMjQsIDI3LCAzMFxcKSBcXCg0MSwgNDQsIDQ3LCA1MFxc KSBcXCg2MSwgNjQsIDY3LCA3MFxcKSBcXCg4MSwgODQsIDg3LCA5MFxcKVxcKSIgXAotKwkgIiA9 IFxcKFxcKDEsIDUsIDlcXCkgXFwoMzEsIDM1LCAzOVxcKSBcXCg2MSwgNjUsIDY5XFwpIFxcKDkx LCA5NSwgOTlcXClcXCkiIFwKLSsJICIgPSBcXChcXCgtMjYsIC0yNSwgLTI0LCAtMjMsIC0yMiwg LTIxLCAtMjAsIC0xOSwgLTE4LCAtMTdcXCkgXFwoLTE5LCAtMTgsIC0xNywgLTE2LCAtMTUsIC0x NCwgLTEzLCAtMTIsIC0xMSwgLTEwXFwpIFxcKC0xMiwgLTExLCAtMTAsIC05LCAtOCwgLTcsIC02 LCAtNSwgLTQsIC0zXFwpIFxcKC01LCAtNCwgLTMsIC0yLCAtMSwgMCwgMSwgMiwgMywgNFxcKSBc XCgyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTFcXCkgXFwoOSwgMTAsIDExLCAxMiwgMTMs IDE0LCAxNSwgMTYsIDE3LCAxOFxcKSBcXCgxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMs IDI0LCAyNVxcKSBcXCgyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMlxcKSBc XCgzMCwgMzEsIDMyLCAzMywgMzQsIDM1LCAzNiwgMzcsIDM4LCAzOVxcKSBcXCgzNywgMzgsIDM5 LCA0MCwgNDEsIDQyLCA0MywgNDQsIDQ1LCA0NlxcKVxcKSIgXAotKwkgIiA9IFxcKFxcKC0yNiwg LTI1LCAtMjQsIC0yMywgLTIyLCAtMjFcXCkgXFwoLTE5LCAtMTgsIC0xNywgLTE2LCAtMTUsIC0x NFxcKSBcXCgtMTIsIC0xMSwgLTEwLCAtOSwgLTgsIC03XFwpXFwpIiBcCi0rCSAiID0gXFwoXFwo LTI2LCAtMjQsIC0yMiwgLTIwLCAtMThcXCkgXFwoLTUsIC0zLCAtMSwgMSwgM1xcKSBcXCgxNiwg MTgsIDIwLCAyMiwgMjRcXCkgXFwoMzcsIDM5LCA0MSwgNDMsIDQ1XFwpXFwpIiBdCi0gCi0gc2V0 IG1lc3NhZ2Vfc3RyaW5ncyBcCi0gICAgIFtsaXN0IFwKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL2NsYXNzLWFsbG9jYXRhYmxlLWFycmF5LmV4cCBiL2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vY2xhc3MtYWxsb2NhdGFibGUtYXJyYXkuZXhwCi0tLS0gYS9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL2NsYXNzLWFsbG9jYXRhYmxlLWFycmF5LmV4cAotKysrIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9jbGFzcy1hbGxvY2F0YWJsZS1hcnJheS5leHAKLUBAIC00 MCw0ICs0MCw0IEBAIGdkYl9jb250aW51ZV90b19icmVha3BvaW50ICJCcmVhayBIZXJlIgotICMg Y2V0YWlubHkgZ29pbmcgdG8gZmFpbC4KLSBnZGJfdGVzdCAicHJpbnQgdGhpcyIgIiA9IFxcKCBf ZGF0YSA9IFxbXlxyXG5cXSssIF92cHRyID0gXFteXHJcblxdK1xcKSIKLSBnZGJfdGVzdCAicHJp bnQgdGhpcyVfZGF0YSIgIiA9IFxcKFBUUiBUTyAtPiBcXCggVHlwZSB0ZXN0X3R5cGUgXFwpXFwp IFxbXlxyXG5cXSsiCi0tZ2RiX3Rlc3QgInByaW50IHRoaXMlX2RhdGElYiIgIiA9IFxcKFxcKCAx LCAyLCAzXFwpIFxcKCA0LCA1LCA2XFwpIFxcKSIKLStnZGJfdGVzdCAicHJpbnQgdGhpcyVfZGF0 YSViIiAiID0gXFwoXFwoMSwgMiwgM1xcKSBcXCg0LCA1LCA2XFwpXFwpIgotZGlmZiAtLWdpdCBh L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vbXVsdGktZGltLmV4cCBiL2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vbXVsdGktZGltLmV4cAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi9tdWx0aS1kaW0uZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL211bHRpLWRp bS5leHAKLUBAIC01Nyw3ICs1Nyw3IEBAIGdkYl90ZXN0ICJwcmludCBmb28oMywzLDQpIiBcCi0g ICAgICJwcmludCBhbiBpbnZhbGlkIGFycmF5IGluZGV4ICgzLDMsNCkiCi0gCi0gZ2RiX3Rlc3Qg InByaW50IGZvbyIgXAotLSAgICB7ID0gXChcKCBcKCAxMCwgMTBcKSBcKCAxMCwgMTBcKSBcKCAx MCwgMTBcKSBcKSBcKCBcKCAxMCwgMTBcKSBcKCAxMCwgMTBcKSBcKCAxMCwgMTBcKSBcKSBcKCBc KCAxMCwgMTBcKSBcKCAxMCwgMTBcKSBcKCAxMCwgMTBcKSBcKSBcKCBcKCAxMCwgMTBcKSBcKCAx MCwgMTBcKSBcKCAxMCwgMjBcKSBcKSBcKX0gXAotKyAgICB7ID0gXChcKFwoMTAsIDEwXCkgXCgx MCwgMTBcKSBcKDEwLCAxMFwpXCkgXChcKDEwLCAxMFwpIFwoMTAsIDEwXCkgXCgxMCwgMTBcKVwp IFwoXCgxMCwgMTBcKSBcKDEwLCAxMFwpIFwoMTAsIDEwXClcKSBcKFwoMTAsIDEwXCkgXCgxMCwg MTBcKSBcKDEwLCAyMFwpXClcKX0gXAotICAgICAicHJpbnQgZnVsbCBjb250ZW50cyBvZiB0aGUg YXJyYXkiCi0gCi0gZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgImJyZWFrLXZh cmlhYmxlIl0KLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS10eXBl LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXR5cGUuZXhwCi0tLS0gYS9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS10eXBlLmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi92bGEtdHlwZS5leHAKLUBAIC02Niw5ICs2Niw5IEBAIGdkYl90ZXN0ICJwdHlw ZSB0d292IiBcCi0gICAgICAgICAgICAgICAgICAgICAgIlxccyskaW50LCBhbGxvY2F0YWJsZSA6 OiBpdmxhMVxcXCg1LDEyLDk5XFxcKSIgXAotICAgICAgICAgICAgICAgICAgICAgICJcXHMrJGlu dCwgYWxsb2NhdGFibGUgOjogaXZsYTJcXFwoOSwxMlxcXCkiIFwKLSAgICAgICAgICAgICAgICAg ICAgICAiRW5kIFR5cGUgdHdvIiBdCi0tZ2RiX3Rlc3QgInByaW50IHR3b3YiICIgPSBcXFwoIGl2 bGExID0gXFxcKFxcXCggXFxcKCAxLCAxLCAxLCAxLCAxXFxcKVwKLS0gXFxcKCAxLCAxLCAzMjEs IDEsIDFcXFwpXAotLSBcXFwoIDEsIDEsIDEsIDEsIDFcXFwpIC4qIgotK2dkYl90ZXN0ICJwcmlu dCB0d292IiAiID0gXFxcKCBpdmxhMSA9IFxcXChcXFwoXFxcKDEsIDEsIDEsIDEsIDFcXFwpXAot KyBcXFwoMSwgMSwgMzIxLCAxLCAxXFxcKVwKLSsgXFxcKDEsIDEsIDEsIDEsIDFcXFwpIC4qIgot IAotICMgQ2hlY2sgdHlwZSB3aXRoIGF0dHJpYnV0ZSBhdCBiZWdpbm4gb2YgdHlwZQotIGdkYl9i cmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ0aHJlZXYtZmlsbGVkIl0KLWRpZmYgLS1n aXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12bGEtZm9ydHJhbi5leHAgYi9nZGIvdGVzdHN1 aXRlL2dkYi5taS9taS12bGEtZm9ydHJhbi5leHAKLS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLm1p L21pLXZsYS1mb3J0cmFuLmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmxhLWZv cnRyYW4uZXhwCi1AQCAtMTgwLDcgKzE4MCw3IEBAIG1pX3J1bl9jbWQKLSBtaV9leHBlY3Rfc3Rv cCAiYnJlYWtwb2ludC1oaXQiICJ2bGEiICIiICIuKnZsYS5mOTAiICIkYnBfbGluZW5vIiBcCi0g ICB7ICIiICJkaXNwPVwiZGVsXCIiIH0gInJ1biB0byBicmVha3BvaW50IGF0IGxpbmUgJGJwX2xp bmVubyIKLSBtaV9nZGJfdGVzdCAiNTkwLWRhdGEtZXZhbHVhdGUtZXhwcmVzc2lvbiBwdmxhMiIg XAotLSAgIjU5MFxcXmRvbmUsdmFsdWU9XCJcXChcXCggMiwgMiwgMiwgMiwgMlxcKSBcXCggMiwg MiwgMiwgMiwgMlxcKSBcXClcIiIgXAotKyAgIjU5MFxcXmRvbmUsdmFsdWU9XCJcXChcXCgyLCAy LCAyLCAyLCAyXFwpIFxcKDIsIDIsIDIsIDIsIDJcXClcXClcIiIgXAotICAgImV2YWx1YXRlIGFz c29jaWF0ZWQgdmxhIgotIAotIG1pX2NyZWF0ZV92YXJvYmpfY2hlY2tlZCBwdmxhMl9hc3NvY2lh dGVkIHB2bGEyIFwKCmRpZmYgLS1naXQgYS9nZGItcmhiejE5NjQxNjctbW92ZS1mb3J0cmFuLWV4 cHItaGFuZGxpbmcucGF0Y2ggYi9nZGItcmhiejE5NjQxNjctbW92ZS1mb3J0cmFuLWV4cHItaGFu ZGxpbmcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI5MjE2ODQuLjAwMDAw MDAKLS0tIGEvZ2RiLXJoYnoxOTY0MTY3LW1vdmUtZm9ydHJhbi1leHByLWhhbmRsaW5nLnBhdGNo CisrKyAvZGV2L251bGwKQEAgLTEsNzg3ICswLDAgQEAKLUZyb20gRkVET1JBX1BBVENIRVMgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLZXZpbiBCdWV0dG5lciA8a2V2aW5iQHJlZGhh dC5jb20+Ci1EYXRlOiBNb24sIDI0IE1heSAyMDIxIDE3OjAwOjE3IC0wNzAwCi1TdWJqZWN0OiBn ZGItcmhiejE5NjQxNjctbW92ZS1mb3J0cmFuLWV4cHItaGFuZGxpbmcucGF0Y2gKLQotOzsgW2Zv cnRyYW5dIEJhY2twb3J0IEFuZHJldyBCdXJnZXNzJ3MgY29tbWl0IHdoaWNoIG1vdmVzIEZvcnRy YW4KLTs7IGV4cHJlc3Npb24gaGFuZGxpbmcgdG8gZi1sYW5nLmMuCi0KLWdkYi9mb3J0cmFuOiBN b3ZlIEZvcnRyYW4gZXhwcmVzc2lvbiBoYW5kbGluZyBpbnRvIGYtbGFuZy5jCi0KLVRoZSBGb3J0 cmFuIHNwZWNpZmljIE9QX0Y3N19VTkRFVEVSTUlORURfQVJHTElTVCBpcyBjdXJyZW50bHkgaGFu ZGxlZAotaW4gdGhlIGdlbmVyaWMgZXhwcmVzc2lvbiBoYW5kbGluZyBjb2RlLiAgVGhlcmUncyBu byByZWFzb24gd2h5IHRoaXMKLXNob3VsZCBiZSB0aGUgY2FzZSwgc28gdGhpcyBjb21taXQgbW92 ZXMgaGFuZGxpbmcgb2YgdGhpcyBpbnRvIEZvcnRyYW4KLXNwZWNpZmljIGZpbGVzLgotCi1UaGVy ZSBzaG91bGQgYmUgbm8gdXNlciB2aXNpYmxlIGNoYW5nZXMgYWZ0ZXIgdGhpcyBjb21taXQuCi0K LWdkYi9DaGFuZ2VMb2c6Ci0KLQkqIGV2YWwuYzogUmVtb3ZlICdmLWxhbmcuaCcgaW5jbHVkZS4K LQkodmFsdWVfZjkwX3N1YmFycmF5KTogTW92ZWQgdG8gZi1sYW5nLmMuCi0JKGV2YWxfY2FsbCk6 IFJlbmFtZWQgdG8uLi4KLQkoZXZhbHVhdGVfc3ViZXhwX2RvX2NhbGwpOiAuLi50aGlzLCBpcyBu byBsb25nZXIgc3RhdGljLCBoZWFkZXIKLQljb21tZW50IG1vdmVkIGludG8gaGVhZGVyIGZpbGUu Ci0JKGV2YWx1YXRlX2Z1bmNhbGwpOiBVcGRhdGUgY2FsbCB0byBldmFsX2NhbGwuCi0JKHNraXBf dW5kZXRlcm1pbmVkX2FyZ2xpc3QpOiBNb3ZlZCB0byBmLWxhbmcuYy4KLQkoZm9ydHJhbl92YWx1 ZV9zdWJhcnJheSk6IExpa2V3aXNlLgotCShldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQpOiBPUF9G NzdfVU5ERVRFUk1JTkVEX0FSR0xJU1QgaGFuZGxpbmcKLQltb3ZlZCB0byBldmFsdWF0ZV9zdWJl eHBfZi4KLQkoY2FsY19mNzdfYXJyYXlfZGltcyk6IE1vdmVkIHRvIGYtbGFuZy5jCi0JKiBleHBw cmludC5jIChwcmludF9zdWJleHBfZnVuY2FsbCk6IE5ldyBmdW5jdGlvbi4KLQkocHJpbnRfc3Vi ZXhwX3N0YW5kYXJkKTogT1BfRjc3X1VOREVURVJNSU5FRF9BUkdMSVNUIGhhbmRsaW5nCi0JbW92 ZWQgdG8gcHJpbnRfc3ViZXhwX2YsIE9QX0ZVTkNBTEwgdXNlcyBuZXcgZnVuY3Rpb24uCi0JKGR1 bXBfc3ViZXhwX2JvZHlfZnVuY2FsbCk6IE5ldyBmdW5jdGlvbi4KLQkoZHVtcF9zdWJleHBfYm9k eV9zdGFuZGFyZCk6IE9QX0Y3N19VTkRFVEVSTUlORURfQVJHTElTVCBoYW5kbGluZwotCW1vdmVk IHRvIGR1bXBfc3ViZXhwX2YsIE9QX0ZVTkNBTEwgdXNlcyBuZXcgZnVuY3Rpb24uCi0JKiBleHBy ZXNzaW9uLmggKGV2YWx1YXRlX3N1YmV4cF9kb19jYWxsKTogRGVjbGFyZS4KLQkqIGYtbGFuZy5j ICh2YWx1ZV9mOTBfc3ViYXJyYXkpOiBNb3ZlZCBmcm9tIGV2YWwuYy4KLQkoc2tpcF91bmRldGVy bWluZWRfYXJnbGlzdCk6IExpa2V3aXNlLgotCShjYWxjX2Y3N19hcnJheV9kaW1zKTogTGlrZXdp c2UuCi0JKGZvcnRyYW5fdmFsdWVfc3ViYXJyYXkpOiBMaWtld2lzZS4KLQkoZXZhbHVhdGVfc3Vi ZXhwX2YpOiBBZGQgT1BfRjc3X1VOREVURVJNSU5FRF9BUkdMSVNUIHN1cHBvcnQuCi0JKG9wZXJh dG9yX2xlbmd0aF9mKTogTGlrZXdpc2UuCi0JKHByaW50X3N1YmV4cF9mKTogTGlrZXdpc2UuCi0J KGR1bXBfc3ViZXhwX2JvZHlfZik6IExpa2V3aXNlLgotCSogZm9ydHJhbi1vcGVyYXRvci5kZWYg KE9QX0Y3N19VTkRFVEVSTUlORURfQVJHTElTVCk6IE1vdmUKLQlkZWNsYXJhdGlvbiBvZiB0aGlz IG9wZXJhdGlvbiB0byBoZXJlLgotCSogcGFyc2UuYyAob3BlcmF0b3JfbGVuZ3RoX3N0YW5kYXJk KTogT1BfRjc3X1VOREVURVJNSU5FRF9BUkdMSVNUCi0Jc3VwcG9ydCBtb3ZlZCB0byBvcGVyYXRv cl9sZW5ndGhfZi4KLQkqIHBhcnNlci1kZWZzLmggKGR1bXBfc3ViZXhwX2JvZHlfZnVuY2FsbCk6 IERlY2xhcmUuCi0JKHByaW50X3N1YmV4cF9mdW5jYWxsKTogRGVjbGFyZS4KLQkqIHN0ZC1vcGVy YXRvci5kZWYgKE9QX0Y3N19VTkRFVEVSTUlORURfQVJHTElTVCk6IE1vdmVkIHRvCi0JZm9ydHJh bi1vcGVyYXRvci5kZWYuCi0KLWRpZmYgLS1naXQgYS9nZGIvZXZhbC5jIGIvZ2RiL2V2YWwuYwot LS0tIGEvZ2RiL2V2YWwuYwotKysrIGIvZ2RiL2V2YWwuYwotQEAgLTI2LDcgKzI2LDYgQEAKLSAj aW5jbHVkZSAiZnJhbWUuaCIKLSAjaW5jbHVkZSAiZ2RidGhyZWFkLmgiCi0gI2luY2x1ZGUgImxh bmd1YWdlLmgiCQkvKiBGb3IgQ0FTVF9JU19DT05WRVJTSU9OLiAgKi8KLS0jaW5jbHVkZSAiZi1s YW5nLmgiCQkvKiBGb3IgYXJyYXkgYm91bmQgc3R1ZmYuICAqLwotICNpbmNsdWRlICJjcC1hYmku aCIKLSAjaW5jbHVkZSAiaW5mY2FsbC5oIgotICNpbmNsdWRlICJvYmpjLWxhbmcuaCIKLUBAIC0z NzEsMzIgKzM3MCw2IEBAIGluaXRfYXJyYXlfZWxlbWVudCAoc3RydWN0IHZhbHVlICphcnJheSwg c3RydWN0IHZhbHVlICplbGVtZW50LAotICAgcmV0dXJuIGluZGV4OwotIH0KLSAKLS1zdGF0aWMg c3RydWN0IHZhbHVlICoKLS12YWx1ZV9mOTBfc3ViYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJyYXks Ci0tCQkgICAgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50ICpwb3MsIGVudW0gbm9zaWRlIG5v c2lkZSkKLS17Ci0tICBpbnQgcGMgPSAoKnBvcykgKyAxOwotLSAgTE9OR0VTVCBsb3dfYm91bmQs IGhpZ2hfYm91bmQ7Ci0tICBzdHJ1Y3QgdHlwZSAqcmFuZ2UgPSBjaGVja190eXBlZGVmICh2YWx1 ZV90eXBlIChhcnJheSktPmluZGV4X3R5cGUgKCkpOwotLSAgZW51bSByYW5nZV90eXBlIHJhbmdl X3R5cGUKLS0gICAgPSAoZW51bSByYW5nZV90eXBlKSBsb25nZXN0X3RvX2ludCAoZXhwLT5lbHRz W3BjXS5sb25nY29uc3QpOwotLSAKLS0gICpwb3MgKz0gMzsKLS0KLS0gIGlmIChyYW5nZV90eXBl ID09IExPV19CT1VORF9ERUZBVUxUIHx8IHJhbmdlX3R5cGUgPT0gQk9USF9CT1VORF9ERUZBVUxU KQotLSAgICBsb3dfYm91bmQgPSByYW5nZS0+Ym91bmRzICgpLT5sb3cuY29uc3RfdmFsICgpOwot LSAgZWxzZQotLSAgICBsb3dfYm91bmQgPSB2YWx1ZV9hc19sb25nIChldmFsdWF0ZV9zdWJleHAg KG51bGxwdHIsIGV4cCwgcG9zLCBub3NpZGUpKTsKLS0KLS0gIGlmIChyYW5nZV90eXBlID09IEhJ R0hfQk9VTkRfREVGQVVMVCB8fCByYW5nZV90eXBlID09IEJPVEhfQk9VTkRfREVGQVVMVCkKLS0g ICAgaGlnaF9ib3VuZCA9IHJhbmdlLT5ib3VuZHMgKCktPmhpZ2guY29uc3RfdmFsICgpOwotLSAg ZWxzZQotLSAgICBoaWdoX2JvdW5kID0gdmFsdWVfYXNfbG9uZyAoZXZhbHVhdGVfc3ViZXhwIChu dWxscHRyLCBleHAsIHBvcywgbm9zaWRlKSk7Ci0tCi0tICByZXR1cm4gdmFsdWVfc2xpY2UgKGFy cmF5LCBsb3dfYm91bmQsIGhpZ2hfYm91bmQgLSBsb3dfYm91bmQgKyAxKTsKLS19Ci0tCi0tCi0g LyogUHJvbW90ZSB2YWx1ZSBBUkcxIGFzIGFwcHJvcHJpYXRlIGJlZm9yZSBwZXJmb3JtaW5nIGEg dW5hcnkgb3BlcmF0aW9uCi0gICAgb24gdGhpcyBhcmd1bWVudC4KLSAgICBJZiB0aGUgcmVzdWx0 IGlzIG5vdCBhcHByb3ByaWF0ZSBmb3IgYW55IHBhcnRpY3VsYXIgbGFuZ3VhZ2UgdGhlbiBpdAot QEAgLTc0OSwxNyArNzIyLDEzIEBAIGV2YWxfc2tpcF92YWx1ZSAoZXhwcmVzc2lvbiAqZXhwKQot ICAgcmV0dXJuIHZhbHVlX2Zyb21fbG9uZ2VzdCAoYnVpbHRpbl90eXBlIChleHAtPmdkYmFyY2gp LT5idWlsdGluX2ludCwgMSk7Ci0gfQotIAotLS8qIEV2YWx1YXRlIGEgZnVuY3Rpb24gY2FsbC4g IFRoZSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgaXMgaW4KLS0gICBBUkdWRUNbMF0gYW5kIHRoZSBh cmd1bWVudHMgcGFzc2VkIHRvIHRoZSBmdW5jdGlvbiBhcmUgaW4KLS0gICBBUkdWRUNbMS4uTkFS R1NdLiAgRlVOQ1RJT05fTkFNRSBpcyB0aGUgbmFtZSBvZiB0aGUgZnVuY3Rpb24sIGlmCi0tICAg a25vd24uICBERUZBVUxUX1JFVFVSTl9UWVBFIGlzIHVzZWQgYXMgdGhlIGZ1bmN0aW9uJ3MgcmV0 dXJuIHR5cGUKLS0gICBpZiB0aGUgcmV0dXJuIHR5cGUgaXMgdW5rbm93bi4gICovCi0rLyogU2Vl IGV4cHJlc3Npb24uaC4gICovCi0gCi0tc3RhdGljIHZhbHVlICoKLS1ldmFsX2NhbGwgKGV4cHJl c3Npb24gKmV4cCwgZW51bSBub3NpZGUgbm9zaWRlLAotLQkgICBpbnQgbmFyZ3MsIHZhbHVlICoq YXJndmVjLAotLQkgICBjb25zdCBjaGFyICpmdW5jdGlvbl9uYW1lLAotLQkgICB0eXBlICpkZWZh dWx0X3JldHVybl90eXBlKQotK3ZhbHVlICoKLStldmFsdWF0ZV9zdWJleHBfZG9fY2FsbCAoZXhw cmVzc2lvbiAqZXhwLCBlbnVtIG5vc2lkZSBub3NpZGUsCi0rCQkJIGludCBuYXJncywgdmFsdWUg Kiphcmd2ZWMsCi0rCQkJIGNvbnN0IGNoYXIgKmZ1bmN0aW9uX25hbWUsCi0rCQkJIHR5cGUgKmRl ZmF1bHRfcmV0dXJuX3R5cGUpCi0gewotICAgaWYgKGFyZ3ZlY1swXSA9PSBOVUxMKQotICAgICBl cnJvciAoXygiQ2Fubm90IGV2YWx1YXRlIGZ1bmN0aW9uIC0tIG1heSBiZSBpbmxpbmVkIikpOwot QEAgLTEyMzAsMjAgKzExOTksOCBAQCBldmFsdWF0ZV9mdW5jYWxsICh0eXBlICpleHBlY3RfdHlw ZSwgZXhwcmVzc2lvbiAqZXhwLCBpbnQgKnBvcywKLSAgICAgICAvKiBOb3RoaW5nIHRvIGJlIGRv bmU7IGFyZ3ZlYyBhbHJlYWR5IGNvcnJlY3RseSBzZXQgdXAuICAqLwotICAgICB9Ci0gCi0tICBy ZXR1cm4gZXZhbF9jYWxsIChleHAsIG5vc2lkZSwgbmFyZ3MsIGFyZ3ZlYywgdmFyX2Z1bmNfbmFt ZSwgZXhwZWN0X3R5cGUpOwotLX0KLS0KLS0vKiBIZWxwZXIgZm9yIHNraXBwaW5nIGFsbCB0aGUg YXJndW1lbnRzIGluIGFuIHVuZGV0ZXJtaW5lZCBhcmd1bWVudCBsaXN0LgotLSAgIFRoaXMgZnVu Y3Rpb24gd2FzIGRlc2lnbmVkIGZvciB1c2UgaW4gdGhlIE9QX0Y3N19VTkRFVEVSTUlORURfQVJH TElTVAotLSAgIGNhc2Ugb2YgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIGFzIG11bHRpcGxlLCBi dXQgbm90IGFsbCwgY29kZSBwYXRocwotLSAgIHJlcXVpcmUgYSBnZW5lcmljIHNraXAuICAqLwot LQotLXN0YXRpYyB2b2lkCi0tc2tpcF91bmRldGVybWluZWRfYXJnbGlzdCAoaW50IG5hcmdzLCBz dHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgKnBvcywKLS0JCQkgICBlbnVtIG5vc2lkZSBub3Np ZGUpCi0tewotLSAgZm9yIChpbnQgaSA9IDA7IGkgPCBuYXJnczsgKytpKQotLSAgICBldmFsdWF0 ZV9zdWJleHAgKG51bGxwdHIsIGV4cCwgcG9zLCBub3NpZGUpOwotKyAgcmV0dXJuIGV2YWx1YXRl X3N1YmV4cF9kb19jYWxsIChleHAsIG5vc2lkZSwgbmFyZ3MsIGFyZ3ZlYywKLSsJCQkJICB2YXJf ZnVuY19uYW1lLCBleHBlY3RfdHlwZSk7Ci0gfQotIAotIC8qIFJldHVybiB0cnVlIGlmIHR5cGUg aXMgaW50ZWdyYWwgb3IgcmVmZXJlbmNlIHRvIGludGVncmFsICovCi1AQCAtMTI2MCw2NyArMTIx Nyw2IEBAIGlzX2ludGVncmFsX29yX2ludGVncmFsX3JlZmVyZW5jZSAoc3RydWN0IHR5cGUgKnR5 cGUpCi0gCSAgJiYgaXNfaW50ZWdyYWxfdHlwZSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpKTsK LSB9Ci0gCi0tLyogQ2FsbGVkIGZyb20gZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIHRvIHBlcmZv cm0gYXJyYXkgaW5kZXhpbmcsIGFuZAotLSAgIHN1Yi1yYW5nZSBleHRyYWN0aW9uLCBmb3IgRm9y dHJhbi4gIEFzIHdlbGwgYXMgYXJyYXlzIHRoaXMgZnVuY3Rpb24KLS0gICBhbHNvIGhhbmRsZXMg c3RyaW5ncyBhcyB0aGV5IGNhbiBiZSB0cmVhdGVkIGxpa2UgYXJyYXlzIG9mIGNoYXJhY3RlcnMu Ci0tICAgQVJSQVkgaXMgdGhlIGFycmF5IG9yIHN0cmluZyBiZWluZyBhY2Nlc3NlZC4gIEVYUCwg UE9TLCBhbmQgTk9TSURFIGFyZQotLSAgIGFzIGZvciBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQs IGFuZCBOQVJHUyBpcyB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cwotLSAgIGluIHRoaXMgYWNjZXNz IChlLmcuICdhcnJheSAoMSwyLDMpJyB3b3VsZCBiZSBOQVJHUyAzKS4gICovCi0tCi0tc3RhdGlj IHN0cnVjdCB2YWx1ZSAqCi0tZm9ydHJhbl92YWx1ZV9zdWJhcnJheSAoc3RydWN0IHZhbHVlICph cnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKLS0JCQlpbnQgKnBvcywgaW50IG5hcmdzLCBl bnVtIG5vc2lkZSBub3NpZGUpCi0tewotLSAgaWYgKGV4cC0+ZWx0c1sqcG9zXS5vcGNvZGUgPT0g T1BfUkFOR0UpCi0tICAgIHJldHVybiB2YWx1ZV9mOTBfc3ViYXJyYXkgKGFycmF5LCBleHAsIHBv cywgbm9zaWRlKTsKLS0KLS0gIGlmIChub3NpZGUgPT0gRVZBTF9TS0lQKQotLSAgICB7Ci0tICAg ICAgc2tpcF91bmRldGVybWluZWRfYXJnbGlzdCAobmFyZ3MsIGV4cCwgcG9zLCBub3NpZGUpOwot LSAgICAgIC8qIFJldHVybiB0aGUgZHVtbXkgdmFsdWUgd2l0aCB0aGUgY29ycmVjdCB0eXBlLiAg Ki8KLS0gICAgICByZXR1cm4gYXJyYXk7Ci0tICAgIH0KLS0KLS0gIExPTkdFU1Qgc3Vic2NyaXB0 X2FycmF5W01BWF9GT1JUUkFOX0RJTVNdOwotLSAgaW50IG5kaW1lbnNpb25zID0gMTsKLS0gIHN0 cnVjdCB0eXBlICp0eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJyYXkpKTsKLS0K LS0gIGlmIChuYXJncyA+IE1BWF9GT1JUUkFOX0RJTVMpCi0tICAgIGVycm9yIChfKCJUb28gbWFu eSBzdWJzY3JpcHRzIGZvciBGNzcgKCVkIE1heCkiKSwgTUFYX0ZPUlRSQU5fRElNUyk7Ci0tCi0t ICBuZGltZW5zaW9ucyA9IGNhbGNfZjc3X2FycmF5X2RpbXMgKHR5cGUpOwotLQotLSAgaWYgKG5h cmdzICE9IG5kaW1lbnNpb25zKQotLSAgICBlcnJvciAoXygiV3JvbmcgbnVtYmVyIG9mIHN1YnNj cmlwdHMiKSk7Ci0tCi0tICBnZGJfYXNzZXJ0IChuYXJncyA+IDApOwotLQotLSAgLyogTm93IHRo YXQgd2Uga25vdyB3ZSBoYXZlIGEgbGVnYWwgYXJyYXkgc3Vic2NyaXB0IGV4cHJlc3Npb24gbGV0 IHVzCi0tICAgICBhY3R1YWxseSBmaW5kIG91dCB3aGVyZSB0aGlzIGVsZW1lbnQgZXhpc3RzIGlu IHRoZSBhcnJheS4gICovCi0tCi0tICAvKiBUYWtlIGFycmF5IGluZGljZXMgbGVmdCB0byByaWdo dC4gICovCi0tICBmb3IgKGludCBpID0gMDsgaSA8IG5hcmdzOyBpKyspCi0tICAgIHsKLS0gICAg ICAvKiBFdmFsdWF0ZSBlYWNoIHN1YnNjcmlwdDsgaXQgbXVzdCBiZSBhIGxlZ2FsIGludGVnZXIg aW4gRjc3LiAgKi8KLS0gICAgICB2YWx1ZSAqYXJnMiA9IGV2YWx1YXRlX3N1YmV4cF93aXRoX2Nv ZXJjaW9uIChleHAsIHBvcywgbm9zaWRlKTsKLS0KLS0gICAgICAvKiBGaWxsIGluIHRoZSBzdWJz Y3JpcHQgYXJyYXkuICAqLwotLSAgICAgIHN1YnNjcmlwdF9hcnJheVtpXSA9IHZhbHVlX2FzX2xv bmcgKGFyZzIpOwotLSAgICB9Ci0tCi0tICAvKiBJbnRlcm5hbCB0eXBlIG9mIGFycmF5IGlzIGFy cmFuZ2VkIHJpZ2h0IHRvIGxlZnQuICAqLwotLSAgZm9yIChpbnQgaSA9IG5hcmdzOyBpID4gMDsg aS0tKQotLSAgICB7Ci0tICAgICAgc3RydWN0IHR5cGUgKmFycmF5X3R5cGUgPSBjaGVja190eXBl ZGVmICh2YWx1ZV90eXBlIChhcnJheSkpOwotLSAgICAgIExPTkdFU1QgaW5kZXggPSBzdWJzY3Jp cHRfYXJyYXlbaSAtIDFdOwotLQotLSAgICAgIGFycmF5ID0gdmFsdWVfc3Vic2NyaXB0ZWRfcnZh bHVlIChhcnJheSwgaW5kZXgsCi0tCQkJCQlmNzdfZ2V0X2xvd2VyYm91bmQgKGFycmF5X3R5cGUp KTsKLS0gICAgfQotLQotLSAgcmV0dXJuIGFycmF5OwotLX0KLS0KLSBzdHJ1Y3QgdmFsdWUgKgot IGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAotIAkJ CSAgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50ICpwb3MsCi1AQCAtMTMzNSw3ICsxMjMxLDYg QEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCi0g ICBzdHJ1Y3QgdHlwZSAqdHlwZTsKLSAgIGludCBuYXJnczsKLSAgIHN0cnVjdCB2YWx1ZSAqKmFy Z3ZlYzsKLS0gIGludCBjb2RlOwotICAgaW50IGl4OwotICAgbG9uZyBtZW1fb2Zmc2V0OwotICAg c3RydWN0IHR5cGUgKiphcmdfdHlwZXM7Ci1AQCAtMTk3Niw4NCArMTg3MSw2IEBAIGV2YWx1YXRl X3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAotICAgICBjYXNlIE9Q X0ZVTkNBTEw6Ci0gICAgICAgcmV0dXJuIGV2YWx1YXRlX2Z1bmNhbGwgKGV4cGVjdF90eXBlLCBl eHAsIHBvcywgbm9zaWRlKTsKLSAKLS0gICAgY2FzZSBPUF9GNzdfVU5ERVRFUk1JTkVEX0FSR0xJ U1Q6Ci0tCi0tICAgICAgLyogUmVtZW1iZXIgdGhhdCBpbiBGNzcsIGZ1bmN0aW9ucywgc3Vic3Ry aW5nIG9wcyBhbmQgCi0tICAgICAgICAgYXJyYXkgc3Vic2NyaXB0IG9wZXJhdGlvbnMgY2Fubm90 IGJlIGRpc2FtYmlndWF0ZWQgCi0tICAgICAgICAgYXQgcGFyc2UgdGltZS4gIFdlIGhhdmUgbWFk ZSBhbGwgYXJyYXkgc3Vic2NyaXB0IG9wZXJhdGlvbnMsIAotLSAgICAgICAgIHN1YnN0cmluZyBv cGVyYXRpb25zIGFzIHdlbGwgYXMgZnVuY3Rpb24gY2FsbHMgIGNvbWUgaGVyZSAKLS0gICAgICAg ICBhbmQgd2Ugbm93IGhhdmUgdG8gZGlzY292ZXIgd2hhdCB0aGUgaGVjayB0aGlzIHRoaW5nIGFj dHVhbGx5IHdhcy4KLS0gICAgICAgICBJZiBpdCBpcyBhIGZ1bmN0aW9uLCB3ZSBwcm9jZXNzIGp1 c3QgYXMgaWYgd2UgZ290IGFuIE9QX0ZVTkNBTEwuICAqLwotLQotLSAgICAgIG5hcmdzID0gbG9u Z2VzdF90b19pbnQgKGV4cC0+ZWx0c1twYyArIDFdLmxvbmdjb25zdCk7Ci0tICAgICAgKCpwb3Mp ICs9IDI7Ci0tCi0tICAgICAgLyogRmlyc3QgZGV0ZXJtaW5lIHRoZSB0eXBlIGNvZGUgd2UgYXJl IGRlYWxpbmcgd2l0aC4gICovCi0tICAgICAgYXJnMSA9IGV2YWx1YXRlX3N1YmV4cCAobnVsbHB0 ciwgZXhwLCBwb3MsIG5vc2lkZSk7Ci0tICAgICAgdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVl X3R5cGUgKGFyZzEpKTsKLS0gICAgICBjb2RlID0gdHlwZS0+Y29kZSAoKTsKLS0KLS0gICAgICBp ZiAoY29kZSA9PSBUWVBFX0NPREVfUFRSKQotLQl7Ci0tCSAgLyogRm9ydHJhbiBhbHdheXMgcGFz c2VzIHZhcmlhYmxlIHRvIHN1YnJvdXRpbmVzIGFzIHBvaW50ZXIuCi0tCSAgICAgU28gd2UgbmVl ZCB0byBsb29rIGludG8gaXRzIHRhcmdldCB0eXBlIHRvIHNlZSBpZiBpdCBpcwotLQkgICAgIGFy cmF5LCBzdHJpbmcgb3IgZnVuY3Rpb24uICBJZiBpdCBpcywgd2UgbmVlZCB0byBzd2l0Y2gKLS0J ICAgICB0byB0aGUgdGFyZ2V0IHZhbHVlIHRoZSBvcmlnaW5hbCBvbmUgcG9pbnRzIHRvLiAgKi8g Ci0tCSAgc3RydWN0IHR5cGUgKnRhcmdldF90eXBlID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9UQVJH RVRfVFlQRSAodHlwZSkpOwotLQotLQkgIGlmICh0YXJnZXRfdHlwZS0+Y29kZSAoKSA9PSBUWVBF X0NPREVfQVJSQVkKLS0JICAgICAgfHwgdGFyZ2V0X3R5cGUtPmNvZGUgKCkgPT0gVFlQRV9DT0RF X1NUUklORwotLQkgICAgICB8fCB0YXJnZXRfdHlwZS0+Y29kZSAoKSA9PSBUWVBFX0NPREVfRlVO QykKLS0JICAgIHsKLS0JICAgICAgYXJnMSA9IHZhbHVlX2luZCAoYXJnMSk7Ci0tCSAgICAgIHR5 cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcxKSk7Ci0tCSAgICAgIGNvZGUgPSB0 eXBlLT5jb2RlICgpOwotLQkgICAgfQotLQl9IAotLQotLSAgICAgIHN3aXRjaCAoY29kZSkKLS0J ewotLQljYXNlIFRZUEVfQ09ERV9BUlJBWToKLS0JY2FzZSBUWVBFX0NPREVfU1RSSU5HOgotLQkg IHJldHVybiBmb3J0cmFuX3ZhbHVlX3N1YmFycmF5IChhcmcxLCBleHAsIHBvcywgbmFyZ3MsIG5v c2lkZSk7Ci0tCi0tCWNhc2UgVFlQRV9DT0RFX1BUUjoKLS0JY2FzZSBUWVBFX0NPREVfRlVOQzoK LS0JY2FzZSBUWVBFX0NPREVfSU5URVJOQUxfRlVOQ1RJT046Ci0tCSAgLyogSXQncyBhIGZ1bmN0 aW9uIGNhbGwuICAqLwotLQkgIC8qIEFsbG9jYXRlIGFyZyB2ZWN0b3IsIGluY2x1ZGluZyBzcGFj ZSBmb3IgdGhlIGZ1bmN0aW9uIHRvIGJlCi0tCSAgICAgY2FsbGVkIGluIGFyZ3ZlY1swXSBhbmQg YSB0ZXJtaW5hdGluZyBOVUxMLiAgKi8KLS0JICBhcmd2ZWMgPSAoc3RydWN0IHZhbHVlICoqKQot LQkgICAgYWxsb2NhIChzaXplb2YgKHN0cnVjdCB2YWx1ZSAqKSAqIChuYXJncyArIDIpKTsKLS0J ICBhcmd2ZWNbMF0gPSBhcmcxOwotLQkgIHRlbSA9IDE7Ci0tCSAgZm9yICg7IHRlbSA8PSBuYXJn czsgdGVtKyspCi0tCSAgICB7Ci0tCSAgICAgIGFyZ3ZlY1t0ZW1dID0gZXZhbHVhdGVfc3ViZXhw X3dpdGhfY29lcmNpb24gKGV4cCwgcG9zLCBub3NpZGUpOwotLQkgICAgICAvKiBBcmd1bWVudHMg aW4gRm9ydHJhbiBhcmUgcGFzc2VkIGJ5IGFkZHJlc3MuICBDb2VyY2UgdGhlCi0tCQkgYXJndW1l bnRzIGhlcmUgcmF0aGVyIHRoYW4gaW4gdmFsdWVfYXJnX2NvZXJjZSBhcyBvdGhlcndpc2UKLS0J CSB0aGUgY2FsbCB0byBtYWxsb2MgdG8gcGxhY2UgdGhlIG5vbi1sdmFsdWUgcGFyYW1ldGVycyBp bgotLQkJIHRhcmdldCBtZW1vcnkgaXMgaGl0IGJ5IHRoaXMgRm9ydHJhbiBzcGVjaWZpYyBsb2dp Yy4gIFRoaXMKLS0JCSByZXN1bHRzIGluIG1hbGxvYyBiZWluZyBjYWxsZWQgd2l0aCBhIHBvaW50 ZXIgdG8gYW4gaW50ZWdlcgotLQkJIGZvbGxvd2VkIGJ5IGFuIGF0dGVtcHQgdG8gbWFsbG9jIHRo ZSBhcmd1bWVudHMgdG8gbWFsbG9jIGluCi0tCQkgdGFyZ2V0IG1lbW9yeS4gIEluZmluaXRlIHJl Y3Vyc2lvbiBlbnN1ZXMuICAqLwotLQkgICAgICBpZiAoY29kZSA9PSBUWVBFX0NPREVfUFRSIHx8 IGNvZGUgPT0gVFlQRV9DT0RFX0ZVTkMpCi0tCQl7Ci0tCQkgIGJvb2wgaXNfYXJ0aWZpY2lhbAot LQkJICAgID0gVFlQRV9GSUVMRF9BUlRJRklDSUFMICh2YWx1ZV90eXBlIChhcmcxKSwgdGVtIC0g MSk7Ci0tCQkgIGFyZ3ZlY1t0ZW1dID0gZm9ydHJhbl9hcmd1bWVudF9jb252ZXJ0IChhcmd2ZWNb dGVtXSwKLS0JCQkJCQkJICBpc19hcnRpZmljaWFsKTsKLS0JCX0KLS0JICAgIH0KLS0JICBhcmd2 ZWNbdGVtXSA9IDA7CS8qIHNpZ25hbCBlbmQgb2YgYXJnbGlzdCAqLwotLQkgIGlmIChub3NpZGUg PT0gRVZBTF9TS0lQKQotLQkgICAgcmV0dXJuIGV2YWxfc2tpcF92YWx1ZSAoZXhwKTsKLS0JICBy ZXR1cm4gZXZhbF9jYWxsIChleHAsIG5vc2lkZSwgbmFyZ3MsIGFyZ3ZlYywgTlVMTCwgZXhwZWN0 X3R5cGUpOwotLQotLQlkZWZhdWx0OgotLQkgIGVycm9yIChfKCJDYW5ub3QgcGVyZm9ybSBzdWJz dHJpbmcgb24gdGhpcyB0eXBlIikpOwotLQl9Ci0tCi0gICAgIGNhc2UgT1BfQ09NUExFWDoKLSAg ICAgICAvKiBXZSBoYXZlIGEgY29tcGxleCBudW1iZXIsIFRoZXJlIHNob3VsZCBiZSAyIGZsb2F0 aW5nIAotICAgICAgICAgIHBvaW50IG51bWJlcnMgdGhhdCBjb21wb3NlIGl0LiAgKi8KLUBAIC0z MzQ2LDI3ICszMTYzLDMgQEAgcGFyc2VfYW5kX2V2YWxfdHlwZSAoY2hhciAqcCwgaW50IGxlbmd0 aCkKLSAgICAgZXJyb3IgKF8oIkludGVybmFsIGVycm9yIGluIGV2YWxfdHlwZS4iKSk7Ci0gICBy ZXR1cm4gZXhwci0+ZWx0c1sxXS50eXBlOwotIH0KLS0KLS0vKiBSZXR1cm4gdGhlIG51bWJlciBv ZiBkaW1lbnNpb25zIGZvciBhIEZvcnRyYW4gYXJyYXkgb3Igc3RyaW5nLiAgKi8KLS0KLS1pbnQK LS1jYWxjX2Y3N19hcnJheV9kaW1zIChzdHJ1Y3QgdHlwZSAqYXJyYXlfdHlwZSkKLS17Ci0tICBp bnQgbmRpbWVuID0gMTsKLS0gIHN0cnVjdCB0eXBlICp0bXBfdHlwZTsKLS0KLS0gIGlmICgoYXJy YXlfdHlwZS0+Y29kZSAoKSA9PSBUWVBFX0NPREVfU1RSSU5HKSkKLS0gICAgcmV0dXJuIDE7Ci0t Ci0tICBpZiAoKGFycmF5X3R5cGUtPmNvZGUgKCkgIT0gVFlQRV9DT0RFX0FSUkFZKSkKLS0gICAg ZXJyb3IgKF8oIkNhbid0IGdldCBkaW1lbnNpb25zIGZvciBhIG5vbi1hcnJheSB0eXBlIikpOwot LQotLSAgdG1wX3R5cGUgPSBhcnJheV90eXBlOwotLQotLSAgd2hpbGUgKCh0bXBfdHlwZSA9IFRZ UEVfVEFSR0VUX1RZUEUgKHRtcF90eXBlKSkpCi0tICAgIHsKLS0gICAgICBpZiAodG1wX3R5cGUt PmNvZGUgKCkgPT0gVFlQRV9DT0RFX0FSUkFZKQotLQkrK25kaW1lbjsKLS0gICAgfQotLSAgcmV0 dXJuIG5kaW1lbjsKLS19Ci1kaWZmIC0tZ2l0IGEvZ2RiL2V4cHByaW50LmMgYi9nZGIvZXhwcHJp bnQuYwotLS0tIGEvZ2RiL2V4cHByaW50LmMKLSsrKyBiL2dkYi9leHBwcmludC5jCi1AQCAtNTMs NiArNTMsMjUgQEAgcHJpbnRfc3ViZXhwIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgKnBv cywKLSAgIGV4cC0+bGFuZ3VhZ2VfZGVmbi0+bGFfZXhwX2Rlc2MtPnByaW50X3N1YmV4cCAoZXhw LCBwb3MsIHN0cmVhbSwgcHJlYyk7Ci0gfQotIAotKy8qIFNlZSBwYXJzZXItZGVmcy5oLiAgKi8K LSsKLSt2b2lkCi0rcHJpbnRfc3ViZXhwX2Z1bmNhbGwgKHN0cnVjdCBleHByZXNzaW9uICpleHAs IGludCAqcG9zLAotKwkJICAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSkKLSt7Ci0rICAoKnBv cykgKz0gMjsKLSsgIHVuc2lnbmVkIG5hcmdzID0gbG9uZ2VzdF90b19pbnQgKGV4cC0+ZWx0c1sq cG9zXS5sb25nY29uc3QpOwotKyAgcHJpbnRfc3ViZXhwIChleHAsIHBvcywgc3RyZWFtLCBQUkVD X1NVRkZJWCk7Ci0rICBmcHV0c19maWx0ZXJlZCAoIiAoIiwgc3RyZWFtKTsKLSsgIGZvciAodW5z aWduZWQgdGVtID0gMDsgdGVtIDwgbmFyZ3M7IHRlbSsrKQotKyAgICB7Ci0rICAgICAgaWYgKHRl bSAhPSAwKQotKwlmcHV0c19maWx0ZXJlZCAoIiwgIiwgc3RyZWFtKTsKLSsgICAgICBwcmludF9z dWJleHAgKGV4cCwgcG9zLCBzdHJlYW0sIFBSRUNfQUJPVkVfQ09NTUEpOwotKyAgICB9Ci0rICBm cHV0c19maWx0ZXJlZCAoIikiLCBzdHJlYW0pOwotK30KLSsKLSAvKiBTdGFuZGFyZCBpbXBsZW1l bnRhdGlvbiBvZiBwcmludF9zdWJleHAgZm9yIHVzZSBpbiBsYW5ndWFnZV9kZWZuCi0gICAgdmVj dG9ycy4gICovCi0gdm9pZAotQEAgLTE4NywxOCArMjA2LDcgQEAgcHJpbnRfc3ViZXhwX3N0YW5k YXJkIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgKnBvcywKLSAgICAgICByZXR1cm47Ci0g Ci0gICAgIGNhc2UgT1BfRlVOQ0FMTDoKLS0gICAgY2FzZSBPUF9GNzdfVU5ERVRFUk1JTkVEX0FS R0xJU1Q6Ci0tICAgICAgKCpwb3MpICs9IDI7Ci0tICAgICAgbmFyZ3MgPSBsb25nZXN0X3RvX2lu dCAoZXhwLT5lbHRzW3BjICsgMV0ubG9uZ2NvbnN0KTsKLS0gICAgICBwcmludF9zdWJleHAgKGV4 cCwgcG9zLCBzdHJlYW0sIFBSRUNfU1VGRklYKTsKLS0gICAgICBmcHV0c19maWx0ZXJlZCAoIiAo Iiwgc3RyZWFtKTsKLS0gICAgICBmb3IgKHRlbSA9IDA7IHRlbSA8IG5hcmdzOyB0ZW0rKykKLS0J ewotLQkgIGlmICh0ZW0gIT0gMCkKLS0JICAgIGZwdXRzX2ZpbHRlcmVkICgiLCAiLCBzdHJlYW0p OwotLQkgIHByaW50X3N1YmV4cCAoZXhwLCBwb3MsIHN0cmVhbSwgUFJFQ19BQk9WRV9DT01NQSk7 Ci0tCX0KLS0gICAgICBmcHV0c19maWx0ZXJlZCAoIikiLCBzdHJlYW0pOwotKyAgICAgIHByaW50 X3N1YmV4cF9mdW5jYWxsIChleHAsIHBvcywgc3RyZWFtKTsKLSAgICAgICByZXR1cm47Ci0gCi0g ICAgIGNhc2UgT1BfTkFNRToKLUBAIC03OTYsNiArODA0LDIyIEBAIGR1bXBfc3ViZXhwX2JvZHkg KHN0cnVjdCBleHByZXNzaW9uICpleHAsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCBlbHQp Ci0gICByZXR1cm4gZXhwLT5sYW5ndWFnZV9kZWZuLT5sYV9leHBfZGVzYy0+ZHVtcF9zdWJleHBf Ym9keSAoZXhwLCBzdHJlYW0sIGVsdCk7Ci0gfQotIAotKy8qIFNlZSBwYXJzZXItZGVmcy5oLiAg Ki8KLSsKLStpbnQKLStkdW1wX3N1YmV4cF9ib2R5X2Z1bmNhbGwgKHN0cnVjdCBleHByZXNzaW9u ICpleHAsCi0rCQkJICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgZWx0KQotK3sKLSsgIGlu dCBuYXJncyA9IGxvbmdlc3RfdG9faW50IChleHAtPmVsdHNbZWx0XS5sb25nY29uc3QpOwotKyAg ZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiTnVtYmVyIG9mIGFyZ3M6ICVkIiwgbmFyZ3MpOwot KyAgZWx0ICs9IDI7Ci0rCi0rICBmb3IgKGludCBpID0gMTsgaSA8PSBuYXJncyArIDE7IGkrKykK LSsgICAgZWx0ID0gZHVtcF9zdWJleHAgKGV4cCwgc3RyZWFtLCBlbHQpOwotKwotKyAgcmV0dXJu IGVsdDsKLSt9Ci0rCi0gLyogRGVmYXVsdCB2YWx1ZSBmb3Igc3ViZXhwX2JvZHkgaW4gZXhwX2Rl c2NyaXB0b3IgdmVjdG9yLiAgKi8KLSAKLSBpbnQKLUBAIC05MzEsMTggKzk1NSw3IEBAIGR1bXBf c3ViZXhwX2JvZHlfc3RhbmRhcmQgKHN0cnVjdCBleHByZXNzaW9uICpleHAsCi0gICAgICAgZWx0 ICs9IDI7Ci0gICAgICAgYnJlYWs7Ci0gICAgIGNhc2UgT1BfRlVOQ0FMTDoKLS0gICAgY2FzZSBP UF9GNzdfVU5ERVRFUk1JTkVEX0FSR0xJU1Q6Ci0tICAgICAgewotLQlpbnQgaSwgbmFyZ3M7Ci0t Ci0tCW5hcmdzID0gbG9uZ2VzdF90b19pbnQgKGV4cC0+ZWx0c1tlbHRdLmxvbmdjb25zdCk7Ci0t Ci0tCWZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIk51bWJlciBvZiBhcmdzOiAlZCIsIG5hcmdz KTsKLS0JZWx0ICs9IDI7Ci0tCi0tCWZvciAoaSA9IDE7IGkgPD0gbmFyZ3MgKyAxOyBpKyspCi0t CSAgZWx0ID0gZHVtcF9zdWJleHAgKGV4cCwgc3RyZWFtLCBlbHQpOwotLSAgICAgIH0KLSsgICAg ICBlbHQgPSBkdW1wX3N1YmV4cF9ib2R5X2Z1bmNhbGwgKGV4cCwgc3RyZWFtLCBlbHQpOwotICAg ICAgIGJyZWFrOwotICAgICBjYXNlIE9QX0FSUkFZOgotICAgICAgIHsKLWRpZmYgLS1naXQgYS9n ZGIvZXhwcmVzc2lvbi5oIGIvZ2RiL2V4cHJlc3Npb24uaAotLS0tIGEvZ2RiL2V4cHJlc3Npb24u aAotKysrIGIvZ2RiL2V4cHJlc3Npb24uaAotQEAgLTE1NSw2ICsxNTUsMTggQEAgZW51bSBub3Np ZGUKLSBleHRlcm4gc3RydWN0IHZhbHVlICpldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQKLSAgIChz dHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgZXhwcmVzc2lvbiAqLCBpbnQgKiwgZW51bSBub3NpZGUpOwot IAotKy8qIEV2YWx1YXRlIGEgZnVuY3Rpb24gY2FsbC4gIFRoZSBmdW5jdGlvbiB0byBiZSBjYWxs ZWQgaXMgaW4gQVJHVkVDWzBdIGFuZAotKyAgIHRoZSBhcmd1bWVudHMgcGFzc2VkIHRvIHRoZSBm dW5jdGlvbiBhcmUgaW4gQVJHVkVDWzEuLk5BUkdTXS4KLSsgICBGVU5DVElPTl9OQU1FIGlzIHRo ZSBuYW1lIG9mIHRoZSBmdW5jdGlvbiwgaWYga25vd24uCi0rICAgREVGQVVMVF9SRVRVUk5fVFlQ RSBpcyB1c2VkIGFzIHRoZSBmdW5jdGlvbidzIHJldHVybiB0eXBlIGlmIHRoZSByZXR1cm4KLSsg ICB0eXBlIGlzIHVua25vd24uICAqLwotKwotK2V4dGVybiBzdHJ1Y3QgdmFsdWUgKmV2YWx1YXRl X3N1YmV4cF9kb19jYWxsIChleHByZXNzaW9uICpleHAsCi0rCQkJCQkgICAgICBlbnVtIG5vc2lk ZSBub3NpZGUsCi0rCQkJCQkgICAgICBpbnQgbmFyZ3MsIHZhbHVlICoqYXJndmVjLAotKwkJCQkJ ICAgICAgY29uc3QgY2hhciAqZnVuY3Rpb25fbmFtZSwKLSsJCQkJCSAgICAgIHR5cGUgKmRlZmF1 bHRfcmV0dXJuX3R5cGUpOwotKwotIC8qIEZyb20gZXhwcHJpbnQuYyAqLwotIAotIGV4dGVybiB2 b2lkIHByaW50X2V4cHJlc3Npb24gKHN0cnVjdCBleHByZXNzaW9uICosIHN0cnVjdCB1aV9maWxl ICopOwotZGlmZiAtLWdpdCBhL2dkYi9mLWxhbmcuYyBiL2dkYi9mLWxhbmcuYwotLS0tIGEvZ2Ri L2YtbGFuZy5jCi0rKysgYi9nZGIvZi1sYW5nLmMKLUBAIC0xMTQsNiArMTE0LDEzNCBAQCBlbnVt IGZfcHJpbWl0aXZlX3R5cGVzIHsKLSAgIG5yX2ZfcHJpbWl0aXZlX3R5cGVzCi0gfTsKLSAKLSsv KiBDYWxsZWQgZnJvbSBmb3J0cmFuX3ZhbHVlX3N1YmFycmF5IHRvIHRha2UgYSBzbGljZSBvZiBh biBhcnJheSBvciBhCi0rICAgc3RyaW5nLiAgQVJSQVkgaXMgdGhlIGFycmF5IG9yIHN0cmluZyB0 byBiZSBhY2Nlc3NlZC4gIEVYUCwgUE9TLCBhbmQKLSsgICBOT1NJREUgYXJlIGFzIGZvciBldmFs dWF0ZV9zdWJleHBfc3RhbmRhcmQuICBSZXR1cm4gYSB2YWx1ZSB0aGF0IGlzIGEKLSsgICBzbGlj ZSBvZiB0aGUgYXJyYXkuICAqLwotKwotK3N0YXRpYyBzdHJ1Y3QgdmFsdWUgKgotK3ZhbHVlX2Y5 MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwKLSsJCSAgICBzdHJ1Y3QgZXhwcmVzc2lv biAqZXhwLCBpbnQgKnBvcywgZW51bSBub3NpZGUgbm9zaWRlKQotK3sKLSsgIGludCBwYyA9ICgq cG9zKSArIDE7Ci0rICBMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9ib3VuZDsKLSsgIHN0cnVjdCB0 eXBlICpyYW5nZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFycmF5KS0+aW5kZXhfdHlw ZSAoKSk7Ci0rICBlbnVtIHJhbmdlX3R5cGUgcmFuZ2VfdHlwZQotKyAgICA9IChlbnVtIHJhbmdl X3R5cGUpIGxvbmdlc3RfdG9faW50IChleHAtPmVsdHNbcGNdLmxvbmdjb25zdCk7Ci0rCi0rICAq cG9zICs9IDM7Ci0rCi0rICBpZiAocmFuZ2VfdHlwZSA9PSBMT1dfQk9VTkRfREVGQVVMVCB8fCBy YW5nZV90eXBlID09IEJPVEhfQk9VTkRfREVGQVVMVCkKLSsgICAgbG93X2JvdW5kID0gcmFuZ2Ut PmJvdW5kcyAoKS0+bG93LmNvbnN0X3ZhbCAoKTsKLSsgIGVsc2UKLSsgICAgbG93X2JvdW5kID0g dmFsdWVfYXNfbG9uZyAoZXZhbHVhdGVfc3ViZXhwIChudWxscHRyLCBleHAsIHBvcywgbm9zaWRl KSk7Ci0rCi0rICBpZiAocmFuZ2VfdHlwZSA9PSBISUdIX0JPVU5EX0RFRkFVTFQgfHwgcmFuZ2Vf dHlwZSA9PSBCT1RIX0JPVU5EX0RFRkFVTFQpCi0rICAgIGhpZ2hfYm91bmQgPSByYW5nZS0+Ym91 bmRzICgpLT5oaWdoLmNvbnN0X3ZhbCAoKTsKLSsgIGVsc2UKLSsgICAgaGlnaF9ib3VuZCA9IHZh bHVlX2FzX2xvbmcgKGV2YWx1YXRlX3N1YmV4cCAobnVsbHB0ciwgZXhwLCBwb3MsIG5vc2lkZSkp OwotKwotKyAgcmV0dXJuIHZhbHVlX3NsaWNlIChhcnJheSwgbG93X2JvdW5kLCBoaWdoX2JvdW5k IC0gbG93X2JvdW5kICsgMSk7Ci0rfQotKwotKy8qIEhlbHBlciBmb3Igc2tpcHBpbmcgYWxsIHRo ZSBhcmd1bWVudHMgaW4gYW4gdW5kZXRlcm1pbmVkIGFyZ3VtZW50IGxpc3QuCi0rICAgVGhpcyBm dW5jdGlvbiB3YXMgZGVzaWduZWQgZm9yIHVzZSBpbiB0aGUgT1BfRjc3X1VOREVURVJNSU5FRF9B UkdMSVNUCi0rICAgY2FzZSBvZiBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgYXMgbXVsdGlwbGUs IGJ1dCBub3QgYWxsLCBjb2RlIHBhdGhzCi0rICAgcmVxdWlyZSBhIGdlbmVyaWMgc2tpcC4gICov Ci0rCi0rc3RhdGljIHZvaWQKLStza2lwX3VuZGV0ZXJtaW5lZF9hcmdsaXN0IChpbnQgbmFyZ3Ms IHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCAqcG9zLAotKwkJCSAgIGVudW0gbm9zaWRlIG5v c2lkZSkKLSt7Ci0rICBmb3IgKGludCBpID0gMDsgaSA8IG5hcmdzOyArK2kpCi0rICAgIGV2YWx1 YXRlX3N1YmV4cCAobnVsbHB0ciwgZXhwLCBwb3MsIG5vc2lkZSk7Ci0rfQotKwotKy8qIFJldHVy biB0aGUgbnVtYmVyIG9mIGRpbWVuc2lvbnMgZm9yIGEgRm9ydHJhbiBhcnJheSBvciBzdHJpbmcu ICAqLwotKwotK2ludAotK2NhbGNfZjc3X2FycmF5X2RpbXMgKHN0cnVjdCB0eXBlICphcnJheV90 eXBlKQotK3sKLSsgIGludCBuZGltZW4gPSAxOwotKyAgc3RydWN0IHR5cGUgKnRtcF90eXBlOwot KwotKyAgaWYgKChhcnJheV90eXBlLT5jb2RlICgpID09IFRZUEVfQ09ERV9TVFJJTkcpKQotKyAg ICByZXR1cm4gMTsKLSsKLSsgIGlmICgoYXJyYXlfdHlwZS0+Y29kZSAoKSAhPSBUWVBFX0NPREVf QVJSQVkpKQotKyAgICBlcnJvciAoXygiQ2FuJ3QgZ2V0IGRpbWVuc2lvbnMgZm9yIGEgbm9uLWFy cmF5IHR5cGUiKSk7Ci0rCi0rICB0bXBfdHlwZSA9IGFycmF5X3R5cGU7Ci0rCi0rICB3aGlsZSAo KHRtcF90eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAodG1wX3R5cGUpKSkKLSsgICAgewotKyAgICAg IGlmICh0bXBfdHlwZS0+Y29kZSAoKSA9PSBUWVBFX0NPREVfQVJSQVkpCi0rCSsrbmRpbWVuOwot KyAgICB9Ci0rICByZXR1cm4gbmRpbWVuOwotK30KLSsKLSsvKiBDYWxsZWQgZnJvbSBldmFsdWF0 ZV9zdWJleHBfc3RhbmRhcmQgdG8gcGVyZm9ybSBhcnJheSBpbmRleGluZywgYW5kCi0rICAgc3Vi LXJhbmdlIGV4dHJhY3Rpb24sIGZvciBGb3J0cmFuLiAgQXMgd2VsbCBhcyBhcnJheXMgdGhpcyBm dW5jdGlvbgotKyAgIGFsc28gaGFuZGxlcyBzdHJpbmdzIGFzIHRoZXkgY2FuIGJlIHRyZWF0ZWQg bGlrZSBhcnJheXMgb2YgY2hhcmFjdGVycy4KLSsgICBBUlJBWSBpcyB0aGUgYXJyYXkgb3Igc3Ry aW5nIGJlaW5nIGFjY2Vzc2VkLiAgRVhQLCBQT1MsIGFuZCBOT1NJREUgYXJlCi0rICAgYXMgZm9y IGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCwgYW5kIE5BUkdTIGlzIHRoZSBudW1iZXIgb2YgYXJn dW1lbnRzCi0rICAgaW4gdGhpcyBhY2Nlc3MgKGUuZy4gJ2FycmF5ICgxLDIsMyknIHdvdWxkIGJl IE5BUkdTIDMpLiAgKi8KLSsKLStzdGF0aWMgc3RydWN0IHZhbHVlICoKLStmb3J0cmFuX3ZhbHVl X3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAot KwkJCWludCAqcG9zLCBpbnQgbmFyZ3MsIGVudW0gbm9zaWRlIG5vc2lkZSkKLSt7Ci0rICBpZiAo ZXhwLT5lbHRzWypwb3NdLm9wY29kZSA9PSBPUF9SQU5HRSkKLSsgICAgcmV0dXJuIHZhbHVlX2Y5 MF9zdWJhcnJheSAoYXJyYXksIGV4cCwgcG9zLCBub3NpZGUpOwotKwotKyAgaWYgKG5vc2lkZSA9 PSBFVkFMX1NLSVApCi0rICAgIHsKLSsgICAgICBza2lwX3VuZGV0ZXJtaW5lZF9hcmdsaXN0IChu YXJncywgZXhwLCBwb3MsIG5vc2lkZSk7Ci0rICAgICAgLyogUmV0dXJuIHRoZSBkdW1teSB2YWx1 ZSB3aXRoIHRoZSBjb3JyZWN0IHR5cGUuICAqLwotKyAgICAgIHJldHVybiBhcnJheTsKLSsgICAg fQotKwotKyAgTE9OR0VTVCBzdWJzY3JpcHRfYXJyYXlbTUFYX0ZPUlRSQU5fRElNU107Ci0rICBp bnQgbmRpbWVuc2lvbnMgPSAxOwotKyAgc3RydWN0IHR5cGUgKnR5cGUgPSBjaGVja190eXBlZGVm ICh2YWx1ZV90eXBlIChhcnJheSkpOwotKwotKyAgaWYgKG5hcmdzID4gTUFYX0ZPUlRSQU5fRElN UykKLSsgICAgZXJyb3IgKF8oIlRvbyBtYW55IHN1YnNjcmlwdHMgZm9yIEY3NyAoJWQgTWF4KSIp LCBNQVhfRk9SVFJBTl9ESU1TKTsKLSsKLSsgIG5kaW1lbnNpb25zID0gY2FsY19mNzdfYXJyYXlf ZGltcyAodHlwZSk7Ci0rCi0rICBpZiAobmFyZ3MgIT0gbmRpbWVuc2lvbnMpCi0rICAgIGVycm9y IChfKCJXcm9uZyBudW1iZXIgb2Ygc3Vic2NyaXB0cyIpKTsKLSsKLSsgIGdkYl9hc3NlcnQgKG5h cmdzID4gMCk7Ci0rCi0rICAvKiBOb3cgdGhhdCB3ZSBrbm93IHdlIGhhdmUgYSBsZWdhbCBhcnJh eSBzdWJzY3JpcHQgZXhwcmVzc2lvbiBsZXQgdXMKLSsgICAgIGFjdHVhbGx5IGZpbmQgb3V0IHdo ZXJlIHRoaXMgZWxlbWVudCBleGlzdHMgaW4gdGhlIGFycmF5LiAgKi8KLSsKLSsgIC8qIFRha2Ug YXJyYXkgaW5kaWNlcyBsZWZ0IHRvIHJpZ2h0LiAgKi8KLSsgIGZvciAoaW50IGkgPSAwOyBpIDwg bmFyZ3M7IGkrKykKLSsgICAgewotKyAgICAgIC8qIEV2YWx1YXRlIGVhY2ggc3Vic2NyaXB0OyBp dCBtdXN0IGJlIGEgbGVnYWwgaW50ZWdlciBpbiBGNzcuICAqLwotKyAgICAgIHZhbHVlICphcmcy ID0gZXZhbHVhdGVfc3ViZXhwX3dpdGhfY29lcmNpb24gKGV4cCwgcG9zLCBub3NpZGUpOwotKwot KyAgICAgIC8qIEZpbGwgaW4gdGhlIHN1YnNjcmlwdCBhcnJheS4gICovCi0rICAgICAgc3Vic2Ny aXB0X2FycmF5W2ldID0gdmFsdWVfYXNfbG9uZyAoYXJnMik7Ci0rICAgIH0KLSsKLSsgIC8qIElu dGVybmFsIHR5cGUgb2YgYXJyYXkgaXMgYXJyYW5nZWQgcmlnaHQgdG8gbGVmdC4gICovCi0rICBm b3IgKGludCBpID0gbmFyZ3M7IGkgPiAwOyBpLS0pCi0rICAgIHsKLSsgICAgICBzdHJ1Y3QgdHlw ZSAqYXJyYXlfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFycmF5KSk7Ci0rICAg ICAgTE9OR0VTVCBpbmRleCA9IHN1YnNjcmlwdF9hcnJheVtpIC0gMV07Ci0rCi0rICAgICAgYXJy YXkgPSB2YWx1ZV9zdWJzY3JpcHRlZF9ydmFsdWUgKGFycmF5LCBpbmRleCwKLSsJCQkJCWY3N19n ZXRfbG93ZXJib3VuZCAoYXJyYXlfdHlwZSkpOwotKyAgICB9Ci0rCi0rICByZXR1cm4gYXJyYXk7 Ci0rfQotKwotIC8qIFNwZWNpYWwgZXhwcmVzc2lvbiBldmFsdWF0aW9uIGNhc2VzIGZvciBGb3J0 cmFuLiAgKi8KLSAKLSBzdGF0aWMgc3RydWN0IHZhbHVlICoKLUBAIC0yODUsNiArNDEzLDg3IEBA IGV2YWx1YXRlX3N1YmV4cF9mIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsIHN0cnVjdCBleHBy ZXNzaW9uICpleHAsCi0gCQkJCSAgIFRZUEVfTEVOR1RIICh0eXBlKSk7Ci0gICAgICAgcmV0dXJu IHZhbHVlX2Zyb21fbG9uZ2VzdCAoYnVpbHRpbl90eXBlIChleHAtPmdkYmFyY2gpLT5idWlsdGlu X2ludCwKLSAJCQkJIFRZUEVfTEVOR1RIIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSkpOwotKwot KwotKyAgICBjYXNlIE9QX0Y3N19VTkRFVEVSTUlORURfQVJHTElTVDoKLSsgICAgICAvKiBSZW1l bWJlciB0aGF0IGluIEY3NywgZnVuY3Rpb25zLCBzdWJzdHJpbmcgb3BzIGFuZCBhcnJheSBzdWJz Y3JpcHQKLSsgICAgICAgICBvcGVyYXRpb25zIGNhbm5vdCBiZSBkaXNhbWJpZ3VhdGVkIGF0IHBh cnNlIHRpbWUuICBXZSBoYXZlIG1hZGUKLSsgICAgICAgICBhbGwgYXJyYXkgc3Vic2NyaXB0IG9w ZXJhdGlvbnMsIHN1YnN0cmluZyBvcGVyYXRpb25zIGFzIHdlbGwgYXMKLSsgICAgICAgICBmdW5j dGlvbiBjYWxscyBjb21lIGhlcmUgYW5kIHdlIG5vdyBoYXZlIHRvIGRpc2NvdmVyIHdoYXQgdGhl IGhlY2sKLSsgICAgICAgICB0aGlzIHRoaW5nIGFjdHVhbGx5IHdhcy4gIElmIGl0IGlzIGEgZnVu Y3Rpb24sIHdlIHByb2Nlc3MganVzdCBhcwotKyAgICAgICAgIGlmIHdlIGdvdCBhbiBPUF9GVU5D QUxMLiAgKi8KLSsgICAgICBpbnQgbmFyZ3MgPSBsb25nZXN0X3RvX2ludCAoZXhwLT5lbHRzW3Bj ICsgMV0ubG9uZ2NvbnN0KTsKLSsgICAgICAoKnBvcykgKz0gMjsKLSsKLSsgICAgICAvKiBGaXJz dCBkZXRlcm1pbmUgdGhlIHR5cGUgY29kZSB3ZSBhcmUgZGVhbGluZyB3aXRoLiAgKi8KLSsgICAg ICBhcmcxID0gZXZhbHVhdGVfc3ViZXhwIChudWxscHRyLCBleHAsIHBvcywgbm9zaWRlKTsKLSsg ICAgICB0eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnMSkpOwotKyAgICAgIGVu dW0gdHlwZV9jb2RlIGNvZGUgPSB0eXBlLT5jb2RlICgpOwotKwotKyAgICAgIGlmIChjb2RlID09 IFRZUEVfQ09ERV9QVFIpCi0rCXsKLSsJICAvKiBGb3J0cmFuIGFsd2F5cyBwYXNzZXMgdmFyaWFi bGUgdG8gc3Vicm91dGluZXMgYXMgcG9pbnRlci4KLSsJICAgICBTbyB3ZSBuZWVkIHRvIGxvb2sg aW50byBpdHMgdGFyZ2V0IHR5cGUgdG8gc2VlIGlmIGl0IGlzCi0rCSAgICAgYXJyYXksIHN0cmlu ZyBvciBmdW5jdGlvbi4gIElmIGl0IGlzLCB3ZSBuZWVkIHRvIHN3aXRjaAotKwkgICAgIHRvIHRo ZSB0YXJnZXQgdmFsdWUgdGhlIG9yaWdpbmFsIG9uZSBwb2ludHMgdG8uICAqLwotKwkgIHN0cnVj dCB0eXBlICp0YXJnZXRfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VUX1RZUEUgKHR5 cGUpKTsKLSsKLSsJICBpZiAodGFyZ2V0X3R5cGUtPmNvZGUgKCkgPT0gVFlQRV9DT0RFX0FSUkFZ Ci0rCSAgICAgIHx8IHRhcmdldF90eXBlLT5jb2RlICgpID09IFRZUEVfQ09ERV9TVFJJTkcKLSsJ ICAgICAgfHwgdGFyZ2V0X3R5cGUtPmNvZGUgKCkgPT0gVFlQRV9DT0RFX0ZVTkMpCi0rCSAgICB7 Ci0rCSAgICAgIGFyZzEgPSB2YWx1ZV9pbmQgKGFyZzEpOwotKwkgICAgICB0eXBlID0gY2hlY2tf dHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnMSkpOwotKwkgICAgICBjb2RlID0gdHlwZS0+Y29kZSAo KTsKLSsJICAgIH0KLSsJfQotKwotKyAgICAgIHN3aXRjaCAoY29kZSkKLSsJewotKwljYXNlIFRZ UEVfQ09ERV9BUlJBWToKLSsJY2FzZSBUWVBFX0NPREVfU1RSSU5HOgotKwkgIHJldHVybiBmb3J0 cmFuX3ZhbHVlX3N1YmFycmF5IChhcmcxLCBleHAsIHBvcywgbmFyZ3MsIG5vc2lkZSk7Ci0rCi0r CWNhc2UgVFlQRV9DT0RFX1BUUjoKLSsJY2FzZSBUWVBFX0NPREVfRlVOQzoKLSsJY2FzZSBUWVBF X0NPREVfSU5URVJOQUxfRlVOQ1RJT046Ci0rCSAgewotKwkgICAgLyogSXQncyBhIGZ1bmN0aW9u IGNhbGwuICBBbGxvY2F0ZSBhcmcgdmVjdG9yLCBpbmNsdWRpbmcKLSsJICAgIHNwYWNlIGZvciB0 aGUgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIGluIGFyZ3ZlY1swXSBhbmQgYQotKwkgICAgdGVybWlu YXRpb24gTlVMTC4gICovCi0rCSAgICBzdHJ1Y3QgdmFsdWUgKiphcmd2ZWMgPSAoc3RydWN0IHZh bHVlICoqKQotKwkgICAgICBhbGxvY2EgKHNpemVvZiAoc3RydWN0IHZhbHVlICopICogKG5hcmdz ICsgMikpOwotKwkgICAgYXJndmVjWzBdID0gYXJnMTsKLSsJICAgIGludCB0ZW0gPSAxOwotKwkg ICAgZm9yICg7IHRlbSA8PSBuYXJnczsgdGVtKyspCi0rCSAgICAgIHsKLSsJCWFyZ3ZlY1t0ZW1d ID0gZXZhbHVhdGVfc3ViZXhwX3dpdGhfY29lcmNpb24gKGV4cCwgcG9zLCBub3NpZGUpOwotKwkJ LyogQXJndW1lbnRzIGluIEZvcnRyYW4gYXJlIHBhc3NlZCBieSBhZGRyZXNzLiAgQ29lcmNlIHRo ZQotKwkJICAgYXJndW1lbnRzIGhlcmUgcmF0aGVyIHRoYW4gaW4gdmFsdWVfYXJnX2NvZXJjZSBh cwotKwkJICAgb3RoZXJ3aXNlIHRoZSBjYWxsIHRvIG1hbGxvYyB0byBwbGFjZSB0aGUgbm9uLWx2 YWx1ZQotKwkJICAgcGFyYW1ldGVycyBpbiB0YXJnZXQgbWVtb3J5IGlzIGhpdCBieSB0aGlzIEZv cnRyYW4KLSsJCSAgIHNwZWNpZmljIGxvZ2ljLiAgVGhpcyByZXN1bHRzIGluIG1hbGxvYyBiZWlu ZyBjYWxsZWQKLSsJCSAgIHdpdGggYSBwb2ludGVyIHRvIGFuIGludGVnZXIgZm9sbG93ZWQgYnkg YW4gYXR0ZW1wdCB0bwotKwkJICAgbWFsbG9jIHRoZSBhcmd1bWVudHMgdG8gbWFsbG9jIGluIHRh cmdldCBtZW1vcnkuCi0rCQkgICBJbmZpbml0ZSByZWN1cnNpb24gZW5zdWVzLiAgKi8KLSsJCWlm IChjb2RlID09IFRZUEVfQ09ERV9QVFIgfHwgY29kZSA9PSBUWVBFX0NPREVfRlVOQykKLSsJCSAg ewotKwkJICAgIGJvb2wgaXNfYXJ0aWZpY2lhbAotKwkJICAgICAgPSBUWVBFX0ZJRUxEX0FSVElG SUNJQUwgKHZhbHVlX3R5cGUgKGFyZzEpLCB0ZW0gLSAxKTsKLSsJCSAgICBhcmd2ZWNbdGVtXSA9 IGZvcnRyYW5fYXJndW1lbnRfY29udmVydCAoYXJndmVjW3RlbV0sCi0rCQkJCQkJCSAgICBpc19h cnRpZmljaWFsKTsKLSsJCSAgfQotKwkgICAgICB9Ci0rCSAgICBhcmd2ZWNbdGVtXSA9IDA7CS8q IHNpZ25hbCBlbmQgb2YgYXJnbGlzdCAqLwotKwkgICAgaWYgKG5vc2lkZSA9PSBFVkFMX1NLSVAp Ci0rCSAgICAgIHJldHVybiBldmFsX3NraXBfdmFsdWUgKGV4cCk7Ci0rCSAgICByZXR1cm4gZXZh bHVhdGVfc3ViZXhwX2RvX2NhbGwgKGV4cCwgbm9zaWRlLCBuYXJncywgYXJndmVjLCBOVUxMLAot KwkJCQkJICAgIGV4cGVjdF90eXBlKTsKLSsJICB9Ci0rCi0rCWRlZmF1bHQ6Ci0rCSAgZXJyb3Ig KF8oIkNhbm5vdCBwZXJmb3JtIHN1YnN0cmluZyBvbiB0aGlzIHR5cGUiKSk7Ci0rCX0KLSAgICAg fQotIAotICAgLyogU2hvdWxkIGJlIHVucmVhY2hhYmxlLiAgKi8KLUBAIC0zMTgsNiArNTI3LDEx IEBAIG9wZXJhdG9yX2xlbmd0aF9mIChjb25zdCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQg cGMsIGludCAqb3BsZW5wLAotICAgICAgIG9wbGVuID0gMTsKLSAgICAgICBhcmdzID0gMjsKLSAg ICAgICBicmVhazsKLSsKLSsgICAgY2FzZSBPUF9GNzdfVU5ERVRFUk1JTkVEX0FSR0xJU1Q6Ci0r ICAgICAgb3BsZW4gPSAzOwotKyAgICAgIGFyZ3MgPSAxICsgbG9uZ2VzdF90b19pbnQgKGV4cC0+ ZWx0c1twYyAtIDJdLmxvbmdjb25zdCk7Ci0rICAgICAgYnJlYWs7Ci0gICAgIH0KLSAKLSAgICpv cGxlbnAgPSBvcGxlbjsKLUBAIC0zOTAsNiArNjA0LDEwIEBAIHByaW50X3N1YmV4cF9mIChzdHJ1 Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgKnBvcywKLSAgICAgY2FzZSBCSU5PUF9GT1JUUkFOX01P RFVMTzoKLSAgICAgICBwcmludF9iaW5vcF9zdWJleHBfZiAoZXhwLCBwb3MsIHN0cmVhbSwgcHJl YywgIk1PRFVMTyIpOwotICAgICAgIHJldHVybjsKLSsKLSsgICAgY2FzZSBPUF9GNzdfVU5ERVRF Uk1JTkVEX0FSR0xJU1Q6Ci0rICAgICAgcHJpbnRfc3ViZXhwX2Z1bmNhbGwgKGV4cCwgcG9zLCBz dHJlYW0pOwotKyAgICAgIHJldHVybjsKLSAgICAgfQotIH0KLSAKLUBAIC00MzIsNiArNjUwLDkg QEAgZHVtcF9zdWJleHBfYm9keV9mIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAotICAgICBjYXNl IEJJTk9QX0ZPUlRSQU5fTU9EVUxPOgotICAgICAgIG9wZXJhdG9yX2xlbmd0aF9mIChleHAsIChl bHQgKyAxKSwgJm9wbGVuLCAmbmFyZ3MpOwotICAgICAgIGJyZWFrOwotKwotKyAgICBjYXNlIE9Q X0Y3N19VTkRFVEVSTUlORURfQVJHTElTVDoKLSsgICAgICByZXR1cm4gZHVtcF9zdWJleHBfYm9k eV9mdW5jYWxsIChleHAsIHN0cmVhbSwgZWx0KTsKLSAgICAgfQotIAotICAgZWx0ICs9IG9wbGVu OwotZGlmZiAtLWdpdCBhL2dkYi9mb3J0cmFuLW9wZXJhdG9yLmRlZiBiL2dkYi9mb3J0cmFuLW9w ZXJhdG9yLmRlZgotLS0tIGEvZ2RiL2ZvcnRyYW4tb3BlcmF0b3IuZGVmCi0rKysgYi9nZGIvZm9y dHJhbi1vcGVyYXRvci5kZWYKLUBAIC0xNyw2ICsxNywxNCBAQAotICAgIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICAg YWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3Jn L2xpY2Vuc2VzLz4uICAqLwotIAotKy8qIFRoaXMgaXMgRVhBQ1RMWSBsaWtlIE9QX0ZVTkNBTEwg YnV0IGlzIHNlbWFudGljYWxseSBkaWZmZXJlbnQuCi0rICAgSW4gRjc3LCBhcnJheSBzdWJzY3Jp cHQgZXhwcmVzc2lvbnMsIHN1YnN0cmluZyBleHByZXNzaW9ucyBhbmQKLSsgICBmdW5jdGlvbiBj YWxscyBhcmUgYWxsIGV4YWN0bHkgdGhlIHNhbWUgc3ludGFjdGljYWxseS4gIFRoZXkKLSsgICBt YXkgb25seSBiZSBkaXNhbWJpZ3VhdGVkIGF0IHJ1bnRpbWUuICBUaHVzIHRoaXMgb3BlcmF0b3Is Ci0rICAgd2hpY2ggaW5kaWNhdGVzIHRoYXQgd2UgaGF2ZSBmb3VuZCBzb21ldGhpbmcgb2YgdGhl IGZvcm0KLSsgICA8bmFtZT4gKCA8c3R1ZmY+ICkuICAqLwotK09QIChPUF9GNzdfVU5ERVRFUk1J TkVEX0FSR0xJU1QpCi0rCi0gLyogU2luZ2xlIG9wZXJhbmQgYnVpbHRpbnMuICAqLwotIE9QIChV Tk9QX0ZPUlRSQU5fS0lORCkKLSBPUCAoVU5PUF9GT1JUUkFOX0ZMT09SKQotZGlmZiAtLWdpdCBh L2dkYi9wYXJzZS5jIGIvZ2RiL3BhcnNlLmMKLS0tLSBhL2dkYi9wYXJzZS5jCi0rKysgYi9nZGIv cGFyc2UuYwotQEAgLTgxNyw3ICs4MTcsNiBAQCBvcGVyYXRvcl9sZW5ndGhfc3RhbmRhcmQgKGNv bnN0IHN0cnVjdCBleHByZXNzaW9uICpleHByLCBpbnQgZW5kcG9zLAotICAgICAgIGJyZWFrOwot IAotICAgICBjYXNlIE9QX0ZVTkNBTEw6Ci0tICAgIGNhc2UgT1BfRjc3X1VOREVURVJNSU5FRF9B UkdMSVNUOgotICAgICAgIG9wbGVuID0gMzsKLSAgICAgICBhcmdzID0gMSArIGxvbmdlc3RfdG9f aW50IChleHByLT5lbHRzW2VuZHBvcyAtIDJdLmxvbmdjb25zdCk7Ci0gICAgICAgYnJlYWs7Ci1k aWZmIC0tZ2l0IGEvZ2RiL3BhcnNlci1kZWZzLmggYi9nZGIvcGFyc2VyLWRlZnMuaAotLS0tIGEv Z2RiL3BhcnNlci1kZWZzLmgKLSsrKyBiL2dkYi9wYXJzZXItZGVmcy5oCi1AQCAtMzM4LDYgKzMz OCwxMyBAQCBleHRlcm4gaW50IGR1bXBfc3ViZXhwIChzdHJ1Y3QgZXhwcmVzc2lvbiAqLCBzdHJ1 Y3QgdWlfZmlsZSAqLCBpbnQpOwotIGV4dGVybiBpbnQgZHVtcF9zdWJleHBfYm9keV9zdGFuZGFy ZCAoc3RydWN0IGV4cHJlc3Npb24gKiwgCi0gCQkJCSAgICAgIHN0cnVjdCB1aV9maWxlICosIGlu dCk7Ci0gCi0rLyogRHVtcCAodG8gU1RSRUFNKSBhIGZ1bmN0aW9uIGNhbGwgbGlrZSBleHByZXNz aW9uIGF0IHBvc2l0aW9uIEVMVCBpbiB0aGUKLSsgICBleHByZXNzaW9uIGFycmF5IEVYUC4gIFJl dHVybiBhIG5ldyB2YWx1ZSBmb3IgRUxUIGp1c3QgYWZ0ZXIgdGhlCi0rICAgZnVuY3Rpb24gY2Fs bCBleHByZXNzaW9uLiAgKi8KLSsKLStleHRlcm4gaW50IGR1bXBfc3ViZXhwX2JvZHlfZnVuY2Fs bCAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKLSsJCQkJICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3Ry ZWFtLCBpbnQgZWx0KTsKLSsKLSBleHRlcm4gdm9pZCBvcGVyYXRvcl9sZW5ndGggKGNvbnN0IHN0 cnVjdCBleHByZXNzaW9uICosIGludCwgaW50ICosIGludCAqKTsKLSAKLSBleHRlcm4gdm9pZCBv cGVyYXRvcl9sZW5ndGhfc3RhbmRhcmQgKGNvbnN0IHN0cnVjdCBleHByZXNzaW9uICosIGludCwg aW50ICosCi1AQCAtNDQwLDYgKzQ0NywxNSBAQCBleHRlcm4gdm9pZCBwcmludF9zdWJleHAgKHN0 cnVjdCBleHByZXNzaW9uICosIGludCAqLCBzdHJ1Y3QgdWlfZmlsZSAqLAotIGV4dGVybiB2b2lk IHByaW50X3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IGV4cHJlc3Npb24gKiwgaW50ICosIAotIAkJ CQkgICBzdHJ1Y3QgdWlfZmlsZSAqLCBlbnVtIHByZWNlZGVuY2UpOwotIAotKy8qIFByaW50IGEg ZnVuY3Rpb24gY2FsbCBsaWtlIGV4cHJlc3Npb24gdG8gU1RSRUFNLiAgVGhpcyBpcyBjYWxsZWQg YXMgYQotKyAgIGhlbHBlciBmdW5jdGlvbiBieSB3aGljaCBwb2ludCB0aGUgZXhwcmVzc2lvbiBu b2RlIGlkZW50aWZ5aW5nIHRoaXMgYXMgYQotKyAgIGZ1bmN0aW9uIGNhbGwgaGFzIGFscmVhZHkg YmVlbiBzdHJpcHBlZCBvZmYgYW5kIFBPUyBzaG91bGQgcG9pbnQgdG8gdGhlCi0rICAgbnVtYmVy IG9mIGZ1bmN0aW9uIGNhbGwgYXJndW1lbnRzLiAgRVhQIGlzIHRoZSBvYmplY3QgY29udGFpbmlu ZyB0aGUKLSsgICBsaXN0IG9mIGV4cHJlc3Npb24gZWxlbWVudHMuICAqLwotKwotK2V4dGVybiB2 b2lkIHByaW50X3N1YmV4cF9mdW5jYWxsIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgKnBv cywKLSsJCQkJICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKTsKLSsKLSAvKiBGdW5jdGlvbiB1c2Vk IHRvIGF2b2lkIGRpcmVjdCBjYWxscyB0byBmcHJpbnRmCi0gICAgaW4gdGhlIGNvZGUgZ2VuZXJh dGVkIGJ5IHRoZSBiaXNvbiBwYXJzZXIuICAqLwotIAotZGlmZiAtLWdpdCBhL2dkYi9zdGQtb3Bl cmF0b3IuZGVmIGIvZ2RiL3N0ZC1vcGVyYXRvci5kZWYKLS0tLSBhL2dkYi9zdGQtb3BlcmF0b3Iu ZGVmCi0rKysgYi9nZGIvc3RkLW9wZXJhdG9yLmRlZgotQEAgLTE2OCwxNCArMTY4LDYgQEAgT1Ag KE9QX0ZVTkNBTEwpCi0gICAgcG9pbnRlci4gIFRoaXMgaXMgYW4gT2JqZWN0aXZlIEMgbWVzc2Fn ZS4gICovCi0gT1AgKE9QX09CSkNfTVNHQ0FMTCkKLSAKLS0vKiBUaGlzIGlzIEVYQUNUTFkgbGlr ZSBPUF9GVU5DQUxMIGJ1dCBpcyBzZW1hbnRpY2FsbHkgZGlmZmVyZW50LgotLSAgIEluIEY3Nywg YXJyYXkgc3Vic2NyaXB0IGV4cHJlc3Npb25zLCBzdWJzdHJpbmcgZXhwcmVzc2lvbnMgYW5kCi0t ICAgZnVuY3Rpb24gY2FsbHMgYXJlIGFsbCBleGFjdGx5IHRoZSBzYW1lIHN5bnRhY3RpY2FsbHku ICBUaGV5Ci0tICAgbWF5IG9ubHkgYmUgZGlzYW1iaWd1YXRlZCBhdCBydW50aW1lLiAgVGh1cyB0 aGlzIG9wZXJhdG9yLAotLSAgIHdoaWNoIGluZGljYXRlcyB0aGF0IHdlIGhhdmUgZm91bmQgc29t ZXRoaW5nIG9mIHRoZSBmb3JtCi0tICAgPG5hbWU+ICggPHN0dWZmPiApLiAgKi8KLS1PUCAoT1Bf Rjc3X1VOREVURVJNSU5FRF9BUkdMSVNUKQotLQotIC8qIE9QX0NPTVBMRVggdGFrZXMgYSB0eXBl IGluIHRoZSBmb2xsb3dpbmcgZWxlbWVudCwgZm9sbG93ZWQgYnkgYW5vdGhlcgotICAgIE9QX0NP TVBMRVgsIG1ha2luZyB0aHJlZSBleHBfZWxlbWVudHMuICBJdCBpcyBmb2xsb3dlZCBieSB0d28g ZG91YmxlCi0gICAgYXJncywgYW5kIGNvbnZlcnRzIHRoZW0gaW50byBhIGNvbXBsZXggbnVtYmVy IG9mIHRoZSBnaXZlbiB0eXBlLiAgKi8KCmRpZmYgLS1naXQgYS9nZGItcmhiejE5NzEwOTYtZ2xp YmMyLjM0LTEucGF0Y2ggYi9nZGItcmhiejE5NzEwOTYtZ2xpYmMyLjM0LTEucGF0Y2gKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY4ODI2OTkuLjAwMDAwMDAKLS0tIGEvZ2RiLXJoYnox OTcxMDk2LWdsaWJjMi4zNC0xLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzA3ICswLDAgQEAK LUZyb20gRkVET1JBX1BBVENIRVMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLZXZp biBCdWV0dG5lciA8a2V2aW5iQHJlZGhhdC5jb20+Ci1EYXRlOiBNb24sIDE0IEp1biAyMDIxIDE5 OjEyOjA2IC0wNzAwCi1TdWJqZWN0OiBnZGItcmhiejE5NzEwOTYtZ2xpYmMyLjM0LTEucGF0Y2gK LQotOzsgQmFja3BvcnQgcGF0Y2ggZml4aW5nIGdkYiBvbiBnbGliYy0yLjM0IG1hY2hpbmVzIHdp dGggcmVnYXJkIHRvIGF0dGFjaGluZwotOzsgdG8gcHJvY2Vzc2VzIChSSCBCWiAxOTcxMDk2KS4K LQotZ2RiOiB0cnkgdG8gbG9hZCBsaWJ0aHJlYWRfZGIgb25seSBhZnRlciByZWFkaW5nIGFsbCBz aGFyZWQgbGlicmFyaWVzIHdoZW4gYXR0YWNoaW5nIC8gaGFuZGxpbmcgYSBmb3JrIGNoaWxkCi0K LVdoZW4gdHJ5aW5nIHRvIGF0dGFjaCB0byBhIHB0aHJlYWQgcHJvY2VzcyBvbiBhIExpbnV4IHN5 c3RlbSB3aXRoIGdsaWJjIDIuMzMsCi13ZSBnZXQ6Ci0KLSAgICAkIC4vZ2RiIC1xIC1ueCAtLWRh dGEtZGlyZWN0b3J5PWRhdGEtZGlyZWN0b3J5IC1wIDE0NzIwMTAKLSAgICBBdHRhY2hpbmcgdG8g cHJvY2VzcyAxNDcyMDEwCi0gICAgW05ldyBMV1AgMTQ3MjAxM10KLSAgICBbTmV3IExXUCAxNDcy MDE0XQotICAgIFtOZXcgTFdQIDE0NzIwMTVdCi0gICAgRXJyb3Igd2hpbGUgcmVhZGluZyBzaGFy ZWQgbGlicmFyeSBzeW1ib2xzIGZvciAvdXNyL2xpYi9saWJwdGhyZWFkLnNvLjA6Ci0gICAgQ2Fu bm90IGZpbmQgdXNlci1sZXZlbCB0aHJlYWQgZm9yIExXUCAxNDcyMDE1OiBnZW5lcmljIGVycm9y Ci0gICAgMHgwMDAwN2ZmZmY2ZDM2MzdmIGluIHBvbGwgKCkgZnJvbSAvdXNyL2xpYi9saWJjLnNv LjYKLSAgICAoZ2RiKQotCi1XaGVuIGF0dGFjaGluZyB0byBhIHByb2Nlc3MgKG9yIGhhbmRsaW5n IGEgZm9yayBjaGlsZCwgYW4gb3BlcmF0aW9uIHZlcnkKLXNpbWlsYXIgdG8gYXR0YWNoaW5nKSwg R0RCIHJlYWRzIHRoZSBzaGFyZWQgbGlicmFyeSBsaXN0IGZyb20gdGhlCi1wcm9jZXNzLiAgRm9y IGVhY2ggc2hhcmVkIGxpYnJhcnkgKGlmICJzZXQgYXV0by1zb2xpYi1hZGQiIGlzIG9uKSwgaXQK LXJlYWRzIGl0cyBzeW1ib2xzIGFuZCBjYWxscyB0aGUgIm5ld19vYmpmaWxlIiBvYnNlcnZhYmxl LgotCi1UaGUgbGlidGhyZWFkLWRiIGNvZGUgbW9uaXRvcnMgdGhpcyBvYnNlcnZhYmxlLCBhbmQg aWYgaXQgc2VlcyBhbgotb2JqZmlsZSBuYW1lZCBzb21ld2hhdCBsaWtlICJsaWJwdGhyZWFkLnNv IiBnbyBieSwgaXQgdHJpZXMgdG8gbG9hZAotbGlidGhyZWFkX2RiLnNvIGluIHRoZSBHREIgcHJv Y2VzcyBpdHNlbGYuICBsaWJ0aHJlYWRfZGIga25vd3MgaG93IHRvCi1uYXZpZ2F0ZSBsaWJwdGhy ZWFkJ3MgZGF0YSBzdHJ1Y3R1cmVzIHRvIGdldCBpbmZvcm1hdGlvbiBhYm91dCB0aGUKLWV4aXN0 aW5nIHRocmVhZHMuCi0KLVRvIGxvY2F0ZSB0aGVzZSBkYXRhIHN0cnVjdHVyZXMsIGxpYnRocmVh ZF9kYiBjYWxscyBwc19wZ2xvYmFsX2xvb2t1cAotKGltcGxlbWVudGVkIGluIHByb2Mtc2Vydmlj ZS5jKSwgcGFzc2luZyBpbiBhIHN5bWJvbCBuYW1lIGFuZCBleHBlY3RpbmcKLWFuIGFkZHJlc3Mg aW4gcmV0dXJuLgotCi1CZWZvcmUgZ2xpYmMgMi4zMywgbGlidGhyZWFkX2RiIGFsd2F5cyBhc2tl ZCBmb3Igc3ltYm9scyBmb3VuZCBpbgotbGlicHRocmVhZC4gIFRoZXJlIHdhcyBubyBvcmRlcmlu ZyBwcm9ibGVtOiBzaW5jZSB3ZSB3ZXJlIGFsd2F5cyB0cnlpbmcKLXRvIGxvYWQgbGlidGhyZWFk X2RiIGluIHJlYWN0aW9uIHRvIHByb2Nlc3NpbmcgbGlicHRocmVhZCAoYW5kIHJlYWRpbmcKLWlu IGl0cyBzeW1ib2xzKSBhbmQgbGlidGhyZWFkX2RiIG9ubHkgYXNrZWQgc3ltYm9scyBmcm9tIGxp YnB0aHJlYWQsIHRoZQotcmVxdWVzdGVkIHN5bWJvbHMgY291bGQgYWx3YXlzIGJlIGZvdW5kLiAg U3RhcnRpbmcgd2l0aCBnbGliYyAyLjMzLAotbGlidGhyZWFkX2RiIG5vdyBhc2tzIGZvciBhIHN5 bWJvbCBuYW1lIHRoYXQgY2FuIGJlIGZvdW5kIGluCi0vbGliL2xkLWxpbnV4LXg4Ni02NC5zby4y IChfcnRsZF9nbG9iYWwpLiAgQW5kIHRoZSBvcmRlcmluZyBpbiB3aGljaCBHREIKLXJlYWRzIHRo ZSBzaGFyZWQgbGlicmFyaWVzIGZyb20gdGhlIGluZmVyaW9yIHdoZW4gYXR0YWNoaW5nIGlzCi11 bmZvcnR1bmF0ZSwgaW4gdGhhdCBsaWJwdGhyZWFkIGlzIHByb2Nlc3NlZCBiZWZvcmUgbGQtbGlu dXguICBTbyB3aGVuCi1sb2FkaW5nIGxpYnRocmVhZF9kYiBpbiByZWFjdGlvbiB0byBwcm9jZXNz aW5nIGxpYnB0aHJlYWQsIGFuZAotbGlidGhyZWFkX2RiIHJlcXVlc3RzIHRoZSBzeW1ib2wgdGhh dCBpcyBmcm9tIGxkLWxpbnV4LCBHREIgaXMgbm90IHlldAotYWJsZSB0byBzdXBwbHkgaXQuCi0K LVRoYXQgcHJvYmxlbWF0aWMgc3ltYm9sIGxvb2t1cCBoYXBwZW5zIGluIHRoZSB0aHJlYWRfZnJv bV9sd3AgZnVuY3Rpb24sCi13aGVuIHdlIGNhbGwgdGRfdGFfbWFwX2x3cDJ0aHJfcCwgYW5kIGFu IGV4Y2VwdGlvbiBpcyB0aHJvd24gYXQgdGhpcwotcG9pbnQ6Ci0KLSAgICAjMCAgMHgwMDAwN2Zm ZmY2NjgxMDEyIGluIF9fY3h4YWJpdjE6Ol9fY3hhX3Rocm93IChvYmo9MHg2MGUwMDAwMDYxMDAs IHRpbmZvPTB4NTU1NTYwMDMzYjUwIDx0eXBlaW5mbyBmb3IgZ2RiX2V4Y2VwdGlvbl9lcnJvcj4s IGRlc3Q9MHg1NTU1NWQ5NDA0YmMgPGdkYl9leGNlcHRpb25fZXJyb3I6On5nZGJfZXhjZXB0aW9u X2Vycm9yKCk+KSBhdCAvYnVpbGQvZ2NjL3NyYy9nY2MvbGlic3RkYysrLXYzL2xpYnN1cGMrKy9l aF90aHJvdy5jYzo3OAotICAgICMxICAweDAwMDA1NTU1NWU1ZDM3MzQgaW4gdGhyb3dfaXQocmV0 dXJuX3JlYXNvbiwgZXJyb3JzLCBjb25zdCBjaGFyICosIHR5cGVkZWYgX192YV9saXN0X3RhZyBf X3ZhX2xpc3RfdGFnICopIChyZWFzb249UkVUVVJOX0VSUk9SLCBlcnJvcj1HRU5FUklDX0VSUk9S LCBmbXQ9MHg1NTU1NWYwYzUzNjAgIkNhbm5vdCBmaW5kIHVzZXItbGV2ZWwgdGhyZWFkIGZvciBM V1AgJWxkOiAlcyIsIGFwPTB4N2ZmZmZmZmZhYWUwKSBhdCAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0 aWxzLWdkYi9nZGJzdXBwb3J0L2NvbW1vbi1leGNlcHRpb25zLmNjOjIwMAotICAgICMyICAweDAw MDA1NTU1NWU1ZDM3ZDQgaW4gdGhyb3dfdmVycm9yIChlcnJvcj1HRU5FUklDX0VSUk9SLCBmbXQ9 MHg1NTU1NWYwYzUzNjAgIkNhbm5vdCBmaW5kIHVzZXItbGV2ZWwgdGhyZWFkIGZvciBMV1AgJWxk OiAlcyIsIGFwPTB4N2ZmZmZmZmZhYWUwKSBhdCAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdk Yi9nZGJzdXBwb3J0L2NvbW1vbi1leGNlcHRpb25zLmNjOjIwOAotICAgICMzICAweDAwMDA1NTU1 NWUwYjBlZDIgaW4gdmVycm9yIChzdHJpbmc9MHg1NTU1NWYwYzUzNjAgIkNhbm5vdCBmaW5kIHVz ZXItbGV2ZWwgdGhyZWFkIGZvciBMV1AgJWxkOiAlcyIsIGFyZ3M9MHg3ZmZmZmZmZmFhZTApIGF0 IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi91dGlscy5jOjE3MQotICAgICM0ICAw eDAwMDA1NTU1NWU1ZTg5OGEgaW4gZXJyb3IgKGZtdD0weDU1NTU1ZjBjNTM2MCAiQ2Fubm90IGZp bmQgdXNlci1sZXZlbCB0aHJlYWQgZm9yIExXUCAlbGQ6ICVzIikgYXQgL2hvbWUvc2ltYXJrL3Ny Yy9iaW51dGlscy1nZGIvZ2Ric3VwcG9ydC9lcnJvcnMuY2M6NDMKLSAgICAjNSAgMHgwMDAwNTU1 NTVkMDZiNGJjIGluIHRocmVhZF9mcm9tX2x3cCAoc3RvcHBlZD0weDYxNzAwMDAzNWQ4MCwgcHRp ZD0uLi4pIGF0IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9saW51eC10aHJlYWQt ZGIuYzo0MTgKLSAgICAjNiAgMHgwMDAwNTU1NTVkMDcwNDBkIGluIHRyeV90aHJlYWRfZGJfbG9h ZF8xIChpbmZvPTB4NjBjMDAwMDExMTQwKSBhdCAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdk Yi9nZGIvbGludXgtdGhyZWFkLWRiLmM6OTEyCi0gICAgIzcgIDB4MDAwMDU1NTU1ZDA3MTEwMyBp biB0cnlfdGhyZWFkX2RiX2xvYWQgKGxpYnJhcnk9MHg1NTU1NWYwYzYyYTAgImxpYnRocmVhZF9k Yi5zby4xIiwgY2hlY2tfYXV0b19sb2FkX3NhZmU9ZmFsc2UpIGF0IC9ob21lL3NpbWFyay9zcmMv YmludXRpbHMtZ2RiL2dkYi9saW51eC10aHJlYWQtZGIuYzoxMDE0Ci0gICAgIzggIDB4MDAwMDU1 NTU1ZDA3MjE2OCBpbiB0cnlfdGhyZWFkX2RiX2xvYWRfZnJvbV9zZGlyICgpIGF0IC9ob21lL3Np bWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9saW51eC10aHJlYWQtZGIuYzoxMDkxCi0gICAgIzkg IDB4MDAwMDU1NTU1ZDA3MmQxYyBpbiB0aHJlYWRfZGJfbG9hZF9zZWFyY2ggKCkgYXQgL2hvbWUv c2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2RiL2xpbnV4LXRocmVhZC1kYi5jOjExNDYKLSAgICAj MTAgMHgwMDAwNTU1NTVkMDczNjVjIGluIHRocmVhZF9kYl9sb2FkICgpIGF0IC9ob21lL3NpbWFy ay9zcmMvYmludXRpbHMtZ2RiL2dkYi9saW51eC10aHJlYWQtZGIuYzoxMjAzCi0gICAgIzExIDB4 MDAwMDU1NTU1ZDA3MzczZSBpbiBjaGVja19mb3JfdGhyZWFkX2RiICgpIGF0IC9ob21lL3NpbWFy ay9zcmMvYmludXRpbHMtZ2RiL2dkYi9saW51eC10aHJlYWQtZGIuYzoxMjQ2Ci0gICAgIzEyIDB4 MDAwMDU1NTU1ZDA3MzhhYiBpbiB0aHJlYWRfZGJfbmV3X29iamZpbGUgKG9iamZpbGU9MHg2MTMw MDAwMGMwYzApIGF0IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9saW51eC10aHJl YWQtZGIuYzoxMjc1Ci0gICAgIzEzIDB4MDAwMDU1NTU1YmQxMDc0MCBpbiBzdGQ6Ol9faW52b2tl X2ltcGw8dm9pZCwgdm9pZCAoKiYpKG9iamZpbGUqKSwgb2JqZmlsZSo+IChfX2Y9QDB4NjE2MDAw MDY4ZDg4OiAweDU1NTU1ZDA3Mzc0NSA8dGhyZWFkX2RiX25ld19vYmpmaWxlKG9iamZpbGUqKT4p IGF0IC91c3IvaW5jbHVkZS9jKysvMTAuMi4wL2JpdHMvaW52b2tlLmg6NjAKLSAgICAjMTQgMHgw MDAwNTU1NTViZDAyMDk2IGluIHN0ZDo6X19pbnZva2Vfcjx2b2lkLCB2b2lkICgqJikob2JqZmls ZSopLCBvYmpmaWxlKj4gKF9fZm49QDB4NjE2MDAwMDY4ZDg4OiAweDU1NTU1ZDA3Mzc0NSA8dGhy ZWFkX2RiX25ld19vYmpmaWxlKG9iamZpbGUqKT4pIGF0IC91c3IvaW5jbHVkZS9jKysvMTAuMi4w L2JpdHMvaW52b2tlLmg6MTUzCi0gICAgIzE1IDB4MDAwMDU1NTU1YmNlMDM5MiBpbiBzdGQ6Ol9G dW5jdGlvbl9oYW5kbGVyPHZvaWQgKG9iamZpbGUqKSwgdm9pZCAoKikob2JqZmlsZSopPjo6X01f aW52b2tlKHN0ZDo6X0FueV9kYXRhIGNvbnN0Jiwgb2JqZmlsZSomJikgKF9fZnVuY3Rvcj0uLi4s IF9fYXJncyMwPUAweDdmZmZmZmZmYjRhMDogMHg2MTMwMDAwMGMwYzApIGF0IC91c3IvaW5jbHVk ZS9jKysvMTAuMi4wL2JpdHMvc3RkX2Z1bmN0aW9uLmg6MjkxCi0gICAgIzE2IDB4MDAwMDU1NTU1 ZDM1OTVjMCBpbiBzdGQ6OmZ1bmN0aW9uPHZvaWQgKG9iamZpbGUqKT46Om9wZXJhdG9yKCkob2Jq ZmlsZSopIGNvbnN0ICh0aGlzPTB4NjE2MDAwMDY4ZDg4LCBfX2FyZ3MjMD0weDYxMzAwMDAwYzBj MCkgYXQgL3Vzci9pbmNsdWRlL2MrKy8xMC4yLjAvYml0cy9zdGRfZnVuY3Rpb24uaDo2MjIKLSAg ICAjMTcgMHgwMDAwNTU1NTVkMzU2YjdmIGluIGdkYjo6b2JzZXJ2ZXJzOjpvYnNlcnZhYmxlPG9i amZpbGUqPjo6bm90aWZ5ICh0aGlzPTB4NTU1NTY2NzI3MDIwIDxnZGI6Om9ic2VydmVyczo6bmV3 X29iamZpbGU+LCBhcmdzIzA9MHg2MTMwMDAwMGMwYzApIGF0IC9ob21lL3NpbWFyay9zcmMvYmlu dXRpbHMtZ2RiL2dkYi8uLi9nZGJzdXBwb3J0L29ic2VydmFibGUuaDoxMDYKLSAgICAjMTggMHgw MDAwNTU1NTVkYTNmMjI4IGluIHN5bWJvbF9maWxlX2FkZF93aXRoX2FkZHJzIChhYmZkPTB4NjEy MDAwMDFjY2MwLCBuYW1lPTB4NjE5MDAwMGQ5MDkwICIvdXNyL2xpYi9saWJwdGhyZWFkLnNvLjAi LCBhZGRfZmxhZ3M9Li4uLCBhZGRycz0weDdmZmZmZmZmYmMxMCwgZmxhZ3M9Li4uLCBwYXJlbnQ9 MHgwKSBhdCAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGIvc3ltZmlsZS5jOjExMzEK LSAgICAjMTkgMHgwMDAwNTU1NTVkYTNmNzYzIGluIHN5bWJvbF9maWxlX2FkZF9mcm9tX2JmZCAo YWJmZD0weDYxMjAwMDAxY2NjMCwgbmFtZT0weDYxOTAwMDBkOTA5MCAiL3Vzci9saWIvbGlicHRo cmVhZC5zby4wIiwgYWRkX2ZsYWdzPTxlcnJvciByZWFkaW5nIHZhcmlhYmxlOiBDYW5ub3QgYWNj ZXNzIG1lbW9yeSBhdCBhZGRyZXNzIDB4ZmZmZmZmZmZmZmZmZmZiMD4sIGFkZHJzPTB4N2ZmZmZm ZmZiYzEwLCBmbGFncz08ZXJyb3IgcmVhZGluZyB2YXJpYWJsZTogQ2Fubm90IGFjY2VzcyBtZW1v cnkgYXQgYWRkcmVzcyAweGZmZmZmZmZmZmZmZmZmYzA+LCBwYXJlbnQ9MHgwKSBhdCAvaG9tZS9z aW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGIvc3ltZmlsZS5jOjExNjcKLSAgICAjMjAgMHgwMDAw NTU1NTVkOTVmOWZhIGluIHNvbGliX3JlYWRfc3ltYm9scyAoc289MHg2MTkwMDAwZDhlODAsIGZs YWdzPS4uLikgYXQgL2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2RiL3NvbGliLmM6Njgx Ci0gICAgIzIxIDB4MDAwMDU1NTU1ZDk2MjMzZCBpbiBzb2xpYl9hZGQgKHBhdHRlcm49MHgwLCBm cm9tX3R0eT0wLCByZWFkc3ltcz0xKSBhdCAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9n ZGIvc29saWIuYzo5ODcKLSAgICAjMjIgMHgwMDAwNTU1NTVkOTM2NDZlIGluIGVuYWJsZV9icmVh ayAoaW5mbz0weDYwODAwMDAwOGYyMCwgZnJvbV90dHk9MCkgYXQgL2hvbWUvc2ltYXJrL3NyYy9i aW51dGlscy1nZGIvZ2RiL3NvbGliLXN2cjQuYzoyMjM4Ci0gICAgIzIzIDB4MDAwMDU1NTU1ZDkz Y2ZjMCBpbiBzdnI0X3NvbGliX2NyZWF0ZV9pbmZlcmlvcl9ob29rIChmcm9tX3R0eT0wKSBhdCAv aG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGIvc29saWItc3ZyNC5jOjMwNDkKLSAgICAj MjQgMHgwMDAwNTU1NTVkOTY2MTBkIGluIHNvbGliX2NyZWF0ZV9pbmZlcmlvcl9ob29rIChmcm9t X3R0eT0wKSBhdCAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGIvc29saWIuYzoxMTk1 Ci0gICAgIzI1IDB4MDAwMDU1NTU1Y2RlZTMxOCBpbiBwb3N0X2NyZWF0ZV9pbmZlcmlvciAoZnJv bV90dHk9MCkgYXQgL2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2RiL2luZmNtZC5jOjMx OAotICAgICMyNiAweDAwMDA1NTU1NWNlMDBlNmUgaW4gc2V0dXBfaW5mZXJpb3IgKGZyb21fdHR5 PTApIGF0IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9pbmZjbWQuYzoyNDM5Ci0g ICAgIzI3IDB4MDAwMDU1NTU1Y2U1OWMzNCBpbiBoYW5kbGVfb25lIChldmVudD0uLi4pIGF0IC9o b21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9pbmZydW4uYzo0ODg3Ci0gICAgIzI4IDB4 MDAwMDU1NTU1Y2U1Y2QwMCBpbiBzdG9wX2FsbF90aHJlYWRzICgpIGF0IC9ob21lL3NpbWFyay9z cmMvYmludXRpbHMtZ2RiL2dkYi9pbmZydW4uYzo1MDY0Ci0gICAgIzI5IDB4MDAwMDU1NTU1Y2U3 ZjBkYSBpbiBzdG9wX3dhaXRpbmcgKGVjcz0weDdmZmZmZmZmZDE3MCkgYXQgL2hvbWUvc2ltYXJr L3NyYy9iaW51dGlscy1nZGIvZ2RiL2luZnJ1bi5jOjgwMDYKLSAgICAjMzAgMHgwMDAwNTU1NTVj ZTY3ZjVjIGluIGhhbmRsZV9zaWduYWxfc3RvcCAoZWNzPTB4N2ZmZmZmZmZkMTcwKSBhdCAvaG9t ZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGIvaW5mcnVuLmM6NjA2MgotICAgICMzMSAweDAw MDA1NTU1NWNlNjM2NTMgaW4gaGFuZGxlX2luZmVyaW9yX2V2ZW50IChlY3M9MHg3ZmZmZmZmZmQx NzApIGF0IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9pbmZydW4uYzo1NzI3Ci0g ICAgIzMyIDB4MDAwMDU1NTU1Y2U0ZjI5NyBpbiBmZXRjaF9pbmZlcmlvcl9ldmVudCAoKSBhdCAv aG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGIvaW5mcnVuLmM6NDEwNQotICAgICMzMyAw eDAwMDA1NTU1NWNkYmUzYmYgaW4gaW5mZXJpb3JfZXZlbnRfaGFuZGxlciAoZXZlbnRfdHlwZT1J TkZfUkVHX0VWRU5UKSBhdCAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGIvaW5mLWxv b3AuYzo0MgotICAgICMzNCAweDAwMDA1NTU1NWQwMTgwNDcgaW4gaGFuZGxlX3RhcmdldF9ldmVu dCAoZXJyb3I9MCwgY2xpZW50X2RhdGE9MHgwKSBhdCAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxz LWdkYi9nZGIvbGludXgtbmF0LmM6NDA2MAotICAgICMzNSAweDAwMDA1NTU1NWU1ZWE3N2UgaW4g aGFuZGxlX2ZpbGVfZXZlbnQgKGZpbGVfcHRyPTB4NjA2MDAwMDhiMWMwLCByZWFkeV9tYXNrPTEp IGF0IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYnN1cHBvcnQvZXZlbnQtbG9vcC5j Yzo1NzUKLSAgICAjMzYgMHgwMDAwNTU1NTVlNWViMDljIGluIGdkYl93YWl0X2Zvcl9ldmVudCAo YmxvY2s9MCkgYXQgL2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2Ric3VwcG9ydC9ldmVu dC1sb29wLmNjOjcwMQotICAgICMzNyAweDAwMDA1NTU1NWU1ZThkMTkgaW4gZ2RiX2RvX29uZV9l dmVudCAoKSBhdCAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGJzdXBwb3J0L2V2ZW50 LWxvb3AuY2M6MjEyCi0gICAgIzM4IDB4MDAwMDU1NTU1ZGQ2ZTBkNCBpbiB3YWl0X3N5bmNfY29t bWFuZF9kb25lICgpIGF0IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi90b3AuYzo1 MjgKLSAgICAjMzkgMHgwMDAwNTU1NTVkZDZlMzcyIGluIG1heWJlX3dhaXRfc3luY19jb21tYW5k X2RvbmUgKHdhc19zeW5jPTApIGF0IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi90 b3AuYzo1NDUKLSAgICAjNDAgMHgwMDAwNTU1NTVkMGVjN2M4IGluIGNhdGNoX2NvbW1hbmRfZXJy b3JzIChjb21tYW5kPTB4NTU1NTVjZTAxYmI4IDxhdHRhY2hfY29tbWFuZChjaGFyIGNvbnN0Kiwg aW50KT4sIGFyZz0weDdmZmZmZmZmZTI4ZCAiMTQ3MjAxMCIsIGZyb21fdHR5PTEsIGRvX2JwX2Fj dGlvbnM9ZmFsc2UpIGF0IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9tYWluLmM6 NDUyCi0gICAgIzQxIDB4MDAwMDU1NTU1ZDBmMDNhZCBpbiBjYXB0dXJlZF9tYWluXzEgKGNvbnRl eHQ9MHg3ZmZmZmZmZmRkMTApIGF0IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9t YWluLmM6MTE0OQotICAgICM0MiAweDAwMDA1NTU1NWQwZjEyMzkgaW4gY2FwdHVyZWRfbWFpbiAo ZGF0YT0weDdmZmZmZmZmZGQxMCkgYXQgL2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2Ri L21haW4uYzoxMjMyCi0gICAgIzQzIDB4MDAwMDU1NTU1ZDBmMTMxNSBpbiBnZGJfbWFpbiAoYXJn cz0weDdmZmZmZmZmZGQxMCkgYXQgL2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2RiL21h aW4uYzoxMjU3Ci0gICAgIzQ0IDB4MDAwMDU1NTU1YmI3MGNmOSBpbiBtYWluIChhcmdjPTcsIGFy Z3Y9MHg3ZmZmZmZmZmRlODgpIGF0IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9n ZGIuYzozMgotCi1UaGUgZXhjZXB0aW9uIGlzIGNhdWdodCBoZXJlOgotCi0gICAgIzAgIF9fY3h4 YWJpdjE6Ol9fY3hhX2JlZ2luX2NhdGNoIChleGNfb2JqX2luPTB4NjBlMDAwMDA2MGUwKSBhdCAv YnVpbGQvZ2NjL3NyYy9nY2MvbGlic3RkYysrLXYzL2xpYnN1cGMrKy9laF9jYXRjaC5jYzo4NAot ICAgICMxICAweDAwMDA1NTU1NWQ5NWZkZWQgaW4gc29saWJfcmVhZF9zeW1ib2xzIChzbz0weDYx OTAwMDBkOGU4MCwgZmxhZ3M9Li4uKSBhdCAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9n ZGIvc29saWIuYzo2ODkKLSAgICAjMiAgMHgwMDAwNTU1NTVkOTYyMzNkIGluIHNvbGliX2FkZCAo cGF0dGVybj0weDAsIGZyb21fdHR5PTAsIHJlYWRzeW1zPTEpIGF0IC9ob21lL3NpbWFyay9zcmMv YmludXRpbHMtZ2RiL2dkYi9zb2xpYi5jOjk4NwotICAgICMzICAweDAwMDA1NTU1NWQ5MzY0NmUg aW4gZW5hYmxlX2JyZWFrIChpbmZvPTB4NjA4MDAwMDA4ZjIwLCBmcm9tX3R0eT0wKSBhdCAvaG9t ZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGIvc29saWItc3ZyNC5jOjIyMzgKLSAgICAjNCAg MHgwMDAwNTU1NTVkOTNjZmMwIGluIHN2cjRfc29saWJfY3JlYXRlX2luZmVyaW9yX2hvb2sgKGZy b21fdHR5PTApIGF0IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9zb2xpYi1zdnI0 LmM6MzA0OQotICAgICM1ICAweDAwMDA1NTU1NWQ5NjYxMGQgaW4gc29saWJfY3JlYXRlX2luZmVy aW9yX2hvb2sgKGZyb21fdHR5PTApIGF0IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dk Yi9zb2xpYi5jOjExOTUKLSAgICAjNiAgMHgwMDAwNTU1NTVjZGVlMzE4IGluIHBvc3RfY3JlYXRl X2luZmVyaW9yIChmcm9tX3R0eT0wKSBhdCAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9n ZGIvaW5mY21kLmM6MzE4Ci0gICAgIzcgIDB4MDAwMDU1NTU1Y2UwMGU2ZSBpbiBzZXR1cF9pbmZl cmlvciAoZnJvbV90dHk9MCkgYXQgL2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2RiL2lu ZmNtZC5jOjI0MzkKLSAgICAjOCAgMHgwMDAwNTU1NTVjZTU5YzM0IGluIGhhbmRsZV9vbmUgKGV2 ZW50PS4uLikgYXQgL2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2RiL2luZnJ1bi5jOjQ4 ODcKLSAgICAjOSAgMHgwMDAwNTU1NTVjZTVjZDAwIGluIHN0b3BfYWxsX3RocmVhZHMgKCkgYXQg L2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2RiL2luZnJ1bi5jOjUwNjQKLSAgICAjMTAg MHgwMDAwNTU1NTVjZTdmMGRhIGluIHN0b3Bfd2FpdGluZyAoZWNzPTB4N2ZmZmZmZmZkMTcwKSBh dCAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9nZGIvaW5mcnVuLmM6ODAwNgotICAgICMx MSAweDAwMDA1NTU1NWNlNjdmNWMgaW4gaGFuZGxlX3NpZ25hbF9zdG9wIChlY3M9MHg3ZmZmZmZm ZmQxNzApIGF0IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9pbmZydW4uYzo2MDYy Ci0gICAgIzEyIDB4MDAwMDU1NTU1Y2U2MzY1MyBpbiBoYW5kbGVfaW5mZXJpb3JfZXZlbnQgKGVj cz0weDdmZmZmZmZmZDE3MCkgYXQgL2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2RiL2lu ZnJ1bi5jOjU3MjcKLSAgICAjMTMgMHgwMDAwNTU1NTVjZTRmMjk3IGluIGZldGNoX2luZmVyaW9y X2V2ZW50ICgpIGF0IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dkYi9pbmZydW4uYzo0 MTA1Ci0gICAgIzE0IDB4MDAwMDU1NTU1Y2RiZTNiZiBpbiBpbmZlcmlvcl9ldmVudF9oYW5kbGVy IChldmVudF90eXBlPUlORl9SRUdfRVZFTlQpIGF0IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMt Z2RiL2dkYi9pbmYtbG9vcC5jOjQyCi0gICAgIzE1IDB4MDAwMDU1NTU1ZDAxODA0NyBpbiBoYW5k bGVfdGFyZ2V0X2V2ZW50IChlcnJvcj0wLCBjbGllbnRfZGF0YT0weDApIGF0IC9ob21lL3NpbWFy ay9zcmMvYmludXRpbHMtZ2RiL2dkYi9saW51eC1uYXQuYzo0MDYwCi0gICAgIzE2IDB4MDAwMDU1 NTU1ZTVlYTc3ZSBpbiBoYW5kbGVfZmlsZV9ldmVudCAoZmlsZV9wdHI9MHg2MDYwMDAwOGIxYzAs IHJlYWR5X21hc2s9MSkgYXQgL2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1nZGIvZ2Ric3VwcG9y dC9ldmVudC1sb29wLmNjOjU3NQotICAgICMxNyAweDAwMDA1NTU1NWU1ZWIwOWMgaW4gZ2RiX3dh aXRfZm9yX2V2ZW50IChibG9jaz0wKSBhdCAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0aWxzLWdkYi9n ZGJzdXBwb3J0L2V2ZW50LWxvb3AuY2M6NzAxCi0gICAgIzE4IDB4MDAwMDU1NTU1ZTVlOGQxOSBp biBnZGJfZG9fb25lX2V2ZW50ICgpIGF0IC9ob21lL3NpbWFyay9zcmMvYmludXRpbHMtZ2RiL2dk YnN1cHBvcnQvZXZlbnQtbG9vcC5jYzoyMTIKLSAgICAjMTkgMHgwMDAwNTU1NTVkZDZlMGQ0IGlu IHdhaXRfc3luY19jb21tYW5kX2RvbmUgKCkgYXQgL2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1n ZGIvZ2RiL3RvcC5jOjUyOAotICAgICMyMCAweDAwMDA1NTU1NWRkNmUzNzIgaW4gbWF5YmVfd2Fp dF9zeW5jX2NvbW1hbmRfZG9uZSAod2FzX3N5bmM9MCkgYXQgL2hvbWUvc2ltYXJrL3NyYy9iaW51 dGlscy1nZGIvZ2RiL3RvcC5jOjU0NQotICAgICMyMSAweDAwMDA1NTU1NWQwZWM3YzggaW4gY2F0 Y2hfY29tbWFuZF9lcnJvcnMgKGNvbW1hbmQ9MHg1NTU1NWNlMDFiYjggPGF0dGFjaF9jb21tYW5k KGNoYXIgY29uc3QqLCBpbnQpPiwgYXJnPTB4N2ZmZmZmZmZlMjhkICIxNDcyMDEwIiwgZnJvbV90 dHk9MSwgZG9fYnBfYWN0aW9ucz1mYWxzZSkgYXQgL2hvbWUvc2ltYXJrL3NyYy9iaW51dGlscy1n ZGIvZ2RiL21haW4uYzo0NTIKLSAgICAjMjIgMHgwMDAwNTU1NTVkMGYwM2FkIGluIGNhcHR1cmVk X21haW5fMSAoY29udGV4dD0weDdmZmZmZmZmZGQxMCkgYXQgL2hvbWUvc2ltYXJrL3NyYy9iaW51 dGlscy1nZGIvZ2RiL21haW4uYzoxMTQ5Ci0gICAgIzIzIDB4MDAwMDU1NTU1ZDBmMTIzOSBpbiBj YXB0dXJlZF9tYWluIChkYXRhPTB4N2ZmZmZmZmZkZDEwKSBhdCAvaG9tZS9zaW1hcmsvc3JjL2Jp bnV0aWxzLWdkYi9nZGIvbWFpbi5jOjEyMzIKLSAgICAjMjQgMHgwMDAwNTU1NTVkMGYxMzE1IGlu IGdkYl9tYWluIChhcmdzPTB4N2ZmZmZmZmZkZDEwKSBhdCAvaG9tZS9zaW1hcmsvc3JjL2JpbnV0 aWxzLWdkYi9nZGIvbWFpbi5jOjEyNTcKLSAgICAjMjUgMHgwMDAwNTU1NTViYjcwY2Y5IGluIG1h aW4gKGFyZ2M9NywgYXJndj0weDdmZmZmZmZmZGU4OCkgYXQgL2hvbWUvc2ltYXJrL3NyYy9iaW51 dGlscy1nZGIvZ2RiL2dkYi5jOjMyCi0KLUNhdGNoaW5nIHRoZSBleGNlcHRpb24gYXQgdGhpcyBw b2ludCBtZWFucyB0aGF0IHRoZSB0aHJlYWRfZGJfaW5mbwotb2JqZWN0IGZvciB0aGlzIGluZmVy aW9yIHdpbGwgYmUgbGVmdCBpbiBwbGFjZSwgZGVzcGl0ZSB0aGUgZmFpbHVyZSB0bwotbG9hZCBs aWJ0aHJlYWRfZGIuICBUaGlzIG1lYW5zIHRoYXQgdGhlcmUgd29uJ3QgYmUgZnVydGhlciBhdHRl bXB0cyBhdAotbG9hZGluZyBsaWJ0aHJlYWRfZGIsIGJlY2F1c2UgdGhyZWFkX2RiX2xvYWQgd2ls bCB0aGluayB0aGF0Ci1saWJ0aHJlYWRfZGIgaXMgYWxyZWFkeSBsb2FkZWQgZm9yIHRoaXMgaW5m ZXJpb3IgYW5kIHdpbGwgYWx3YXlzIGV4aXQKLWVhcmx5LiAgVG8gZml4IHRoaXMsIGFkZCBhIHRy eS9jYXRjaCBhcm91bmQgY2FsbGluZyB0cnlfdGhyZWFkX2RiX2xvYWRfMQotaW4gdHJ5X3RocmVh ZF9kYl9sb2FkLCBzdWNoIHRoYXQgaWYgc29tZSBleGNlcHRpb24gaXMgdGhyb3duIHdoaWxlCi10 cnlpbmcgdG8gbG9hZCBsaWJ0aHJlYWRfZGIsIHdlIHJlc2V0IC8gZGVsZXRlIHRoZSB0aHJlYWRf ZGJfaW5mbyBmb3IKLXRoYXQgaW5mZXJpb3IuICBUaGF0IGFsb25lIG1ha2VzIGF0dGFjaCB3b3Jr IGZpbmUgYWdhaW4sIGJlY2F1c2UKLWNoZWNrX2Zvcl90aHJlYWRfZGIgaXMgY2FsbGVkIGFnYWlu IGluIHRoZSB0aHJlYWRfZGJfaW5mZXJpb3JfY3JlYXRlZAotb2JzZXJ2ZXIgKHRoYXQgaGFwcGVu cyBhZnRlciB3ZSBsZWFybmVkIGFib3V0IGFsbCBzaGFyZWQgbGlicmFyaWVzIGFuZAotdGhlaXIg c3ltYm9scyksIGFuZCBsaWJ0aHJlYWRfZGIgaXMgc3VjY2Vzc2Z1bGx5IGxvYWRlZCB0aGVuLgot Ci1XaGVuIGF0dGFjaGluZywgSSB0aGluayB0aGF0IHRoZSBpbmZlcmlvcl9jcmVhdGVkIG9ic2Vy dmVyIGlzIGEgZ29vZAotcGxhY2UgdG8gdHJ5IHRvIGxvYWQgbGlidGhyZWFkX2RiOiBpdCBpcyBj YWxsZWQgb25jZSBldmVyeXRoaW5nIGhhcwotc3RhYmlsaXplZCwgd2hlbiB3ZSBsZWFybmVkIGFi b3V0IGFsbCBzaGFyZWQgbGlicmFyaWVzLgotCi1UaGUgb25seSBwcm9ibGVtIHRoZW4gaXMgdGhh dCB3aGVuIHdlIGZpcnN0IHRyeSAoYW5kIGZhaWwpIHRvIGxvYWQKLWxpYnRocmVhZF9kYiwgaW4g cmVhY3Rpb24gdG8gbGVhcm5pbmcgYWJvdXQgbGlicHRocmVhZCwgd2Ugc2hvdyB0aGlzCi13YXJu aW5nOgotCi0gICAgd2FybmluZzogVW5hYmxlIHRvIGZpbmQgbGlidGhyZWFkX2RiIG1hdGNoaW5n IGluZmVyaW9yJ3MgdGhyZWFkIGxpYnJhcnksIHRocmVhZCBkZWJ1Z2dpbmcgd2lsbCBub3QgYmUg YXZhaWxhYmxlLgotCi1UaGlzIGlzIG1pc2xlYWRpbmcsIGJlY2F1c2Ugd2UgZG8gc3VjY2VlZCBp biBsb2FkaW5nIGl0IGxhdGVyLiAgU28gd2hlbgotYXR0YWNoaW5nLCBJIHRoaW5rIHdlIHNob3Vs ZG4ndCB0cnkgdG8gbG9hZCBsaWJ0aHJlYWRfZGIgaW4gcmVhY3Rpb24gdG8KLXRoZSBuZXdfb2Jq ZmlsZSBldmVudHMsIHdlIHNob3VsZCB3YWl0IHVudGlsIHdlIGhhdmUgbGVhcm5lZCBhYm91dCBh bGwKLXNoYXJlZCBsaWJyYXJpZXMgKHVzaW5nIHRoZSBpbmZlcmlvcl9jcmVhdGVkIG9ic2VydmFi bGUpLiAgVG8gZG8gc28sIGFkZAotYW4gYGluX2luaXRpYWxfbGlicmFyeV9zY2FuYCBmbGFnIHRv IHN0cnVjdCBpbmZlcmlvci4gIFRoaXMgZmxhZyBpcyB1c2VkCi10byBwb3N0cG9uZSBsb2FkaW5n IGxpYnRocmVhZF9kYiBpZiB3ZSBhcmUgYXR0YWNoaW5nIG9yIGhhbmRsaW5nIGEgZm9yawotY2hp bGQuCi0KLVdoZW4gZGVidWdnaW5nIHJlbW90ZWx5IHdpdGggR0RCc2VydmVyLCB0aGUgc2FtZSBw cm9ibGVtIGhhcHBlbnMsIGV4Y2VwdAotdGhhdCB0aGUgcVN5bWJvbCBtZWNoYW5pc20gKGFsbG93 aW5nIHRoZSByZW1vdGUgc2lkZSB0byBhc2sgR0RCIGZvcgotc3ltYm9scyB2YWx1ZXMpIGlzIGlu dm9sdmVkLiAgVGhlIGZpeCB0aGVyZSBpcyB0aGUgc2FtZSBpZGVhLCB3ZSBtYWtlCi1HREIgd2Fp dCB1bnRpbCBhbGwgc2hhcmVkIGxpYnJhcmllcyBhbmQgdGhlaXIgc3ltYm9scyBhcmUga25vd24g YmVmb3JlCi1zZW5kaW5nIG91dCBhIHFTeW1ib2wgcGFja2V0LiAgVGhpcyB3YXksIHdlIG5ldmVy IHByZXNlbnQgdGhlIHJlbW90ZQotc2lkZSBhIHN0YXRlIHdoZXJlIGxpYnB0aHJlYWQuc28ncyBz eW1ib2xzIGFyZSBrbm93biBidXQgbGQtbGludXgncwotc3ltYm9scyBhcmVuJ3QuCi0KLWdkYi9D aGFuZ2VMb2c6Ci0KLQkqIGluZmVyaW9yLmggKGNsYXNzIGluZmVyaW9yKSA8aW5faW5pdGlhbF9s aWJyYXJ5X3NjYW4+OiBOZXcuCi0JKiBpbmZjbWQuYyAocG9zdF9jcmVhdGVfaW5mZXJpb3IpOiBT ZXQgaW5faW5pdGlhbF9saWJyYXJ5X3NjYW4uCi0JKiBpbmZydW4uYyAoZm9sbG93X2ZvcmtfaW5m ZXJpb3IpOiBMaWtld2lzZS4KLQkqIGxpbnV4LXRocmVhZC1kYi5jICh0cnlfdGhyZWFkX2RiX2xv YWQpOiBDYXRjaCBleGNlcHRpb24gdGhyb3duCi0JYnkgdHJ5X3RocmVhZF9kYl9sb2FkXzEKLQko dGhyZWFkX2RiX2xvYWQpOiBSZXR1cm4gZWFybHkgaWYgaW5faW5pdGlhbF9saWJyYXJ5X3NjYW4g aXMKLQlzZXQuCi0JKiByZW1vdGUuYyAocmVtb3RlX25ld19vYmpmaWxlKTogUmV0dXJuIGVhcmx5 IGlmCi0JaW5faW5pdGlhbF9saWJyYXJ5X3NjYW4gaXMgc2V0LgotCi1DaGFuZ2UtSWQ6IEk3YTI3 OTgzNmNmYmIyYjM2MmI0ZmRlMTFiMTk2YjRhYWI4MmY1ZWZiCi0KLWRpZmYgLS1naXQgYS9nZGIv aW5mY21kLmMgYi9nZGIvaW5mY21kLmMKLS0tLSBhL2dkYi9pbmZjbWQuYwotKysrIGIvZ2RiL2lu ZmNtZC5jCi1AQCAtMzEzLDYgKzMxMywxMCBAQCBwb3N0X2NyZWF0ZV9pbmZlcmlvciAoc3RydWN0 IHRhcmdldF9vcHMgKnRhcmdldCwgaW50IGZyb21fdHR5KQotICAgICAgIGNvbnN0IHVuc2lnbmVk IHNvbGliX2FkZF9nZW5lcmF0aW9uCi0gCT0gY3VycmVudF9wcm9ncmFtX3NwYWNlLT5zb2xpYl9h ZGRfZ2VuZXJhdGlvbjsKLSAKLSsgICAgICBzY29wZWRfcmVzdG9yZSByZXN0b3JlX2luX2luaXRp YWxfbGlicmFyeV9zY2FuCi0rCT0gbWFrZV9zY29wZWRfcmVzdG9yZSAoJmN1cnJlbnRfaW5mZXJp b3IgKCktPmluX2luaXRpYWxfbGlicmFyeV9zY2FuLAotKwkJCSAgICAgICB0cnVlKTsKLSsKLSAg ICAgICAvKiBDcmVhdGUgdGhlIGhvb2tzIHRvIGhhbmRsZSBzaGFyZWQgbGlicmFyeSBsb2FkIGFu ZCB1bmxvYWQKLSAJIGV2ZW50cy4gICovCi0gICAgICAgc29saWJfY3JlYXRlX2luZmVyaW9yX2hv b2sgKGZyb21fdHR5KTsKLWRpZmYgLS1naXQgYS9nZGIvaW5mZXJpb3IuaCBiL2dkYi9pbmZlcmlv ci5oCi0tLS0gYS9nZGIvaW5mZXJpb3IuaAotKysrIGIvZ2RiL2luZmVyaW9yLmgKLUBAIC01MTEs NiArNTExLDEwIEBAIGNsYXNzIGluZmVyaW9yIDogcHVibGljIHJlZmNvdW50ZWRfb2JqZWN0Ci0g ICAgICBhcmNoaXRlY3R1cmUvZGVzY3JpcHRpb24uICAqLwotICAgYm9vbCBuZWVkc19zZXR1cCA9 IGZhbHNlOwotIAotKyAgLyogVHJ1ZSB3aGVuIHdlIGFyZSByZWFkaW5nIHRoZSBsaWJyYXJ5IGxp c3Qgb2YgdGhlIGluZmVyaW9yIGR1cmluZyBhbgotKyAgICAgYXR0YWNoIG9yIGhhbmRsaW5nIGEg Zm9yayBjaGlsZC4gICovCi0rICBib29sIGluX2luaXRpYWxfbGlicmFyeV9zY2FuID0gZmFsc2U7 Ci0rCi0gICAvKiBQcml2YXRlIGRhdGEgdXNlZCBieSB0aGUgdGFyZ2V0IHZlY3RvciBpbXBsZW1l bnRhdGlvbi4gICovCi0gICBzdGQ6OnVuaXF1ZV9wdHI8cHJpdmF0ZV9pbmZlcmlvcj4gcHJpdjsK LSAKLWRpZmYgLS1naXQgYS9nZGIvaW5mcnVuLmMgYi9nZGIvaW5mcnVuLmMKLS0tLSBhL2dkYi9p bmZydW4uYwotKysrIGIvZ2RiL2luZnJ1bi5jCi1AQCAtNTQwLDYgKzU0MCw5IEBAIGhvbGRpbmcg dGhlIGNoaWxkIHN0b3BwZWQuICBUcnkgXCJzZXQgZGV0YWNoLW9uLWZvcmtcIiBvciBcCi0gCQkg YnJlYWtwb2ludC4gIElmIGEgImNsb25lZC1WTSIgZXZlbnQgd2FzIHByb3BhZ2F0ZWQKLSAJCSBi ZXR0ZXIgdGhyb3VnaG91dCB0aGUgY29yZSwgdGhpcyB3b3VsZG4ndCBiZQotIAkJIHJlcXVpcmVk LiAgKi8KLSsJICAgICAgc2NvcGVkX3Jlc3RvcmUgcmVzdG9yZV9pbl9pbml0aWFsX2xpYnJhcnlf c2NhbgotKwkJPSBtYWtlX3Njb3BlZF9yZXN0b3JlICgmY2hpbGRfaW5mLT5pbl9pbml0aWFsX2xp YnJhcnlfc2NhbiwKLSsJCQkJICAgICAgIHRydWUpOwotIAkgICAgICBzb2xpYl9jcmVhdGVfaW5m ZXJpb3JfaG9vayAoMCk7Ci0gCSAgICB9Ci0gCX0KLUBAIC02NzUsNiArNjc4LDggQEAgaG9sZGlu ZyB0aGUgY2hpbGQgc3RvcHBlZC4gIFRyeSBcInNldCBkZXRhY2gtb24tZm9ya1wiIG9yIFwKLSAJ ICAgICBzaGFyZWQgbGlicmFyaWVzLCBhbmQgaW5zdGFsbCB0aGUgc29saWIgZXZlbnQgYnJlYWtw b2ludC4KLSAJICAgICBJZiBhICJjbG9uZWQtVk0iIGV2ZW50IHdhcyBwcm9wYWdhdGVkIGJldHRl ciB0aHJvdWdob3V0Ci0gCSAgICAgdGhlIGNvcmUsIHRoaXMgd291bGRuJ3QgYmUgcmVxdWlyZWQu ICAqLwotKwkgIHNjb3BlZF9yZXN0b3JlIHJlc3RvcmVfaW5faW5pdGlhbF9saWJyYXJ5X3NjYW4K LSsJICAgID0gbWFrZV9zY29wZWRfcmVzdG9yZSAoJmNoaWxkX2luZi0+aW5faW5pdGlhbF9saWJy YXJ5X3NjYW4sIHRydWUpOwotIAkgIHNvbGliX2NyZWF0ZV9pbmZlcmlvcl9ob29rICgwKTsKLSAJ fQotIAotZGlmZiAtLWdpdCBhL2dkYi9saW51eC10aHJlYWQtZGIuYyBiL2dkYi9saW51eC10aHJl YWQtZGIuYwotLS0tIGEvZ2RiL2xpbnV4LXRocmVhZC1kYi5jCi0rKysgYi9nZGIvbGludXgtdGhy ZWFkLWRiLmMKLUBAIC0xMDEyLDggKzEwMTIsMTcgQEAgdHJ5X3RocmVhZF9kYl9sb2FkIChjb25z dCBjaGFyICpsaWJyYXJ5LCBib29sIGNoZWNrX2F1dG9fbG9hZF9zYWZlKQotICAgaWYgKHN0cmNo ciAobGlicmFyeSwgJy8nKSAhPSBOVUxMKQotICAgICBpbmZvLT5maWxlbmFtZSA9IGdkYl9yZWFs cGF0aCAobGlicmFyeSkucmVsZWFzZSAoKTsKLSAKLS0gIGlmICh0cnlfdGhyZWFkX2RiX2xvYWRf MSAoaW5mbykpCi0tICAgIHJldHVybiB0cnVlOwotKyAgdHJ5Ci0rICAgIHsKLSsgICAgICBpZiAo dHJ5X3RocmVhZF9kYl9sb2FkXzEgKGluZm8pKQotKwlyZXR1cm4gdHJ1ZTsKLSsgICAgfQotKyAg Y2F0Y2ggKGNvbnN0IGdkYl9leGNlcHRpb25fZXJyb3IgJmV4Y2VwdCkKLSsgICAgewotKyAgICAg IGlmIChsaWJ0aHJlYWRfZGJfZGVidWcpCi0rCWV4Y2VwdGlvbl9mcHJpbnRmIChnZGJfc3RkbG9n LCBleGNlcHQsCi0rCQkJICAgIldhcm5pbmc6IFdoaWxlIHRyeWluZyB0byBsb2FkIGxpYnRocmVh ZF9kYjogIik7Ci0rICAgIH0KLSAKLSAgIC8qIFRoaXMgbGlicmFyeSAicmVmdXNlZCIgdG8gd29y ayBvbiBjdXJyZW50IGluZmVyaW9yLiAgKi8KLSAgIGRlbGV0ZV90aHJlYWRfZGJfaW5mbyAoY3Vy cmVudF9pbmZlcmlvciAoKS0+cHJvY2Vzc190YXJnZXQgKCksCi1AQCAtMTE4NCwxMCArMTE5Mywx NSBAQCBoYXNfbGlicHRocmVhZCAodm9pZCkKLSBzdGF0aWMgYm9vbAotIHRocmVhZF9kYl9sb2Fk ICh2b2lkKQotIHsKLS0gIHN0cnVjdCB0aHJlYWRfZGJfaW5mbyAqaW5mbzsKLSsgIGluZmVyaW9y ICppbmYgPSBjdXJyZW50X2luZmVyaW9yICgpOwotIAotLSAgaW5mbyA9IGdldF90aHJlYWRfZGJf aW5mbyAoY3VycmVudF9pbmZlcmlvciAoKS0+cHJvY2Vzc190YXJnZXQgKCksCi0tCQkJICAgICBp bmZlcmlvcl9wdGlkLnBpZCAoKSk7Ci0rICAvKiBXaGVuIGF0dGFjaGluZyAvIGhhbmRsaW5nIGZv cmsgY2hpbGQsIGRvbid0IHRyeSBsb2FkaW5nIGxpYnRocmVhZF9kYgotKyAgICAgdW50aWwgd2Ug a25vdyBhYm91dCBhbGwgc2hhcmVkIGxpYnJhcmllcy4gICovCi0rICBpZiAoaW5mLT5pbl9pbml0 aWFsX2xpYnJhcnlfc2NhbikKLSsgICAgcmV0dXJuIGZhbHNlOwotKwotKyAgdGhyZWFkX2RiX2lu Zm8gKmluZm8gPSBnZXRfdGhyZWFkX2RiX2luZm8gKGluZi0+cHJvY2Vzc190YXJnZXQgKCksCi0r CQkJCQkgICAgIGluZmVyaW9yX3B0aWQucGlkICgpKTsKLSAKLSAgIGlmIChpbmZvICE9IE5VTEwp Ci0gICAgIHJldHVybiB0cnVlOwotZGlmZiAtLWdpdCBhL2dkYi9yZW1vdGUuYyBiL2dkYi9yZW1v dGUuYwotLS0tIGEvZ2RiL3JlbW90ZS5jCi0rKysgYi9nZGIvcmVtb3RlLmMKLUBAIC0xNDI5OSw4 ICsxNDI5OSwyNiBAQCByZW1vdGVfbmV3X29iamZpbGUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxl KQotIHsKLSAgIHJlbW90ZV90YXJnZXQgKnJlbW90ZSA9IGdldF9jdXJyZW50X3JlbW90ZV90YXJn ZXQgKCk7Ci0gCi0tICBpZiAocmVtb3RlICE9IE5VTEwpCQkJLyogSGF2ZSBhIHJlbW90ZSBjb25u ZWN0aW9uLiAgKi8KLS0gICAgcmVtb3RlLT5yZW1vdGVfY2hlY2tfc3ltYm9scyAoKTsKLSsgIC8q IEZpcnN0LCBjaGVjayB3aGV0aGVyIHRoZSBjdXJyZW50IGluZmVyaW9yJ3MgcHJvY2VzcyB0YXJn ZXQgaXMgYSByZW1vdGUKLSsgICAgIHRhcmdldC4gICovCi0rICBpZiAocmVtb3RlID09IG51bGxw dHIpCi0rICAgIHJldHVybjsKLSsKLSsgIC8qIFdoZW4gd2UgYXJlIGF0dGFjaGluZyBvciBoYW5k bGluZyBhIGZvcmsgY2hpbGQgYW5kIHRoZSBzaGFyZWQgbGlicmFyeQotKyAgICAgc3Vic3lzdGVt IHJlYWRzIHRoZSBsaXN0IG9mIGxvYWRlZCBsaWJyYXJpZXMsIHdlIHJlY2VpdmUgbmV3IG9iamZp bGUKLSsgICAgIGV2ZW50cyBpbiBiZXR3ZWVuIGVhY2ggZm91bmQgbGlicmFyeS4gIFRoZSBsaWJy YXJpZXMgYXJlIHJlYWQgaW4gYW4KLSsgICAgIHVuZGVmaW5lZCBvcmRlciwgc28gaWYgd2UgZ2F2 ZSB0aGUgcmVtb3RlIHNpZGUgYSBjaGFuY2UgdG8gbG9vayB1cAotKyAgICAgc3ltYm9scyBiZXR3 ZWVuIGVhY2ggb2JqZmlsZSwgd2UgbWlnaHQgZ2l2ZSBpdCBhbiBpbmNvbnNpc3RlbnQgcGljdHVy ZQotKyAgICAgb2YgdGhlIGluZmVyaW9yLiAgSXQgY291bGQgYXBwZWFyIHRoYXQgYSBsaWJyYXJ5 IEEgYXBwZWFycyBsb2FkZWQgYnV0Ci0rICAgICBhIGxpYnJhcnkgQiBkb2VzIG5vdCwgZXZlbiB0 aG91Z2ggbGlicmFyeSBBIHJlcXVpcmVzIGxpYnJhcnkgQi4gIFRoYXQKLSsgICAgIHdvdWxkIHBy ZXNlbnQgYSBzdGF0ZSB0aGF0IGNvdWxkbid0IG5vcm1hbGx5IGV4aXN0IGluIHRoZSBpbmZlcmlv ci4KLSsKLSsgICAgIFNvLCBza2lwIHRoZXNlIGV2ZW50cywgd2UnbGwgZ2l2ZSB0aGUgcmVtb3Rl IGEgY2hhbmNlIHRvIGxvb2sgdXAgc3ltYm9scwotKyAgICAgb25jZSBhbGwgdGhlIGxvYWRlZCBs aWJyYXJpZXMgYW5kIHRoZWlyIHN5bWJvbHMgYXJlIGtub3duIHRvIEdEQi4gICovCi0rICAgIGlm IChjdXJyZW50X2luZmVyaW9yICgpLT5pbl9pbml0aWFsX2xpYnJhcnlfc2NhbikKLSsgICAgICBy ZXR1cm47Ci0rCi0rICByZW1vdGUtPnJlbW90ZV9jaGVja19zeW1ib2xzICgpOwotIH0KLSAKLSAv KiBQdWxsIGFsbCB0aGUgdHJhY2Vwb2ludHMgZGVmaW5lZCBvbiB0aGUgdGFyZ2V0IGFuZCBjcmVh dGUgbG9jYWwKCmRpZmYgLS1naXQgYS9nZGItcmhiejE5NzEwOTYtZ2xpYmMyLjM0LTIucGF0Y2gg Yi9nZGItcmhiejE5NzEwOTYtZ2xpYmMyLjM0LTIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IGI5ZWRhYjkuLjAwMDAwMDAKLS0tIGEvZ2RiLXJoYnoxOTcxMDk2LWdsaWJjMi4z NC0yLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTQ5ICswLDAgQEAKLUZyb20gRkVET1JBX1BB VENIRVMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLZXZpbiBCdWV0dG5lciA8a2V2 aW5iQHJlZGhhdC5jb20+Ci1EYXRlOiBNb24sIDE0IEp1biAyMDIxIDE5OjIwOjA3IC0wNzAwCi1T dWJqZWN0OiBnZGItcmhiejE5NzEwOTYtZ2xpYmMyLjM0LTIucGF0Y2gKLQotOzsgQmFja3BvcnQg cGF0Y2ggZml4aW5nIGdkYiBvbiBnbGliYy0yLjM0IG1hY2hpbmVzIHcvIHJlZ2FyZCB0bwotOzsg bGlidGhyZWFkX2RiIGluaXRpYWxpemF0aW9uLgotCi1saWJ0aHJlYWRfZGIgaW5pdGlhbGl6YXRp b24gY2hhbmdlcyByZWxhdGVkIHRvIHVwY29taW5nIGdsaWJjLTIuMzQKLQotVGhpcyBjb21taXQg bWFrZXMgc29tZSBhZGp1c3RtZW50cyB0byBhY2NvbW9kYXRlIHRoZSB1cGNvbWluZwotZ2xpYmMt Mi4zNCByZWxlYXNlLiAgQmVnaW5uaW5nIHdpdGggZ2xpYmMtMi4zNCwgZnVuY3Rpb25hbGl0eSBm b3JtZXJseQotY29udGFpbmVkIGluIGxpYnB0aHJlYWQgaGFzIGJlZW4gbW92ZWQgdG8gbGliYy4g IEZvciB0aGUgdGltZSBiZWluZywKLWxpYnB0aHJlYWQuc28gc3RpbGwgZXhpc3RzIGluIHRoZSBm aWxlIHN5c3RlbSwgYnV0IGl0IHdvbid0IHNob3cgdXAgaW4KLWxkZCBvdXRwdXQgYW5kIHRoZXJl Zm9yZSB3b24ndCBiZSBhYmxlIHRvIHRyaWdnZXIgaW5pdGlhbGl6YXRpb24gb2YKLWxpYnRocmVh ZF9kYiByZWxhdGVkIGNvZGUuICBFLmcuLi4KLQotRmVkb3JhIDM0IC8gZ2xpYmMtMi4zMy45MDAw OgotCi1ba2V2QGYzNC0yIGdkYl0kIGxkZCB0ZXN0c3VpdGUvb3V0cHV0cy9nZGIudGhyZWFkcy90 bHMvdGxzCi0JbGludXgtdmRzby5zby4xICgweDAwMDA3ZmZjZjk0ZmEwMDApCi0JbGlic3RkYysr LnNvLjYgPT4gL2xpYjY0L2xpYnN0ZGMrKy5zby42ICgweDAwMDA3ZmYwYmE5YWYwMDApCi0JbGli bS5zby42ID0+IC9saWI2NC9saWJtLnNvLjYgKDB4MDAwMDdmZjBiYThkNDAwMCkKLQlsaWJnY2Nf cy5zby4xID0+IC9saWI2NC9saWJnY2Nfcy5zby4xICgweDAwMDA3ZmYwYmE4YjkwMDApCi0JbGli Yy5zby42ID0+IC9saWI2NC9saWJjLnNvLjYgKDB4MDAwMDdmZjBiYTZjNjAwMCkKLQkvbGliNjQv bGQtbGludXgteDg2LTY0LnNvLjIgKDB4MDAwMDdmZjBiYWJmMDAwMCkKLQotRmVkb3JhIDM0IC8g Z2xpYmMtMi4zMzoKLQotW2tldkBmMzQtMSBnZGJdJCBsZGQgdGVzdHN1aXRlL291dHB1dHMvZ2Ri LnRocmVhZHMvdGxzL3RscwotCWxpbnV4LXZkc28uc28uMSAoMHgwMDAwN2ZmZjMyZGMwMDAwKQot CWxpYnB0aHJlYWQuc28uMCA9PiAvbGliNjQvbGlicHRocmVhZC5zby4wICgweDAwMDA3ZjgxNWY2 ZGUwMDApCi0JbGlic3RkYysrLnNvLjYgPT4gL2xpYjY0L2xpYnN0ZGMrKy5zby42ICgweDAwMDA3 ZjgxNWY0YmYwMDApCi0JbGlibS5zby42ID0+IC9saWI2NC9saWJtLnNvLjYgKDB4MDAwMDdmODE1 ZjM3YjAwMCkKLQlsaWJnY2Nfcy5zby4xID0+IC9saWI2NC9saWJnY2Nfcy5zby4xICgweDAwMDA3 ZjgxNWYzNjAwMDApCi0JbGliYy5zby42ID0+IC9saWI2NC9saWJjLnNvLjYgKDB4MDAwMDdmODE1 ZjE5MTAwMCkKLQkvbGliNjQvbGQtbGludXgteDg2LTY0LnNvLjIgKDB4MDAwMDdmODE1ZjcyMTAw MCkKLQotTm90ZSB0aGF0IGxpYnB0aHJlYWQgaXMgbWlzc2luZyBmcm9tIHRoZSBsZGQgb3V0cHV0 IGZvciB0aGUKLWdsaWJjLTIuMzMuOTAwMCBtYWNoaW5lLgotCi1UaGlzIG1lYW5zIHRoYXQgKHVu bGVzcyB3ZSBoYXBwZW4gdG8gdGhpbmsgb2Ygc29tZSBlbnRpcmVseSBkaWZmZXJlbnQKLW1lY2hh bmlzbSksIHdlJ2xsIG5vdyBuZWVkIHRvIHBvdGVudGlhbGx5IG1hdGNoICJsaWJjIiBpbiBhZGRp dGlvbiB0bwotImxpYnB0aHJlYWQiIGFzIGxpYnJhcmllcyB3aGljaCBtaWdodCBiZSB0aHJlYWQg bGlicmFyaWVzLiAgVGhpcwotYWNjb3VudHMgZm9yIHRoZSBjaGFuZ2UgbWFkZSBpbiBzb2xpYi5j LiAgTm90ZSB0aGF0IHRoZSBuZXcgY29kZQotYXR0ZW1wdHMgdG8gbWF0Y2ggIi9saWJjLiIgdmlh IHN0cnN0cigpLiAgVGhhdCB0cmFpbGluZyBkb3QgKCIuIikKLWF2b2lkcyBpbmFkdmVydGVudGx5 IG1hdGNoaW5nIGxpYnJhcmllcyBzdWNoIGFzIGxpYmNyeXB0IChhbmQKLWFsbCB0aGUgb3RoZXIg bWFueSBsaWJyYXJpZXMgd2hpY2ggYmVnaW4gd2l0aCAibGliYyIpLgotCi1UbyBhdm9pZCBhdHRl bXB0cyB0byBsb2FkIGxpYnRocmVhZF9kYiB3aGVuIGVuY291bnRlcmluZyBvbGRlcgotdmVyc2lv bnMgb2YgbGliYywgd2Ugbm93IGF0dGVtcHQgdG8gZmluZCAicHRocmVhZF9jcmVhdGUiICh3aGlj aCBpcyBhCi1zeW1ib2wgdGhhdCB3ZSdkIGV4cGVjdCB0byBiZSBpbiBhbnkgcHRocmVhZCBsaWJy YXJ5KSBpbiB0aGUKLWFzc29jaWF0ZWQgb2JqZmlsZS4gIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBj aGFuZ2VzIGluCi1saW51eC10aHJlYWQtZGIuYy4KLQotSSB0aGluayB0aGF0IG90aGVyIHNtYWxs IGFkanVzdG1lbnRzIHdpbGwgbmVlZCB0byBiZSBtYWRlIGVsc2V3aGVyZQotdG9vLiAgSSd2ZSBi ZWVuIHdvcmtpbmcgdGhyb3VnaCByZWdyZXNzaW9ucyBvbiBteSBnbGliYy0yLjMzLjkwMDAKLW1h Y2hpbmU7IEkndmUgZml4ZWQgc29tZSBmYWlybHkgIm9idmlvdXMiIGNoYW5nZXMgaW4gdGhlIHRl c3RzdWl0ZQotKHdoaWNoIGFyZSBpbiBvdGhlciBjb21taXRzKS4gIEZvciB0aGUgcmVzdCwgaXQn cyBub3QgeWV0IGNsZWFyIHRvIG1lCi13aGV0aGVyIHRoZSBoYW5kZnVsIG9mIHJlbWFpbmluZyBm YWlsdXJlcyByZXByZXNlbnQgYSBwcm9ibGVtIGluIGdsaWJjCi1vciBnZGIuICBJJ20gc3RpbGwg aW52ZXN0aWdhdGluZywgaG93ZXZlciwgSSdsbCBub3RlIHRoYXQgdGhlc2UgYXJlCi1wcm9ibGVt cyB0aGF0IEkgb25seSBzZWUgb24gbXkgZ2xpYmMtMi4zMy45MDAwIG1hY2hpbmUuCi0KLWdkYi9D aGFuZ2VMb2c6Ci0KLQkqIHNvbGliLmMgKGxpYnB0aHJlYWRfbmFtZV9wKTogTWF0Y2ggImxpYmMi IGluIGFkZGl0aW9uCi0JdG8gImxpYnB0aHJlYWQiLgotCSogbGludXgtdGhyZWFkLWRiLmMgKGxp YnB0aHJlYWRfb2JqZmlsZV9wKTogTmV3IGZ1bmN0aW9uLgotCShsaWJwdGhyZWFkX25hbWVfcCk6 IEFkanVzdCBwcmVleGlzdGluZyBjYWxsZXJzIHRvIHVzZQotCWxpYnB0aHJlYWRfb2JqZmlsZV9w KCkuCi0KLWRpZmYgLS1naXQgYS9nZGIvbGludXgtdGhyZWFkLWRiLmMgYi9nZGIvbGludXgtdGhy ZWFkLWRiLmMKLS0tLSBhL2dkYi9saW51eC10aHJlYWQtZGIuYwotKysrIGIvZ2RiL2xpbnV4LXRo cmVhZC1kYi5jCi1AQCAtODAwLDYgKzgwMCwyNCBAQCBjaGVja190aHJlYWRfZGIgKHN0cnVjdCB0 aHJlYWRfZGJfaW5mbyAqaW5mbywgYm9vbCBsb2dfcHJvZ3Jlc3MpCi0gICByZXR1cm4gdGVzdF9w YXNzZWQ7Ci0gfQotIAotKy8qIFByZWRpY2F0ZSB3aGljaCB0ZXN0cyB3aGV0aGVyIG9iamZpbGUg T0JKIHJlZmVycyB0byB0aGUgbGlicmFyeQotKyAgIGNvbnRhaW5pbmcgcHRocmVhZCByZWxhdGVk IHN5bWJvbHMuICBIaXN0b3JpY2FsbHksIHRoaXMgbGlicmFyeSBoYXMKLSsgICBiZWVuIG5hbWVk IGluIHN1Y2ggYSB3YXkgdGhhdCBsb29raW5nIGZvciAibGlicHRocmVhZCIgaW4gdGhlIG5hbWUK LSsgICB3YXMgc3VmZmljaWVudCB0byBpZGVudGlmeSBpdC4gIEFzIG9mIGdsaWJjLTIuMzQsIHRo ZSBDIGxpYnJhcnkKLSsgICAobGliYykgY29udGFpbnMgdGhlIHRocmVhZCBsaWJyYXJ5IHN5bWJv bHMuICBUaGVyZWZvcmUgd2UgY2hlY2sKLSsgICB0aGF0IHRoZSBuYW1lIG1hdGNoZXMgYSBwb3Nz aWJsZSB0aHJlYWQgbGlicmFyeSwgYnV0IHdlIGFsc28gY2hlY2sKLSsgICB0aGF0IGl0IGNvbnRh aW5zIGF0IGxlYXN0IG9uZSBvZiB0aGUgc3ltYm9scyAocHRocmVhZF9jcmVhdGUpIHRoYXQKLSsg ICB3ZSdkIGV4cGVjdCB0byBmaW5kIGluIHRoZSB0aHJlYWQgbGlicmFyeS4gICovCi0rCi0rc3Rh dGljIGJvb2wKLStsaWJwdGhyZWFkX29iamZpbGVfcCAob2JqZmlsZSAqb2JqKQotK3sKLSsgIHJl dHVybiAobGlicHRocmVhZF9uYW1lX3AgKG9iamZpbGVfbmFtZSAob2JqKSkKLSsgICAgICAgICAg JiYgbG9va3VwX21pbmltYWxfc3ltYm9sICgicHRocmVhZF9jcmVhdGUiLAotKwkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTlVMTCwKLSsJCQkJICAgIG9iaikubWluc3ltICE9IE5VTEwpOwot K30KLSsKLSAvKiBBdHRlbXB0IHRvIGluaXRpYWxpemUgZGxvcGVuKCllZCBsaWJ0aHJlYWRfZGIs IGRlc2NyaWJlZCBieSBJTkZPLgotICAgIFJldHVybiB0cnVlIG9uIHN1Y2Nlc3MuCi0gICAgRmFp bHVyZSBjb3VsZCBoYXBwZW4gaWYgbGlidGhyZWFkX2RiIGRvZXMgbm90IGhhdmUgc3ltYm9scyB3 ZSBleHBlY3QsCi1AQCAtMTA3Miw3ICsxMDkwLDcgQEAgdHJ5X3RocmVhZF9kYl9sb2FkX2Zyb21f cGRpciAoY29uc3QgY2hhciAqc3ViZGlyKQotICAgICByZXR1cm4gZmFsc2U7Ci0gCi0gICBmb3Ig KG9iamZpbGUgKm9iaiA6IGN1cnJlbnRfcHJvZ3JhbV9zcGFjZS0+b2JqZmlsZXMgKCkpCi0tICAg IGlmIChsaWJwdGhyZWFkX25hbWVfcCAob2JqZmlsZV9uYW1lIChvYmopKSkKLSsgICAgaWYgKGxp YnB0aHJlYWRfb2JqZmlsZV9wIChvYmopKQotICAgICAgIHsKLSAJaWYgKHRyeV90aHJlYWRfZGJf bG9hZF9mcm9tX3BkaXJfMSAob2JqLCBzdWJkaXIpKQotIAkgIHJldHVybiB0cnVlOwotQEAgLTEx ODEsNyArMTE5OSw3IEBAIHN0YXRpYyBib29sCi0gaGFzX2xpYnB0aHJlYWQgKHZvaWQpCi0gewot ICAgZm9yIChvYmpmaWxlICpvYmogOiBjdXJyZW50X3Byb2dyYW1fc3BhY2UtPm9iamZpbGVzICgp KQotLSAgICBpZiAobGlicHRocmVhZF9uYW1lX3AgKG9iamZpbGVfbmFtZSAob2JqKSkpCi0rICAg IGlmIChsaWJwdGhyZWFkX29iamZpbGVfcCAob2JqKSkKLSAgICAgICByZXR1cm4gdHJ1ZTsKLSAK LSAgIHJldHVybiBmYWxzZTsKLUBAIC0xMjk1LDcgKzEzMTMsNyBAQCB0aHJlYWRfZGJfbmV3X29i amZpbGUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQotIAkgb2YgdGhlIGxpc3Qgb2Ygc2hhcmVk IGxpYnJhcmllcyB0byBsb2FkLCBhbmQgaW4gYW4gYXBwIG9mIHNldmVyYWwKLSAJIHRob3VzYW5k IHNoYXJlZCBsaWJyYXJpZXMsIHRoaXMgY2FuIG90aGVyd2lzZSBiZSBwYWluZnVsLiAgKi8KLSAg ICAgICAmJiAoKG9iamZpbGUtPmZsYWdzICYgT0JKRl9NQUlOTElORSkgIT0gMAotLQkgIHx8IGxp YnB0aHJlYWRfbmFtZV9wIChvYmpmaWxlX25hbWUgKG9iamZpbGUpKSkpCi0rCSAgfHwgbGlicHRo cmVhZF9vYmpmaWxlX3AgKG9iamZpbGUpKSkKLSAgICAgY2hlY2tfZm9yX3RocmVhZF9kYiAoKTsK LSB9Ci0gCi1kaWZmIC0tZ2l0IGEvZ2RiL3NvbGliLmMgYi9nZGIvc29saWIuYwotLS0tIGEvZ2Ri L3NvbGliLmMKLSsrKyBiL2dkYi9zb2xpYi5jCi1AQCAtOTA2LDEyICs5MDYsMTcgQEAgRG8geW91 IG5lZWQgXCJzZXQgc29saWItc2VhcmNoLXBhdGhcIiBvciBcInNldCBzeXNyb290XCI/IiksCi0g Ci0gICAgVXNlcyBhIGZhaXJseSBzaW1wbGlzdGljIGhldXJpc3RpYyBhcHByb2FjaCB3aGVyZSB3 ZSBjaGVjawotICAgIHRoZSBmaWxlIG5hbWUgYWdhaW5zdCAiL2xpYnB0aHJlYWQiLiAgVGhpcyBj YW4gbGVhZCB0byBmYWxzZQotLSAgIHBvc2l0aXZlcywgYnV0IHRoaXMgc2hvdWxkIGJlIGdvb2Qg ZW5vdWdoIGluIHByYWN0aWNlLiAgKi8KLSsgICBwb3NpdGl2ZXMsIGJ1dCB0aGlzIHNob3VsZCBi ZSBnb29kIGVub3VnaCBpbiBwcmFjdGljZS4KLSsKLSsgICBBcyBvZiBnbGliYy0yLjM0LCBmdW5j dGlvbnMgZm9ybWVybHkgcmVzaWRpbmcgaW4gbGlicHRocmVhZCBoYXZlCi0rICAgYmVlbiBtb3Zl ZCB0byBsaWJjLCBzbyAiL2xpYmMuIiBuZWVkcyB0byBiZSBjaGVja2VkIHRvby4gIChNYXRjaGlu ZwotKyAgIHRoZSAiLiIgd2lsbCBhdm9pZCBtYXRjaGluZyBsaWJyYXJpZXMgc3VjaCBhcyBsaWJj cnlwdC4pICovCi0gCi0gYm9vbAotIGxpYnB0aHJlYWRfbmFtZV9wIChjb25zdCBjaGFyICpuYW1l KQotIHsKLS0gIHJldHVybiAoc3Ryc3RyIChuYW1lLCAiL2xpYnB0aHJlYWQiKSAhPSBOVUxMKTsK LSsgIHJldHVybiAoc3Ryc3RyIChuYW1lLCAiL2xpYnB0aHJlYWQiKSAhPSBOVUxMCi0rICAgICAg ICAgIHx8IHN0cnN0ciAobmFtZSwgIi9saWJjLiIpICE9IE5VTEwgKTsKLSB9Ci0gCi0gLyogUmV0 dXJuIG5vbi16ZXJvIGlmIFNPIGlzIHRoZSBsaWJwdGhyZWFkIHNoYXJlZCBsaWJyYXJ5LiAgKi8K CmRpZmYgLS1naXQgYS9nZGItcmhiejE5NzEwOTYtZ2xpYmMyLjM0LTMucGF0Y2ggYi9nZGItcmhi ejE5NzEwOTYtZ2xpYmMyLjM0LTMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDVjNTY1MDQuLjAwMDAwMDAKLS0tIGEvZ2RiLXJoYnoxOTcxMDk2LWdsaWJjMi4zNC0zLnBhdGNo CisrKyAvZGV2L251bGwKQEAgLTEsNzIgKzAsMCBAQAotRnJvbSBGRURPUkFfUEFUQ0hFUyBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtldmluIEJ1ZXR0bmVyIDxrZXZpbmJAcmVkaGF0 LmNvbT4KLURhdGU6IE1vbiwgMTQgSnVuIDIwMjEgMTk6MjQ6NDEgLTA3MDAKLVN1YmplY3Q6IGdk Yi1yaGJ6MTk3MTA5Ni1nbGliYzIuMzQtMy5wYXRjaAotCi07OyBCYWNrcG9ydCB0ZXN0c3VpdGUg cGF0Y2ggZm9yIG1hdGNoaW5nIG5ldyBsaWJ0aHJlYWRfZGIgcmVsYXRlZCBvdXRwdXQKLTs7IHdo ZW4gdGVzdGluZyBnZGIgb24gZ2xpYmMtMi4zNCBtYXRjaGluZXMgKFJIIEJaIDE5NzEwOTYpLgot Ci10ZXN0c3VpdGUvZ2xpYi0yLjM0OiBNYXRjaC9jb25zdW1lIG9wdGlvbmFsIGxpYnRocmVhZF9k YiByZWxhdGVkIG91dHB1dAotCi1XaGVuIHVzaW5nIGdsaWJjLTIuMzQsIHdlIG5vdyBzZWUgbWVz c2FnZXMgcmVsYXRlZCB0byB0aGUgbG9hZGluZyBvZgotdGhlIHRocmVhZCBsaWJyYXJ5IGZvciBu b24tdGhyZWFkIHByb2dyYW1zLiAgRS5nLiAgZm9yIHRoZSB0ZXN0IGNhc2UsCi1nZGIuYmFzZS9l eGVjbC11cGRhdGUtYnJlYWtwb2ludHMuZXhwLCB3ZSB3aWxsIHNlZSB0aGUgZm9sbG93aW5nIHdo ZW4KLXN0YXJ0aW5nIHRoZSBwcm9ncmFtOgotCi0oZ2RiKSBicmVhayAtcXVhbGlmaWVkIG1haW4K LUJyZWFrcG9pbnQgMSBhdCAweDEwMDExOGM6IGZpbGUgL2lyb253b29kMS9zb3VyY2V3YXJlLWdp dC9mMzQtMi1nbGliYzI0NF9maXgvYmxkLy4uLy4uL3dvcmt0cmVlLWdsaWJjMjQ0X2ZpeC9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL2V4ZWNsLXVwZGF0ZS1icmVha3BvaW50cy5jLCBsaW5lIDM0Lgot KGdkYikgcnVuCi1TdGFydGluZyBwcm9ncmFtOiBbLi4uXS9leGVjbC11cGRhdGUtYnJlYWtwb2lu dHMxCi1bVGhyZWFkIGRlYnVnZ2luZyB1c2luZyBsaWJ0aHJlYWRfZGIgZW5hYmxlZF0KLVVzaW5n IGhvc3QgbGlidGhyZWFkX2RiIGxpYnJhcnkgIi9saWI2NC9saWJ0aHJlYWRfZGIuc28uMSIuCi0K LVRoZSB0d28gbGluZXMgb2Ygb3V0cHV0IHJlbGF0ZWQgdG8gbGlidGhyZWFkX2RiIGFyZSBuZXc7 IHdlIGRpZG4ndCBzZWUKLXRoZXNlIGluIHRoZSBwYXN0LiAgVGhpcyBpcyBhIHNpZGUgZWZmZWN0 IG9mIGxpYmMgbm93IGNvbnRhaW5pbmcgdGhlCi1wdGhyZWFkIEFQSSAtIHdlIGNhbiBubyBsb25n ZXIgdGVsbCB3aGV0aGVyIHRoZSBwcm9ncmFtIGlzCi1tdWx0aS10aHJlYWRlZCBieSBzaW1wbHkg bG9va2luZyBmb3IgbGlicHRocmVhZC5zby4gIFRoYXQgc2FpZCwgSQotdGhpbmsgdGhhdCB3ZSBu b3cgd2FudCB0byBsb2FkIGxpYnRocmVhZF9kYiBhbnl3YXkgc2luY2UgaXQncyB1c2VkIHRvCi1y ZXNvbHZlIFRMUyB2YXJpYWJsZXM7IGkuZS4gd2UgbmVlZCBpdCBmb3IgY29ycmVjdGx5IGRldGVy bWluaW5nIHRoZQotdmFsdWUgb2YgZXJybm8uCi0KLVRoaXMgY29tbWl0IGFkZHMgdGhlIG5lY2Vz c2FyeSByZWd1bGFyIGV4cHJlc3Npb25zIHRvIG1hdGNoIHRoaXMKLShvcHRpb25hbCkgYWRkaXRp b25hbCBvdXRwdXQgaW4gdGhlIHR3byB0ZXN0cyB3aGljaCB3ZXJlIGZhaWxpbmcKLXdpdGhvdXQg aXQuCi0KLWdkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nOgotCi0JKiBnZGIuYmFzZS9leGVjbC11cGRh dGUtYnJlYWtwb2ludHMuZXhwOiBBZGQgcmVndWxhcgotCWV4cHJlc3Npb24gZm9yIG9wdGlvbmFs bHkgbWF0Y2hpbmcgb3V0cHV0IHJlbGF0ZWQgdG8KLQlsaWJ0aHJlYWRfZGIuCi0JKiBnZGIuYmFz ZS9mb3JrLXByaW50LWluZmVyaW9yLWV2ZW50cy5leHA6IExpa2V3aXNlLgotCi1kaWZmIC0tZ2l0 IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9leGVjbC11cGRhdGUtYnJlYWtwb2ludHMuZXhwIGIv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9leGVjbC11cGRhdGUtYnJlYWtwb2ludHMuZXhwCi0tLS0g YS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2V4ZWNsLXVwZGF0ZS1icmVha3BvaW50cy5leHAKLSsr KyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZXhlY2wtdXBkYXRlLWJyZWFrcG9pbnRzLmV4cAot QEAgLTEzMiw2ICsxMzIsNyBAQCBwcm9jIHRlc3QgeyBhbHdheXNfaW5zZXJ0ZWQgfSB7Ci0gCSJD b250aW51aW5nXFwuXHJcbiIgXAotIAkiJHtub3Rfbmx9IGlzIGV4ZWN1dGluZyBuZXcgcHJvZ3Jh bTogJHtub3Rfbmx9XHJcbiIgXAotIAkiKFJlYWRpbmcgJHtub3Rfbmx9IGZyb20gcmVtb3RlIHRh cmdldFxcLlxcLlxcLlxyXG4pKiIgXAotKwkiKD86LlRocmVhZCBkZWJ1Z2dpbmcgdXNpbmcgLio/ IGVuYWJsZWQuXHJcblVzaW5nIC4qPyBsaWJyYXJ5IC4qP1xcLlxyXG4pPyIgXAotIAkiXHJcbiIg XAotIAkiQnJlYWtwb2ludCAxLCBtYWluLiokZ2RiX3Byb21wdCAkIgotICAgICBzZXQgbWVzc2Fn ZSAiY29udGludWUgYWNyb3NzIGV4ZWMiCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIu YmFzZS9mb3JrLXByaW50LWluZmVyaW9yLWV2ZW50cy5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL2ZvcmstcHJpbnQtaW5mZXJpb3ItZXZlbnRzLmV4cAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9mb3JrLXByaW50LWluZmVyaW9yLWV2ZW50cy5leHAKLSsrKyBiL2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2UvZm9yay1wcmludC1pbmZlcmlvci1ldmVudHMuZXhwCi1AQCAtNTksNiArNTks NyBAQCBzZXQgZGV0YWNoX2NoaWxkX3JlICIke3JlYWRpbmdfcmV9XFxcW0RldGFjaGluZyBhZnRl ciBmb3JrIGZyb20gY2hpbGQgLipcXFxdXHJcbgotIHNldCBkZXRhY2hfcGFyZW50X3JlICIke3Jl YWRpbmdfcmV9XFxcW0RldGFjaGluZyBhZnRlciBmb3JrIGZyb20gcGFyZW50IC4qXFxcXVxyXG4i Ci0gc2V0IG5ld19pbmZfcmUgIiR7cmVhZGluZ19yZX1cXFxbTmV3IGluZmVyaW9yICRkZWNpbWFs IFxcKC4qXFwpXFxcXVxyXG4iCi0gc2V0IGluZl9kZXRhY2hlZF9yZSAiJHtyZWFkaW5nX3JlfVxc XFtJbmZlcmlvciAkZGVjaW1hbCBcXCguKlxcKSBkZXRhY2hlZFxcXF1cclxuIgotK3NldCB0aHJl YWRfZGJfcmUgIig/OlxcXFtUaHJlYWQgZGVidWdnaW5nIHVzaW5nIC4qPyBlbmFibGVkXFxcXVxy XG5Vc2luZyAuKj8gbGlicmFyeSAuKj9cXC5cclxuKT8iCi0gCi0gc2V0IGV4cGVjdGVkX291dHB1 dCBbbGlzdCBcCi0gCQkJICIke2F0dGFjaF9jaGlsZF9yZX0ke25ld19pbmZfcmV9JHtkZXRhY2hf cGFyZW50X3JlfSR7aW5mX2RldGFjaGVkX3JlfSIgXAotQEAgLTg0LDcgKzg1LDcgQEAgZm9yZWFj aF93aXRoX3ByZWZpeCBwcmludF9pbmZlcmlvcl9ldmVudHMgeyAib24iICJvZmYiIH0gewotIAkg ICAgc2V0IG91dHB1dCBbbGluZGV4ICRleHBlY3RlZF9vdXRwdXQgJGldCi0gCSAgICAjIEFsd2F5 cyBhZGQgdGhlICJTdGFydGluZyBwcm9ncmFtLi4uIiBzdHJpbmcgc28gdGhhdCB3ZQotIAkgICAg IyBtYXRjaCBleGFjdGx5IHRoZSBsaW5lcyB3ZSB3YW50LgotLQkgICAgc2V0IG91dHB1dCAiU3Rh cnRpbmcgcHJvZ3JhbTogJGJpbmZpbGVcXHMqXHJcbiR7b3V0cHV0fSR7ZXhpdGVkX25vcm1hbGx5 X3JlfSIKLSsJICAgIHNldCBvdXRwdXQgIlN0YXJ0aW5nIHByb2dyYW06ICRiaW5maWxlXFxzKlxy XG4ke3RocmVhZF9kYl9yZX0ke291dHB1dH0ke3RocmVhZF9kYl9yZX0ke2V4aXRlZF9ub3JtYWxs eV9yZX0iCi0gCSAgICBzZXQgaSBbZXhwciAkaSArIDFdCi0gCSAgICBnZGJfdGVzdCAicnVuIiAk b3V0cHV0Ci0gCX0KCmRpZmYgLS1naXQgYS9nZGItcmhiejE5NzEwOTYtZ2xpYmMyLjM0LTQucGF0 Y2ggYi9nZGItcmhiejE5NzEwOTYtZ2xpYmMyLjM0LTQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDdjZTliZTUuLjAwMDAwMDAKLS0tIGEvZ2RiLXJoYnoxOTcxMDk2LWdsaWJj Mi4zNC00LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsOTAgKzAsMCBAQAotRnJvbSBGRURPUkFf UEFUQ0hFUyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtldmluIEJ1ZXR0bmVyIDxr ZXZpbmJAcmVkaGF0LmNvbT4KLURhdGU6IE1vbiwgMTQgSnVuIDIwMjEgMTk6Mjk6MTkgLTA3MDAK LVN1YmplY3Q6IGdkYi1yaGJ6MTk3MTA5Ni1nbGliYzIuMzQtNC5wYXRjaAotCi07OyBCYWNrcG9y dCBwYXRjaCBhZGp1c3RpbmcgdGVzdCBnZGIuYmFzZS9wcmludC1zeW1ib2wtbG9hZGluZy5leHAu Ci07OyAoUkggQlogMTk3MTA5NikuCi0KLXByaW50LXN5bWJvbC1sb2FkaW5nLmV4cDogQWxsb3cg bGliYyBzeW1ib2xzIHRvIGJlIGFscmVhZHkgbG9hZGVkCi0KLU9uZSBjb25zZXF1ZW5jZSBvZiBj aGFuZ2luZyBsaWJwdGhyZWFkX25hbWVfcCgpIGluIHNvbGliLmMgdG8gKGFsc28pCi1tYXRjaCBs aWJjIGlzIHRoYXQgdGhlIHN5bWJvbHMgZm9yIGxpYmMgd2lsbCBub3cgYmUgbG9hZGVkIGJ5Ci1z b2xpYl9hZGQoKSBpbiBzb2xpYi5jLiAgSSB0aGluayB0aGlzIGlzIG1vc3RseSBoYXJtbGVzcyBi ZWNhdXNlCi13ZSdsbCBsaWtlbHkgd2FudCB0aGVzZSBzeW1ib2xzIHRvIGJlIGxvYWRlZCBhbnl3 YXksIGJ1dCBpdCBkaWQgY2F1c2UKLXR3byBmYWlsdXJlcyBpbiBnZGIuYmFzZS9wcmludC1zeW1i b2wtbG9hZGluZy5leHAuCi0KLVNwZWNpZmljYWxseS4uLgotCi0xKQotCi1zaGFyZWRsaWJyYXJ5 IC4qCi0oZ2RiKSBQQVNTOiBnZGIuYmFzZS9wcmludC1zeW1ib2wtbG9hZGluZy5leHA6IHNobGli IG9mZjogbG9hZCBzaGFyZWQtbGliCi0KLW5vdyBsb29rcyBsaWtlIHRoaXM6Ci0KLXNoYXJlZGxp YnJhcnkgLioKLVN5bWJvbHMgYWxyZWFkeSBsb2FkZWQgZm9yIC9saWI2NC9saWJjLnNvLjYKLShn ZGIpIFBBU1M6IGdkYi5iYXNlL3ByaW50LXN5bWJvbC1sb2FkaW5nLmV4cDogc2hsaWIgb2ZmOiBs b2FkIHNoYXJlZC1saWIKLQotMikKLQotc2hhcmVkbGlicmFyeSAuKgotTG9hZGluZyBzeW1ib2xz IGZvciBzaGFyZWQgbGlicmFyaWVzOiAuKgotKGdkYikgUEFTUzogZ2RiLmJhc2UvcHJpbnQtc3lt Ym9sLWxvYWRpbmcuZXhwOiBzaGxpYiBicmllZjogbG9hZCBzaGFyZWQtbGliCi0KLW5vdyBsb29r cyBsaWtlIHRoaXM6Ci0KLXNoYXJlZGxpYnJhcnkgLioKLUxvYWRpbmcgc3ltYm9scyBmb3Igc2hh cmVkIGxpYnJhcmllczogLioKLVN5bWJvbHMgYWxyZWFkeSBsb2FkZWQgZm9yIC9saWI2NC9saWJj LnNvLjYKLShnZGIpIFBBU1M6IGdkYi5iYXNlL3ByaW50LXN5bWJvbC1sb2FkaW5nLmV4cDogc2hs aWIgYnJpZWY6IGxvYWQgc2hhcmVkLWxpYgotCi1GaXhpbmcgY2FzZSAjMiBlbmRlZCB1cCBiZWlu ZyBlYXNpZXIgdGhhbiAjMS4gICMxIGhhZCBiZWVuIHVzaW5nCi1nZGJfdGVzdF9ub19vdXRwdXQg dG8gY29ycmVjdGx5IG1hdGNoIHRoaXMgbm8tb3V0cHV0IGNhc2UuICBJCi1lbmRlZCB1cCByZXBs YWNpbmcgaXQgd2l0aCBnZGJfdGVzdF9tdWx0aXBsZSwgbWF0Y2hpbmcgdGhlIGV4YWN0Ci1leHBl Y3RlZCBvdXRwdXQgZm9yIGVhY2ggb2YgdGhlIHR3byBub3cgYWNjZXB0YWJsZSBjYXNlcy4KLQot Rm9yIGNhc2UgIzIsIEkgc2ltcGx5IGFkZGVkIGFuIG9wdGlvbmFsIG5vbi1jYXB0dXJpbmcgZ3Jv dXAKLWZvciB0aGUgcG90ZW50aWFsIG5ldyBvdXRwdXQuCi0KLWdkYi90ZXN0c3VpdGUvQ2hhbmdl TG9nOgotCi0JKiBnZGIuYmFzZS9wcmludC1zeW1ib2wtbG9hZGluZy5leHAgKHByb2MgdGVzdF9s b2FkX3NobGliKToKLQlBbGxvdyAiU3ltYm9scyBhbHJlYWR5IGxvYWRlZCBmb3IuLi4iIG1lc3Nh Z2VzLgotCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9wcmludC1zeW1ib2wt bG9hZGluZy5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ByaW50LXN5bWJvbC1sb2FkaW5n LmV4cAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9wcmludC1zeW1ib2wtbG9hZGluZy5l eHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvcHJpbnQtc3ltYm9sLWxvYWRpbmcuZXhw Ci1AQCAtOTYsNiArOTYsNyBAQCB0ZXN0X2xvYWRfY29yZSBmdWxsCi0gCi0gcHJvYyB0ZXN0X2xv YWRfc2hsaWIgeyBwcmludF9zeW1ib2xfbG9hZGluZyB9IHsKLSAgICAgZ2xvYmFsIGJpbmZpbGUK LSsgICAgZ2xvYmFsIGdkYl9wcm9tcHQKLSAgICAgd2l0aF90ZXN0X3ByZWZpeCAic2hsaWIgJHtw cmludF9zeW1ib2xfbG9hZGluZ30iIHsKLSAJY2xlYW5fcmVzdGFydCAke2JpbmZpbGV9Ci0gCWdk Yl90ZXN0X25vX291dHB1dCAic2V0IGF1dG8tc29saWItYWRkIG9mZiIKLUBAIC0xMDYsMTIgKzEw NywyMCBAQCBwcm9jIHRlc3RfbG9hZF9zaGxpYiB7IHByaW50X3N5bWJvbF9sb2FkaW5nIH0gewot IAlzZXQgdGVzdF9uYW1lICJsb2FkIHNoYXJlZC1saWIiCi0gCXN3aXRjaCAke3ByaW50X3N5bWJv bF9sb2FkaW5nfSB7Ci0gCSAgICAib2ZmIiB7Ci0tCQlnZGJfdGVzdF9ub19vdXRwdXQgInNoYXJl ZGxpYnJhcnkgLioiIFwKLS0JCSAgICAke3Rlc3RfbmFtZX0KLSsJCXNldCBjbWQgInNoYXJlZGxp YnJhcnkgLioiCi0rCQlzZXQgY21kX3JlZ2V4IFtzdHJpbmdfdG9fcmVnZXhwICRjbWRdCi0rCQln ZGJfdGVzdF9tdWx0aXBsZSAkY21kICR0ZXN0X25hbWUgewotKwkJICAgIC1yZSAiXiRjbWRfcmVn ZXhcclxuJGdkYl9wcm9tcHQgJCIgewotKwkJCXBhc3MgJHRlc3RfbmFtZQotKwkJICAgIH0KLSsJ CSAgICAtcmUgIl4kY21kX3JlZ2V4XHJcblN5bWJvbHMgYWxyZWFkeSBsb2FkZWQgZm9yXFteXHJc blxdKlxcL2xpYmNcXC5cW15cclxuXF0qXHJcbiRnZGJfcHJvbXB0ICQiIHsKLSsJCQlwYXNzICR0 ZXN0X25hbWUKLSsJCSAgICB9Ci0rCQl9Ci0gCSAgICB9Ci0gCSAgICAiYnJpZWYiIHsKLSAJCWdk Yl90ZXN0ICJzaGFyZWRsaWJyYXJ5IC4qIiBcCi0tCQkgICAgIkxvYWRpbmcgc3ltYm9scyBmb3Ig c2hhcmVkIGxpYnJhcmllczogXFwuXFwqIiBcCi0rCQkgICAgIkxvYWRpbmcgc3ltYm9scyBmb3Ig c2hhcmVkIGxpYnJhcmllczogXFwuXFwqLio/KD86U3ltYm9scyBhbHJlYWR5IGxvYWRlZCBmb3Ig Lio/bGliYyk/IiBcCi0gCQkgICAgJHt0ZXN0X25hbWV9Ci0gCSAgICB9Ci0gCSAgICAiZnVsbCIg ewoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6MTk3MTA5Ni1nbGliYzIuMzQtNS5wYXRjaCBiL2dkYi1y aGJ6MTk3MTA5Ni1nbGliYzIuMzQtNS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggOTExZDJiYy4uMDAwMDAwMAotLS0gYS9nZGItcmhiejE5NzEwOTYtZ2xpYmMyLjM0LTUucGF0 Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw4NiArMCwwIEBACi1Gcm9tIEZFRE9SQV9QQVRDSEVTIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2V2aW4gQnVldHRuZXIgPGtldmluYkByZWRo YXQuY29tPgotRGF0ZTogTW9uLCAxNCBKdW4gMjAyMSAxOTozMjoxMiAtMDcwMAotU3ViamVjdDog Z2RiLXJoYnoxOTcxMDk2LWdsaWJjMi4zNC01LnBhdGNoCi0KLTs7IEJhY2twb3J0IHBhdGNoIGFk anVzdGluZyB0ZXN0IGdkYi5taS9taS1zeW0taW5mby5leHAgKFJIIEJaIDE5NzEwOTYpLgotCi1t aS1zeW0taW5mby5leHA6IEluY3JlYXNlIHRpbWVvdXQgZm9yIDExNC1zeW1ib2wtaW5mby1mdW5j dGlvbnMKLQotTG9hZGluZyBsaWJjLnNvJ3Mgc3ltYm9scyBpbmNyZWFzZWQgdGhlIGFtb3VudCBv ZiB0aW1lIG5lZWRlZCBmb3IKLTExNC1zeW1ib2wtaW5mby1mdW5jdGlvbiB0byBmZXRjaCBzeW1i b2xzLCBjYXVzaW5nIGEgdGltZW91dCBkdXJpbmcgbXkKLXRlc3RpbmcuICBJIGVuY2xvc2VkIHRo ZSBlbnRpcmUgYmxvY2sgd2l0aCBhICJ3aXRoX3RpbWVvdXRfZmFjdG9yIDQiLAotd2hpY2ggZml4 ZXMgdGhlIHByb2JsZW0gZm9yIG1lLiAgKFVzaW5nIDIgYWxzbyBmaXhlZCBpdCBmb3IgbWUsIGJ1 dCBpdAotbWlnaHQgbm90IGJlIGVub3VnaCB3aGVuIHJ1bm5pbmcgdGhpcyB0ZXN0IG9uIHNsb3dl ciBtYWNoaW5lcy4pCi0KLWdkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nOgotCi0JKiBnZGIubWkvbWkt c3ltLWluZm8uZXhwICgxMTQtc3ltYm9sLWluZm8tZnVuY3Rpb24gdGVzdCk6IEluY3JlYXNlCi0J dGltZW91dC4KLQotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXN5bS1pbmZv LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXN5bS1pbmZvLmV4cAotLS0tIGEvZ2RiL3Rl c3RzdWl0ZS9nZGIubWkvbWktc3ltLWluZm8uZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5t aS9taS1zeW0taW5mby5leHAKLUBAIC0xMjIsMzMgKzEyMiwzNSBAQCBnZGJfdGVzdF9tdWx0aXBs ZSAkY21kICR0ZXN0bmFtZSAtcHJvbXB0ICIke21pX2dkYl9wcm9tcHR9JCIgewotICMgKGZyb20g dGhlIHN5bWJvbCB0YWJsZSkuICBUaGVyZSdzIG9mdGVuIHNvIG11Y2ggb3V0cHV0IG91dHB1dCBm cm9tCi0gIyB0aGlzIGNvbW1hbmQgdGhhdCB3ZSBvdmVyZmxvdyBleHBlY3QncyBidWZmZXJzLCBh dm9pZCB0aGlzIGJ5Ci0gIyBmZXRjaGluZyB0aGUgb3V0cHV0IHBpZWNlIGJ5IHBpZWNlLgotLXNl dCB0ZXN0bmFtZSAiTGlzdCBhbGwgZnVuY3Rpb25zIgotLXNldCBjbWQgIjExNC1zeW1ib2wtaW5m by1mdW5jdGlvbnMgLS1pbmNsdWRlLW5vbmRlYnVnIgotLXNldCBzdGF0ZSAwCi0tZ2RiX3Rlc3Rf bXVsdGlwbGUgJGNtZCAke3Rlc3RuYW1lfSAtcHJvbXB0ICIke21pX2dkYl9wcm9tcHR9JCIgewot LSAgICAtcmUgIjExNFxcXmRvbmUsc3ltYm9scz1ceyIgewotLQlpZiB7ICRzdGF0ZSA9PSAwIH0g eyBzZXQgc3RhdGUgMSB9Ci0tCWV4cF9jb250aW51ZQotLSAgICB9Ci0tICAgIC1yZSAiZGVidWc9 XFxcWyR7c3ltdGFiX3JlfSIgewotLQlpZiB7ICRzdGF0ZSA9PSAxIH0geyBzZXQgc3RhdGUgMiB9 Ci0tCWV4cF9jb250aW51ZQotLSAgICB9Ci0tICAgIC1yZSAiLCR7c3ltdGFiX3JlfSIgewotLQll eHBfY29udGludWUKLS0gICAgfQotLSAgICAtcmUgIlxcXF0sbm9uZGVidWc9XFxcWyIgewotLQlp ZiB7ICRzdGF0ZSA9PSAyIH0geyBzZXQgc3RhdGUgMyB9Ci0tCWV4cF9jb250aW51ZQotLSAgICB9 Ci0tICAgIC1yZSAiXHthZGRyZXNzPSR7cXN0cn0sbmFtZT0ke3FzdHJ9XH0sIiB7Ci0tCWV4cF9j b250aW51ZQotLSAgICB9Ci0tICAgIC1yZSAiXHthZGRyZXNzPSR7cXN0cn0sbmFtZT0ke3FzdHJ9 XH1cXFxdXH1cclxuJHttaV9nZGJfcHJvbXB0fSQiIHsKLS0JaWYgeyAkc3RhdGUgPT0gMyB9IHsK LS0JICAgIHBhc3MgJGdkYl90ZXN0X25hbWUKLS0JfSBlbHNlIHsKLS0JICAgIGZhaWwgJGdkYl90 ZXN0X25hbWUKLSt3aXRoX3RpbWVvdXRfZmFjdG9yIDQgewotKyAgICBzZXQgdGVzdG5hbWUgIkxp c3QgYWxsIGZ1bmN0aW9ucyIKLSsgICAgc2V0IGNtZCAiMTE0LXN5bWJvbC1pbmZvLWZ1bmN0aW9u cyAtLWluY2x1ZGUtbm9uZGVidWciCi0rICAgIHNldCBzdGF0ZSAwCi0rICAgIGdkYl90ZXN0X211 bHRpcGxlICRjbWQgJHt0ZXN0bmFtZX0gLXByb21wdCAiJHttaV9nZGJfcHJvbXB0fSQiIHsKLSsJ LXJlICIxMTRcXF5kb25lLHN5bWJvbHM9XHsiIHsKLSsJICAgIGlmIHsgJHN0YXRlID09IDAgfSB7 IHNldCBzdGF0ZSAxIH0KLSsJICAgIGV4cF9jb250aW51ZQotKwl9Ci0rCS1yZSAiZGVidWc9XFxc WyR7c3ltdGFiX3JlfSIgewotKwkgICAgaWYgeyAkc3RhdGUgPT0gMSB9IHsgc2V0IHN0YXRlIDIg fQotKwkgICAgZXhwX2NvbnRpbnVlCi0rCX0KLSsJLXJlICIsJHtzeW10YWJfcmV9IiB7Ci0rCSAg ICBleHBfY29udGludWUKLSsJfQotKwktcmUgIlxcXF0sbm9uZGVidWc9XFxcWyIgewotKwkgICAg aWYgeyAkc3RhdGUgPT0gMiB9IHsgc2V0IHN0YXRlIDMgfQotKwkgICAgZXhwX2NvbnRpbnVlCi0r CX0KLSsJLXJlICJce2FkZHJlc3M9JHtxc3RyfSxuYW1lPSR7cXN0cn1cfSwiIHsKLSsJICAgIGV4 cF9jb250aW51ZQotKwl9Ci0rCS1yZSAiXHthZGRyZXNzPSR7cXN0cn0sbmFtZT0ke3FzdHJ9XH1c XFxdXH1cclxuJHttaV9nZGJfcHJvbXB0fSQiIHsKLSsJICAgIGlmIHsgJHN0YXRlID09IDMgfSB7 Ci0rCQlwYXNzICRnZGJfdGVzdF9uYW1lCi0rCSAgICB9IGVsc2UgewotKwkJZmFpbCAkZ2RiX3Rl c3RfbmFtZQotKwkgICAgfQotIAl9Ci0gICAgIH0KLSB9CgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYnox OTc2ODg3LWZpZWxkLWxvY2F0aW9uLWtpbmQucGF0Y2ggYi9nZGItcmhiejE5NzY4ODctZmllbGQt bG9jYXRpb24ta2luZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4w MGY5YWNjCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXJoYnoxOTc2ODg3LWZpZWxkLWxvY2F0aW9u LWtpbmQucGF0Y2gKQEAgLTAsMCArMSwzMCBAQAorRnJvbSBGRURPUkFfUEFUQ0hFUyBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9BbGV4YW5kcmE9MjBIPUMzPUExamtv dj1DMz1BMT89IDxhaGFqa292YUByZWRoYXQuY29tPgorRGF0ZTogV2VkLCAyOSBTZXAgMjAyMSAx MDo1ODo1MCArMDIwMAorU3ViamVjdDogZ2RiLXJoYnoxOTc2ODg3LWZpZWxkLWxvY2F0aW9uLWtp bmQucGF0Y2gKKworOztCYWNrcG9ydCB1cHN0cmVhbSBwYXRjaCB3aGljaCBmaXhlcyBpbnRlcm5h bC1lcnJvcjogVW5leHBlY3RlZAorOzt0eXBlIGZpZWxkIGxvY2F0aW9uIGtpbmQgKFJIQlogMTk3 Njg4NykuCisKK2dkYnR5cGVzLmM6IEFkZCB0aGUgY2FzZSBmb3IgRklFTERfTE9DX0tJTkRfRFdB UkZfQkxPQ0sKKworVGhlIGNhc2UgZm9yIEZJRUxEX0xPQ19LSU5EX0RXQVJGX0JMT0NLIHdhcyBt aXNzaW5nIGZvcgorc3dpdGNoIFRZUEVfRklFTERfTE9DX0tJTkQuIFRoYXMgY2F1c2VkIGFuIGlu dGVybmFsLWVycm9yCit1bmRlciBzb21lIGNpcmN1bXN0YW5jZXMuCisKK0ZpeGVzIGJ1ZyAyODAz MC4KKworZGlmZiAtLWdpdCBhL2dkYi9nZGJ0eXBlcy5jIGIvZ2RiL2dkYnR5cGVzLmMKKy0tLSBh L2dkYi9nZGJ0eXBlcy5jCisrKysgYi9nZGIvZ2RidHlwZXMuYworQEAgLTU1NzEsNiArNTU3MSwx MCBAQCBjb3B5X3R5cGVfcmVjdXJzaXZlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKKyAJCQkJ ICB4c3RyZHVwIChUWVBFX0ZJRUxEX1NUQVRJQ19QSFlTTkFNRSAodHlwZSwKKyAJCQkJCQkJCSAg ICAgICBpKSkpOworIAkgICAgICBicmVhazsKKysgICAgICAgICAgICBjYXNlIEZJRUxEX0xPQ19L SU5EX0RXQVJGX0JMT0NLOgorKyAgICAgICAgICAgICAgU0VUX0ZJRUxEX0RXQVJGX0JMT0NLIChu ZXdfdHlwZS0+ZmllbGQgKGkpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBUWVBFX0ZJRUxEX0RXQVJGX0JMT0NLICh0eXBlLCBpKSk7CisrICAgICAgICAgICAgICBicmVh azsKKyAJICAgIGRlZmF1bHQ6CisgCSAgICAgIGludGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19M SU5FX18sCisgCQkJICAgICAgXygiVW5leHBlY3RlZCB0eXBlIGZpZWxkIGxvY2F0aW9uIGtpbmQ6 ICVkIiksCgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYnoyMDEyOTc2LXBhcGVyLW92ZXItZm9ydHJhbi1s ZXgtcHJvYmxlbXMucGF0Y2ggYi9nZGItcmhiejIwMTI5NzYtcGFwZXItb3Zlci1mb3J0cmFuLWxl eC1wcm9ibGVtcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MzNm NTFkCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXJoYnoyMDEyOTc2LXBhcGVyLW92ZXItZm9ydHJh bi1sZXgtcHJvYmxlbXMucGF0Y2gKQEAgLTAsMCArMSwxODUgQEAKK0Zyb20gRkVET1JBX1BBVENI RVMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLZXZpbiBCdWV0dG5lciA8a2V2aW5i QHJlZGhhdC5jb20+CitEYXRlOiBNb24sIDExIE9jdCAyMDIxIDExOjIyOjA0IC0wNzAwCitTdWJq ZWN0OiBnZGItcmhiejIwMTI5NzYtcGFwZXItb3Zlci1mb3J0cmFuLWxleC1wcm9ibGVtcy5wYXRj aAorCis7OyBCYWNrcG9ydCBnZGIuZm9ydHJhbiB0ZXN0c3VpdGUgY2hhbmdlcyBpbiBvcmRlciB0 byBhdm9pZCBGb3J0cmFuCis7OyBsZXhpY2FsIGFuYWx5emVyIGJ1Zy4KKworW2dkYi90ZXN0c3Vp dGVdIEZpeCBGQUlMIGluIGdkYi5taS9taS12YXItY2hpbGQtZi5leHAKKworV2hlbiBydW5uaW5n IHRlc3QtY2FzZSBnZGIubWkvbWktdmFyLWNoaWxkLWYuZXhwIG9uIG9wZW5TVVNFIFR1bWJsZXdl ZWQKKyh3aXRoIGdsaWJjIDIuMzQpIEkgcnVuIGludG86CisuLi4KKyhnZGIpIF5NCitQQVNTOiBn ZGIubWkvbWktdmFyLWNoaWxkLWYuZXhwOiBtaSBydW50byBwcm9nX2FycmF5CitFeHBlY3Rpbmc6 IF4oLXZhci1jcmVhdGUgYXJyYXkgXCogYXJyYXlbXk0KK10rKT8oXF5kb25lLG5hbWU9ImFycmF5 IixudW1jaGlsZD0iWzAtOV0rIix2YWx1ZT0iLioiLHR5cGU9LiosaGFzX21vcmU9IjAiW15NCitd K1soXWdkYlspXSBeTQorWyBdKikKKy12YXItY3JlYXRlIGFycmF5ICogYXJyYXleTQorJiJBdHRl bXB0IHRvIHVzZSBhIHR5cGUgbmFtZSBhcyBhbiBleHByZXNzaW9uLlxuIl5NCiteZXJyb3IsbXNn PSItdmFyLWNyZWF0ZTogdW5hYmxlIHRvIGNyZWF0ZSB2YXJpYWJsZSBvYmplY3QiXk0KKyhnZGIp IF5NCitGQUlMOiBnZGIubWkvbWktdmFyLWNoaWxkLWYuZXhwOiBjcmVhdGUgbG9jYWwgdmFyaWFi bGUgYXJyYXkgKHVuZXhwZWN0ZWQgb3V0cHV0KQorLi4uCisKK1RoZSBwcm9ibGVtIGlzIHRoYXQg dGhlIG5hbWUgYXJyYXkgaXMgdXNlZCBib3RoOgorLSBhcyB0aGUgbmFtZSBmb3IgYSBsb2NhbCB2 YXJpYWJsZQorLSBhcyB0aGUgbmFtZSBvZiBhIHR5cGUgaW4gZ2xpYmMsIGluIGZpbGUgbWFsbG9j L2R5bmFycmF5LXNrZWxldG9uLmMsIGFzIGluY2x1ZGVkCisgIGJ5IG5zcy9uc3NfZmlsZXMvZmls ZXMtaG9zdHMuYy4KKworRml4IHRoaXMgYnkgaWdub3JpbmcgdGhlIHNoYXJlZCBsaWIgc3ltYm9s cy4KKworTGlrZXdpc2UgaW4gYSBjb3VwbGUgb2Ygb3RoZXIgZm9ydHJhbiB0ZXN0cy4KKworVGVz dGVkIG9uIHg4Nl82NC1saW51eC4KKworZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vYWxsb2NhdGVkLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vYWxsb2NhdGVk LmV4cAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9hbGxvY2F0ZWQuZXhwCisrKysg Yi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2FsbG9jYXRlZC5leHAKK0BAIC0yNSwxMSArMjUs MTcgQEAgaWYge1twcmVwYXJlX2Zvcl90ZXN0aW5nICR7dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxl fSAke3NyY2ZpbGV9IFwKKyAgICAgcmV0dXJuIC0xCisgfQorIAorKyMgQXZvaWQgc2hhcmVkIGxp YiBzeW1ib2xzLgorK2dkYl90ZXN0X25vX291dHB1dCAic2V0IGF1dG8tc29saWItYWRkIG9mZiIK KysKKyBpZiAhW2ZvcnRyYW5fcnVudG9fbWFpbl0geworICAgICB1bnRlc3RlZCAiY291bGQgbm90 IHJ1biB0byBtYWluIgorICAgICByZXR1cm4gLTEKKyB9CisgCisrIyBBdm9pZCBsaWJjIHN5bWJv bHMsIGluIHBhcnRpY3VsYXIgdGhlICdhcnJheScgdHlwZS4KKytnZGJfdGVzdF9ub19vdXRwdXQg Im5vc2hhcmVkbGlicmFyeSIKKysKKyAjIFNldCBhbGwgdGhlIGJyZWFrcG9pbnRzLgorIGZvciB7 IHNldCBpIDEgfSB7ICRpIDwgNiB9IHsgaW5jciBpIH0geworICAgICBnZGJfYnJlYWtwb2ludCBb Z2RiX2dldF9saW5lX251bWJlciAiQnJlYWtwb2ludCAkaSJdCitkaWZmIC0tZ2l0IGEvZ2RiL3Rl c3RzdWl0ZS9nZGIuZm9ydHJhbi9hcnJheS1zbGljZXMtYmFkLmV4cCBiL2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vYXJyYXktc2xpY2VzLWJhZC5leHAKKy0tLSBhL2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vYXJyYXktc2xpY2VzLWJhZC5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vYXJyYXktc2xpY2VzLWJhZC5leHAKK0BAIC0yNSwxMSArMjUsMTcgQEAgaWYge1twcmVw YXJlX2Zvcl90ZXN0aW5nICR7dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxlfSAke3NyY2ZpbGV9IFwK KyAgICAgcmV0dXJuIC0xCisgfQorIAorKyMgQXZvaWQgc2hhcmVkIGxpYiBzeW1ib2xzLgorK2dk Yl90ZXN0X25vX291dHB1dCAic2V0IGF1dG8tc29saWItYWRkIG9mZiIKKysKKyBpZiAhW2ZvcnRy YW5fcnVudG9fbWFpbl0geworICAgICB1bnRlc3RlZCAiY291bGQgbm90IHJ1biB0byBtYWluIgor ICAgICByZXR1cm4gLTEKKyB9CisgCisrIyBBdm9pZCBsaWJjIHN5bWJvbHMsIGluIHBhcnRpY3Vs YXIgdGhlICdhcnJheScgdHlwZS4KKytnZGJfdGVzdF9ub19vdXRwdXQgIm5vc2hhcmVkbGlicmFy eSIKKysKKyAjIGdkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJEaXNwbGF5IE1l c3NhZ2UgQnJlYWtwb2ludCJdCisgZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIg IkZpcnN0IEJyZWFrcG9pbnQiXQorIGdkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVy ICJTZWNvbmQgQnJlYWtwb2ludCJdCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi9hcnJheS1zbGljZXMtc3ViLXNsaWNlcy5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL2FycmF5LXNsaWNlcy1zdWItc2xpY2VzLmV4cAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIu Zm9ydHJhbi9hcnJheS1zbGljZXMtc3ViLXNsaWNlcy5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vYXJyYXktc2xpY2VzLXN1Yi1zbGljZXMuZXhwCitAQCAtMjUsMTEgKzI1LDE3 IEBAIGlmIHtbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0g JHtzcmNmaWxlfSBcCisgICAgIHJldHVybiAtMQorIH0KKyAKKysjIEF2b2lkIHNoYXJlZCBsaWIg c3ltYm9scy4KKytnZGJfdGVzdF9ub19vdXRwdXQgInNldCBhdXRvLXNvbGliLWFkZCBvZmYiCisr CisgaWYgIVtmb3J0cmFuX3J1bnRvX21haW5dIHsKKyAgICAgdW50ZXN0ZWQgImNvdWxkIG5vdCBy dW4gdG8gbWFpbiIKKyAgICAgcmV0dXJuIC0xCisgfQorIAorKyMgQXZvaWQgbGliYyBzeW1ib2xz LCBpbiBwYXJ0aWN1bGFyIHRoZSAnYXJyYXknIHR5cGUuCisrZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJu b3NoYXJlZGxpYnJhcnkiCisrCisgIyBnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJl ciAiRGlzcGxheSBNZXNzYWdlIEJyZWFrcG9pbnQiXQorIGdkYl9icmVha3BvaW50IFtnZGJfZ2V0 X2xpbmVfbnVtYmVyICJTdG9wIEhlcmUiXQorIGdkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVf bnVtYmVyICJGaW5hbCBCcmVha3BvaW50Il0KK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL2FycmF5LXNsaWNlcy5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2Fy cmF5LXNsaWNlcy5leHAKKy0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vYXJyYXktc2xp Y2VzLmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9hcnJheS1zbGljZXMuZXhw CitAQCAtNTUsMTEgKzU1LDE3IEBAIHByb2MgcnVuX3Rlc3QgeyByZXBhY2sgfSB7CisgCisgICAg IGNsZWFuX3Jlc3RhcnQgJHtiaW5maWxlfQorIAorKyAgICAjIEF2b2lkIHNoYXJlZCBsaWIgc3lt Ym9scy4KKysgICAgZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgYXV0by1zb2xpYi1hZGQgb2ZmIgor KworICAgICBpZiAhW2ZvcnRyYW5fcnVudG9fbWFpbl0geworIAl1bnRlc3RlZCAiY291bGQgbm90 IHJ1biB0byBtYWluIgorIAlyZXR1cm4gLTEKKyAgICAgfQorIAorKyAgICAjIEF2b2lkIGxpYmMg c3ltYm9scywgaW4gcGFydGljdWxhciB0aGUgJ2FycmF5JyB0eXBlLgorKyAgICBnZGJfdGVzdF9u b19vdXRwdXQgIm5vc2hhcmVkbGlicmFyeSIKKysKKyAgICAgZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJz ZXQgZm9ydHJhbiByZXBhY2stYXJyYXktc2xpY2VzICRyZXBhY2siCisgCisgICAgICMgZ2RiX2Jy ZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgIkRpc3BsYXkgTWVzc2FnZSBCcmVha3BvaW50 Il0KK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2xib3VuZC11Ym91bmQu ZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9sYm91bmQtdWJvdW5kLmV4cAorLS0tIGEv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9sYm91bmQtdWJvdW5kLmV4cAorKysrIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIuZm9ydHJhbi9sYm91bmQtdWJvdW5kLmV4cAorQEAgLTI1LDEyICsyNSwxNyBA QCBpZiB7W3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZpbGV9ICR7 c3JjZmlsZX0gXAorICAgICByZXR1cm4gLTEKKyB9CisgCisrIyBBdm9pZCBzaGFyZWQgbGliIHN5 bWJvbHMuCisrZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgYXV0by1zb2xpYi1hZGQgb2ZmIgorIAor IGlmICFbZm9ydHJhbl9ydW50b19tYWluXSB7CisgICAgIHVudGVzdGVkICJjb3VsZCBub3QgcnVu IHRvIG1haW4iCisgICAgIHJldHVybiAtMQorIH0KKyAKKysjIEF2b2lkIGxpYmMgc3ltYm9scywg aW4gcGFydGljdWxhciB0aGUgJ2FycmF5JyB0eXBlLgorK2dkYl90ZXN0X25vX291dHB1dCAibm9z aGFyZWRsaWJyYXJ5IgorKworIGdkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJU ZXN0IEJyZWFrcG9pbnQiXQorIGdkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJG aW5hbCBCcmVha3BvaW50Il0KKyAKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL3N1YmFycmF5LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3ViYXJyYXkuZXhw CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YmFycmF5LmV4cAorKysrIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJhcnJheS5leHAKK0BAIC0yNywxNiArMjcsMTcgQEAg aWYge1twcmVwYXJlX2Zvcl90ZXN0aW5nICJmYWlsZWQgdG8gcHJlcGFyZSIgJHRlc3RmaWxlICRz cmNmaWxlIHtkZWJ1ZyBmOTB9XX0geworICAgICByZXR1cm4gLTEKKyB9CisgCistZ2RiX2V4aXQK Ky1nZGJfc3RhcnQKKy1nZGJfcmVpbml0aWFsaXplX2RpciAkc3JjZGlyLyRzdWJkaXIKKy1nZGJf bG9hZCAke2JpbmZpbGV9CisrIyBBdm9pZCBzaGFyZWQgbGliIHN5bWJvbHMuCisrZ2RiX3Rlc3Rf bm9fb3V0cHV0ICJzZXQgYXV0by1zb2xpYi1hZGQgb2ZmIgorIAorIGlmICFbZm9ydHJhbl9ydW50 b19tYWluXSB0aGVuIHsKKyAgICAgcGVycm9yICJjb3VsZG4ndCBydW4gdG8gbWFpbiIKKyAgICAg Y29udGludWUKKyB9CisgCisrIyBBdm9pZCBsaWJjIHN5bWJvbHMsIGluIHBhcnRpY3VsYXIgdGhl ICdhcnJheScgdHlwZS4KKytnZGJfdGVzdF9ub19vdXRwdXQgIm5vc2hhcmVkbGlicmFyeSIKKysK KyAjIFRyeSB0byBzZXQgYnJlYWtwb2ludCBhdCB0aGUgbGFzdCB3cml0ZSBzdGF0ZW1lbnQuCisg Cisgc2V0IGJwX2xvY2F0aW9uIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJzdHIoOikiXQorZGlmZiAt LWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZhci1jaGlsZC1mLmV4cCBiL2dkYi90ZXN0 c3VpdGUvZ2RiLm1pL21pLXZhci1jaGlsZC1mLmV4cAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIu bWkvbWktdmFyLWNoaWxkLWYuZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12YXIt Y2hpbGQtZi5leHAKK0BAIC0zNiw4ICszNiwxNCBAQCBpZiB7W2dkYl9jb21waWxlICIke3NyY2Rp cn0vJHtzdWJkaXJ9LyR7c3JjZmlsZX0iICIke2JpbmZpbGV9IiBcCisgbWlfZ2RiX3JlaW5pdGlh bGl6ZV9kaXIgJHNyY2Rpci8kc3ViZGlyCisgbWlfZ2RiX2xvYWQgJHtiaW5maWxlfQorIAorKyMg QXZvaWQgc2hhcmVkIGxpYiBzeW1ib2xzLgorK21pX2dkYl90ZXN0ICItZ2RiLXNldCBhdXRvLXNv bGliLWFkZCBvZmYiICJcXF5kb25lIgorKworIG1pX3J1bnRvIHByb2dfYXJyYXkKKyAKKysjIEF2 b2lkIGxpYmMgc3ltYm9scywgaW4gcGFydGljdWxhciB0aGUgJ2FycmF5JyB0eXBlLgorK21pX2dk Yl90ZXN0ICJub3NoYXJlZGxpYnJhcnkiICIuKlxcXmRvbmUiCisrCisgbWlfY3JlYXRlX3Zhcm9i aiAiYXJyYXkiICJhcnJheSIgImNyZWF0ZSBsb2NhbCB2YXJpYWJsZSBhcnJheSIKKyAKKyAKCmRp ZmYgLS1naXQgYS9nZGItcmhiejIwMjIxNzctZHByaW50Zi0xLnBhdGNoIGIvZ2RiLXJoYnoyMDIy MTc3LWRwcmludGYtMS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5k OTEyMjg5Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXJoYnoyMDIyMTc3LWRwcmludGYtMS5wYXRj aApAQCAtMCwwICsxLDMxNSBAQAorRnJvbSBGRURPUkFfUEFUQ0hFUyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IEtldmluIEJ1ZXR0bmVyIDxrZXZpbmJAcmVkaGF0LmNvbT4KK0RhdGU6 IFdlZCwgMTAgTm92IDIwMjEgMTg6NTI6MjIgLTA3MDAKK1N1YmplY3Q6IGdkYi1yaGJ6MjAyMjE3 Ny1kcHJpbnRmLTEucGF0Y2gKKworOzsgQmFja3BvcnQgZml4IGZvciBkcHJpbnRmIGJ1ZyAoUkgg QlogMjAyMjE3NykuCisKK0ZpeCBQUiAyODMwOCAtIGRwcmludGYgYnJlYWtwb2ludHMgbm90IHdv cmtpbmcgd2hlbiBydW4gZnJvbSBzY3JpcHQKKworVGhpcyBjb21taXQgZml4ZXMgQnVnIDI4MzA4 LCB0aXRsZWQgIlN0cmFuZ2UgaW50ZXJhY3Rpb25zIHdpdGgKK2RwcmludGYgYW5kIGJyZWFrL2Nv bW1hbmRzIjoKKworQnVnOiBodHRwczovL3NvdXJjZXdhcmUub3JnL2J1Z3ppbGxhL3Nob3dfYnVn LmNnaT9pZD0yODMwOAorCitTaW5jZSBjcmVhdGluZyB0aGF0IGJ1ZyByZXBvcnQsIEkndmUgZm91 bmQgYSBzb21ld2hhdCBzaW1wbGVyIHdheSBvZgorcmVwcm9kdWNpbmcgdGhlIHByb2JsZW0uICBJ J3ZlIGVuY2Fwc3VsYXRlZCBpdCBpbnRvIHRoZSBHREIgdGVzdCBjYXNlCit3aGljaCBJJ3ZlIGNy ZWF0ZWQgYWxvbmcgd2l0aCB0aGlzIGJ1ZyBmaXguICBUaGUgbmFtZSBvZiB0aGUgbmV3IHRlc3QK K2lzIGdkYi5iYXNlL2RwcmludGYtZXhlY3V0aW9uLXgtc2NyaXB0LmV4cCwgSSdsbCBkZW1vbnN0 cmF0ZSB0aGUKK3Byb2JsZW0gdXNpbmcgdGhpcyB0ZXN0IGNhc2UsIHRob3VnaCBmb3IgYnJldml0 eSwgSSd2ZSBwbGFjZWQgYWxsCityZWxldmFudCBmaWxlcyBpbiB0aGUgc2FtZSBkaXJlY3Rvcnkg YW5kIGhhdmUgcmVuYW1lZCB0aGUgZmlsZXMgdG8gYWxsCitzdGFydCB3aXRoICdkcC1idWcnIGlu c3RlYWQgb2YgJ2RwcmludGYtZXhlY3V0aW9uLXgtc2NyaXB0Jy4KKworVGhlIHNjcmlwdCBmaWxl LCBuYW1lZCBkcC1idWcuZ2RiLCBjb25zaXN0cyBvZiB0aGUgZm9sbG93aW5nIGNvbW1hbmRzOgor CitkcHJpbnRmIGluY3JlbWVudCwgImRwcmludGYgaW4gaW5jcmVtZW50KCksIHZpPSVkXG4iLCB2 aQorYnJlYWsgaW5jX3ZpCitjb21tYW5kcworICBjb250aW51ZQorZW5kCitydW4KKworTm90ZSB0 aGF0IHRoZSBmaW5hbCBjb21tYW5kIGluIHRoaXMgc2NyaXB0IGlzICdydW4nLiAgV2hlbiAncnVu JyBpcworaW5zdGVhZCBpc3N1ZWQgaW50ZXJhY3RpdmVseSwgdGhlICBidWcgZG9lcyBub3Qgb2Nj dXIuICBTbywgbGV0J3MgbG9vaworYXQgdGhlIGludGVyYWN0aXZlIGNhc2UgZmlyc3QgaW4gb3Jk ZXIgdG8gc2VlIHRoZSBjb3JyZWN0L2V4cGVjdGVkCitvdXRwdXQ6CisKKyQgZ2RiIC1xIC14IGRw LWJ1Zy5nZGIgZHAtYnVnCisuLi4gZWxpZGluZyBidWdneSBvdXRwdXQgd2hpY2ggSSdsbCBkaXNj dXNzIGxhdGVyIC4uLgorKGdkYikgcnVuCitTdGFydGluZyBwcm9ncmFtOiAvbWVzcXVpdGUyL3Nv dXJjZXdhcmUtZ2l0L2YzNC1tYXN0ZXIvYmxkL2dkYi90bXAvZHAtYnVnCit2aT0wCitkcHJpbnRm IGluIGluY3JlbWVudCgpLCB2aT0wCisKK0JyZWFrcG9pbnQgMiwgaW5jX3ZpICgpIGF0IGRwcmlu dGYtZXhlY3V0aW9uLXgtc2NyaXB0LmM6MjYKKzI2CWluIGRwcmludGYtZXhlY3V0aW9uLXgtc2Ny aXB0LmMKK3ZpPTEKK2RwcmludGYgaW4gaW5jcmVtZW50KCksIHZpPTEKKworQnJlYWtwb2ludCAy LCBpbmNfdmkgKCkgYXQgZHByaW50Zi1leGVjdXRpb24teC1zY3JpcHQuYzoyNgorMjYJaW4gZHBy aW50Zi1leGVjdXRpb24teC1zY3JpcHQuYwordmk9MgorZHByaW50ZiBpbiBpbmNyZW1lbnQoKSwg dmk9MgorCitCcmVha3BvaW50IDIsIGluY192aSAoKSBhdCBkcHJpbnRmLWV4ZWN1dGlvbi14LXNj cmlwdC5jOjI2CisyNglpbiBkcHJpbnRmLWV4ZWN1dGlvbi14LXNjcmlwdC5jCit2aT0zCitbSW5m ZXJpb3IgMSAocHJvY2VzcyAxNTM5MjEwKSBleGl0ZWQgbm9ybWFsbHldCisKK0luIHRoaXMgcnVu LCBpbiB3aGljaCAncnVuJyB3YXMgaXNzdWVkIGZyb20gdGhlIGdkYiBwcm9tcHQgKGluc3RlYWQK K29mIGF0IHRoZSBlbmQgb2YgdGhlIHNjcmlwdCksIHRoZXJlIGFyZSB0aHJlZSBkcHJpbnRmIG1l c3NhZ2VzIGFsb25nCit3aXRoIHRocmVlICdCcmVha3BvaW50IDInIG1lc3NhZ2VzLiAgVGhpcyBp cyB0aGUgY29ycmVjdCBvdXRwdXQuCisKK05vdyBsZXQncyBsb29rIGF0IHRoZSBvdXRwdXQgdGhh dCBJIHNuaXBwZWQgYWJvdmU7IHRoaXMgaXMgdGhlIG91dHB1dAord2hlbiAncnVuJyBpcyBpc3N1 ZWQgZnJvbSB0aGUgc2NyaXB0IGxvYWRlZCB2aWEgR0RCJ3MgLXggc3dpdGNoOgorCiskIGdkYiAt cSAteCBkcC1idWcuZ2RiIGRwLWJ1ZworUmVhZGluZyBzeW1ib2xzIGZyb20gZHAtYnVnLi4uCitE cHJpbnRmIDEgYXQgMHg0MDExNmU6IGZpbGUgZHByaW50Zi1leGVjdXRpb24teC1zY3JpcHQuYywg bGluZSAzOC4KK0JyZWFrcG9pbnQgMiBhdCAweDQwMTEzYTogZmlsZSBkcHJpbnRmLWV4ZWN1dGlv bi14LXNjcmlwdC5jLCBsaW5lIDI2Lgordmk9MAorZHByaW50ZiBpbiBpbmNyZW1lbnQoKSwgdmk9 MAorCitCcmVha3BvaW50IDIsIGluY192aSAoKSBhdCBkcHJpbnRmLWV4ZWN1dGlvbi14LXNjcmlw dC5jOjI2CisyNglkcHJpbnRmLWV4ZWN1dGlvbi14LXNjcmlwdC5jOiBObyBzdWNoIGZpbGUgb3Ig ZGlyZWN0b3J5Lgordmk9MQorCitCcmVha3BvaW50IDIsIGluY192aSAoKSBhdCBkcHJpbnRmLWV4 ZWN1dGlvbi14LXNjcmlwdC5jOjI2CisyNglpbiBkcHJpbnRmLWV4ZWN1dGlvbi14LXNjcmlwdC5j Cit2aT0yCisKK0JyZWFrcG9pbnQgMiwgaW5jX3ZpICgpIGF0IGRwcmludGYtZXhlY3V0aW9uLXgt c2NyaXB0LmM6MjYKKzI2CWluIGRwcmludGYtZXhlY3V0aW9uLXgtc2NyaXB0LmMKK3ZpPTMKK1tJ bmZlcmlvciAxIChwcm9jZXNzIDE1MzkxNzUpIGV4aXRlZCBub3JtYWxseV0KKworSW4gdGhlIG91 dHB1dCBzaG93biBhYm92ZSwgb25seSB0aGUgZmlyc3QgZHByaW50ZiBtZXNzYWdlIGlzIHByaW50 ZWQuCitUaGUgMm5kIGFuZCAzcmQgZHByaW50ZiBtZXNzYWdlcyBhcmUgbWlzc2luZyEgIEhvd2V2 ZXIsIGFsbCB0aHJlZQorJ0JyZWFrcG9pbnQgMi4uLicgbWVzc2FnZXMgYXJlIHN0aWxsIHByaW50 ZWQuCisKK1doeSBkb2VzIHRoaXMgaGFwcGVuPworCiticHN0YXRfZG9fYWN0aW9uc18xKCkgaW4g Z2RiL2JyZWFrcG9pbnQuYyBjb250YWlucyB0aGUgZm9sbG93aW5nCitjb21tZW50IGFuZCBjb2Rl IG5lYXIgdGhlIHN0YXJ0IG9mIHRoZSBmdW5jdGlvbjoKKworICAvKiBBdm9pZCBlbmRsZXNzIHJl Y3Vyc2lvbiBpZiBhIGBzb3VyY2UnIGNvbW1hbmQgaXMgY29udGFpbmVkCisgICAgIGluIGJzLT5j b21tYW5kcy4gICovCisgIGlmIChleGVjdXRpbmdfYnJlYWtwb2ludF9jb21tYW5kcykKKyAgICBy ZXR1cm4gMDsKKworICBzY29wZWRfcmVzdG9yZSBzYXZlX2V4ZWN1dGluZworICAgID0gbWFrZV9z Y29wZWRfcmVzdG9yZSAoJmV4ZWN1dGluZ19icmVha3BvaW50X2NvbW1hbmRzLCAxKTsKKworQWxz bywgYXMgZGVzY3JpYmVkIGJ5IHRoaXMgY29tbWVudCBwcmlvciB0byB0aGUgJ2FzeW5jJyBmaWVs ZAoraW4gJ3N0cnVjdCB1aScgaW4gdG9wLmgsIHRoZSBtYWluIFVJIHN0YXJ0cyBvZmYgaW4gc3lu YyBtb2RlCit3aGVuIHByb2Nlc3NpbmcgY29tbWFuZCBsaW5lIGFyZ3VtZW50czoKKworICAvKiBU cnVlIGlmIHRoZSBVSSBpcyBpbiBhc3luYyBtb2RlLCBmYWxzZSBpZiBpbiBzeW5jIG1vZGUuICBJ ZiBpbgorICAgICBzeW5jIG1vZGUsIGEgc3luY2hyb25vdXMgZXhlY3V0aW9uIGNvbW1hbmQgKGUu ZywgIm5leHQiKSBkb2VzIG5vdAorICAgICByZXR1cm4gdW50aWwgdGhlIGNvbW1hbmQgaXMgZmlu aXNoZWQuICBJZiBpbiBhc3luYyBtb2RlLCB0aGVuCisgICAgIHJ1bm5pbmcgYSBzeW5jaHJvbm91 cyBjb21tYW5kIHJldHVybnMgcmlnaHQgYWZ0ZXIgcmVzdW1pbmcgdGhlCisgICAgIHRhcmdldC4g IFdhaXRpbmcgZm9yIHRoZSBjb21tYW5kJ3MgY29tcGxldGlvbiBpcyBsYXRlciBkb25lIG9uCisg ICAgIHRoZSB0b3AgZXZlbnQgbG9vcC4gIEZvciB0aGUgbWFpbiBVSSwgdGhpcyBzdGFydHMgb3V0 IGRpc2FibGVkLAorICAgICB1bnRpbCBhbGwgdGhlIGV4cGxpY2l0IGNvbW1hbmQgbGluZSBhcmd1 bWVudHMgKGUuZy4sIGBnZGIgLWV4CisgICAgICJzdGFydCIgLWV4ICJuZXh0IicpIGFyZSBwcm9j ZXNzZWQuICAqLworCitUaGlzIGNvbWJpbmF0aW9uIG9mIHRoaW5ncywgdGhlIHN0YXRlIG9mIHRo ZSBzdGF0aWMgZ2xvYmFsCisnZXhlY3V0aW5nX2JyZWFrcG9pbnRfY29tbWFuZHMnIHBsdXMgdGhl IHN0YXRlIG9mIHRoZSBhc3luYworZmllbGQgaW4gdGhlIG1haW4gVUkgY2F1c2VzIHRoaXMgYmVo YXZpb3IuCisKK1RoaXMgaXMgYSBiYWNrdHJhY2UgYWZ0ZXIgaGl0dGluZyB0aGUgZHByaW50ZiBi cmVha3BvaW50IGZvcgordGhlIHNlY29uZCB0aW1lIHdoZW4gZG9pbmcgJ3J1bicgZnJvbSB0aGUg c2NyaXB0IGZpbGUsIGkuZS4KK25vbi1pbnRlcmFjdGl2ZWx5OgorCitUaHJlYWQgMSAiZ2RiIiBo aXQgQnJlYWtwb2ludCAzLCBicHN0YXRfZG9fYWN0aW9uc18xIChic3A9MHg3ZmZmZmZmZmMyYjgp CisgICAgYXQgL2lyb253b29kMS9zb3VyY2V3YXJlLWdpdC9mMzQtbWFzdGVyL2JsZC8uLi8uLi93 b3JrdHJlZS1tYXN0ZXIvZ2RiL2JyZWFrcG9pbnQuYzo0NDMxCis0NDMxCSAgaWYgKGV4ZWN1dGlu Z19icmVha3BvaW50X2NvbW1hbmRzKQorCisgIzAgIGJwc3RhdF9kb19hY3Rpb25zXzEgKGJzcD0w eDdmZmZmZmZmYzJiOCkKKyAgICAgYXQgZ2RiL2JyZWFrcG9pbnQuYzo0NDMxCisgIzEgIDB4MDAw MDAwMDAwMDRkOGJjNiBpbiBkcHJpbnRmX2FmdGVyX2NvbmRpdGlvbl90cnVlIChicz0weDE1Mzgw OTApCisgICAgIGF0IGdkYi9icmVha3BvaW50LmM6MTMwNDgKKyAjMiAgMHgwMDAwMDAwMDAwNGM1 Y2FhIGluIGJwc3RhdF9zdG9wX3N0YXR1cyAoYXNwYWNlPTB4MTE2ZGJjMCwgYnBfYWRkcj0weDQw MTE2ZSwgdGhyZWFkPTB4MTM3ZjQ1MCwgd3M9MHg3ZmZmZmZmZmM3MTgsCisgICAgIHN0b3BfY2hh aW49MHgxNTM4MDkwKSBhdCBnZGIvYnJlYWtwb2ludC5jOjU0OTgKKyAjMyAgMHgwMDAwMDAwMDAw NzY4ZDk4IGluIGhhbmRsZV9zaWduYWxfc3RvcCAoZWNzPTB4N2ZmZmZmZmZjNmYwKQorICAgICBh dCBnZGIvaW5mcnVuLmM6NjE3MgorICM0ICAweDAwMDAwMDAwMDA3Njc4ZDMgaW4gaGFuZGxlX2lu ZmVyaW9yX2V2ZW50IChlY3M9MHg3ZmZmZmZmZmM2ZjApCisgICAgIGF0IGdkYi9pbmZydW4uYzo1 NjYyCisgIzUgIDB4MDAwMDAwMDAwMDc2M2NkNSBpbiBmZXRjaF9pbmZlcmlvcl9ldmVudCAoKQor ICAgICBhdCBnZGIvaW5mcnVuLmM6NDA2MAorICM2ICAweDAwMDAwMDAwMDA3NDZkN2QgaW4gaW5m ZXJpb3JfZXZlbnRfaGFuZGxlciAoZXZlbnRfdHlwZT1JTkZfUkVHX0VWRU5UKQorICAgICBhdCBn ZGIvaW5mLWxvb3AuYzo0MQorICM3ICAweDAwMDAwMDAwMDA3YTcwMmYgaW4gaGFuZGxlX3Rhcmdl dF9ldmVudCAoZXJyb3I9MCwgY2xpZW50X2RhdGE9MHgwKQorICAgICBhdCBnZGIvbGludXgtbmF0 LmM6NDIwNworICM4ICAweDAwMDAwMDAwMDBiOGNkNmUgaW4gZ2RiX3dhaXRfZm9yX2V2ZW50IChi bG9jaz1ibG9ja0BlbnRyeT0wKQorICAgICBhdCBnZGJzdXBwb3J0L2V2ZW50LWxvb3AuY2M6NzAx CisgIzkgIDB4MDAwMDAwMDAwMGI4ZDAzMiBpbiBnZGJfd2FpdF9mb3JfZXZlbnQgKGJsb2NrPTAp CisgICAgIGF0IGdkYnN1cHBvcnQvZXZlbnQtbG9vcC5jYzo1OTcKKyAjMTAgZ2RiX2RvX29uZV9l dmVudCAoKSBhdCBnZGJzdXBwb3J0L2V2ZW50LWxvb3AuY2M6MjEyCisgIzExIDB4MDAwMDAwMDAw MDlkMTliNiBpbiB3YWl0X3N5bmNfY29tbWFuZF9kb25lICgpCisgICAgIGF0IGdkYi90b3AuYzo1 MjgKKyAjMTIgMHgwMDAwMDAwMDAwOWQxYTNmIGluIG1heWJlX3dhaXRfc3luY19jb21tYW5kX2Rv bmUgKHdhc19zeW5jPTApCisgICAgIGF0IGdkYi90b3AuYzo1NDUKKyAjMTMgMHgwMDAwMDAwMDAw OWQyMDMzIGluIGV4ZWN1dGVfY29tbWFuZCAocD0weDdmZmZmZmZmY2IxOCAiIiwgZnJvbV90dHk9 MCkKKyAgICAgYXQgZ2RiL3RvcC5jOjY3NgorICMxNCAweDAwMDAwMDAwMDA1NjBkNWIgaW4gZXhl Y3V0ZV9jb250cm9sX2NvbW1hbmRfMSAoY21kPTB4MTNiOWJiMCwgZnJvbV90dHk9MCkKKyAgICAg YXQgZ2RiL2NsaS9jbGktc2NyaXB0LmM6NTQ3CisgIzE1IDB4MDAwMDAwMDAwMDU2MTM0YSBpbiBl eGVjdXRlX2NvbnRyb2xfY29tbWFuZCAoY21kPTB4MTNiOWJiMCwgZnJvbV90dHk9MCkKKyAgICAg YXQgZ2RiL2NsaS9jbGktc2NyaXB0LmM6NzE3CisgIzE2IDB4MDAwMDAwMDAwMDRjM2JiZSBpbiBi cHN0YXRfZG9fYWN0aW9uc18xIChic3A9MHgxMzdmNTMwKQorICAgICBhdCBnZGIvYnJlYWtwb2lu dC5jOjQ0NjkKKyAjMTcgMHgwMDAwMDAwMDAwNGMzZDQwIGluIGJwc3RhdF9kb19hY3Rpb25zICgp CisgICAgIGF0IGdkYi9icmVha3BvaW50LmM6NDUzMworICMxOCAweDAwMDAwMDAwMDA2YTQ3M2Eg aW4gY29tbWFuZF9oYW5kbGVyIChjb21tYW5kPTB4MTM5OWFkMCAicnVuIikKKyAgICAgYXQgZ2Ri L2V2ZW50LXRvcC5jOjYyNAorICMxOSAweDAwMDAwMDAwMDA5ZDE4MmUgaW4gcmVhZF9jb21tYW5k X2ZpbGUgKHN0cmVhbT0weDExM2U1NDApCisgICAgIGF0IGdkYi90b3AuYzo0NDMKKyAjMjAgMHgw MDAwMDAwMDAwNTYzNjk3IGluIHNjcmlwdF9mcm9tX2ZpbGUgKHN0cmVhbT0weDExM2U1NDAsIGZp bGU9MHgxM2JiMGIwICJkcC1idWcuZ2RiIikKKyAgICAgYXQgZ2RiL2NsaS9jbGktc2NyaXB0LmM6 MTY0MgorICMyMSAweDAwMDAwMDAwMDA2YWJkNjMgaW4gc291cmNlX2dkYl9zY3JpcHQgKGV4dGxh bmc9MHhjNDRlODAgPGV4dGVuc2lvbl9sYW5ndWFnZV9nZGI+LCBzdHJlYW09MHgxMTNlNTQwLAor ICAgICBmaWxlPTB4MTNiYjBiMCAiZHAtYnVnLmdkYiIpIGF0IGdkYi9leHRlbnNpb24uYzoxODgK KyAjMjIgMHgwMDAwMDAwMDAwNTQ0NDAwIGluIHNvdXJjZV9zY3JpcHRfZnJvbV9zdHJlYW0gKHN0 cmVhbT0weDExM2U1NDAsIGZpbGU9MHg3ZmZmZmZmZmQ5MWEgImRwLWJ1Zy5nZGIiLAorICAgICBm aWxlX3RvX29wZW49MHgxM2JiMGIwICJkcC1idWcuZ2RiIikKKyAgICAgYXQgZ2RiL2NsaS9jbGkt Y21kcy5jOjY5MgorICMyMyAweDAwMDAwMDAwMDA1NDQ1NTcgaW4gc291cmNlX3NjcmlwdF93aXRo X3NlYXJjaCAoZmlsZT0weDdmZmZmZmZmZDkxYSAiZHAtYnVnLmdkYiIsIGZyb21fdHR5PTEsIHNl YXJjaF9wYXRoPTApCisgICAgIGF0IGdkYi9jbGkvY2xpLWNtZHMuYzo3NTAKKyAjMjQgMHgwMDAw MDAwMDAwNTQ0NWNmIGluIHNvdXJjZV9zY3JpcHQgKGZpbGU9MHg3ZmZmZmZmZmQ5MWEgImRwLWJ1 Zy5nZGIiLCBmcm9tX3R0eT0xKQorICAgICBhdCBnZGIvY2xpL2NsaS1jbWRzLmM6NzU5CisgIzI1 IDB4MDAwMDAwMDAwMDdjZjZkOSBpbiBjYXRjaF9jb21tYW5kX2Vycm9ycyAoY29tbWFuZD0weDU0 NDVhYSA8c291cmNlX3NjcmlwdChjaGFyIGNvbnN0KiwgaW50KT4sCisgICAgIGFyZz0weDdmZmZm ZmZmZDkxYSAiZHAtYnVnLmdkYiIsIGZyb21fdHR5PTEsIGRvX2JwX2FjdGlvbnM9ZmFsc2UpCisg ICAgIGF0IGdkYi9tYWluLmM6NTIzCisgIzI2IDB4MDAwMDAwMDAwMDdjZjg1ZCBpbiBleGVjdXRl X2NtZGFyZ3MgKGNtZGFyZ192ZWM9MHg3ZmZmZmZmZmQxYjAsIGZpbGVfdHlwZT1DTURBUkdfRklM RSwgY21kX3R5cGU9Q01EQVJHX0NPTU1BTkQsCisgICAgIHJldD0weDdmZmZmZmZmZDE4YykgYXQg Z2RiL21haW4uYzo2MTUKKyAjMjcgMHgwMDAwMDAwMDAwN2QwYzhlIGluIGNhcHR1cmVkX21haW5f MSAoY29udGV4dD0weDdmZmZmZmZmZDNmMCkKKyAgICAgYXQgZ2RiL21haW4uYzoxMzIyCisgIzI4 IDB4MDAwMDAwMDAwMDdkMGViYSBpbiBjYXB0dXJlZF9tYWluIChkYXRhPTB4N2ZmZmZmZmZkM2Yw KQorICAgICBhdCBnZGIvbWFpbi5jOjEzNDMKKyAjMjkgMHgwMDAwMDAwMDAwN2QwZjI1IGluIGdk Yl9tYWluIChhcmdzPTB4N2ZmZmZmZmZkM2YwKQorICAgICBhdCBnZGIvbWFpbi5jOjEzNjgKKyAj MzAgMHgwMDAwMDAwMDAwNDE4NmRkIGluIG1haW4gKGFyZ2M9NSwgYXJndj0weDdmZmZmZmZmZDUw OCkKKyAgICAgYXQgZ2RiL2dkYi5jOjMyCisKK1RoZXJlIGFyZSB0d28gZnJhbWVzIGZvciBicHN0 YXRfZG9fYWN0aW9uc18xKCksIG9uZSBhdCBmcmFtZSAjMTYgYW5kCit0aGUgb3RoZXIgYXQgZnJh bWUgIzAuICBUaGUgb25lIGF0IGZyYW1lICMxNiBpcyBwcm9jZXNzaW5nIHRoZSBhY3Rpb25zCitm b3IgQnJlYWtwb2ludCAyLCB3aGljaCBpcyBhICdjb250aW51ZScuICBUaGUgb25lIGF0IGZyYW1l ICMwIGlzIGF0dGVtcHRpbmcKK3RvIHByb2Nlc3MgdGhlIGRwcmludGYgYnJlYWtwb2ludCBhY3Rp b24uICBIb3dldmVyLCBhdCB0aGlzIHBvaW50LAordGhlIHZhbHVlIG9mICdleGVjdXRpbmdfYnJl YWtwb2ludF9jb21tYW5kcycgaXMgMSwgZm9yY2luZyBhbiBlYXJseQorcmV0dXJuLCBpLmUuIHBy aW9yIHRvIGV4ZWN1dGluZyB0aGUgY29tbWFuZChzKSBhc3NvY2lhdGVkIHdpdGggdGhlIGRwcmlu dGYKK2JyZWFrcG9pbnQuCisKK0ZvciB0aGUgc2FrZSBvZiBjb21wYXJpc29uLCB0aGlzIGlzIHdo YXQgdGhlIHN0YWNrIGxvb2tzIGxpa2Ugd2hlbiBoaXR0aW5nCit0aGUgZHByaW50ZiBicmVha3Bv aW50IGZvciB0aGUgc2Vjb25kIHRpbWUgd2hlbiBpc3N1aW5nIHRoZSAncnVuJworY29tbWFuZCBm cm9tIHRoZSBHREIgcHJvbXB0LgorCitUaHJlYWQgMSAiZ2RiIiBoaXQgQnJlYWtwb2ludCAzLCBi cHN0YXRfZG9fYWN0aW9uc18xIChic3A9MHg3ZmZmZmZmZmNjZDgpCisgICAgYXQgL2lyb253b29k MS9zb3VyY2V3YXJlLWdpdC9mMzQtbWFzdGVyL2JsZC8uLi8uLi93b3JrdHJlZS1tYXN0ZXIvZ2Ri L2JyZWFrcG9pbnQuYzo0NDMxCis0NDMxCSAgaWYgKGV4ZWN1dGluZ19icmVha3BvaW50X2NvbW1h bmRzKQorCisgIzAgIGJwc3RhdF9kb19hY3Rpb25zXzEgKGJzcD0weDdmZmZmZmZmY2NkOCkKKyAg ICAgYXQgZ2RiL2JyZWFrcG9pbnQuYzo0NDMxCisgIzEgIDB4MDAwMDAwMDAwMDRkOGJjNiBpbiBk cHJpbnRmX2FmdGVyX2NvbmRpdGlvbl90cnVlIChicz0weDE2YjAyOTApCisgICAgIGF0IGdkYi9i cmVha3BvaW50LmM6MTMwNDgKKyAjMiAgMHgwMDAwMDAwMDAwNGM1Y2FhIGluIGJwc3RhdF9zdG9w X3N0YXR1cyAoYXNwYWNlPTB4MTE2ZGJjMCwgYnBfYWRkcj0weDQwMTE2ZSwgdGhyZWFkPTB4MTNm MGU2MCwgd3M9MHg3ZmZmZmZmZmQxMzgsCisgICAgIHN0b3BfY2hhaW49MHgxNmIwMjkwKSBhdCBn ZGIvYnJlYWtwb2ludC5jOjU0OTgKKyAjMyAgMHgwMDAwMDAwMDAwNzY4ZDk4IGluIGhhbmRsZV9z aWduYWxfc3RvcCAoZWNzPTB4N2ZmZmZmZmZkMTEwKQorICAgICBhdCBnZGIvaW5mcnVuLmM6NjE3 MgorICM0ICAweDAwMDAwMDAwMDA3Njc4ZDMgaW4gaGFuZGxlX2luZmVyaW9yX2V2ZW50IChlY3M9 MHg3ZmZmZmZmZmQxMTApCisgICAgIGF0IGdkYi9pbmZydW4uYzo1NjYyCisgIzUgIDB4MDAwMDAw MDAwMDc2M2NkNSBpbiBmZXRjaF9pbmZlcmlvcl9ldmVudCAoKQorICAgICBhdCBnZGIvaW5mcnVu LmM6NDA2MAorICM2ICAweDAwMDAwMDAwMDA3NDZkN2QgaW4gaW5mZXJpb3JfZXZlbnRfaGFuZGxl ciAoZXZlbnRfdHlwZT1JTkZfUkVHX0VWRU5UKQorICAgICBhdCBnZGIvaW5mLWxvb3AuYzo0MQor ICM3ICAweDAwMDAwMDAwMDA3YTcwMmYgaW4gaGFuZGxlX3RhcmdldF9ldmVudCAoZXJyb3I9MCwg Y2xpZW50X2RhdGE9MHgwKQorICAgICBhdCBnZGIvbGludXgtbmF0LmM6NDIwNworICM4ICAweDAw MDAwMDAwMDBiOGNkNmUgaW4gZ2RiX3dhaXRfZm9yX2V2ZW50IChibG9jaz1ibG9ja0BlbnRyeT0w KQorICAgICBhdCBnZGJzdXBwb3J0L2V2ZW50LWxvb3AuY2M6NzAxCisgIzkgIDB4MDAwMDAwMDAw MGI4ZDAzMiBpbiBnZGJfd2FpdF9mb3JfZXZlbnQgKGJsb2NrPTApCisgICAgIGF0IGdkYnN1cHBv cnQvZXZlbnQtbG9vcC5jYzo1OTcKKyAjMTAgZ2RiX2RvX29uZV9ldmVudCAoKSBhdCBnZGJzdXBw b3J0L2V2ZW50LWxvb3AuY2M6MjEyCisgIzExIDB4MDAwMDAwMDAwMDdjZjUxMiBpbiBzdGFydF9l dmVudF9sb29wICgpCisgICAgIGF0IGdkYi9tYWluLmM6NDIxCisgIzEyIDB4MDAwMDAwMDAwMDdj ZjYzMSBpbiBjYXB0dXJlZF9jb21tYW5kX2xvb3AgKCkKKyAgICAgYXQgZ2RiL21haW4uYzo0ODEK KyAjMTMgMHgwMDAwMDAwMDAwN2QwZWJmIGluIGNhcHR1cmVkX21haW4gKGRhdGE9MHg3ZmZmZmZm ZmQzZjApCisgICAgIGF0IGdkYi9tYWluLmM6MTM1MworICMxNCAweDAwMDAwMDAwMDA3ZDBmMjUg aW4gZ2RiX21haW4gKGFyZ3M9MHg3ZmZmZmZmZmQzZjApCisgICAgIGF0IGdkYi9tYWluLmM6MTM2 OAorICMxNSAweDAwMDAwMDAwMDA0MTg2ZGQgaW4gbWFpbiAoYXJnYz01LCBhcmd2PTB4N2ZmZmZm ZmZkNTA4KQorICAgICBhdCBnZGIvZ2RiLmM6MzIKKworVGhpcyByZWxhdGl2ZWx5IHNob3J0IGJh Y2t0cmFjZSBpcyBkdWUgdG8gdGhlIGN1cnJlbnQgVUkncyBhc3luYyBmaWVsZAorYmVpbmcgc2V0 IHRvIDEuCisKK1lldCBhbm90aGVyIHRoaW5nIHRvIGJlIGF3YXJlIG9mIHJlZ2FyZGluZyB0aGlz IHByb2JsZW0gaXMgdGhlCitkaWZmZXJlbmNlIGluIHRoZSB3YXkgdGhhdCBjb21tYW5kcyBhc3Nv Y2lhdGVkIHRvIGRwcmludGYgYnJlYWtwb2ludHMKK3ZlcnN1cyByZWd1bGFyIGJyZWFrcG9pbnRz IGFyZSBoYW5kbGVkLiAgV2hpbGUgdGhleSBib3RoIHVzZSBhIGNvbW1hbmQKK2xpc3QgYXNzb2Np YXRlZCB3aXRoIHRoZSBicmVha3BvaW50LCByZWd1bGFyIGJyZWFrcG9pbnRzIHdpbGwgcGxhY2UK K3RoZSBjb21tYW5kcyB0byBiZSBydW4gb24gdGhlIGJwc3RhdCBjaGFpbiBjb25zdHJ1Y3RlZCBp bgorYnBfc3RvcF9zdGF0dXMoKS4gIFRoZXNlIGNvbW1hbmRzIGFyZSBydW4gbGF0ZXIgb24uICBG b3IgZHByaW50ZgorYnJlYWtwb2ludHMsIGNvbW1hbmRzIGFyZSBydW4gdmlhIHRoZSAnYWZ0ZXJf Y29uZGl0aW9uX3RydWUnIGZ1bmN0aW9uCitwb2ludGVyIGRpcmVjdGx5IGZyb20gYnBzdGF0X3N0 b3Bfc3RhdHVzKCkuICAoVGhlICdjb21tYW5kcycgZmllbGQgaW4KK3RoZSBicHN0YXQgaXMgY2xl YXJlZCBpbiBkcHJpbnRmX2FmdGVyX2NvbmRpdGlvbl90cnVlKCkuICBUaGlzCitwcmV2ZW50cyB0 aGUgZHByaW50ZiBjb21tYW5kcyBmcm9tIGJlaW5nIHJ1biBhZ2FpbiBsYXRlciBvbiB3aGVuIG90 aGVyCitjb21tYW5kcyBvbiB0aGUgYnBzdGF0IGNoYWluIGFyZSBwcm9jZXNzZWQuKQorCitBbm90 aGVyIHRoaW5nIHRoYXQgSSBub3RpY2VkIGlzIHRoYXQgZHByaW50ZiBicmVha3BvaW50cyBhcmUg dGhlIG9ubHkKK3R5cGUgb2YgYnJlYWtwb2ludCB3aGljaCB1c2UgJ2FmdGVyX2NvbmRpdGlvbl90 cnVlJy4gIFRoaXMgc3VnZ2VzdHMKK3RoYXQgb25lIHBvc3NpYmxlIHdheSBvZiBmaXhpbmcgdGhp cyBwcm9ibGVtLCB0aGF0IG9mIG1ha2luZyBkcHJpbnRmCiticmVha3BvaW50cyB3b3JrIG1vcmUg bGlrZSByZWd1bGFyIGJyZWFrcG9pbnRzLCBwcm9iYWJseSB3b24ndCB3b3JrLgorKEkgbXVzdCBh ZG1pdCwgaG93ZXZlciwgdGhhdCBteSB1bmRlcnN0YW5kaW5nIG9mIHRoaXMgY29kZSBpc24ndAor Y29tcGxldGUgZW5vdWdoIHRvIHNheSB3aHkuICBJJ2xsIHRydXN0IHRoYXQgd2hvZXZlciBpbXBs ZW1lbnRlZCBpdAoraGFkIGEgZ29vZCByZWFzb24gZm9yIGRvaW5nIGl0IHRoaXMgd2F5LikKKwor VGhlIGNvbW1lbnQgcmVmZXJlbmNlZCBlYXJsaWVyIHJlZ2FyZGluZyAnZXhlY3V0aW5nX2JyZWFr cG9pbnRfY29tbWFuZHMnCitzdGF0ZXMgdGhhdCB0aGUgcmVhc29uIGZvciBjaGVja2luZyB0aGlz IHZhcmlhYmxlIGlzIHRvIGF2b2lkCitwb3RlbnRpYWwgZW5kbGVzcyByZWN1cnNpb24gd2hlbiBh ICdzb3VyY2UnIGNvbW1hbmQgYXBwZWFycyBpbgorYnMtPmNvbW1hbmRzLiAgV2Uga25vdyB0aGF0 IGEgZHByaW50ZiBjb21tYW5kIGlzIGNvbnN0cmFpbmVkIHRvIGVpdGhlcgorMSkgZXhlY3V0aW9u IG9mIGEgR0RCIHByaW50ZiBjb21tYW5kLCAyKSBhbiBpbmZlcmlvciBmdW5jdGlvbiBjYWxsIG9m CithIHByaW50Zi1saWtlIGZ1bmN0aW9uLCBvciAzKSBleGVjdXRpb24gb2YgYW4gYWdlbnQtcHJp bnRmIGNvbW1hbmQuCitUaGVyZWZvcmUsIGluZmluaXRlIHJlY3Vyc2lvbiBkdWUgdG8gYSAnc291 cmNlJyBjb21tYW5kIGNhbm5vdCBoYXBwZW4KK3doZW4gZXhlY3V0aW5nIGNvbW1hbmRzIHVwb24g aGl0dGluZyBhIGRwcmludGYgYnJlYWtwb2ludC4KKworSSBjaG9zZSB0byBmaXggdGhpcyBwcm9i bGVtIGJ5IGhhdmluZyBkcHJpbnRmX2FmdGVyX2NvbmRpdGlvbl90cnVlKCkKK2RpcmVjdGx5IGNh bGwgZXhlY3V0ZV9jb250cm9sX2NvbW1hbmRzKCkuICBUaGlzIG1lYW5zIHRoYXQgaXQgbm8KK2xv bmdlciBhdHRlbXB0cyB0byBnbyB0aHJvdWdoIGJwc3RhdF9kb19hY3Rpb25zXzEoKSBhdm9pZGlu ZyB0aGUKK2luZmluaXRlIHJlY3Vyc2lvbiBjaGVjayBmb3IgcG90ZW50aWFsICdzb3VyY2UnIGNv bW1hbmRzIG9uIHRoZQorY29tbWFuZCBjaGFpbi4gIEkgdGhpbmsgaXQgc2ltcGxpZmllcyB0aGlz IGNvZGUgYSBsaXR0bGUgYml0IHRvbywgYQorZGVmaW5pdGUgYm9udXMuCisKK1N1bW1hcnk6CisK KwkqIGJyZWFrcG9pbnQuYyAoZHByaW50Zl9hZnRlcl9jb25kaXRpb25fdHJ1ZSk6IERvbid0IGNh bGwKKwlicHN0YXRfZG9fYWN0aW9uc18xKCkuICBDYWxsIGV4ZWN1dGVfY29udHJvbF9jb21tYW5k cygpCisJaW5zdGVhZC4KKworZGlmZiAtLWdpdCBhL2dkYi9icmVha3BvaW50LmMgYi9nZGIvYnJl YWtwb2ludC5jCistLS0gYS9nZGIvYnJlYWtwb2ludC5jCisrKysgYi9nZGIvYnJlYWtwb2ludC5j CitAQCAtMTMwNDMsOSArMTMwNDMsNiBAQCBkcHJpbnRmX3ByaW50X3JlY3JlYXRlIChzdHJ1Y3Qg YnJlYWtwb2ludCAqdHAsIHN0cnVjdCB1aV9maWxlICpmcCkKKyBzdGF0aWMgdm9pZAorIGRwcmlu dGZfYWZ0ZXJfY29uZGl0aW9uX3RydWUgKHN0cnVjdCBicHN0YXRzICpicykKKyB7CistICBzdHJ1 Y3QgYnBzdGF0cyB0bXBfYnM7CistICBzdHJ1Y3QgYnBzdGF0cyAqdG1wX2JzX3AgPSAmdG1wX2Jz OworLQorICAgLyogZHByaW50ZidzIG5ldmVyIGNhdXNlIGEgc3RvcC4gIFRoaXMgd2Fzbid0IHNl dCBpbiB0aGUKKyAgICAgIGNoZWNrX3N0YXR1cyBob29rIGluc3RlYWQgYmVjYXVzZSB0aGF0IHdv dWxkIG1ha2UgdGhlIGRwcmludGYncworICAgICAgY29uZGl0aW9uIG5vdCBiZSBldmFsdWF0ZWQu ICAqLworQEAgLTEzMDU2LDE0ICsxMzA1Myw5IEBAIGRwcmludGZfYWZ0ZXJfY29uZGl0aW9uX3Ry dWUgKHN0cnVjdCBicHN0YXRzICpicykKKyAgICAgIGJwc3RhdF9kb19hY3Rpb25zLCBpZiBhIGJy ZWFrcG9pbnQgdGhhdCBjYXVzZXMgYSBzdG9wIGhhcHBlbnMgdG8KKyAgICAgIGJlIHNldCBhdCBz YW1lIGFkZHJlc3MgYXMgdGhpcyBkcHJpbnRmLCBvciBldmVuIGlmIHJ1bm5pbmcgdGhlCisgICAg ICBjb21tYW5kcyBoZXJlIHRocm93cy4gICovCistICB0bXBfYnMuY29tbWFuZHMgPSBicy0+Y29t bWFuZHM7CistICBicy0+Y29tbWFuZHMgPSBOVUxMOworLQorLSAgYnBzdGF0X2RvX2FjdGlvbnNf MSAoJnRtcF9ic19wKTsKKy0KKy0gIC8qICd0bXBfYnMuY29tbWFuZHMnIHdpbGwgdXN1YWxseSBi ZSBOVUxMIGJ5IG5vdywgYnV0CistICAgICBicHN0YXRfZG9fYWN0aW9uc18xIG1heSByZXR1cm4g ZWFybHkgd2l0aG91dCBwcm9jZXNzaW5nIHRoZSB3aG9sZQorLSAgICAgbGlzdC4gICovCisrICBj b3VudGVkX2NvbW1hbmRfbGluZSBjbWRzID0gc3RkOjptb3ZlIChicy0+Y29tbWFuZHMpOworKyAg Z2RiX2Fzc2VydCAoY21kcyAhPSBudWxscHRyKTsKKysgIGV4ZWN1dGVfY29udHJvbF9jb21tYW5k cyAoY21kcy5nZXQgKCksIDApOworIH0KKyAKKyAvKiBUaGUgYnJlYWtwb2ludF9vcHMgc3RydWN0 dXJlIHRvIGJlIHVzZWQgb24gc3RhdGljIHRyYWNlcG9pbnRzIHdpdGgKCmRpZmYgLS1naXQgYS9n ZGItcmhiejIwMjIxNzctZHByaW50Zi0yLnBhdGNoIGIvZ2RiLXJoYnoyMDIyMTc3LWRwcmludGYt Mi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NGJjZDg3Ci0tLSAv ZGV2L251bGwKKysrIGIvZ2RiLXJoYnoyMDIyMTc3LWRwcmludGYtMi5wYXRjaApAQCAtMCwwICsx LDE5NCBAQAorRnJvbSBGRURPUkFfUEFUQ0hFUyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IEtldmluIEJ1ZXR0bmVyIDxrZXZpbmJAcmVkaGF0LmNvbT4KK0RhdGU6IFdlZCwgMTAgTm92 IDIwMjEgMTg6NTU6NDMgLTA3MDAKK1N1YmplY3Q6IGdkYi1yaGJ6MjAyMjE3Ny1kcHJpbnRmLTIu cGF0Y2gKKworOzsgQmFja3BvcnQgdGVzdCBjYXNlIGZvciBkcHJpbnRmIGJ1ZyAoUkggQlogMjAy MjE3NykuCisKK1Rlc3QgY2FzZSBmb3IgQnVnIDI4MzA4CisKK1RoZSBwdXJwb3NlIG9mIHRoaXMg dGVzdCBpcyBkZXNjcmliZWQgaW4gdGhlIGNvbW1lbnRzIGluCitkcHJpbnRmLWV4ZWN1dGlvbi14 LXNjcmlwdC5leHAuCisKK0J1ZzogaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9idWd6aWxsYS9zaG93 X2J1Zy5jZ2k/aWQ9MjgzMDgKKworVGhlIG5hbWUgb2YgdGhpcyBuZXcgdGVzdCB3YXMgYmFzZWQg b24gdGhhdCBvZiBhbiBleGlzdGluZyB0ZXN0LAorYnAtY21kcy1leGVjdXRpb24teC1zY3JpcHQu ZXhwLiAgSSBzdGFydGVkIG9mZiBieSBjb3B5aW5nIHRoYXQgdGVzdCwKK2FkZGluZyB0byBpdCwg YW5kIHRoZW4gcmV3cml0aW5nIGFsbW9zdCBhbGwgb2YgaXQuICBJdCdzIGRpZmZlcmVudAorZW5v dWdoIHRoYXQgSSBkZWNpZGVkIHRoYXQgbGlzdGluZyB0aGUgY29weXJpZ2h0IHllYXIgYXMgMjAy MQord2FzIHN1ZmZpY2llbnQuCisKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNl L2RwcmludGYtZXhlY3V0aW9uLXgtc2NyaXB0LmMgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2Rw cmludGYtZXhlY3V0aW9uLXgtc2NyaXB0LmMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rl di9udWxsCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2RwcmludGYtZXhlY3V0aW9uLXgt c2NyaXB0LmMKK0BAIC0wLDAgKzEsNTMgQEAKKysvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2Yg R0RCLCB0aGUgR05VIGRlYnVnZ2VyLgorKworKyAgIENvcHlyaWdodCAyMDIxIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrICAgaXQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkK KysgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRo ZSBMaWNlbnNlLCBvcgorKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisr CisrICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrICAgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2 ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyAgIGFsb25nIHdp dGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNl cy8+LiAgKi8KKysKKysjaW5jbHVkZSA8c3RkbGliLmg+CisrI2luY2x1ZGUgPHN0ZGlvLmg+Cisr Cisrdm9sYXRpbGUgaW50IHZpID0gMDsKKysKKyt2b2lkCisraW5jX3ZpICgpCisreworKyAgdmkr KzsKKyt9CisrCisrdm9pZAorK3ByaW50X3ZpICgpCisreworKyAgcHJpbnRmICgidmk9JWRcbiIs IHZpKTsKKyt9CisrCisrdm9pZAorK2luY3JlbWVudCAoKQorK3sKKysgIGluY192aSAoKTsKKyt9 CisrCisraW50CisrbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQorK3sKKysgIHByaW50X3Zp ICgpOworKyAgaW5jcmVtZW50ICgpOworKyAgcHJpbnRfdmkgKCk7CisrICBpbmNyZW1lbnQgKCk7 CisrICBwcmludF92aSAoKTsKKysgIGluY3JlbWVudCAoKTsKKysgIHByaW50X3ZpICgpOworKwor KyAgZXhpdCAoMCk7CisrfQorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZHBy aW50Zi1leGVjdXRpb24teC1zY3JpcHQuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9kcHJp bnRmLWV4ZWN1dGlvbi14LXNjcmlwdC5leHAKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rl di9udWxsCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2RwcmludGYtZXhlY3V0aW9uLXgt c2NyaXB0LmV4cAorQEAgLTAsMCArMSw4NSBAQAorKyMgQ29weXJpZ2h0IDIwMjEgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkK KysjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhl IExpY2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMK KysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhp cyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAg Ki8KKysKKysjIFRlc3QgdGhhdCBjb21tYW5kcyBpbiBhIEdEQiBzY3JpcHQgZmlsZSBydW4gdmlh IEdEQidzIC14IGZsYWcgd29yaworKyMgYXMgZXhwZWN0ZWQuICBTcGVjaWZpY2FsbHksIHRoZSBz Y3JpcHQgY3JlYXRlcyBhIGRwcmludGYgYnJlYWtwb2ludAorKyMgYXMgd2VsbCBhcyBhIG5vcm1h bCBicmVha3BvaW50IHRoYXQgaGFzICJjb250aW51ZSIgaW4gaXRzIGNvbW1hbmQKKysjIGxpc3Qs IGFuZCB0aGVuIGRvZXMgInJ1biIuICBDb3JyZWN0IG91dHB1dCBmcm9tIEdEQiBpcyBjaGVja2Vk IGFzCisrIyBwYXJ0IG9mIHRoaXMgdGVzdC4KKysKKysjIEJhaWwgb3V0IGlmIHRoZSB0YXJnZXQg Y2FuJ3QgdXNlIHRoZSAncnVuJyBjb21tYW5kLgorK2lmICFbdGFyZ2V0X2Nhbl91c2VfcnVuX2Nt ZF0geworKyAgICByZXR1cm4gMAorK30KKysKKytzdGFuZGFyZF90ZXN0ZmlsZQorKworK2lmIHtb YnVpbGRfZXhlY3V0YWJsZSAiZmFpbGVkIHRvIHByZXBhcmUiICR0ZXN0ZmlsZSAkc3JjZmlsZSBk ZWJ1Z119IHsKKysgICAgcmV0dXJuIC0xCisrfQorKworKyMgVGhpcyBpcyB0aGUgbmFtZSBvZiB0 aGUgR0RCIHNjcmlwdCB0byBsb2FkLgorK3NldCB4X2ZpbGUgJHtzcmNkaXJ9LyR7c3ViZGlyfS8k dGVzdGZpbGUuZ2RiCisrCisrIyBDcmVhdGUgY29udGV4dCBpbiB3aGljaCB0aGUgZ2xvYmFsLCBH REJGTEFHUywgd2lsbCBiZSByZXN0b3JlZCBhdAorKyMgdGhlIGVuZCBvZiB0aGUgYmxvY2suICBB bGwgY29tbWFuZHMgcnVuIHdpdGhpbiB0aGUgYmxvY2sgYXJlCisrIyBhY3R1YWxseSBydW4gaW4g dGhlIG91dGVyIGNvbnRleHQuICAoVGhpcyBpcyB3aHkgJ3JlcycgaXMgYXZhaWxhYmxlCisrIyBv dXRzaWRlIG9mIHRoZSBzYXZlX3ZhcnMgYmxvY2suKQorK3NhdmVfdmFycyB7IEdEQkZMQUdTIH0g eworKyAgICAjIFNldCBmbGFncyB3aXRoIHdoaWNoIHRvIHN0YXJ0IEdEQi4KKysgICAgYXBwZW5k IEdEQkZMQUdTICIgLWV4IFwic2V0IGhlaWdodCB1bmxpbWl0ZWRcIiIKKysgICAgYXBwZW5kIEdE QkZMQUdTICIgLXggXCIkeF9maWxlXCIiCisrICAgIGFwcGVuZCBHREJGTEFHUyAiIC0tYXJncyBc IiRiaW5maWxlXCIiCisrCisrICAgICMgU3RhcnQgR0RCIHdpdGggYWJvdmUgZmxhZ3MuCisrICAg IHNldCByZXMgW2dkYl9zcGF3bl0KKyt9CisrCisrc2V0IHRlc3QgImxvYWQgYW5kIHJ1biBzY3Jp cHQgd2l0aCAteCIKKytpZiB7ICRyZXMgIT0gMH0geworKyAgICBmYWlsICR0ZXN0CisrICAgIHJl dHVybiAtMQorK30KKysKKysjIFRoZSBzY3JpcHQgbG9hZGVkIHZpYSAteCBjb250YWlucyBhIHJ1 biBjb21tYW5kOyB3aGlsZSBydW5uaW5nLCBHREIKKysjIGlzIGV4cGVjdGVkIHRvIHByaW50IHRo cmVlIG1lc3NhZ2VzIGZyb20gZHByaW50ZiBicmVha3BvaW50cyBhbG9uZworKyMgd2l0aCB0aHJl ZSBpbnRlcnNwZXJzZWQgbWVzc2FnZXMgZnJvbSBhbiBvcmRpbmFyeSBicmVha3BvaW50ICh3aGlj aAorKyMgd2FzIHNldCB1cCB3aXRoIGEgY29udGludWUgY29tbWFuZCkuICBTZXQgdXAgcGF0dGVy biBEIHRvIG1hdGNoCisrIyBvdXRwdXQgZnJvbSBoaXR0aW5nIHRoZSBkcHJpbnRmIGJyZWFrcG9p bnQgYW5kIEIgZm9yIHRoZSBvcmRpbmFyeQorKyMgYnJlYWtwb2ludC4gIFRoZW4gc2V0IFBBVCB0 byBjb250YWluIHRoZSBlbnRpcmUgcGF0dGVybiBvZiBleHBlY3RlZAorKyMgb3V0cHV0IGZyb20g dGhlIGludGVyc3BlcnNlZCBkcHJpbnRmIGFuZCBvcmRpbmFyeSBicmVha3BvaW50cyBhbG9uZwor KyMgd2l0aCBzb21lIChhZGRpdGlvbmFsKSBleHBlY3RlZCBvdXRwdXQgZnJvbSB0aGUgZHByaW50 ZiBicmVha3BvaW50cywKKysjIGkuZS4gMCwgMSwgYW5kIDIuCisrc2V0IGQgImRwcmludGYgaW4g aW5jcmVtZW50Li4sIHZpPSIKKytzZXQgYiAiQnJlYWtwb2ludCAuLCBpbmNfdmkiCisrc2V0IHBh dCAiJHtkfTAuKj8kYi4qPyR7ZH0xLio/JGIuKj8ke2R9Mi4qPyRiLio/IgorKworK3Byb2MgZG9f dGVzdCB7Y21kIHRlc3R9IHsKKysgICAgZ2RiX3Rlc3QgJGNtZCAiJDo6cGF0JDo6aW5mZXJpb3Jf ZXhpdGVkX3JlIG5vcm1hbGx5LioiICR0ZXN0CisrfQorKworKyMgQ2hlY2sgb3V0cHV0IGZyb20g cnVubmluZyBzY3JpcHQgd2l0aCAteAorK2RvX3Rlc3QgIiIgJHRlc3QKKysKKysjIFJlc3RhcnQg R0RCIGFuZCAnc291cmNlJyB0aGUgc2NyaXB0OyB0aGlzIHdpbGwgKHN0aWxsKSBydW4gdGhlIHBy b2dyYW0KKysjIGR1ZSB0byB0aGUgJ3J1bicgY29tbWFuZCBpbiB0aGUgc2NyaXB0LgorK2NsZWFu X3Jlc3RhcnQgJGJpbmZpbGUKKytkb190ZXN0ICJzb3VyY2UgJHhfZmlsZSIgImxvYWQgYW5kIHJ1 biBzY3JpcHQgdXNpbmcgc291cmNlIGNvbW1hbmQiCisrCisrIyBUaGlzIHNob3VsZCBsZWF2ZSB1 cyBhdCB0aGUgZ2RiIHByb21wdDsgUnVuIHByb2dyYW0gYWdhaW4gdXNpbmcKKysjIGFscmVhZHkg ZXN0YWJsaXNoZWQgYnJlYWtwb2ludHMsIGkuZS4gdGhvc2UgbG9hZGVkIGZyb20gdGhlCisrIyBz Y3JpcHQuICBQcmlvciB0byBmaXhpbmcgUFIgMjgzMDgsIHRoaXMgd2FzIHRoZSBvbmx5IHRlc3Qg dGhhdAorKyMgd291bGQgcGFzcy4KKytkb190ZXN0ICJydW4iICJydW4gYWdhaW4iCitkaWZmIC0t Z2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9kcHJpbnRmLWV4ZWN1dGlvbi14LXNjcmlwdC5n ZGIgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2RwcmludGYtZXhlY3V0aW9uLXgtc2NyaXB0Lmdk YgorbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2UvZHByaW50Zi1leGVjdXRpb24teC1zY3JpcHQuZ2RiCitAQCAtMCwwICsxLDIx IEBACisrIyBDb3B5cmlnaHQgMjAyMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysK KysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9V VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMg TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysj CisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8 aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworK2RwcmludGYgaW5jcmVtZW50 LCAiZHByaW50ZiBpbiBpbmNyZW1lbnQoKSwgdmk9JWRcbiIsIHZpCisrYnJlYWsgaW5jX3ZpCisr Y29tbWFuZHMKKysgIGNvbnRpbnVlCisrZW5kCisrcnVuCgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYnoy MDI0ODctcmV3b3JrLXNldC1kZWJ1Z2luZm9kLnBhdGNoIGIvZ2RiLXJoYnoyMDI0ODctcmV3b3Jr LXNldC1kZWJ1Z2luZm9kLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmE2YjliYzQKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItcmhiejIwMjQ4Ny1yZXdvcmstc2V0LWRl YnVnaW5mb2QucGF0Y2gKQEAgLTAsMCArMSw0NzYgQEAKK0Zyb20gRkVET1JBX1BBVENIRVMgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/QWxleGFuZHJhPTIwSD1DMz1B MWprb3Y9QzM9QTE/PSA8YWhhamtvdmFAcmVkaGF0LmNvbT4KK0RhdGU6IFR1ZSwgMTEgSmFuIDIw MjIgMTI6NDY6MDUgKzAxMDAKK1N1YmplY3Q6IGdkYi1yaGJ6MjAyNDg3LXJld29yay1zZXQtZGVi dWdpbmZvZC5wYXRjaAorCis7O0JhY2twb3J0IHVwc3RyZWFtIGNvbW1pdCBmcm9tICBTaW1vbiBN YXJjaGkKKzs7MzMzZjM1YjYzMTUgZ2RiOiBwYXNzL3JldHVybiBzZXR0aW5nIHNldHRlci9nZXR0 ZXIKKzs7c2NhbGFyIHZhbHVlcyBieSB2YWx1ZQorCitnZGI6IHJld29yayAic2V0IGRlYnVnaW5m b2QiIGNvbW1hbmRzCisKK0FzIGRpc2N1c3NlZCBoZXJlIFsxXSwgZG8gc29tZSByZS13b3JrIGlu IHRoZSAic2V0IGRlYnVnaW5mb2QgY29tbWFuZHMiLgorCitGaXJzdCwgdXNlICJzZXQgZGVidWdp bmZvZCBlbmFibGVkIG9uL29mZi9hc2siIGluc3RlYWQgb2YgInNldAorZGVidWdpbmZvZCBvbi9v ZmYvYXNrIi4gIFRoaXMgaXMgbW9yZSBNSS1mcmllbmRseSwgYW5kIGl0IGdpdmVzIGFuCitvdXRw dXQgdGhhdCBtYWtlcyBtb3JlIHNlbnNlIGluICJpbmZvIHNldCIsIGZvciBleGFtcGxlLgorCitU aGVuLCBtYWtlIHRoZSBzaG93IGNvbW1hbmRzIG5vdCBjYWxsICJlcnJvciIgd2hlbiBkZWJ1Z2lu Zm9kIHN1cHBvcnQgaXMKK25vdCBjb21waWxlZCBpbi4gIFRoaXMgbWFrZXMgdGhlIGNvbW1hbmRz ICJzaG93IiBhbmQgInNob3cgZGVidWdpbmZvZCIKK3N0b3AgZWFybHksIGJyZWFraW5nIGdkYi5i YXNlL2RlZmF1bHQuZXhwOgorCisgICAgUnVubmluZyAvaG9tZS9zbWFyY2hpL3NyYy9iaW51dGls cy1nZGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9kZWZhdWx0LmV4cCAuLi4KKyAgICBGQUlMOiBn ZGIuYmFzZS9kZWZhdWx0LmV4cDogaW5mbyBzZXQKKyAgICBGQUlMOiBnZGIuYmFzZS9kZWZhdWx0 LmV4cDogc2hvdworCisgLSBNYWtlIHRoZSAiZGVidWdpbmZvZCBlbmFibGVkIiBzZXR0aW5nIGRl ZmF1bHQgdG8gIm9mZiIgd2hlbiBkZWJ1Z2luZm9kCisgICBzdXBwb3J0IGlzIG5vdCBjb21waWxl ZCBpbiwgYW5kICJhc2siIG90aGVyd2lzZS4KKyAtIE1ha2UgdGhlIHNldHRlciBvZiAiZGVidWdp bmZvZCBlbmFibGVkIiBlcnJvciBvdXQgd2hlbiBkZWJ1Z2luZm9kCisgICBzdXBwb3J0IGlzIG5v dCBjb21waWxlZCBpbiwgc28gdGhhdCAiZGVidWdpbmZvZCBlbmFibGVkIiB3aWxsIGFsd2F5cwor ICAgcmVtYWluICJvZmYiIGluIHRoYXQgY2FzZS4KKyAtIE1ha2UgdGhlIHNldHRlciBvZiAiZGVi dWdpbmZvZCB2ZXJib3NlIiB3b3JrIGluIGFueSBjYXNlLiAgSSBkb24ndAorICAgc2VlIHRoZSBo YXJtIGluIGxldHRpbmcgdGhlIHVzZXIgY2hhbmdlIHRoYXQgc2V0dGluZywgc2luY2UgdGhlIHVz ZXIgd2lsbAorICAgaGl0IGFuIGVycm9yIGlmIHRoZXkgdHJ5IHRvIGVuYWJsZSB0aGUgdXNlIG9m IGRlYnVnaW5mb2QuCisgLSBJIHdvdWxkIGRvIHRoZSBzYW1lIGZvciB0aGUgImRlYnVnaW5mb2Qg dXJscyIgc2V0dGVyLCBidXQgYmVjYXVzZQorICAgdGhpcyBvbmUgbmVlZHMgdG8gc2VlIHRoZSBE RUJVR0lORk9EX1VSTFNfRU5WX1ZBUiBtYWNybywgcHJvdmlkZWQgYnkKKyAgIGxpYmRlYnVnaW5m b2QsIEkgbWFkZSB0aGF0IG9uZSBlcnJvciBvdXQgYXMgd2VsbCBpZiBkZWJ1Z2luZm9kCisgICBz dXBwb3J0IGlzIG5vdCBjb21waWxlZCBpdCAob3RoZXJ3aXNlLCBJIHdvdWxkIGhhdmUgbGVmdCBp dCBsaWtlCisgICAiZGVidWdpbmZvZCB2ZXJib3NlIi4gIEFsdGVybmF0aXZlbHksIHdlIGNvdWxk IGhhcmQtY29kZQorICAgIkRFQlVHSU5GT0RfVVJMUyIgaW4gdGhlIGNvZGUgKGluIGZhY3QsIGl0 IHdhcyBwcmlvciB0byB0aGlzIHBhdGNoLAorICAgYnV0IEkgdGhpbmsgaXQgd2FzIGFuIG92ZXJz aWdodCwgYXMgb3RoZXIgc3BvdHMgdXNlCisgICBERUJVR0lORk9EX1VSTFNfRU5WX1ZBUiksIG9y IHVzZSBhIGR1bW15IHN0cmluZyB0byBzdG9yZSB0aGUgc2V0dGluZywKKyAgIGJ1dCBJIGRvbid0 IHJlYWxseSBzZWUgdGhlIHZhbHVlIGluIHRoYXQuCisKK1JlbmFtZSBkZWJ1Z2luZm9kX2VuYWJs ZSB0byBkZWJ1Z2luZm9kX2VuYWJsZWQsIGp1c3Qgc28gaXQgbWF0Y2hlcyB0aGUKK3NldHRpbmcg bmFtZS4KKworWzFdIGh0dHBzOi8vc291cmNld2FyZS5vcmcvcGlwZXJtYWlsL2dkYi1wYXRjaGVz LzIwMjEtT2N0b2Jlci8xODI5MzcuaHRtbAorCitDaGFuZ2UtSWQ6IEk0NWZkYjI5OTNmNjY4MjI2 YTU2MzkyMjg5NTEzNjJiNzgwMGYwOWQ1CitDby1BdXRob3JlZC1CeTogQWFyb24gTWVyZXkgPGFt ZXJleUByZWRoYXQuY29tPgorCitkaWZmIC0tZ2l0IGEvZ2RiL2RlYnVnaW5mb2Qtc3VwcG9ydC5j IGIvZ2RiL2RlYnVnaW5mb2Qtc3VwcG9ydC5jCistLS0gYS9nZGIvZGVidWdpbmZvZC1zdXBwb3J0 LmMKKysrKyBiL2dkYi9kZWJ1Z2luZm9kLXN1cHBvcnQuYworQEAgLTMyLDggKzMyLDIyIEBAIHN0 YXRpYyBjb25zdCBjaGFyIGRlYnVnaW5mb2Rfb25bXSA9ICJvbiI7Cisgc3RhdGljIGNvbnN0IGNo YXIgZGVidWdpbmZvZF9vZmZbXSA9ICJvZmYiOworIHN0YXRpYyBjb25zdCBjaGFyIGRlYnVnaW5m b2RfYXNrW10gPSAiYXNrIjsKKyAKKy1zdGF0aWMgY29uc3QgY2hhciAqZGVidWdpbmZvZF9lbmFi bGUgPSBkZWJ1Z2luZm9kX2FzazsKKy1zdGF0aWMgdW5zaWduZWQgZGVidWdpbmZvZF92ZXJib3Nl ID0gMTsKKytzdGF0aWMgY29uc3QgY2hhciAqZGVidWdpbmZvZF9lbmFibGVkX2VudW1bXSA9Cisr eworKyAgZGVidWdpbmZvZF9vbiwKKysgIGRlYnVnaW5mb2Rfb2ZmLAorKyAgZGVidWdpbmZvZF9h c2ssCisrICBudWxscHRyCisrfTsKKysKKytzdGF0aWMgY29uc3QgY2hhciAqZGVidWdpbmZvZF9l bmFibGVkID0KKysjaWYgZGVmaW5lZChIQVZFX0xJQkRFQlVHSU5GT0QpCisrICBkZWJ1Z2luZm9k X2FzazsKKysjZWxzZQorKyAgZGVidWdpbmZvZF9vZmY7CisrI2VuZGlmCisrCisrc3RhdGljIHVu c2lnbmVkIGludCBkZWJ1Z2luZm9kX3ZlcmJvc2UgPSAxOworIAorIC8qIFRoaXMgaXMgbmV2ZXIg YWN0dWFsbHkgdXNlZC4gIFVSTHMgYXJlIGFsd2F5cyBwdWxsZWQgZnJvbSB0aGUKKyAgICBlbnZp cm9ubWVudC4gICovCitAQCAtNjAsNjQgKzc0LDYgQEAgZGVidWdpbmZvZF9kZWJ1Z2luZm9fcXVl cnkgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1aWxkX2lkLAorIAorICNkZWZpbmUgTk9fSU1QTCBf KCJTdXBwb3J0IGZvciBkZWJ1Z2luZm9kIGlzIG5vdCBjb21waWxlZCBpbnRvIEdEQi4iKQorIAor LS8qIFN0dWIgc2V0L3Nob3cgY29tbWFuZHMgdGhhdCBpbmRpY2F0ZSBkZWJ1Z2luZm9kIGlzIG5v dCBzdXBwb3J0ZWQuICAqLworLQorLXN0YXRpYyB2b2lkCistc2V0X2RlYnVnaW5mb2Rfb25fY29t bWFuZCAoY29uc3QgY2hhciAqYXJncywgaW50IGZyb21fdHR5KQorLXsKKy0gIGVycm9yIChOT19J TVBMKTsKKy0gIGRlYnVnaW5mb2RfZW5hYmxlID0gZGVidWdpbmZvZF9vZmY7CistfQorLQorLXN0 YXRpYyB2b2lkCistc2V0X2RlYnVnaW5mb2Rfb2ZmX2NvbW1hbmQgKGNvbnN0IGNoYXIgKmFyZ3Ms IGludCBmcm9tX3R0eSkKKy17CistICBlcnJvciAoTk9fSU1QTCk7CistICBkZWJ1Z2luZm9kX2Vu YWJsZSA9IGRlYnVnaW5mb2Rfb2ZmOworLX0KKy0KKy1zdGF0aWMgdm9pZAorLXNldF9kZWJ1Z2lu Zm9kX2Fza19jb21tYW5kIChjb25zdCBjaGFyICphcmdzLCBpbnQgZnJvbV90dHkpCisteworLSAg ZXJyb3IgKE5PX0lNUEwpOworLSAgZGVidWdpbmZvZF9lbmFibGUgPSBkZWJ1Z2luZm9kX29mZjsK Ky19CistCistc3RhdGljIHZvaWQKKy1zaG93X2RlYnVnaW5mb2Rfc3RhdHVzX2NvbW1hbmQgKGNv bnN0IGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKKy17CistICBlcnJvciAoTk9fSU1QTCk7Cist fQorLQorLXN0YXRpYyB2b2lkCistc2V0X2RlYnVnaW5mb2RfdXJsc19jb21tYW5kIChjb25zdCBj aGFyICppZ25vcmUsIGludCBmcm9tX3R0eSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICpjKQorLXsKKy0gIGVycm9yIChOT19JTVBMKTsKKy19 CistCistc3RhdGljIHZvaWQKKy1zaG93X2RlYnVnaW5mb2RfdXJsc19jb21tYW5kIChzdHJ1Y3Qg dWlfZmlsZSAqZmlsZSwgaW50IGZyb21fdHR5LAorLQkJCSAgICAgIHN0cnVjdCBjbWRfbGlzdF9l bGVtZW50ICpjbWQsIGNvbnN0IGNoYXIgKnZhbHVlKQorLXsKKy0gIGVycm9yIChOT19JTVBMKTsK Ky19CistCistc3RhdGljIHZvaWQKKy1zZXRfZGVidWdpbmZvZF92ZXJib3NlX2NvbW1hbmQgKGNv bnN0IGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSwKKy0JCQkJc3RydWN0IGNtZF9saXN0X2VsZW1l bnQgKmMpCisteworLSAgZXJyb3IgKE5PX0lNUEwpOworLSAgZGVidWdpbmZvZF92ZXJib3NlID0g MDsKKy19CistCistc3RhdGljIHZvaWQKKy1zaG93X2RlYnVnaW5mb2RfdmVyYm9zZV9jb21tYW5k IChzdHJ1Y3QgdWlfZmlsZSAqZmlsZSwgaW50IGZyb21fdHR5LAorLQkJCQkgc3RydWN0IGNtZF9s aXN0X2VsZW1lbnQgKmNtZCwKKy0JCQkJIGNvbnN0IGNoYXIgKnZhbHVlKQorLXsKKy0gIGVycm9y IChOT19JTVBMKTsKKy19CisgI2Vsc2UKKyAjaW5jbHVkZSA8ZWxmdXRpbHMvZGVidWdpbmZvZC5o PgorIAorQEAgLTE0NSw4MiArMTAxLDYgQEAgc3RydWN0IGRlYnVnaW5mb2RfY2xpZW50X2RlbGV0 ZXIKKyB1c2luZyBkZWJ1Z2luZm9kX2NsaWVudF91cAorICAgPSBzdGQ6OnVuaXF1ZV9wdHI8ZGVi dWdpbmZvZF9jbGllbnQsIGRlYnVnaW5mb2RfY2xpZW50X2RlbGV0ZXI+OworIAorLS8qIEVuYWJs ZSBkZWJ1Z2luZm9kLiAgKi8KKy0KKy1zdGF0aWMgdm9pZAorLXNldF9kZWJ1Z2luZm9kX29uX2Nv bW1hbmQgKGNvbnN0IGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKKy17CistICBkZWJ1Z2luZm9k X2VuYWJsZSA9IGRlYnVnaW5mb2Rfb247CistfQorLQorLS8qIERpc2FibGUgZGVidWdpbmZvZC4g ICovCistCistc3RhdGljIHZvaWQKKy1zZXRfZGVidWdpbmZvZF9vZmZfY29tbWFuZCAoY29uc3Qg Y2hhciAqYXJncywgaW50IGZyb21fdHR5KQorLXsKKy0gIGRlYnVnaW5mb2RfZW5hYmxlID0gZGVi dWdpbmZvZF9vZmY7CistfQorLQorLS8qIEJlZm9yZSBuZXh0IHF1ZXJ5LCBhc2sgdXNlciB3aGV0 aGVyIHRvIGVuYWJsZSBkZWJ1Z2luZm9kLiAgKi8KKy0KKy1zdGF0aWMgdm9pZAorLXNldF9kZWJ1 Z2luZm9kX2Fza19jb21tYW5kIChjb25zdCBjaGFyICphcmdzLCBpbnQgZnJvbV90dHkpCistewor LSAgZGVidWdpbmZvZF9lbmFibGUgPSBkZWJ1Z2luZm9kX2FzazsKKy19CistCistLyogU2hvdyB3 aGV0aGVyIGRlYnVnaW5mb2QgaXMgZW5hYmxlZC4gICovCistCistc3RhdGljIHZvaWQKKy1zaG93 X2RlYnVnaW5mb2Rfc3RhdHVzX2NvbW1hbmQgKGNvbnN0IGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0 eSkKKy17CistICBwcmludGZfdW5maWx0ZXJlZCAoXygiRGVidWdpbmZvZCBmdW5jdGlvbmFsaXR5 IGlzIGN1cnJlbnRseSBzZXQgdG8gIiBcCistCQkgICAgICJcIiVzXCIuXG4iKSwgZGVidWdpbmZv ZF9lbmFibGUpOworLX0KKy0KKy0vKiBTZXQgdGhlIFVSTHMgdGhhdCBkZWJ1Z2luZm9kIHdpbGwg cXVlcnkuICAqLworLQorLXN0YXRpYyB2b2lkCistc2V0X2RlYnVnaW5mb2RfdXJsc19jb21tYW5k IChjb25zdCBjaGFyICppZ25vcmUsIGludCBmcm9tX3R0eSwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICpjKQorLXsKKy0gIGdkYl9hc3NlcnQg KGRlYnVnaW5mb2RfdXJscyAhPSBudWxscHRyKTsKKy0gIGlmIChzZXRlbnYgKCJERUJVR0lORk9E X1VSTFMiLCBkZWJ1Z2luZm9kX3VybHMsIDEpICE9IDApCistICAgIHdhcm5pbmcgKF8oIlVuYWJs ZSB0byBzZXQgZGVidWdpbmZvZCBVUkxzOiAlcyIpLCBzYWZlX3N0cmVycm9yIChlcnJubykpOwor LX0KKy0KKy0vKiBTaG93IHRoZSBVUkxzIHRoYXQgZGVidWdpbmZvZCB3aWxsIHF1ZXJ5LiAgKi8K Ky0KKy1zdGF0aWMgdm9pZAorLXNob3dfZGVidWdpbmZvZF91cmxzX2NvbW1hbmQgKHN0cnVjdCB1 aV9maWxlICpmaWxlLCBpbnQgZnJvbV90dHksCistCQkJICAgICAgc3RydWN0IGNtZF9saXN0X2Vs ZW1lbnQgKmNtZCwgY29uc3QgY2hhciAqdmFsdWUpCisteworLSAgaWYgKHZhbHVlID09IG51bGxw dHIgfHwgdmFsdWVbMF0gPT0gJ1wwJykKKy0gICAgZnByaW50Zl91bmZpbHRlcmVkIChmaWxlLCBf KCJEZWJ1Z2luZm9kIFVSTHMgaGF2ZSBub3QgYmVlbiBzZXQuXG4iKSk7CistICBlbHNlCistICAg IGZwcmludGZfZmlsdGVyZWQgKGZpbGUsIF8oIkRlYnVnaW5mb2QgVVJMcyBhcmUgY3VycmVudGx5 IHNldCB0bzpcbiVzXG4iKSwKKy0JCSAgICAgIHZhbHVlKTsKKy19CistCistLyogTm8tb3Agc2V0 dGVyIHVzZWQgZm9yIGNvbXBhdGliaWxpdHkgd2hlbiBnZGIgaXMgYnVpbHQgd2l0aG91dCBkZWJ1 Z2luZm9kLiAgKi8KKy0KKy1zdGF0aWMgdm9pZAorLXNldF9kZWJ1Z2luZm9kX3ZlcmJvc2VfY29t bWFuZCAoY29uc3QgY2hhciAqYXJncywgaW50IGZyb21fdHR5LAorLQkJCQlzdHJ1Y3QgY21kX2xp c3RfZWxlbWVudCAqYykKKy17CistICByZXR1cm47CistfQorLQorLS8qIFNob3cgdmVyYm9zaXR5 LiAgKi8KKy0KKy1zdGF0aWMgdm9pZAorLXNob3dfZGVidWdpbmZvZF92ZXJib3NlX2NvbW1hbmQg KHN0cnVjdCB1aV9maWxlICpmaWxlLCBpbnQgZnJvbV90dHksCistCQkJCSBzdHJ1Y3QgY21kX2xp c3RfZWxlbWVudCAqY21kLCBjb25zdCBjaGFyICp2YWx1ZSkKKy17CistICBmcHJpbnRmX2ZpbHRl cmVkIChmaWxlLCBfKCJEZWJ1Z2luZm9kIHZlcmJvc2Ugb3V0cHV0IGlzIHNldCB0byAlcy5cbiIp LAorLQkJICAgIHZhbHVlKTsKKy19CistCisgc3RhdGljIGludAorIHByb2dyZXNzZm4gKGRlYnVn aW5mb2RfY2xpZW50ICpjLCBsb25nIGN1ciwgbG9uZyB0b3RhbCkKKyB7CitAQCAtMjc3LDE1ICsx NTcsMTUgQEAgZ2V0X2RlYnVnaW5mb2RfY2xpZW50ICgpCisgICAgd2hldGhlciB0byBlbmFibGUg ZGVidWdpbmZvZC4gICovCisgCisgc3RhdGljIGJvb2wKKy1kZWJ1Z2luZm9kX2VuYWJsZWQgKCkK KytkZWJ1Z2luZm9kX2lzX2VuYWJsZWQgKCkKKyB7CisgICBjb25zdCBjaGFyICp1cmxzID0gZ2V0 ZW52IChERUJVR0lORk9EX1VSTFNfRU5WX1ZBUik7CisgCisgICBpZiAodXJscyA9PSBudWxscHRy IHx8IHVybHNbMF0gPT0gJ1wwJworLSAgICAgIHx8IGRlYnVnaW5mb2RfZW5hYmxlID09IGRlYnVn aW5mb2Rfb2ZmKQorKyAgICAgIHx8IGRlYnVnaW5mb2RfZW5hYmxlZCA9PSBkZWJ1Z2luZm9kX29m ZikKKyAgICAgcmV0dXJuIGZhbHNlOworIAorLSAgaWYgKGRlYnVnaW5mb2RfZW5hYmxlID09IGRl YnVnaW5mb2RfYXNrKQorKyAgaWYgKGRlYnVnaW5mb2RfZW5hYmxlZCA9PSBkZWJ1Z2luZm9kX2Fz aykKKyAgICAgeworICAgICAgIGludCByZXNwID0gbnF1ZXJ5IChfKCJcblRoaXMgR0RCIHN1cHBv cnRzIGF1dG8tZG93bmxvYWRpbmcgZGVidWdpbmZvICIgXAorIAkJCSAgICJmcm9tIHRoZSBmb2xs b3dpbmcgVVJMczpcbiVzXG5FbmFibGUgZGVidWdpbmZvZCAiIFwKK0BAIC0yOTQsMTYgKzE3NCwx NiBAQCBkZWJ1Z2luZm9kX2VuYWJsZWQgKCkKKyAgICAgICBpZiAoIXJlc3ApCisgCXsKKyAJICBw cmludGZfZmlsdGVyZWQgKF8oIkRlYnVnaW5mb2QgaGFzIGJlZW4gZGlzYWJsZWQuXG5UbyBtYWtl IHRoaXMgIiBcCistCQkJICAgICAic2V0dGluZyBwZXJtYW5lbnQsIGFkZCBcJ3NldCBkZWJ1Z2lu Zm9kIG9mZlwnICIgXAorLQkJCSAgICAgInRvIC5nZGJpbml0LlxuIikpOworLQkgIGRlYnVnaW5m b2RfZW5hYmxlID0gZGVidWdpbmZvZF9vZmY7CisrCQkJICAgICAic2V0dGluZyBwZXJtYW5lbnQs IGFkZCBcJ3NldCBkZWJ1Z2luZm9kICIgXAorKwkJCSAgICAgImVuYWJsZWQgb2ZmXCcgdG8gLmdk YmluaXQuXG4iKSk7CisrCSAgZGVidWdpbmZvZF9lbmFibGVkID0gZGVidWdpbmZvZF9vZmY7Cisg CSAgcmV0dXJuIGZhbHNlOworIAl9CisgCisgICAgICAgcHJpbnRmX2ZpbHRlcmVkIChfKCJEZWJ1 Z2luZm9kIGhhcyBiZWVuIGVuYWJsZWQuXG5UbyBtYWtlIHRoaXMgIiBcCistCQkJICJzZXR0aW5n IHBlcm1hbmVudCwgYWRkIFwnc2V0IGRlYnVnaW5mb2Qgb25cJyAiIFwKKy0JCQkgInRvIC5nZGJp bml0LlxuIikpOworLSAgICAgIGRlYnVnaW5mb2RfZW5hYmxlID0gZGVidWdpbmZvZF9vbjsKKysJ CQkgInNldHRpbmcgcGVybWFuZW50LCBhZGQgXCdzZXQgZGVidWdpbmZvZCBlbmFibGVkICIgXAor KwkJCSAib25cJyB0byAuZ2RiaW5pdC5cbiIpKTsKKysgICAgICBkZWJ1Z2luZm9kX2VuYWJsZWQg PSBkZWJ1Z2luZm9kX29uOworICAgICB9CisgCisgICByZXR1cm4gdHJ1ZTsKK0BAIC0zMTcsNyAr MTk3LDcgQEAgZGVidWdpbmZvZF9zb3VyY2VfcXVlcnkgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1 aWxkX2lkLAorIAkJCSBjb25zdCBjaGFyICpzcmNwYXRoLAorIAkJCSBnZGI6OnVuaXF1ZV94bWFs bG9jX3B0cjxjaGFyPiAqZGVzdG5hbWUpCisgeworLSAgaWYgKCFkZWJ1Z2luZm9kX2VuYWJsZWQg KCkpCisrICBpZiAoIWRlYnVnaW5mb2RfaXNfZW5hYmxlZCAoKSkKKyAgICAgcmV0dXJuIHNjb3Bl ZF9mZCAoLUVOT1NZUyk7CisgCisgICBkZWJ1Z2luZm9kX2NsaWVudCAqYyA9IGdldF9kZWJ1Z2lu Zm9kX2NsaWVudCAoKTsKK0BAIC0zNTQsNyArMjM0LDcgQEAgZGVidWdpbmZvZF9kZWJ1Z2luZm9f cXVlcnkgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1aWxkX2lkLAorIAkJCSAgICBjb25zdCBjaGFy ICpmaWxlbmFtZSwKKyAJCQkgICAgZ2RiOjp1bmlxdWVfeG1hbGxvY19wdHI8Y2hhcj4gKmRlc3Ru YW1lKQorIHsKKy0gIGlmICghZGVidWdpbmZvZF9lbmFibGVkICgpKQorKyAgaWYgKCFkZWJ1Z2lu Zm9kX2lzX2VuYWJsZWQgKCkpCisgICAgIHJldHVybiBzY29wZWRfZmQgKC1FTk9TWVMpOworIAor ICAgZGVidWdpbmZvZF9jbGllbnQgKmMgPSBnZXRfZGVidWdpbmZvZF9jbGllbnQgKCk7CitAQCAt MzgyLDYgKzI2Miw2NyBAQCBkZWJ1Z2luZm9kX2RlYnVnaW5mb19xdWVyeSAoY29uc3QgdW5zaWdu ZWQgY2hhciAqYnVpbGRfaWQsCisgfQorICNlbmRpZgorIAorKy8qIFNldCBjYWxsYmFjayBmb3Ig InNldCBkZWJ1Z2luZm9kIGVuYWJsZWQiLiAgKi8KKysKKytzdGF0aWMgdm9pZAorK3NldF9kZWJ1 Z2luZm9kX2VuYWJsZWQgKGNvbnN0IGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSwKKysgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgY21kX2xpc3RfZWxlbWVudCAqYykKKyt7CisrI2lmIGRl ZmluZWQoSEFWRV9MSUJERUJVR0lORk9EKQorKyAgLyogVmFsdWUgaXMgYWxyZWFkeSBzZXQuICAq LworKyNlbHNlCisrICBlcnJvciAoTk9fSU1QTCk7CisrI2VuZGlmCisrfQorKworKy8qIFNob3cg Y2FsbGJhY2sgZm9yICJzZXQgZGVidWdpbmZvZCBlbmFibGVkIi4gICovCisrCisrc3RhdGljIHZv aWQKKytzaG93X2RlYnVnaW5mb2RfZW5hYmxlZCAodWlfZmlsZSAqZmlsZSwgaW50IGZyb21fdHR5 LCBjbWRfbGlzdF9lbGVtZW50ICpjbWQsCisrCQkJIGNvbnN0IGNoYXIgKnZhbHVlKQorK3sKKysg IHByaW50Zl91bmZpbHRlcmVkIChfKCJEZWJ1Z2luZm9kIGZ1bmN0aW9uYWxpdHkgaXMgY3VycmVu dGx5IHNldCB0byAiCisrCQkgICAgICAgIlwiJXNcIi5cbiIpLCBkZWJ1Z2luZm9kX2VuYWJsZWQp OworK30KKysKKysvKiBTZXQgY2FsbGJhY2sgZm9yICJzZXQgZGVidWdpbmZvZCB1cmxzIi4gICov CisrCisrc3RhdGljIHZvaWQKKytzZXRfZGVidWdpbmZvZF91cmxzIChjb25zdCBjaGFyICphcmdz LCBpbnQgZnJvbV90dHksCisrICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNtZF9saXN0X2Vs ZW1lbnQgKmMpCisreworKyNpZiBkZWZpbmVkKEhBVkVfTElCREVCVUdJTkZPRCkKKysgIGdkYl9h c3NlcnQgKGRlYnVnaW5mb2RfdXJscyAhPSBudWxscHRyKTsKKysgIGlmIChzZXRlbnYgKERFQlVH SU5GT0RfVVJMU19FTlZfVkFSLCBkZWJ1Z2luZm9kX3VybHMsIDEpICE9IDApCisrICAgIHdhcm5p bmcgKF8oIlVuYWJsZSB0byBzZXQgZGVidWdpbmZvZCBVUkxzOiAlcyIpLCBzYWZlX3N0cmVycm9y IChlcnJubykpOworKyNlbHNlCisrICBlcnJvciAoTk9fSU1QTCk7CisrI2VuZGlmCisrfQorKwor Ky8qIFNob3cgY2FsbGJhY2sgZm9yICJzZXQgZGVidWdpbmZvZCB1cmxzIi4gICovCisrCisrc3Rh dGljIHZvaWQKKytzaG93X2RlYnVnaW5mb2RfdXJscyAodWlfZmlsZSAqZmlsZSwgaW50IGZyb21f dHR5LCBjbWRfbGlzdF9lbGVtZW50ICpjbWQsCisrCQkgICAgICBjb25zdCBjaGFyICp2YWx1ZSkK Kyt7CisrICBpZiAodmFsdWVbMF0gPT0gJ1wwJykKKysgICAgZnByaW50Zl91bmZpbHRlcmVkIChm aWxlLCBfKCJEZWJ1Z2luZm9kIFVSTHMgaGF2ZSBub3QgYmVlbiBzZXQuXG4iKSk7CisrICBlbHNl CisrICAgIGZwcmludGZfZmlsdGVyZWQgKGZpbGUsIF8oIkRlYnVnaW5mb2QgVVJMcyBhcmUgY3Vy cmVudGx5IHNldCB0bzpcbiVzXG4iKSwKKysJCSAgICAgIHZhbHVlKTsKKyt9CisrCisrLyogU2hv dyBjYWxsYmFjayBmb3IgInNldCBkZWJ1Z2luZm9kIHZlcmJvc2UiLiAgKi8KKysKKytzdGF0aWMg dm9pZAorK3Nob3dfZGVidWdpbmZvZF92ZXJib3NlX2NvbW1hbmQgKHVpX2ZpbGUgKmZpbGUsIGlu dCBmcm9tX3R0eSwKKysJCQkJIGNtZF9saXN0X2VsZW1lbnQgKmNtZCwgY29uc3QgY2hhciAqdmFs dWUpCisreworKyAgZnByaW50Zl9maWx0ZXJlZCAoZmlsZSwgXygiRGVidWdpbmZvZCB2ZXJib3Nl IG91dHB1dCBpcyBzZXQgdG8gJXMuXG4iKSwKKysJCSAgICB2YWx1ZSk7CisrfQorKworIC8qIFJl Z2lzdGVyIGRlYnVnaW5mb2QgY29tbWFuZHMuICAqLworIAorIHZvaWQgX2luaXRpYWxpemVfZGVi dWdpbmZvZCAoKTsKK0BAIC0zOTcsMjMgKzMzOCwxNyBAQCBfaW5pdGlhbGl6ZV9kZWJ1Z2luZm9k ICgpCisgICAgICAgICAgICAgICAgICAgICAgICBfKCJTaG93IGRlYnVnaW5mb2Qgb3B0aW9uLiIp LAorICAgICAgICAgICAgICAgICAgICAgICAgJnNob3dfZGVidWdpbmZvZF9wcmVmaXhfbGlzdCwg MCwgJnNob3dsaXN0KTsKKyAKKy0gIC8qIHNldCBkZWJ1Z2luZm9kIG9uICovCistICBhZGRfY21k ICgib24iLCBjbGFzc19ydW4sIHNldF9kZWJ1Z2luZm9kX29uX2NvbW1hbmQsCistCSAgIF8oIkVu YWJsZSBkZWJ1Z2luZm9kLiIpLCAmc2V0X2RlYnVnaW5mb2RfcHJlZml4X2xpc3QpOworLQorLSAg Lyogc2V0IGRlYnVnaW5mb2Qgb2ZmICovCistICBhZGRfY21kICgib2ZmIiwgY2xhc3NfcnVuLCBz ZXRfZGVidWdpbmZvZF9vZmZfY29tbWFuZCwKKy0JICAgXygiRGlzYWJsZSBkZWJ1Z2luZm9kLiIp LCAmc2V0X2RlYnVnaW5mb2RfcHJlZml4X2xpc3QpOworLQorLSAgLyogc2V0IGRlYnVnaW5mb2Qg YXNrICovCistICBhZGRfY21kICgiYXNrIiwgY2xhc3NfcnVuLCBzZXRfZGVidWdpbmZvZF9hc2tf Y29tbWFuZCwgXygiXAorLUFzayB0aGUgdXNlciB3aGV0aGVyIHRvIGVuYWJsZSBkZWJ1Z2luZm9k IGJlZm9yZSBwZXJmb3JtaW5nIHRoZSBuZXh0IHF1ZXJ5LiIpLAorLQkgICAmc2V0X2RlYnVnaW5m b2RfcHJlZml4X2xpc3QpOworLQorLSAgLyogc2hvdyBkZWJ1Z2luZm9kIHN0YXR1cyAqLworLSAg YWRkX2NtZCAoInN0YXR1cyIsIGNsYXNzX3J1biwgc2hvd19kZWJ1Z2luZm9kX3N0YXR1c19jb21t YW5kLAorLQkgICBfKCJTaG93IHdoZXRoZXIgZGVidWdpbmZvZCBpcyBzZXQgdG8gXCJvblwiLCBc Im9mZlwiIG9yIFwiYXNrXCIuIiksCistCSAgICZzaG93X2RlYnVnaW5mb2RfcHJlZml4X2xpc3Qp OworKyAgYWRkX3NldHNob3dfZW51bV9jbWQgKCJlbmFibGVkIiwgY2xhc3NfcnVuLCBkZWJ1Z2lu Zm9kX2VuYWJsZWRfZW51bSwKKysgICAgICAgICAgICAgICAgICAgICAgICAmZGVidWdpbmZvZF9l bmFibGVkLAorKwkJCV8oIlNldCB3aGV0aGVyIHRvIHVzZSBkZWJ1Z2luZm9kLiIpLAorKwkJCV8o IlNob3cgd2hldGhlciB0byB1c2UgZGVidWdpbmZvZC4iKSwKKysJCQlfKCJcCisrV2hlbiBvbiwg ZW5hYmxlIHRoZSB1c2Ugb2YgZGVidWdpbmZvZCB0byBkb3dubG9hZCBtaXNzaW5nIGRlYnVnIGlu Zm8gYW5kXG5cCisrc291cmNlIGZpbGVzLiIpLAorKwkJCXNldF9kZWJ1Z2luZm9kX2VuYWJsZWQs CisrCQkJc2hvd19kZWJ1Z2luZm9kX2VuYWJsZWQsCisrCQkJJnNldF9kZWJ1Z2luZm9kX3ByZWZp eF9saXN0LAorKwkJCSZzaG93X2RlYnVnaW5mb2RfcHJlZml4X2xpc3QpOworIAorICAgLyogc2V0 L3Nob3cgZGVidWdpbmZvZCB1cmxzICovCisgICBhZGRfc2V0c2hvd19zdHJpbmdfbm9lc2NhcGVf Y21kICgidXJscyIsIGNsYXNzX3J1biwgJmRlYnVnaW5mb2RfdXJscywgXygiXAorQEAgLTQyMiw4 ICszNTcsOCBAQCBTaG93IHRoZSBsaXN0IG9mIGRlYnVnaW5mb2Qgc2VydmVyIFVSTHMuIiksIF8o IlwKKyBNYW5hZ2UgdGhlIHNwYWNlLXNlcGFyYXRlZCBsaXN0IG9mIGRlYnVnaW5mb2Qgc2VydmVy IFVSTHMgdGhhdCBHREIgd2lsbCBxdWVyeSBcCisgd2hlbiBtaXNzaW5nIGRlYnVnaW5mbywgZXhl Y3V0YWJsZXMgb3Igc291cmNlIGZpbGVzLlxuVGhlIGRlZmF1bHQgdmFsdWUgaXMgXAorIGNvcGll ZCBmcm9tIHRoZSBERUJVR0lORk9EX1VSTFMgZW52aXJvbm1lbnQgdmFyaWFibGUuIiksCistCQkJ CSAgIHNldF9kZWJ1Z2luZm9kX3VybHNfY29tbWFuZCwKKy0JCQkJICAgc2hvd19kZWJ1Z2luZm9k X3VybHNfY29tbWFuZCwKKysJCQkJICAgc2V0X2RlYnVnaW5mb2RfdXJscywKKysJCQkJICAgc2hv d19kZWJ1Z2luZm9kX3VybHMsCisgCQkJCSAgICZzZXRfZGVidWdpbmZvZF9wcmVmaXhfbGlzdCwK KyAJCQkJICAgJnNob3dfZGVidWdpbmZvZF9wcmVmaXhfbGlzdCk7CisgICBpZiAoZ2V0ZW52ICgi REVCVUdJTkZPRF9VUkxTIikgIT0gbnVsbHB0cikKK0BAIC00MzYsNyArMzcxLDcgQEAgU2V0IHZl cmJvc2l0eSBvZiBkZWJ1Z2luZm9kIG91dHB1dC4iKSwgXygiXAorIFNob3cgZGVidWdpbmZvZCBk ZWJ1Z2dpbmcuIiksIF8oIlwKKyBXaGVuIHNldCB0byBhIG5vbi16ZXJvIHZhbHVlLCBkaXNwbGF5 IHZlcmJvc2Ugb3V0cHV0IGZvciBlYWNoIGRlYnVnaW5mb2QgXAorIHF1ZXJ5LlxuVG8gZGlzYWJs ZSwgc2V0IHRvIHplcm8uICBWZXJib3NlIG91dHB1dCBpcyBkaXNwbGF5ZWQgYnkgZGVmYXVsdC4i KSwKKy0JCQkgICAgIHNldF9kZWJ1Z2luZm9kX3ZlcmJvc2VfY29tbWFuZCwKKysJCQkgICAgIG51 bGxwdHIsCisgCQkJICAgICBzaG93X2RlYnVnaW5mb2RfdmVyYm9zZV9jb21tYW5kLAorIAkJCSAg ICAgJnNldF9kZWJ1Z2luZm9kX3ByZWZpeF9saXN0LAorIAkJCSAgICAgJnNob3dfZGVidWdpbmZv ZF9wcmVmaXhfbGlzdCk7CitkaWZmIC0tZ2l0IGEvZ2RiL2RvYy9nZGIudGV4aW5mbyBiL2dkYi9k b2MvZ2RiLnRleGluZm8KKy0tLSBhL2dkYi9kb2MvZ2RiLnRleGluZm8KKysrKyBiL2dkYi9kb2Mv Z2RiLnRleGluZm8KK0BAIC00NzA0NiwyNyArNDcwNDYsMjggQEAgcmVnYXJkaW5nIEBjb2Rle2Rl YnVnaW5mb2R9LgorIEB2YWx1ZXtHREJOfSBwcm92aWRlcyB0aGUgZm9sbG93aW5nIGNvbW1hbmRz IGZvciBjb25maWd1cmluZyBAY29kZXtkZWJ1Z2luZm9kfS4KKyAKKyBAdGFibGUgQGNvZGUKKy1A a2luZGV4IHNldCBkZWJ1Z2luZm9kCistQGFuY2hvcntzZXQgZGVidWdpbmZvZH0KKy1AaXRlbSBz ZXQgZGVidWdpbmZvZAorLUBpdGVteCBzZXQgZGVidWdpbmZvZCBvbgorK0BraW5kZXggc2V0IGRl YnVnaW5mb2QgZW5hYmxlZAorK0BhbmNob3J7c2V0IGRlYnVnaW5mb2QgZW5hYmxlZH0KKytAaXRl bSBzZXQgZGVidWdpbmZvZCBlbmFibGVkCisrQGl0ZW14IHNldCBkZWJ1Z2luZm9kIGVuYWJsZWQg b24KKyBAY2luZGV4IGVuYWJsZSBkZWJ1Z2luZm9kCisgQHZhbHVle0dEQk59IHdpbGwgYXR0ZW1w dCB0byBxdWVyeSBAY29kZXtkZWJ1Z2luZm9kfSBzZXJ2ZXJzIHdoZW4gbWlzc2luZyBkZWJ1Zwor IGluZm8gb3Igc291cmNlIGZpbGVzLgorIAorLUBpdGVtIHNldCBkZWJ1Z2luZm9kIG9mZgorK0Bp dGVtIHNldCBkZWJ1Z2luZm9kIGVuYWJsZWQgb2ZmCisgQHZhbHVle0dEQk59IHdpbGwgbm90IGF0 dGVtcHQgdG8gcXVlcnkgQGNvZGV7ZGVidWdpbmZvZH0gc2VydmVycyB3aGVuIG1pc3NpbmcKKy1k ZWJ1ZyBpbmZvIG9yIHNvdXJjZSBmaWxlcy4gIEJ5IGRlZmF1bHQsIEBjb2Rle2RlYnVnaW5mb2R9 IGlzIHNldCB0byBAY29kZXtvZmZ9CistZm9yIG5vbi1pbnRlcmFjdGl2ZSBzZXNzaW9ucy4KKytk ZWJ1ZyBpbmZvIG9yIHNvdXJjZSBmaWxlcy4gIEJ5IGRlZmF1bHQsIEBjb2Rle2RlYnVnaW5mb2Qg ZW5hYmxlZH0gaXMgc2V0IHRvCisrQGNvZGV7b2ZmfSBmb3Igbm9uLWludGVyYWN0aXZlIHNlc3Np b25zLgorIAorLUBpdGVtIHNldCBkZWJ1Z2luZm9kIGFzaworK0BpdGVtIHNldCBkZWJ1Z2luZm9k IGVuYWJsZWQgYXNrCisgQHZhbHVle0dEQk59IHdpbGwgcHJvbXB0IHRoZSB1c2VyIHRvIGVuYWJs ZSBvciBkaXNhYmxlIEBjb2Rle2RlYnVnaW5mb2R9IGJlZm9yZQorLWF0dGVtcHRpbmcgdG8gcGVy Zm9ybSB0aGUgbmV4dCBxdWVyeS4gIEJ5IGRlZmF1bHQsIEBjb2Rle2RlYnVnaW5mb2R9IGlzIHNl dCB0bworLUBjb2Rle2Fza30gZm9yIGludGVyYWN0aXZlIHNlc3Npb25zLgorK2F0dGVtcHRpbmcg dG8gcGVyZm9ybSB0aGUgbmV4dCBxdWVyeS4gIEJ5IGRlZmF1bHQsIEBjb2Rle2RlYnVnaW5mb2Qg ZW5hYmxlZH0KKytpcyBzZXQgdG8gQGNvZGV7YXNrfSBmb3IgaW50ZXJhY3RpdmUgc2Vzc2lvbnMu CisgCistQGtpbmRleCBzaG93IGRlYnVnaW5mb2Qgc3RhdHVzCistQGl0ZW0gc2hvdyBkZWJ1Z2lu Zm9kIHN0YXR1cworLVNob3cgd2hldGhlciBAY29kZXtkZWJ1Z2luZm9kfSBpcyBzZXQgdG8gQGNv ZGV7b259LCBAY29kZXtvZmZ9IG9yIEBjb2Rle2Fza30uCisrQGtpbmRleCBzaG93IGRlYnVnaW5m b2QgZW5hYmxlZAorK0BpdGVtIHNob3cgZGVidWdpbmZvZCBlbmFibGVkCisrRGlzcGxheSB3aGV0 aGVyIEBjb2Rle2RlYnVnaW5mb2QgZW5hYmxlZH0gaXMgc2V0IHRvIEBjb2Rle29ufSwgQGNvZGV7 b2ZmfSBvcgorK0Bjb2Rle2Fza30uCisgCisgQGtpbmRleCBzZXQgZGVidWdpbmZvZCB1cmxzCisg QGNpbmRleCBjb25maWd1cmUgZGVidWdpbmZvZCBVUkxzCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZGVidWdpbmZvZC9mZXRjaF9zcmNfYW5kX3N5bWJvbHMuZXhwIGIvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZGVidWdpbmZvZC9mZXRjaF9zcmNfYW5kX3N5bWJvbHMuZXhwCistLS0gYS9nZGIv dGVzdHN1aXRlL2dkYi5kZWJ1Z2luZm9kL2ZldGNoX3NyY19hbmRfc3ltYm9scy5leHAKKysrKyBi L2dkYi90ZXN0c3VpdGUvZ2RiLmRlYnVnaW5mb2QvZmV0Y2hfc3JjX2FuZF9zeW1ib2xzLmV4cAor QEAgLTIzNiw3ICsyMzYsNyBAQCBwcm9jIGxvY2FsX3VybCB7IH0geworICAgICBjbGVhbl9yZXN0 YXJ0CisgICAgIGdkYl90ZXN0ICJmaWxlICRiaW5maWxlIiAiLipObyBkZWJ1Z2dpbmcgc3ltYm9s cy4qIiBcCisgCSJmaWxlIFtmaWxlIHRhaWwgJGJpbmZpbGVdIGNtZCIKKy0gICAgZ2RiX3Rlc3Rf bm9fb3V0cHV0ICJzZXQgZGVidWdpbmZvZCBvZmYiCisrICAgIGdkYl90ZXN0X25vX291dHB1dCAi c2V0IGRlYnVnaW5mb2QgZW5hYmxlZCBvZmYiCisgICAgIGdkYl90ZXN0X25vX291dHB1dCAic2V0 IGRlYnVnaW5mb2QgdXJscyBodHRwOi8vMTI3LjAuMC4xOiRwb3J0IgorIAorICAgICAjIGdkYiBz aG91bGRuJ3QgZmluZCB0aGUgZGVidWdpbmZvIHNpbmNlIGRlYnVnaW5mb2QgaGFzIGJlZW4gZGlz YWJsZWQKK0BAIC0yNDQsNyArMjQ0LDcgQEAgcHJvYyBsb2NhbF91cmwgeyB9IHsKKyAJImZpbGUg W2ZpbGUgdGFpbCAkYmluZmlsZV0gY21kIG9mZiIKKyAKKyAgICAgIyBFbmFibGUgZGVidWdpbmZv ZCBhbmQgZmV0Y2ggdGhlIGRlYnVnaW5mbworLSAgICBnZGJfdGVzdF9ub19vdXRwdXQgInNldCBk ZWJ1Z2luZm9kIG9uIgorKyAgICBnZGJfdGVzdF9ub19vdXRwdXQgInNldCBkZWJ1Z2luZm9kIGVu YWJsZWQgb24iCisgICAgIGdkYl90ZXN0ICJmaWxlICRiaW5maWxlIiAiLipSZWFkaW5nIHN5bWJv bHMgZnJvbS4qZGVidWdpbmZvLioiIFwKKyAJImZpbGUgW2ZpbGUgdGFpbCAkYmluZmlsZV0gY21k IG9uIgorIH0KCmRpZmYgLS1naXQgYS9nZGItcmhiejIwMjQ4NzUtZXhwYW5kLWRvY3VtZW50YXRp b24tZm9yLWRlYnVnaW5mb2QucGF0Y2ggYi9nZGItcmhiejIwMjQ4NzUtZXhwYW5kLWRvY3VtZW50 YXRpb24tZm9yLWRlYnVnaW5mb2QucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uY2RmM2JmNAotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6MjAyNDg3NS1leHBhbmQt ZG9jdW1lbnRhdGlvbi1mb3ItZGVidWdpbmZvZC5wYXRjaApAQCAtMCwwICsxLDE1MiBAQAorRnJv bSBGRURPUkFfUEFUQ0hFUyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/ cT9BbGV4YW5kcmE9MjBIPUMzPUExamtvdj1DMz1BMT89IDxhaGFqa292YUByZWRoYXQuY29tPgor RGF0ZTogTW9uLCAxMCBKYW4gMjAyMiAxMzowMDo1MCArMDEwMAorU3ViamVjdDogZ2RiLXJoYnoy MDI0ODc1LWV4cGFuZC1kb2N1bWVudGF0aW9uLWZvci1kZWJ1Z2luZm9kLnBhdGNoCisKKzs7QmFj a3BvcnQgdXBzdHJlYW0gY29tbWl0IGZyb20gQWFyb24gTWVyZXkKKzs7M2VhNDRmMjEyOTkgZ2Ri LnRleGluZm86IEV4cGFuZCBkb2N1bWVudGF0aW9uIGZvciBkZWJ1Z2luZm9kCisKK2dkYi50ZXhp bmZvOiBFeHBhbmQgZG9jdW1lbnRhdGlvbiBmb3IgZGVidWdpbmZvZAorCitBZGQgc2VjdGlvbiBk ZXNjcmliaW5nIEdEQidzIHVzYWdlIG9mIGRlYnVnaW5mb2QuCisKK1JlZmVyIHRvIHRoaXMgbmV3 IHNlY3Rpb24gaW4gdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSAnLS13aXRoLWRlYnVnaW5mb2QnCitj b25maWd1cmUgb3B0aW9uLgorCitNZW50aW9uIGRlYnVnaW5mb2QgaW4gdGhlICdTZXBhcmF0ZSBE ZWJ1ZyBGaWxlcycgc2VjdGlvbi4KKworZGlmZiAtLWdpdCBhL2dkYi9kb2MvZ2RiLnRleGluZm8g Yi9nZGIvZG9jL2dkYi50ZXhpbmZvCistLS0gYS9nZGIvZG9jL2dkYi50ZXhpbmZvCisrKysgYi9n ZGIvZG9jL2dkYi50ZXhpbmZvCitAQCAtMTg0LDYgKzE4NCw3IEBAIHNvZnR3YXJlIGluIGdlbmVy YWwuICBXZSB3aWxsIG1pc3MgaGltLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRoZSBvcGVyYXRpbmcgc3lzdGVtCisgKiBUcmFjZSBGaWxlIEZvcm1hdDo6CQlHREIgdHJhY2Ug ZmlsZSBmb3JtYXQKKyAqIEluZGV4IFNlY3Rpb24gRm9ybWF0OjogICAgICAgIC5nZGJfaW5kZXgg c2VjdGlvbiBmb3JtYXQKKysqIERlYnVnaW5mb2Q6OiAgICAgICAgICAgICAgICAgIERvd25sb2Fk IGRlYnVnZ2luZyByZXNvdXJjZXMgd2l0aCBAY29kZXtkZWJ1Z2luZm9kfQorICogTWFuIFBhZ2Vz OjoJCQlNYW51YWwgcGFnZXMKKyAqIENvcHlpbmc6OgkJCUdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIHNheXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvdyB5b3UgY2FuIGNv cHkgYW5kIHNoYXJlIEdEQgorQEAgLTIxMzczLDcgKzIxMzc0LDkgQEAgRm9yIHRoZSBgYGJ1aWxk IElEJycgbWV0aG9kLCBAdmFsdWV7R0RCTn0gbG9va3MgaW4gdGhlCisgYSBmaWxlIG5hbWVkIEBm aWxle0B2YXJ7bm59L0B2YXJ7bm5ubm5ubm59LmRlYnVnfSwgd2hlcmUgQHZhcntubn0gYXJlIHRo ZQorIGZpcnN0IDIgaGV4IGNoYXJhY3RlcnMgb2YgdGhlIGJ1aWxkIElEIGJpdCBzdHJpbmcsIGFu ZCBAdmFye25ubm5ubm5ufQorIGFyZSB0aGUgcmVzdCBvZiB0aGUgYml0IHN0cmluZy4gIChSZWFs IGJ1aWxkIElEIHN0cmluZ3MgYXJlIDMyIG9yIG1vcmUKKy1oZXggY2hhcmFjdGVycywgbm90IDEw LikKKytoZXggY2hhcmFjdGVycywgbm90IDEwLikgIEB2YWx1ZXtHREJOfSBjYW4gYXV0b21hdGlj YWxseSBxdWVyeQorK0Bjb2Rle2RlYnVnaW5mb2R9IHNlcnZlcnMgdXNpbmcgYnVpbGQgSURzIGlu IG9yZGVyIHRvIGRvd25sb2FkIHNlcGFyYXRlIGRlYnVnCisrZmlsZXMgdGhhdCBjYW5ub3QgYmUg Zm91bmQgbG9jYWxseS4gIEZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBAcmVme0RlYnVnaW5mb2R9 LgorIEBlbmQgaXRlbWl6ZQorIAorIFNvLCBmb3IgZXhhbXBsZSwgc3VwcG9zZSB5b3UgYXNrIEB2 YWx1ZXtHREJOfSB0byBkZWJ1ZworQEAgLTIxMzk0LDYgKzIxMzk3LDEwIEBAIGRlYnVnIGluZm9y bWF0aW9uIGZpbGVzLCBpbiB0aGUgaW5kaWNhdGVkIG9yZGVyOgorIEBmaWxley91c3IvbGliL2Rl YnVnL3Vzci9iaW4vbHMuZGVidWd9LgorIEBlbmQgaXRlbWl6ZQorIAorK0lmIHRoZSBkZWJ1ZyBm aWxlIHN0aWxsIGhhcyBub3QgYmVlbiBmb3VuZCBhbmQgQGNvZGV7ZGVidWdpbmZvZH0KKysoQHB4 cmVme0RlYnVnaW5mb2R9KSBpcyBlbmFibGVkLCBAdmFsdWV7R0RCTn0gd2lsbCBhdHRlbXB0IHRv IGRvd25sb2FkIHRoZQorK2ZpbGUgZnJvbSBAY29kZXtkZWJ1Z2luZm9kfSBzZXJ2ZXJzLgorKwor IEBhbmNob3J7ZGVidWctZmlsZS1kaXJlY3Rvcnl9CisgR2xvYmFsIGRlYnVnZ2luZyBpbmZvIGRp cmVjdG9yaWVzIGRlZmF1bHQgdG8gd2hhdCBpcyBzZXQgYnkgQHZhbHVle0dEQk59CisgY29uZmln dXJlIG9wdGlvbiBAb3B0aW9uey0td2l0aC1zZXBhcmF0ZS1kZWJ1Zy1kaXJ9LiAgRHVyaW5nIEB2 YWx1ZXtHREJOfSBydW4KK0BAIC0zODc0NiwxMiArMzg3NTMsMTIgQEAgVXNlIHRoZSBjdXJzZXMg bGlicmFyeSBpbnN0ZWFkIG9mIHRoZSB0ZXJtY2FwIGxpYnJhcnksIGZvciB0ZXh0LW1vZGUKKyB0 ZXJtaW5hbCBvcGVyYXRpb25zLgorIAorIEBpdGVtIC0td2l0aC1kZWJ1Z2luZm9kCistQnVpbGQg QHZhbHVle0dEQk59IHdpdGggbGliZGVidWdpbmZvZCwgdGhlIGRlYnVnaW5mb2QgY2xpZW50IGxp YnJhcnkuCistVXNlZCB0byBhdXRvbWF0aWNhbGx5IGZldGNoIHNvdXJjZSBmaWxlcyBhbmQgc2Vw YXJhdGUgZGVidWcgZmlsZXMgZnJvbQorLWRlYnVnaW5mb2Qgc2VydmVycyB1c2luZyB0aGUgYXNz b2NpYXRlZCBleGVjdXRhYmxlJ3MgYnVpbGQgSUQuIEVuYWJsZWQKKy1ieSBkZWZhdWx0IGlmIGxp YmRlYnVnaW5mb2QgaXMgaW5zdGFsbGVkIGFuZCBmb3VuZCBhdCBjb25maWd1cmUgdGltZS4KKy1k ZWJ1Z2luZm9kIGlzIHBhY2thZ2VkIHdpdGggZWxmdXRpbHMsIHN0YXJ0aW5nIHdpdGggdmVyc2lv biAwLjE3OC4gWW91CistY2FuIGdldCB0aGUgbGF0ZXN0IHZlcnNpb24gZnJvbSBgaHR0cHM6Ly9z b3VyY2V3YXJlLm9yZy9lbGZ1dGlscy8nLgorK0J1aWxkIEB2YWx1ZXtHREJOfSB3aXRoIEBmaWxl e2xpYmRlYnVnaW5mb2R9LCB0aGUgQGNvZGV7ZGVidWdpbmZvZH0gY2xpZW50CisrbGlicmFyeS4g IFVzZWQgdG8gYXV0b21hdGljYWxseSBmZXRjaCBFTEYsIERXQVJGIGFuZCBzb3VyY2UgZmlsZXMg ZnJvbQorK0Bjb2Rle2RlYnVnaW5mb2R9IHNlcnZlcnMgdXNpbmcgYnVpbGQgSURzIGFzc29jaWF0 ZWQgd2l0aCBhbnkgbWlzc2luZworK2ZpbGVzLiAgRW5hYmxlZCBieSBkZWZhdWx0IGlmIEBmaWxl e2xpYmRlYnVnaW5mb2R9IGlzIGluc3RhbGxlZCBhbmQgZm91bmQKKythdCBjb25maWd1cmUgdGlt ZS4gIEZvciBtb3JlIGluZm9ybWF0aW9uIHJlZ2FyZGluZyBAY29kZXtkZWJ1Z2luZm9kfSBzZWUK KytAcmVme0RlYnVnaW5mb2R9LgorIAorIEBpdGVtIC0td2l0aC1saWJ1bndpbmQtaWE2NAorIFVz ZSB0aGUgbGlidW53aW5kIGxpYnJhcnkgZm9yIHVud2luZGluZyBmdW5jdGlvbiBjYWxsIHN0YWNr IG9uIGlhNjQKK0BAIC00NzAxMiw2ICs0NzAxOSw4MiBAQCBzd2l0Y2ggKGRpZS0+dGFnKQorICAg QH0KKyBAZW5kIHNtYWxsZXhhbXBsZQorIAorK0Bub2RlIERlYnVnaW5mb2QKKytAYXBwZW5kaXgg RG93bmxvYWQgZGVidWdnaW5nIHJlc291cmNlcyB3aXRoIERlYnVnaW5mb2QKKytAY2luZGV4IGRl YnVnaW5mb2QKKysKKytAY29kZXtkZWJ1Z2luZm9kfSBpcyBhbiBIVFRQIHNlcnZlciBmb3IgZGlz dHJpYnV0aW5nIEVMRiwgRFdBUkYgYW5kIHNvdXJjZQorK2ZpbGVzLgorKworK1dpdGggdGhlIEBj b2Rle2RlYnVnaW5mb2R9IGNsaWVudCBsaWJyYXJ5LCBAZmlsZXtsaWJkZWJ1Z2luZm9kfSwgQHZh bHVle0dEQk59CisrY2FuIHF1ZXJ5IHNlcnZlcnMgdXNpbmcgdGhlIGJ1aWxkIElEcyBhc3NvY2lh dGVkIHdpdGggbWlzc2luZyBkZWJ1ZyBpbmZvLAorK2V4ZWN1dGFibGVzIGFuZCBzb3VyY2UgZmls ZXMgaW4gb3JkZXIgdG8gZG93bmxvYWQgdGhlbSBvbiBkZW1hbmQuCisrCisrRm9yIGluc3RydWN0 aW9ucyBvbiBidWlsZGluZyBAdmFsdWV7R0RCTn0gd2l0aCBAZmlsZXtsaWJkZWJ1Z2luZm9kfSwK KytAcHhyZWZ7Q29uZmlndXJlIE9wdGlvbnMsLC0td2l0aC1kZWJ1Z2luZm9kfS4gIEBjb2Rle2Rl YnVnaW5mb2R9IGlzIHBhY2thZ2VkCisrd2l0aCBAY29kZXtlbGZ1dGlsc30sIHN0YXJ0aW5nIHdp dGggdmVyc2lvbiAwLjE3OC4gIFNlZQorK0B1cmVme2h0dHBzOi8vc291cmNld2FyZS5vcmcvZWxm dXRpbHMvRGVidWdpbmZvZC5odG1sfSBmb3IgbW9yZSBpbmZvcm1hdGlvbgorK3JlZ2FyZGluZyBA Y29kZXtkZWJ1Z2luZm9kfS4KKysKKytAbWVudQorKyogRGVidWdpbmZvZCBTZXR0aW5nczo6CQlD b25maWd1cmluZyBkZWJ1Z2luZm9kIHdpdGggQHZhbHVle0dEQk59CisrQGVuZCBtZW51CisrCisr QG5vZGUgRGVidWdpbmZvZCBTZXR0aW5ncworK0BzZWN0aW9uIERlYnVnaW5mb2QgU2V0dGluZ3MK KysKKytAdmFsdWV7R0RCTn0gcHJvdmlkZXMgdGhlIGZvbGxvd2luZyBjb21tYW5kcyBmb3IgY29u ZmlndXJpbmcgQGNvZGV7ZGVidWdpbmZvZH0uCisrCisrQHRhYmxlIEBjb2RlCisrQGtpbmRleCBz ZXQgZGVidWdpbmZvZAorK0BhbmNob3J7c2V0IGRlYnVnaW5mb2R9CisrQGl0ZW0gc2V0IGRlYnVn aW5mb2QKKytAaXRlbXggc2V0IGRlYnVnaW5mb2Qgb24KKytAY2luZGV4IGVuYWJsZSBkZWJ1Z2lu Zm9kCisrQHZhbHVle0dEQk59IHdpbGwgYXR0ZW1wdCB0byBxdWVyeSBAY29kZXtkZWJ1Z2luZm9k fSBzZXJ2ZXJzIHdoZW4gbWlzc2luZyBkZWJ1ZworK2luZm8gb3Igc291cmNlIGZpbGVzLgorKwor K0BpdGVtIHNldCBkZWJ1Z2luZm9kIG9mZgorK0B2YWx1ZXtHREJOfSB3aWxsIG5vdCBhdHRlbXB0 IHRvIHF1ZXJ5IEBjb2Rle2RlYnVnaW5mb2R9IHNlcnZlcnMgd2hlbiBtaXNzaW5nCisrZGVidWcg aW5mbyBvciBzb3VyY2UgZmlsZXMuICBCeSBkZWZhdWx0LCBAY29kZXtkZWJ1Z2luZm9kfSBpcyBz ZXQgdG8gQGNvZGV7b2ZmfQorK2ZvciBub24taW50ZXJhY3RpdmUgc2Vzc2lvbnMuCisrCisrQGl0 ZW0gc2V0IGRlYnVnaW5mb2QgYXNrCisrQHZhbHVle0dEQk59IHdpbGwgcHJvbXB0IHRoZSB1c2Vy IHRvIGVuYWJsZSBvciBkaXNhYmxlIEBjb2Rle2RlYnVnaW5mb2R9IGJlZm9yZQorK2F0dGVtcHRp bmcgdG8gcGVyZm9ybSB0aGUgbmV4dCBxdWVyeS4gIEJ5IGRlZmF1bHQsIEBjb2Rle2RlYnVnaW5m b2R9IGlzIHNldCB0bworK0Bjb2Rle2Fza30gZm9yIGludGVyYWN0aXZlIHNlc3Npb25zLgorKwor K0BraW5kZXggc2hvdyBkZWJ1Z2luZm9kIHN0YXR1cworK0BpdGVtIHNob3cgZGVidWdpbmZvZCBz dGF0dXMKKytTaG93IHdoZXRoZXIgQGNvZGV7ZGVidWdpbmZvZH0gaXMgc2V0IHRvIEBjb2Rle29u fSwgQGNvZGV7b2ZmfSBvciBAY29kZXthc2t9LgorKworK0BraW5kZXggc2V0IGRlYnVnaW5mb2Qg dXJscworK0BjaW5kZXggY29uZmlndXJlIGRlYnVnaW5mb2QgVVJMcworK0BpdGVtIHNldCBkZWJ1 Z2luZm9kIHVybHMKKytAaXRlbXggc2V0IGRlYnVnaW5mb2QgdXJscyBAdmFye3VybHN9CisrU2V0 IHRoZSBzcGFjZS1zZXBhcmF0ZWQgbGlzdCBvZiBVUkxzIHRoYXQgQGNvZGV7ZGVidWdpbmZvZH0g d2lsbCBhdHRlbXB0IHRvCisrcXVlcnkuICBPbmx5IEBjb2Rle2h0dHA6Ly99LCBAY29kZXtodHRw czovL30gYW5kIEBjb2Rle2ZpbGU6Ly99IHByb3RvY29scworK3Nob3VsZCBiZSB1c2VkLiAgVGhl IGRlZmF1bHQgdmFsdWUgb2YgQGNvZGV7ZGVidWdpbmZvZCB1cmxzfSBpcyBjb3BpZWQgZnJvbQor K3RoZSBAdmFye0RFQlVHSU5GT0RfVVJMU30gZW52aXJvbm1lbnQgdmFyaWFibGUuCisrCisrQGtp bmRleCBzaG93IGRlYnVnaW5mb2QgdXJscworK0BpdGVtIHNob3cgZGVidWdpbmZvZCB1cmxzCisr RGlzcGxheSB0aGUgbGlzdCBvZiBVUkxzIHRoYXQgQGNvZGV7ZGVidWdpbmZvZH0gd2lsbCBhdHRl bXB0IHRvIHF1ZXJ5LgorKworK0BraW5kZXggc2V0IGRlYnVnaW5mb2QgdmVyYm9zZQorK0BjaW5k ZXggZGVidWdpbmZvZCB2ZXJib3NpdHkKKytAaXRlbSBzZXQgZGVidWdpbmZvZCB2ZXJib3NlCisr QGl0ZW14IHNldCBkZWJ1Z2luZm9kIHZlcmJvc2UgQHZhcntufQorK0VuYWJsZSBvciBkaXNhYmxl IEBjb2Rle2RlYnVnaW5mb2R9LXJlbGF0ZWQgb3V0cHV0LiAgVXNlIGEgbm9uLXplcm8gdmFsdWUK Kyt0byBlbmFibGUgYW5kIEBjb2RlezB9IHRvIGRpc2FibGUuICBAY29kZXtkZWJ1Z2luZm9kfSBv dXRwdXQgaXMgc2hvd24gYnkKKytkZWZhdWx0LgorKworK0BraW5kZXggc2hvdyBkZWJ1Z2luZm9k IHZlcmJvc2UKKytAaXRlbSBzaG93IGRlYnVnaW5mb2QgdmVyYm9zZQorK1Nob3cgdGhlIGN1cnJl bnQgdmVyYm9zaXR5IHNldHRpbmcuCisrCisrQGVuZCB0YWJsZQorKworIEBub2RlIE1hbiBQYWdl cworIEBhcHBlbmRpeCBNYW51YWwgcGFnZXMKKyBAY2luZGV4IE1hbiBwYWdlcwoKZGlmZiAtLWdp dCBhL2dkYi1yaGJ6MjAyNDg3NS1maXgtdW5pdHRlc3QtZmFpbHVyZS5wYXRjaCBiL2dkYi1yaGJ6 MjAyNDg3NS1maXgtdW5pdHRlc3QtZmFpbHVyZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi42NmYyMWQ2Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXJoYnoyMDI0ODc1 LWZpeC11bml0dGVzdC1mYWlsdXJlLnBhdGNoCkBAIC0wLDAgKzEsMzcgQEAKK0Zyb20gRkVET1JB X1BBVENIRVMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/QWxleGFu ZHJhPTIwSD1DMz1BMWprb3Y9QzM9QTE/PSA8YWhhamtvdmFAcmVkaGF0LmNvbT4KK0RhdGU6IFR1 ZSwgMTEgSmFuIDIwMjIgMTI6MjI6MjkgKzAxMDAKK1N1YmplY3Q6IGdkYi1yaGJ6MjAyNDg3NS1m aXgtdW5pdHRlc3QtZmFpbHVyZS5wYXRjaAorCis7O0JhY2twb3J0IHVwc3RyZWFtIGNvbW1pdCBm cm9tIFRvbSBUcm9tZXkKKzs7MmE4ZjFmNDc0NDYgRml4IHVuaXR0ZXN0LmV4cCBmYWlsdXJlIGR1 ZSB0byAnc2V0IGRlYnVnaW5mb2QnIGFkZGl0aW9uCisKK0ZpeCB1bml0dGVzdC5leHAgZmFpbHVy ZSBkdWUgdG8gJ3NldCBkZWJ1Z2luZm9kJyBhZGRpdGlvbgorCitUaGUgJ3NldCBkZWJ1Z2luZm9k JyBjaGFuZ2UgY2F1c2VkIGEgcmVncmVzc2lvbiBpbiB1bml0dGVzdC5leHA6CisKKyAgICBSdW5u aW5nIHNlbGZ0ZXN0IGhlbHBfZG9jX2ludmFyaWFudHMuCisgICAgaGVscCBkb2MgYnJva2VuIGlu dmFyaWFudDogY29tbWFuZCAnaW5mbyBzZXQgZGVidWdpbmZvZCcgaGVscCBkb2MgZmlyc3QgbGlu ZSBpcyBub3QgdGVybWluYXRlZCB3aXRoIGEgJy4nIGNoYXJhY3RlcgorICAgIGhlbHAgZG9jIGJy b2tlbiBpbnZhcmlhbnQ6IGNvbW1hbmQgJ3NldCBkZWJ1Z2luZm9kJyBoZWxwIGRvYyBmaXJzdCBs aW5lIGlzIG5vdCB0ZXJtaW5hdGVkIHdpdGggYSAnLicgY2hhcmFjdGVyCisgICAgaGVscCBkb2Mg YnJva2VuIGludmFyaWFudDogY29tbWFuZCAnc2hvdyBkZWJ1Z2luZm9kJyBoZWxwIGRvYyBmaXJz dCBsaW5lIGlzIG5vdCB0ZXJtaW5hdGVkIHdpdGggYSAnLicgY2hhcmFjdGVyCisgICAgU2VsZiB0 ZXN0IGZhaWxlZDogc2VsZi10ZXN0IGZhaWxlZCBhdCAuLi8uLi9iaW51dGlscy1nZGIvZ2RiL3Vu aXR0ZXN0cy9jb21tYW5kLWRlZi1zZWxmdGVzdHMuYzoxMDAKKworVGhpcyBwYXRjaCBmaXhlcyB0 aGUgcHJvYmxlbS4gIEknbSBjaGVja2luZyBpdCBpbi4KKworZGlmZiAtLWdpdCBhL2dkYi9kZWJ1 Z2luZm9kLXN1cHBvcnQuYyBiL2dkYi9kZWJ1Z2luZm9kLXN1cHBvcnQuYworLS0tIGEvZ2RiL2Rl YnVnaW5mb2Qtc3VwcG9ydC5jCisrKysgYi9nZGIvZGVidWdpbmZvZC1zdXBwb3J0LmMKK0BAIC0z OTAsMTEgKzM5MCwxMSBAQCBfaW5pdGlhbGl6ZV9kZWJ1Z2luZm9kICgpCisgeworICAgLyogc2V0 L3Nob3cgZGVidWdpbmZvZCAqLworICAgYWRkX2Jhc2ljX3ByZWZpeF9jbWQgKCJkZWJ1Z2luZm9k IiwgY2xhc3NfcnVuLAorLSAgICAgICAgICAgICAgICAgICAgICAgIF8oIlNldCBkZWJ1Z2luZm9k IG9wdGlvbnMiKSwKKysgICAgICAgICAgICAgICAgICAgICAgICBfKCJTZXQgZGVidWdpbmZvZCBv cHRpb25zLiIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICZzZXRfZGVidWdpbmZvZF9wcmVm aXhfbGlzdCwgMCwgJnNldGxpc3QpOworIAorICAgYWRkX3Nob3dfcHJlZml4X2NtZCAoImRlYnVn aW5mb2QiLCBjbGFzc19ydW4sCistICAgICAgICAgICAgICAgICAgICAgICBfKCJTaG93IGRlYnVn aW5mb2Qgb3B0aW9ucyIpLAorKyAgICAgICAgICAgICAgICAgICAgICAgXygiU2hvdyBkZWJ1Z2lu Zm9kIG9wdGlvbi4iKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICZzaG93X2RlYnVnaW5mb2Rf cHJlZml4X2xpc3QsIDAsICZzaG93bGlzdCk7CisgCisgICAvKiBzZXQgZGVidWdpbmZvZCBvbiAq LwoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6MjAyNDg3NS1wcjI3MDI2LnBhdGNoIGIvZ2RiLXJoYnoy MDI0ODc1LXByMjcwMjYucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u Zjg0ZjEzNAotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6MjAyNDg3NS1wcjI3MDI2LnBhdGNo CkBAIC0wLDAgKzEsNjAgQEAKK0Zyb20gRkVET1JBX1BBVENIRVMgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCitGcm9tOiA9P1VURi04P3E/QWxleGFuZHJhPTIwSD1DMz1BMWprb3Y9QzM9QTE/PSA8 YWhhamtvdmFAcmVkaGF0LmNvbT4KK0RhdGU6IFR1ZSwgMTEgSmFuIDIwMjIgMTM6MjI6NDQgKzAx MDAKK1N1YmplY3Q6IGdkYi1yaGJ6MjAyNDg3NS1wcjI3MDI2LnBhdGNoCisKKzs7QmFja3BvcnQg dXBzdHJlYW0gY29tbWl0IGZyb20gQWFyb24gTWVyZXkKKzs7YjlkYjI2YjRjNDQgW1BSIGdkYi8y NzAyNl0gQ1RSTC1DIGlzIGlnbm9yZWQgd2hlbiBkZWJ1ZyBpbmZvIGlzIGRvd25sb2FkZWQKKwor W1BSIGdkYi8yNzAyNl0gQ1RSTC1DIGlzIGlnbm9yZWQgd2hlbiBkZWJ1ZyBpbmZvIGlzIGRvd25s b2FkZWQKKworRHVyaW5nIGRlYnVnaW5mb2QgZG93bmxvYWRzLCBjdHJsLWMgc2hvdWxkIHJlc3Vs dCBpbiB0aGUgZG93bmxvYWQKK2JlaW5nIGNhbmNlbGxlZCBhbmQgc2tpcHBlZC4gIEhvd2V2ZXIg aW4gc29tZSBjYXNlcywgY3RybC1jIGZhaWxzIHRvCitnZXQgZGVsaXZlcmVkIHRvIGdkYiBkdXJp bmcgZG93bmxvYWRpbmcuICBUaGlzIGNhbiByZXN1bHQgaW4gZG93bmxvYWRzCitiZWluZyB1bnNr aXBwYWJsZS4KKworRml4IHRoaXMgYnkgZW5zdXJpbmcgdGhhdCB0YXJnZXRfdGVybWluYWw6Om91 cnMgaXMgaW4gZWZmZWN0IGZvciB0aGUKK2R1cmF0aW9uIG9mIGVhY2ggZG93bmxvYWQuCisKK0Nv LWF1dGhvcmVkLWJ5OiBUb20gZGUgVnJpZXMgPHRkZXZyaWVzQHN1c2UuZGU+CitodHRwczovL3Nv dXJjZXdhcmUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0yNzAyNiNjMworCitkaWZmIC0t Z2l0IGEvZ2RiL2RlYnVnaW5mb2Qtc3VwcG9ydC5jIGIvZ2RiL2RlYnVnaW5mb2Qtc3VwcG9ydC5j CistLS0gYS9nZGIvZGVidWdpbmZvZC1zdXBwb3J0LmMKKysrKyBiL2dkYi9kZWJ1Z2luZm9kLXN1 cHBvcnQuYworQEAgLTIzLDYgKzIzLDcgQEAKKyAjaW5jbHVkZSAiZ2Ric3VwcG9ydC9nZGJfb3B0 aW9uYWwuaCIKKyAjaW5jbHVkZSAiY2xpL2NsaS1jbWRzLmgiCisgI2luY2x1ZGUgImNsaS9jbGkt c3R5bGUuaCIKKysjaW5jbHVkZSAidGFyZ2V0LmgiCisgCisgLyogU2V0L3Nob3cgZGVidWdpbmZv ZCBjb21tYW5kcy4gICovCisgc3RhdGljIGNtZF9saXN0X2VsZW1lbnQgKnNldF9kZWJ1Z2luZm9k X3ByZWZpeF9saXN0OworQEAgLTIwOCw2ICsyMDksMTMgQEAgZGVidWdpbmZvZF9zb3VyY2VfcXVl cnkgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1aWxkX2lkLAorICAgdXNlcl9kYXRhIGRhdGEgKCJz b3VyY2UgZmlsZSIsIHNyY3BhdGgpOworIAorICAgZGVidWdpbmZvZF9zZXRfdXNlcl9kYXRhIChj LCAmZGF0YSk7CisrICBnZGI6Om9wdGlvbmFsPHRhcmdldF90ZXJtaW5hbDo6c2NvcGVkX3Jlc3Rv cmVfdGVybWluYWxfc3RhdGU+IHRlcm1fc3RhdGU7CisrICBpZiAodGFyZ2V0X3N1cHBvcnRzX3Rl cm1pbmFsX291cnMgKCkpCisrICAgIHsKKysgICAgICB0ZXJtX3N0YXRlLmVtcGxhY2UgKCk7Cisr ICAgICAgdGFyZ2V0X3Rlcm1pbmFsOjpvdXJzICgpOworKyAgICB9CisrCisgICBzY29wZWRfZmQg ZmQgKGRlYnVnaW5mb2RfZmluZF9zb3VyY2UgKGMsCisgCQkJCQlidWlsZF9pZCwKKyAJCQkJCWJ1 aWxkX2lkX2xlbiwKK0BAIC0yNDYsNiArMjU0LDEzIEBAIGRlYnVnaW5mb2RfZGVidWdpbmZvX3F1 ZXJ5IChjb25zdCB1bnNpZ25lZCBjaGFyICpidWlsZF9pZCwKKyAgIHVzZXJfZGF0YSBkYXRhICgi c2VwYXJhdGUgZGVidWcgaW5mbyBmb3IiLCBmaWxlbmFtZSk7CisgCisgICBkZWJ1Z2luZm9kX3Nl dF91c2VyX2RhdGEgKGMsICZkYXRhKTsKKysgIGdkYjo6b3B0aW9uYWw8dGFyZ2V0X3Rlcm1pbmFs OjpzY29wZWRfcmVzdG9yZV90ZXJtaW5hbF9zdGF0ZT4gdGVybV9zdGF0ZTsKKysgIGlmICh0YXJn ZXRfc3VwcG9ydHNfdGVybWluYWxfb3VycyAoKSkKKysgICAgeworKyAgICAgIHRlcm1fc3RhdGUu ZW1wbGFjZSAoKTsKKysgICAgICB0YXJnZXRfdGVybWluYWw6Om91cnMgKCk7CisrICAgIH0KKysK KyAgIHNjb3BlZF9mZCBmZCAoZGVidWdpbmZvZF9maW5kX2RlYnVnaW5mbyAoYywgYnVpbGRfaWQs IGJ1aWxkX2lkX2xlbiwKKyAJCQkJCSAgICZkbmFtZSkpOworICAgZGVidWdpbmZvZF9zZXRfdXNl cl9kYXRhIChjLCBudWxscHRyKTsKCmRpZmYgLS1naXQgYS9nZGItcmhiejIwMjQ4NzUtc2V0X3No b3ctZm9yLW1hbmFnaW5nLWRlYnVnaW5mb2QucGF0Y2ggYi9nZGItcmhiejIwMjQ4NzUtc2V0X3No b3ctZm9yLW1hbmFnaW5nLWRlYnVnaW5mb2QucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uMjZhYjJhNAotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6MjAyNDg3NS1z ZXRfc2hvdy1mb3ItbWFuYWdpbmctZGVidWdpbmZvZC5wYXRjaApAQCAtMCwwICsxLDQxNCBAQAor RnJvbSBGRURPUkFfUEFUQ0hFUyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRG LTg/cT9BbGV4YW5kcmE9MjBIPUMzPUExamtvdj1DMz1BMT89IDxhaGFqa292YUByZWRoYXQuY29t PgorRGF0ZTogTW9uLCAxMCBKYW4gMjAyMiAxMzozNTo0NSArMDEwMAorU3ViamVjdDogZ2RiLXJo YnoyMDI0ODc1LXNldF9zaG93LWZvci1tYW5hZ2luZy1kZWJ1Z2luZm9kLnBhdGNoCisKKzs7QmFj a3BvcnQgdXBzdHJlYW0gY29tbWl0IGZyb20gQWFyb24gTWVyZXkKKzs7NzgxMWZhNTk5NWYgZ2Ri OiBhZGQgc2V0L3Nob3cgY29tbWFuZHMgZm9yIG1hbmFnaW5nIGRlYnVnaW5mbworCitnZGI6IGFk ZCBzZXQvc2hvdyBjb21tYW5kcyBmb3IgbWFuYWdpbmcgZGVidWdpbmZvZAorCitBZGQgJ3NldCBk ZWJ1Z2luZm9kJyBjb21tYW5kLiAgQWNjZXB0cyAnb24nLCAnb2ZmJyBvciAnYXNrJyBhcyBhbgor YXJndW1lbnQuICAnb24nIGVuYWJsZXMgZGVidWdpbmZvZCBmb3IgdGhlIGN1cnJlbnQgc2Vzc2lv bi4gICdvZmYnCitkaXNhYmxlcyBkZWJ1Z2luZm9kIGZvciB0aGUgY3VycmVudCBzZXNzaW9uLiAg J2Fzaycgd2lsbCBwcm9tcHQKK3RoZSB1c2VyIHRvIGVpdGhlciBlbmFibGUgb3IgZGlzYWJsZSBk ZWJ1Z2luZm9kIHdoZW4gdGhlIG5leHQgcXVlcnkKK2lzIGFib3V0IHRvIGJlIHBlcmZvcm1lZDoK KworICAgIFRoaXMgR0RCIHN1cHBvcnRzIGF1dG8tZG93bmxvYWRpbmcgZGVidWdpbmZvIGZyb20g dGhlIGZvbGxvd2luZyBVUkxzOgorICAgIDxVUkwxPiA8VVJMMj4gLi4uCisgICAgRW5hYmxlIGRl YnVnaW5mb2QgZm9yIHRoaXMgc2Vzc2lvbj8gKHkgb3IgW25dKSB5CisgICAgRGVidWdpbmZvZCBo YXMgYmVlbiBlbmFibGVkLgorICAgIFRvIG1ha2UgdGhpcyBzZXR0aW5nIHBlcm1hbmVudCwgYWRk ICdzZXQgZGVidWdpbmZvZCBvbicgdG8gLmdkYmluaXQuCisKK0ZvciBpbnRlcmFjdGl2ZSBzZXNz aW9ucywgJ2FzaycgaXMgdGhlIGRlZmF1bHQuICBGb3Igbm9uLWludGVyYWN0aXZlCitzZXNzaW9u cywgJ29mZicgaXMgdGhlIGRlZmF1bHQuCisKK0FkZCAnc2hvdyBkZWJ1Z2luZm9kIHN0YXR1cycg Y29tbWFuZC4gIERpc3BsYXlzIHdoZXRoZXIgZGVidWdpbmZvZAoraXMgc2V0IHRvICdvbicsICdv ZmYnIG9yICdhc2snLgorCitBZGQgJ3NldC9zaG93IGRlYnVnaW5mb2QgdXJscycgY29tbWFuZHMu IEFjY2VwdHMgYSBzdHJpbmcgb2YKK3NwYWNlLXNlcGFyYXRlZCBkZWJ1Z2luZm9kIHNlcnZlciBV UkxzIHRvIGJlIHF1ZXJpZWQuICBUaGUgZGVmYXVsdAordmFsdWUgaXMgY29waWVkIGZyb20gdGhl IERFQlVHSU5GT0RfVVJMUyBlbnZpcm9ubWVudCB2YXJpYWJsZS4KKworRmluYWxseSBhZGQgJ3Nl dC9zaG93IGRlYnVnaW5mb2QgdmVyYm9zZScgY29tbWFuZHMgdG8gY29udHJvbCB3aGV0aGVyCitk ZWJ1Z2luZm9kLXJlbGF0ZWQgb3V0cHV0IGlzIGRpc3BsYXllZC4gIFZlcmJvc2Ugb3V0cHV0IGlz IGVuYWJsZWQKK2J5IGRlZmF1bHQuCisKKyAgICAoZ2RiKSBydW4KKyAgICBTdGFydGluZyBwcm9n cmFtOiAvYmluL3NsZWVwIDUKKyAgICBEb3dubG9hZCBmYWlsZWQ6IE5vIHJvdXRlIHRvIGhvc3Qu ICBDb250aW51aW5nIHdpdGhvdXQgZGVidWcgaW5mbyBmb3IgL2xpYjY0L2xpYmMuc28uNi4KKwor SWYgR0RCIGlzIG5vdCBidWlsdCB3aXRoIGRlYnVnaW5mb2QgdGhlbiB0aGVzZSBjb21tYW5kcyB3 aWxsIGp1c3QgZGlzcGxheQorCisgICAgU3VwcG9ydCBmb3IgZGVidWdpbmZvZCBpcyBub3QgY29t cGlsZWQgaW50byBHREIuCisKK2RpZmYgLS1naXQgYS9nZGIvZGVidWdpbmZvZC1zdXBwb3J0LmMg Yi9nZGIvZGVidWdpbmZvZC1zdXBwb3J0LmMKKy0tLSBhL2dkYi9kZWJ1Z2luZm9kLXN1cHBvcnQu YworKysrIGIvZ2RiL2RlYnVnaW5mb2Qtc3VwcG9ydC5jCitAQCAtMTgsMTAgKzE4LDI2IEBACisg CisgI2luY2x1ZGUgImRlZnMuaCIKKyAjaW5jbHVkZSA8ZXJybm8uaD4KKy0jaW5jbHVkZSAiY2xp L2NsaS1zdHlsZS5oIgorICNpbmNsdWRlICJnZGJzdXBwb3J0L3Njb3BlZF9mZC5oIgorICNpbmNs dWRlICJkZWJ1Z2luZm9kLXN1cHBvcnQuaCIKKyAjaW5jbHVkZSAiZ2Ric3VwcG9ydC9nZGJfb3B0 aW9uYWwuaCIKKysjaW5jbHVkZSAiY2xpL2NsaS1jbWRzLmgiCisrI2luY2x1ZGUgImNsaS9jbGkt c3R5bGUuaCIKKysKKysvKiBTZXQvc2hvdyBkZWJ1Z2luZm9kIGNvbW1hbmRzLiAgKi8KKytzdGF0 aWMgY21kX2xpc3RfZWxlbWVudCAqc2V0X2RlYnVnaW5mb2RfcHJlZml4X2xpc3Q7Cisrc3RhdGlj IGNtZF9saXN0X2VsZW1lbnQgKnNob3dfZGVidWdpbmZvZF9wcmVmaXhfbGlzdDsKKysKKytzdGF0 aWMgY29uc3QgY2hhciBkZWJ1Z2luZm9kX29uW10gPSAib24iOworK3N0YXRpYyBjb25zdCBjaGFy IGRlYnVnaW5mb2Rfb2ZmW10gPSAib2ZmIjsKKytzdGF0aWMgY29uc3QgY2hhciBkZWJ1Z2luZm9k X2Fza1tdID0gImFzayI7CisrCisrc3RhdGljIGNvbnN0IGNoYXIgKmRlYnVnaW5mb2RfZW5hYmxl ID0gZGVidWdpbmZvZF9hc2s7Cisrc3RhdGljIHVuc2lnbmVkIGRlYnVnaW5mb2RfdmVyYm9zZSA9 IDE7CisrCisrLyogVGhpcyBpcyBuZXZlciBhY3R1YWxseSB1c2VkLiAgVVJMcyBhcmUgYWx3YXlz IHB1bGxlZCBmcm9tIHRoZQorKyAgIGVudmlyb25tZW50LiAgKi8KKytzdGF0aWMgY2hhciAqZGVi dWdpbmZvZF91cmxzOworIAorICNpZm5kZWYgSEFWRV9MSUJERUJVR0lORk9ECisgc2NvcGVkX2Zk CitAQCAtNDEsNiArNTcsNjcgQEAgZGVidWdpbmZvZF9kZWJ1Z2luZm9fcXVlcnkgKGNvbnN0IHVu c2lnbmVkIGNoYXIgKmJ1aWxkX2lkLAorIHsKKyAgIHJldHVybiBzY29wZWRfZmQgKC1FTk9TWVMp OworIH0KKysKKysjZGVmaW5lIE5PX0lNUEwgXygiU3VwcG9ydCBmb3IgZGVidWdpbmZvZCBpcyBu b3QgY29tcGlsZWQgaW50byBHREIuIikKKysKKysvKiBTdHViIHNldC9zaG93IGNvbW1hbmRzIHRo YXQgaW5kaWNhdGUgZGVidWdpbmZvZCBpcyBub3Qgc3VwcG9ydGVkLiAgKi8KKysKKytzdGF0aWMg dm9pZAorK3NldF9kZWJ1Z2luZm9kX29uX2NvbW1hbmQgKGNvbnN0IGNoYXIgKmFyZ3MsIGludCBm cm9tX3R0eSkKKyt7CisrICBlcnJvciAoTk9fSU1QTCk7CisrICBkZWJ1Z2luZm9kX2VuYWJsZSA9 IGRlYnVnaW5mb2Rfb2ZmOworK30KKysKKytzdGF0aWMgdm9pZAorK3NldF9kZWJ1Z2luZm9kX29m Zl9jb21tYW5kIChjb25zdCBjaGFyICphcmdzLCBpbnQgZnJvbV90dHkpCisreworKyAgZXJyb3Ig KE5PX0lNUEwpOworKyAgZGVidWdpbmZvZF9lbmFibGUgPSBkZWJ1Z2luZm9kX29mZjsKKyt9Cisr Cisrc3RhdGljIHZvaWQKKytzZXRfZGVidWdpbmZvZF9hc2tfY29tbWFuZCAoY29uc3QgY2hhciAq YXJncywgaW50IGZyb21fdHR5KQorK3sKKysgIGVycm9yIChOT19JTVBMKTsKKysgIGRlYnVnaW5m b2RfZW5hYmxlID0gZGVidWdpbmZvZF9vZmY7CisrfQorKworK3N0YXRpYyB2b2lkCisrc2hvd19k ZWJ1Z2luZm9kX3N0YXR1c19jb21tYW5kIChjb25zdCBjaGFyICphcmdzLCBpbnQgZnJvbV90dHkp CisreworKyAgZXJyb3IgKE5PX0lNUEwpOworK30KKysKKytzdGF0aWMgdm9pZAorK3NldF9kZWJ1 Z2luZm9kX3VybHNfY29tbWFuZCAoY29uc3QgY2hhciAqaWdub3JlLCBpbnQgZnJvbV90dHksCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY21kX2xpc3RfZWxlbWVudCAqYykK Kyt7CisrICBlcnJvciAoTk9fSU1QTCk7CisrfQorKworK3N0YXRpYyB2b2lkCisrc2hvd19kZWJ1 Z2luZm9kX3VybHNfY29tbWFuZCAoc3RydWN0IHVpX2ZpbGUgKmZpbGUsIGludCBmcm9tX3R0eSwK KysJCQkgICAgICBzdHJ1Y3QgY21kX2xpc3RfZWxlbWVudCAqY21kLCBjb25zdCBjaGFyICp2YWx1 ZSkKKyt7CisrICBlcnJvciAoTk9fSU1QTCk7CisrfQorKworK3N0YXRpYyB2b2lkCisrc2V0X2Rl YnVnaW5mb2RfdmVyYm9zZV9jb21tYW5kIChjb25zdCBjaGFyICphcmdzLCBpbnQgZnJvbV90dHks CisrCQkJCXN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICpjKQorK3sKKysgIGVycm9yIChOT19JTVBM KTsKKysgIGRlYnVnaW5mb2RfdmVyYm9zZSA9IDA7CisrfQorKworK3N0YXRpYyB2b2lkCisrc2hv d19kZWJ1Z2luZm9kX3ZlcmJvc2VfY29tbWFuZCAoc3RydWN0IHVpX2ZpbGUgKmZpbGUsIGludCBm cm9tX3R0eSwKKysJCQkJIHN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICpjbWQsCisrCQkJCSBjb25z dCBjaGFyICp2YWx1ZSkKKyt7CisrICBlcnJvciAoTk9fSU1QTCk7CisrfQorICNlbHNlCisgI2lu Y2x1ZGUgPGVsZnV0aWxzL2RlYnVnaW5mb2QuaD4KKyAKK0BAIC02OCw2ICsxNDUsODIgQEAgc3Ry dWN0IGRlYnVnaW5mb2RfY2xpZW50X2RlbGV0ZXIKKyB1c2luZyBkZWJ1Z2luZm9kX2NsaWVudF91 cAorICAgPSBzdGQ6OnVuaXF1ZV9wdHI8ZGVidWdpbmZvZF9jbGllbnQsIGRlYnVnaW5mb2RfY2xp ZW50X2RlbGV0ZXI+OworIAorKy8qIEVuYWJsZSBkZWJ1Z2luZm9kLiAgKi8KKysKKytzdGF0aWMg dm9pZAorK3NldF9kZWJ1Z2luZm9kX29uX2NvbW1hbmQgKGNvbnN0IGNoYXIgKmFyZ3MsIGludCBm cm9tX3R0eSkKKyt7CisrICBkZWJ1Z2luZm9kX2VuYWJsZSA9IGRlYnVnaW5mb2Rfb247CisrfQor KworKy8qIERpc2FibGUgZGVidWdpbmZvZC4gICovCisrCisrc3RhdGljIHZvaWQKKytzZXRfZGVi dWdpbmZvZF9vZmZfY29tbWFuZCAoY29uc3QgY2hhciAqYXJncywgaW50IGZyb21fdHR5KQorK3sK KysgIGRlYnVnaW5mb2RfZW5hYmxlID0gZGVidWdpbmZvZF9vZmY7CisrfQorKworKy8qIEJlZm9y ZSBuZXh0IHF1ZXJ5LCBhc2sgdXNlciB3aGV0aGVyIHRvIGVuYWJsZSBkZWJ1Z2luZm9kLiAgKi8K KysKKytzdGF0aWMgdm9pZAorK3NldF9kZWJ1Z2luZm9kX2Fza19jb21tYW5kIChjb25zdCBjaGFy ICphcmdzLCBpbnQgZnJvbV90dHkpCisreworKyAgZGVidWdpbmZvZF9lbmFibGUgPSBkZWJ1Z2lu Zm9kX2FzazsKKyt9CisrCisrLyogU2hvdyB3aGV0aGVyIGRlYnVnaW5mb2QgaXMgZW5hYmxlZC4g ICovCisrCisrc3RhdGljIHZvaWQKKytzaG93X2RlYnVnaW5mb2Rfc3RhdHVzX2NvbW1hbmQgKGNv bnN0IGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKKyt7CisrICBwcmludGZfdW5maWx0ZXJlZCAo XygiRGVidWdpbmZvZCBmdW5jdGlvbmFsaXR5IGlzIGN1cnJlbnRseSBzZXQgdG8gIiBcCisrCQkg ICAgICJcIiVzXCIuXG4iKSwgZGVidWdpbmZvZF9lbmFibGUpOworK30KKysKKysvKiBTZXQgdGhl IFVSTHMgdGhhdCBkZWJ1Z2luZm9kIHdpbGwgcXVlcnkuICAqLworKworK3N0YXRpYyB2b2lkCisr c2V0X2RlYnVnaW5mb2RfdXJsc19jb21tYW5kIChjb25zdCBjaGFyICppZ25vcmUsIGludCBmcm9t X3R0eSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjbWRfbGlzdF9lbGVt ZW50ICpjKQorK3sKKysgIGdkYl9hc3NlcnQgKGRlYnVnaW5mb2RfdXJscyAhPSBudWxscHRyKTsK KysgIGlmIChzZXRlbnYgKCJERUJVR0lORk9EX1VSTFMiLCBkZWJ1Z2luZm9kX3VybHMsIDEpICE9 IDApCisrICAgIHdhcm5pbmcgKF8oIlVuYWJsZSB0byBzZXQgZGVidWdpbmZvZCBVUkxzOiAlcyIp LCBzYWZlX3N0cmVycm9yIChlcnJubykpOworK30KKysKKysvKiBTaG93IHRoZSBVUkxzIHRoYXQg ZGVidWdpbmZvZCB3aWxsIHF1ZXJ5LiAgKi8KKysKKytzdGF0aWMgdm9pZAorK3Nob3dfZGVidWdp bmZvZF91cmxzX2NvbW1hbmQgKHN0cnVjdCB1aV9maWxlICpmaWxlLCBpbnQgZnJvbV90dHksCisr CQkJICAgICAgc3RydWN0IGNtZF9saXN0X2VsZW1lbnQgKmNtZCwgY29uc3QgY2hhciAqdmFsdWUp CisreworKyAgaWYgKHZhbHVlID09IG51bGxwdHIgfHwgdmFsdWVbMF0gPT0gJ1wwJykKKysgICAg ZnByaW50Zl91bmZpbHRlcmVkIChmaWxlLCBfKCJEZWJ1Z2luZm9kIFVSTHMgaGF2ZSBub3QgYmVl biBzZXQuXG4iKSk7CisrICBlbHNlCisrICAgIGZwcmludGZfZmlsdGVyZWQgKGZpbGUsIF8oIkRl YnVnaW5mb2QgVVJMcyBhcmUgY3VycmVudGx5IHNldCB0bzpcbiVzXG4iKSwKKysJCSAgICAgIHZh bHVlKTsKKyt9CisrCisrLyogTm8tb3Agc2V0dGVyIHVzZWQgZm9yIGNvbXBhdGliaWxpdHkgd2hl biBnZGIgaXMgYnVpbHQgd2l0aG91dCBkZWJ1Z2luZm9kLiAgKi8KKysKKytzdGF0aWMgdm9pZAor K3NldF9kZWJ1Z2luZm9kX3ZlcmJvc2VfY29tbWFuZCAoY29uc3QgY2hhciAqYXJncywgaW50IGZy b21fdHR5LAorKwkJCQlzdHJ1Y3QgY21kX2xpc3RfZWxlbWVudCAqYykKKyt7CisrICByZXR1cm47 CisrfQorKworKy8qIFNob3cgdmVyYm9zaXR5LiAgKi8KKysKKytzdGF0aWMgdm9pZAorK3Nob3df ZGVidWdpbmZvZF92ZXJib3NlX2NvbW1hbmQgKHN0cnVjdCB1aV9maWxlICpmaWxlLCBpbnQgZnJv bV90dHksCisrCQkJCSBzdHJ1Y3QgY21kX2xpc3RfZWxlbWVudCAqY21kLCBjb25zdCBjaGFyICp2 YWx1ZSkKKyt7CisrICBmcHJpbnRmX2ZpbHRlcmVkIChmaWxlLCBfKCJEZWJ1Z2luZm9kIHZlcmJv c2Ugb3V0cHV0IGlzIHNldCB0byAlcy5cbiIpLAorKwkJICAgIHZhbHVlKTsKKyt9CisrCisgc3Rh dGljIGludAorIHByb2dyZXNzZm4gKGRlYnVnaW5mb2RfY2xpZW50ICpjLCBsb25nIGN1ciwgbG9u ZyB0b3RhbCkKKyB7CitAQCAtMTIwLDYgKzI3Myw0MiBAQCBnZXRfZGVidWdpbmZvZF9jbGllbnQg KCkKKyAgIHJldHVybiBnbG9iYWxfY2xpZW50LmdldCAoKTsKKyB9CisgCisrLyogQ2hlY2sgaWYg ZGVidWdpbmZvZCBpcyBlbmFibGVkLiAgSWYgY29uZmlndXJlZCB0byBkbyBzbywgYXNrIHRoZSB1 c2VyCisrICAgd2hldGhlciB0byBlbmFibGUgZGVidWdpbmZvZC4gICovCisrCisrc3RhdGljIGJv b2wKKytkZWJ1Z2luZm9kX2VuYWJsZWQgKCkKKyt7CisrICBjb25zdCBjaGFyICp1cmxzID0gZ2V0 ZW52IChERUJVR0lORk9EX1VSTFNfRU5WX1ZBUik7CisrCisrICBpZiAodXJscyA9PSBudWxscHRy IHx8IHVybHNbMF0gPT0gJ1wwJworKyAgICAgIHx8IGRlYnVnaW5mb2RfZW5hYmxlID09IGRlYnVn aW5mb2Rfb2ZmKQorKyAgICByZXR1cm4gZmFsc2U7CisrCisrICBpZiAoZGVidWdpbmZvZF9lbmFi bGUgPT0gZGVidWdpbmZvZF9hc2spCisrICAgIHsKKysgICAgICBpbnQgcmVzcCA9IG5xdWVyeSAo XygiXG5UaGlzIEdEQiBzdXBwb3J0cyBhdXRvLWRvd25sb2FkaW5nIGRlYnVnaW5mbyAiIFwKKysJ CQkgICAiZnJvbSB0aGUgZm9sbG93aW5nIFVSTHM6XG4lc1xuRW5hYmxlIGRlYnVnaW5mb2QgIiBc CisrCQkJICAgImZvciB0aGlzIHNlc3Npb24/ICIpLAorKwkJCSB1cmxzKTsKKysgICAgICBpZiAo IXJlc3ApCisrCXsKKysJICBwcmludGZfZmlsdGVyZWQgKF8oIkRlYnVnaW5mb2QgaGFzIGJlZW4g ZGlzYWJsZWQuXG5UbyBtYWtlIHRoaXMgIiBcCisrCQkJICAgICAic2V0dGluZyBwZXJtYW5lbnQs IGFkZCBcJ3NldCBkZWJ1Z2luZm9kIG9mZlwnICIgXAorKwkJCSAgICAgInRvIC5nZGJpbml0Llxu IikpOworKwkgIGRlYnVnaW5mb2RfZW5hYmxlID0gZGVidWdpbmZvZF9vZmY7CisrCSAgcmV0dXJu IGZhbHNlOworKwl9CisrCisrICAgICAgcHJpbnRmX2ZpbHRlcmVkIChfKCJEZWJ1Z2luZm9kIGhh cyBiZWVuIGVuYWJsZWQuXG5UbyBtYWtlIHRoaXMgIiBcCisrCQkJICJzZXR0aW5nIHBlcm1hbmVu dCwgYWRkIFwnc2V0IGRlYnVnaW5mb2Qgb25cJyAiIFwKKysJCQkgInRvIC5nZGJpbml0LlxuIikp OworKyAgICAgIGRlYnVnaW5mb2RfZW5hYmxlID0gZGVidWdpbmZvZF9vbjsKKysgICAgfQorKwor KyAgcmV0dXJuIHRydWU7CisrfQorKworIC8qIFNlZSBkZWJ1Z2luZm9kLXN1cHBvcnQuaCAgKi8K KyAKKyBzY29wZWRfZmQKK0BAIC0xMjgsOCArMzE3LDcgQEAgZGVidWdpbmZvZF9zb3VyY2VfcXVl cnkgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1aWxkX2lkLAorIAkJCSBjb25zdCBjaGFyICpzcmNw YXRoLAorIAkJCSBnZGI6OnVuaXF1ZV94bWFsbG9jX3B0cjxjaGFyPiAqZGVzdG5hbWUpCisgewor LSAgY29uc3QgY2hhciAqdXJsc19lbnZfdmFyID0gZ2V0ZW52IChERUJVR0lORk9EX1VSTFNfRU5W X1ZBUik7CistICBpZiAodXJsc19lbnZfdmFyID09IE5VTEwgfHwgdXJsc19lbnZfdmFyWzBdID09 ICdcMCcpCisrICBpZiAoIWRlYnVnaW5mb2RfZW5hYmxlZCAoKSkKKyAgICAgcmV0dXJuIHNjb3Bl ZF9mZCAoLUVOT1NZUyk7CisgCisgICBkZWJ1Z2luZm9kX2NsaWVudCAqYyA9IGdldF9kZWJ1Z2lu Zm9kX2NsaWVudCAoKTsKK0BAIC0xNDcsOCArMzM1LDcgQEAgZGVidWdpbmZvZF9zb3VyY2VfcXVl cnkgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1aWxkX2lkLAorIAkJCQkJbnVsbHB0cikpOworICAg ZGVidWdpbmZvZF9zZXRfdXNlcl9kYXRhIChjLCBudWxscHRyKTsKKyAKKy0gIC8qIFRPRE86IEFk ZCAnc2V0IGRlYnVnIGRlYnVnaW5mb2QnIGNvbW1hbmQgdG8gY29udHJvbCB3aGVuIGVycm9yIG1l c3NhZ2VzIGFyZSBzaG93bi4gICovCistICBpZiAoZmQuZ2V0ICgpIDwgMCAmJiBmZC5nZXQgKCkg IT0gLUVOT0VOVCkKKysgIGlmIChkZWJ1Z2luZm9kX3ZlcmJvc2UgPiAwICYmIGZkLmdldCAoKSA8 IDAgJiYgZmQuZ2V0ICgpICE9IC1FTk9FTlQpCisgICAgIHByaW50Zl9maWx0ZXJlZCAoXygiRG93 bmxvYWQgZmFpbGVkOiAlcy4gIENvbnRpbnVpbmcgd2l0aG91dCBzb3VyY2UgZmlsZSAlcHMuXG4i KSwKKyAJCSAgICAgc2FmZV9zdHJlcnJvciAoLWZkLmdldCAoKSksCisgCQkgICAgIHN0eWxlZF9z dHJpbmcgKGZpbGVfbmFtZV9zdHlsZS5zdHlsZSAoKSwgIHNyY3BhdGgpKTsKK0BAIC0xNjcsOCAr MzU0LDcgQEAgZGVidWdpbmZvZF9kZWJ1Z2luZm9fcXVlcnkgKGNvbnN0IHVuc2lnbmVkIGNoYXIg KmJ1aWxkX2lkLAorIAkJCSAgICBjb25zdCBjaGFyICpmaWxlbmFtZSwKKyAJCQkgICAgZ2RiOjp1 bmlxdWVfeG1hbGxvY19wdHI8Y2hhcj4gKmRlc3RuYW1lKQorIHsKKy0gIGNvbnN0IGNoYXIgKnVy bHNfZW52X3ZhciA9IGdldGVudiAoREVCVUdJTkZPRF9VUkxTX0VOVl9WQVIpOworLSAgaWYgKHVy bHNfZW52X3ZhciA9PSBOVUxMIHx8IHVybHNfZW52X3ZhclswXSA9PSAnXDAnKQorKyAgaWYgKCFk ZWJ1Z2luZm9kX2VuYWJsZWQgKCkpCisgICAgIHJldHVybiBzY29wZWRfZmQgKC1FTk9TWVMpOwor IAorICAgZGVidWdpbmZvZF9jbGllbnQgKmMgPSBnZXRfZGVidWdpbmZvZF9jbGllbnQgKCk7CitA QCAtMTg0LDcgKzM3MCw3IEBAIGRlYnVnaW5mb2RfZGVidWdpbmZvX3F1ZXJ5IChjb25zdCB1bnNp Z25lZCBjaGFyICpidWlsZF9pZCwKKyAJCQkJCSAgICZkbmFtZSkpOworICAgZGVidWdpbmZvZF9z ZXRfdXNlcl9kYXRhIChjLCBudWxscHRyKTsKKyAKKy0gIGlmIChmZC5nZXQgKCkgPCAwICYmIGZk LmdldCAoKSAhPSAtRU5PRU5UKQorKyAgaWYgKGRlYnVnaW5mb2RfdmVyYm9zZSA+IDAgJiYgZmQu Z2V0ICgpIDwgMCAmJiBmZC5nZXQgKCkgIT0gLUVOT0VOVCkKKyAgICAgcHJpbnRmX2ZpbHRlcmVk IChfKCJEb3dubG9hZCBmYWlsZWQ6ICVzLiAgQ29udGludWluZyB3aXRob3V0IGRlYnVnIGluZm8g Zm9yICVwcy5cbiIpLAorIAkJICAgICBzYWZlX3N0cmVycm9yICgtZmQuZ2V0ICgpKSwKKyAJCSAg ICAgc3R5bGVkX3N0cmluZyAoZmlsZV9uYW1lX3N0eWxlLnN0eWxlICgpLCAgZmlsZW5hbWUpKTsK K0BAIC0xOTUsMyArMzgxLDYzIEBAIGRlYnVnaW5mb2RfZGVidWdpbmZvX3F1ZXJ5IChjb25zdCB1 bnNpZ25lZCBjaGFyICpidWlsZF9pZCwKKyAgIHJldHVybiBmZDsKKyB9CisgI2VuZGlmCisrCisr LyogUmVnaXN0ZXIgZGVidWdpbmZvZCBjb21tYW5kcy4gICovCisrCisrdm9pZCBfaW5pdGlhbGl6 ZV9kZWJ1Z2luZm9kICgpOworK3ZvaWQKKytfaW5pdGlhbGl6ZV9kZWJ1Z2luZm9kICgpCisrewor KyAgLyogc2V0L3Nob3cgZGVidWdpbmZvZCAqLworKyAgYWRkX2Jhc2ljX3ByZWZpeF9jbWQgKCJk ZWJ1Z2luZm9kIiwgY2xhc3NfcnVuLAorKyAgICAgICAgICAgICAgICAgICAgICAgIF8oIlNldCBk ZWJ1Z2luZm9kIG9wdGlvbnMiKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAmc2V0X2RlYnVn aW5mb2RfcHJlZml4X2xpc3QsIDAsICZzZXRsaXN0KTsKKysKKysgIGFkZF9zaG93X3ByZWZpeF9j bWQgKCJkZWJ1Z2luZm9kIiwgY2xhc3NfcnVuLAorKyAgICAgICAgICAgICAgICAgICAgICAgXygi U2hvdyBkZWJ1Z2luZm9kIG9wdGlvbnMiKSwKKysgICAgICAgICAgICAgICAgICAgICAgICZzaG93 X2RlYnVnaW5mb2RfcHJlZml4X2xpc3QsIDAsICZzaG93bGlzdCk7CisrCisrICAvKiBzZXQgZGVi dWdpbmZvZCBvbiAqLworKyAgYWRkX2NtZCAoIm9uIiwgY2xhc3NfcnVuLCBzZXRfZGVidWdpbmZv ZF9vbl9jb21tYW5kLAorKwkgICBfKCJFbmFibGUgZGVidWdpbmZvZC4iKSwgJnNldF9kZWJ1Z2lu Zm9kX3ByZWZpeF9saXN0KTsKKysKKysgIC8qIHNldCBkZWJ1Z2luZm9kIG9mZiAqLworKyAgYWRk X2NtZCAoIm9mZiIsIGNsYXNzX3J1biwgc2V0X2RlYnVnaW5mb2Rfb2ZmX2NvbW1hbmQsCisrCSAg IF8oIkRpc2FibGUgZGVidWdpbmZvZC4iKSwgJnNldF9kZWJ1Z2luZm9kX3ByZWZpeF9saXN0KTsK KysKKysgIC8qIHNldCBkZWJ1Z2luZm9kIGFzayAqLworKyAgYWRkX2NtZCAoImFzayIsIGNsYXNz X3J1biwgc2V0X2RlYnVnaW5mb2RfYXNrX2NvbW1hbmQsIF8oIlwKKytBc2sgdGhlIHVzZXIgd2hl dGhlciB0byBlbmFibGUgZGVidWdpbmZvZCBiZWZvcmUgcGVyZm9ybWluZyB0aGUgbmV4dCBxdWVy eS4iKSwKKysJICAgJnNldF9kZWJ1Z2luZm9kX3ByZWZpeF9saXN0KTsKKysKKysgIC8qIHNob3cg ZGVidWdpbmZvZCBzdGF0dXMgKi8KKysgIGFkZF9jbWQgKCJzdGF0dXMiLCBjbGFzc19ydW4sIHNo b3dfZGVidWdpbmZvZF9zdGF0dXNfY29tbWFuZCwKKysJICAgXygiU2hvdyB3aGV0aGVyIGRlYnVn aW5mb2QgaXMgc2V0IHRvIFwib25cIiwgXCJvZmZcIiBvciBcImFza1wiLiIpLAorKwkgICAmc2hv d19kZWJ1Z2luZm9kX3ByZWZpeF9saXN0KTsKKysKKysgIC8qIHNldC9zaG93IGRlYnVnaW5mb2Qg dXJscyAqLworKyAgYWRkX3NldHNob3dfc3RyaW5nX25vZXNjYXBlX2NtZCAoInVybHMiLCBjbGFz c19ydW4sICZkZWJ1Z2luZm9kX3VybHMsIF8oIlwKKytTZXQgdGhlIGxpc3Qgb2YgZGVidWdpbmZv ZCBzZXJ2ZXIgVVJMcy4iKSwgXygiXAorK1Nob3cgdGhlIGxpc3Qgb2YgZGVidWdpbmZvZCBzZXJ2 ZXIgVVJMcy4iKSwgXygiXAorK01hbmFnZSB0aGUgc3BhY2Utc2VwYXJhdGVkIGxpc3Qgb2YgZGVi dWdpbmZvZCBzZXJ2ZXIgVVJMcyB0aGF0IEdEQiB3aWxsIHF1ZXJ5IFwKKyt3aGVuIG1pc3Npbmcg ZGVidWdpbmZvLCBleGVjdXRhYmxlcyBvciBzb3VyY2UgZmlsZXMuXG5UaGUgZGVmYXVsdCB2YWx1 ZSBpcyBcCisrY29waWVkIGZyb20gdGhlIERFQlVHSU5GT0RfVVJMUyBlbnZpcm9ubWVudCB2YXJp YWJsZS4iKSwKKysJCQkJICAgc2V0X2RlYnVnaW5mb2RfdXJsc19jb21tYW5kLAorKwkJCQkgICBz aG93X2RlYnVnaW5mb2RfdXJsc19jb21tYW5kLAorKwkJCQkgICAmc2V0X2RlYnVnaW5mb2RfcHJl Zml4X2xpc3QsCisrCQkJCSAgICZzaG93X2RlYnVnaW5mb2RfcHJlZml4X2xpc3QpOworKyAgaWYg KGdldGVudiAoIkRFQlVHSU5GT0RfVVJMUyIpICE9IG51bGxwdHIpCisrICAgIGRlYnVnaW5mb2Rf dXJscyA9IHhzdHJkdXAgKGdldGVudiAoIkRFQlVHSU5GT0RfVVJMUyIpKTsKKysKKysgIC8qIHNl dC9zaG93IGRlYnVnaW5mb2QgdmVyYm9zZSAqLworKyAgYWRkX3NldHNob3dfenVpbnRlZ2VyX2Nt ZCAoInZlcmJvc2UiLCBjbGFzc19zdXBwb3J0LAorKwkJCSAgICAgJmRlYnVnaW5mb2RfdmVyYm9z ZSwgXygiXAorK1NldCB2ZXJib3NpdHkgb2YgZGVidWdpbmZvZCBvdXRwdXQuIiksIF8oIlwKKytT aG93IGRlYnVnaW5mb2QgZGVidWdnaW5nLiIpLCBfKCJcCisrV2hlbiBzZXQgdG8gYSBub24temVy byB2YWx1ZSwgZGlzcGxheSB2ZXJib3NlIG91dHB1dCBmb3IgZWFjaCBkZWJ1Z2luZm9kIFwKKytx dWVyeS5cblRvIGRpc2FibGUsIHNldCB0byB6ZXJvLiAgVmVyYm9zZSBvdXRwdXQgaXMgZGlzcGxh eWVkIGJ5IGRlZmF1bHQuIiksCisrCQkJICAgICBzZXRfZGVidWdpbmZvZF92ZXJib3NlX2NvbW1h bmQsCisrCQkJICAgICBzaG93X2RlYnVnaW5mb2RfdmVyYm9zZV9jb21tYW5kLAorKwkJCSAgICAg JnNldF9kZWJ1Z2luZm9kX3ByZWZpeF9saXN0LAorKwkJCSAgICAgJnNob3dfZGVidWdpbmZvZF9w cmVmaXhfbGlzdCk7CisrfQorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmRlYnVnaW5m b2QvZmV0Y2hfc3JjX2FuZF9zeW1ib2xzLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmRlYnVnaW5m b2QvZmV0Y2hfc3JjX2FuZF9zeW1ib2xzLmV4cAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZGVi dWdpbmZvZC9mZXRjaF9zcmNfYW5kX3N5bWJvbHMuZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2dk Yi5kZWJ1Z2luZm9kL2ZldGNoX3NyY19hbmRfc3ltYm9scy5leHAKK0BAIC0yMTcsNyArMjE3LDgg QEAgcHJvYyBsb2NhbF91cmwgeyB9IHsKKyAgICAgc2V0ZW52IERFQlVHSU5GT0RfVVJMUyBodHRw Oi8vMTI3LjAuMC4xOiRwb3J0CisgCisgICAgICMgZ2RiIHNob3VsZCBub3cgZmluZCB0aGUgc3lt Ym9sIGFuZCBzb3VyY2UgZmlsZXMKKy0gICAgY2xlYW5fcmVzdGFydCAkYmluZmlsZQorKyAgICBj bGVhbl9yZXN0YXJ0CisrICAgIGdkYl90ZXN0ICJmaWxlICRiaW5maWxlIiAiIiAiZmlsZSBbZmls ZSB0YWlsICRiaW5maWxlXSIgIkVuYWJsZSBkZWJ1Z2luZm9kPy4qIiAieSIKKyAgICAgZ2RiX3Rl c3Rfbm9fb3V0cHV0ICJzZXQgc3Vic3RpdHV0ZS1wYXRoICRvdXRwdXRkaXIgL2Rldi9udWxsIiBc CisgCSJzZXQgc3Vic3RpdHV0ZS1wYXRoIgorICAgICBnZGJfdGVzdCAiYnIgbWFpbiIgIkJyZWFr cG9pbnQgMSBhdC4qZmlsZS4qIgorQEAgLTIyNiw4ICsyMjcsMjYgQEAgcHJvYyBsb2NhbF91cmwg eyB9IHsKKyAgICAgIyBnZGIgc2hvdWxkIG5vdyBmaW5kIHRoZSBkZWJ1Z2FsdGxpbmsgZmlsZQor ICAgICBjbGVhbl9yZXN0YXJ0CisgICAgIGdkYl90ZXN0ICJmaWxlICR7YmluZmlsZX1fYWx0Lm8i IFwKKy0JIi4qUmVhZGluZyBzeW1ib2xzIGZyb20gJHtiaW5maWxlfV9hbHQub1wuXC5cLioiIFwK Ky0JImZpbGUgW2ZpbGUgdGFpbCAke2JpbmZpbGV9X2FsdC5vXSIKKysJIi4qRG93bmxvYWRpbmcu KnNlcGFyYXRlIGRlYnVnIGluZm8uKiIgXAorKwkiZmlsZSBbZmlsZSB0YWlsICR7YmluZmlsZX1f YWx0Lm9dIiBcCisrCSIuKkVuYWJsZSBkZWJ1Z2luZm9kPy4qIiAieSIKKysKKysgICAgIyBDb25m aWd1cmUgZGVidWdpbmZvZCB3aXRoIGNvbW1hbmRzCisrICAgIHVuc2V0ZW52IERFQlVHSU5GT0Rf VVJMUworKyAgICBjbGVhbl9yZXN0YXJ0CisrICAgIGdkYl90ZXN0ICJmaWxlICRiaW5maWxlIiAi LipObyBkZWJ1Z2dpbmcgc3ltYm9scy4qIiBcCisrCSJmaWxlIFtmaWxlIHRhaWwgJGJpbmZpbGVd IGNtZCIKKysgICAgZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgZGVidWdpbmZvZCBvZmYiCisrICAg IGdkYl90ZXN0X25vX291dHB1dCAic2V0IGRlYnVnaW5mb2QgdXJscyBodHRwOi8vMTI3LjAuMC4x OiRwb3J0IgorKworKyAgICAjIGdkYiBzaG91bGRuJ3QgZmluZCB0aGUgZGVidWdpbmZvIHNpbmNl IGRlYnVnaW5mb2QgaGFzIGJlZW4gZGlzYWJsZWQKKysgICAgZ2RiX3Rlc3QgImZpbGUgJGJpbmZp bGUiICIuKk5vIGRlYnVnZ2luZyBzeW1ib2xzLioiIFwKKysJImZpbGUgW2ZpbGUgdGFpbCAkYmlu ZmlsZV0gY21kIG9mZiIKKysKKysgICAgIyBFbmFibGUgZGVidWdpbmZvZCBhbmQgZmV0Y2ggdGhl IGRlYnVnaW5mbworKyAgICBnZGJfdGVzdF9ub19vdXRwdXQgInNldCBkZWJ1Z2luZm9kIG9uIgor KyAgICBnZGJfdGVzdCAiZmlsZSAkYmluZmlsZSIgIi4qUmVhZGluZyBzeW1ib2xzIGZyb20uKmRl YnVnaW5mby4qIiBcCisrCSJmaWxlIFtmaWxlIHRhaWwgJGJpbmZpbGVdIGNtZCBvbiIKKyB9Cisg Cisgc2V0IGVudmxpc3QgXAoKZGlmZiAtLWdpdCBhL2dkYi10ZXN0LWZvci1yaGJ6MTk3Njg4Ny5w YXRjaCBiL2dkYi10ZXN0LWZvci1yaGJ6MTk3Njg4Ny5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi4zY2I3MDQ5Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXRlc3QtZm9y LXJoYnoxOTc2ODg3LnBhdGNoCkBAIC0wLDAgKzEsNTkyIEBACitGcm9tIEZFRE9SQV9QQVRDSEVT IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP0FsZXhhbmRyYT0yMEg9 QzM9QTFqa292PUMzPUExPz0gPGFoYWprb3ZhQHJlZGhhdC5jb20+CitEYXRlOiBXZWQsIDI5IFNl cCAyMDIxIDExOjE0OjUxICswMjAwCitTdWJqZWN0OiBnZGItdGVzdC1mb3ItcmhiejE5NzY4ODcu cGF0Y2gKKworOzsgQmFja3BvcnQgdGVzdCBmb3IgUkhCWiAxOTc2ODg3IChLZXZpbiBCdWV0dG5l cikuCisKK1Rlc3QgY2FzZSByZXByb2R1Y2luZyBQUjI4MDMwIGJ1ZworCitUaGUgb3JpZ2luYWwg cmVwcm9kdWNlciBmb3IgUFIyODAzMCByZXF1aXJlZCB1c2Ugb2YgYSBzcGVjaWZpYworY29tcGls ZXIgdmVyc2lvbiAtIGdjYy1jKystMTEuMS4xLTMuZmMzNCBpcyBtZW50aW9uZWQgaW4gdGhlIFBS LAordGhvdWdoIGl0IHNlZW1zIHByb2JhYmxlIHRoYXQgb3RoZXIgZ2NjIHZlcnNpb25zIG1pZ2h0 IGFsc28gYmUgYWJsZSB0bworcmVwcm9kdWNlIHRoZSBidWcgYXMgd2VsbC4gIFRoaXMgY29tbWl0 IGludHJvZHVjZXMgYSB0ZXN0IGNhc2Ugd2hpY2gsCit1c2luZyB0aGUgRFdBUkYgYXNzZW1ibGVy LCBwcm92aWRlcyBhIHJlcHJvZHVjZXIgd2hpY2ggaXMgaW5kZXBlbmRlbnQKK29mIHRoZSBjb21w aWxlciB2ZXJzaW9uLiAgKFdlbGwsIGl0J2xsIHdvcmsgd2l0aCB3aGF0ZXZlciBjb21waWxlcnMK K3RoZSBEV0FSRiBhc3NlbWJsZXIgd29ya3Mgd2l0aC4pCisKK1RvIHRoZSBiZXN0IG9mIG15IGtu b3dsZWRnZSwgaXQncyBhbHNvIHRoZSBmaXJzdCB0ZXN0IGNhc2Ugd2hpY2ggdXNlcwordGhlIERX QVJGIGFzc2VtYmxlciB0byBwcm92aWRlIGRlYnVnIGluZm8gZm9yIGEgc2hhcmVkIG9iamVjdC4g IFRoYXQKK2JlaW5nIHRoZSBjYXNlLCBJIHByb3ZpZGVkIG1vcmUgdGhhbiB0aGUgdXN1YWwgY29t bWVudGFyeSB3aGljaCBzaG91bGQKK2FsbG93IHRoaXMgY2FzZSB0byBiZSB1c2VkIGFzIGEgdGVt cGxhdGUgd2hlbiBhIGNvbWJvIHNoYXJlZAorbGlicmFyeSAvIERXQVJGIGFzc2VtYmxlciB0ZXN0 IGNhc2UgaXMgcmVxdWlyZWQgaW4gdGhlIGZ1dHVyZS4KKworSSBwcm92aWRlIHNvbWUgZGV0YWls cyByZWdhcmRpbmcgdGhlIGJ1ZyBpbiBhIGNvbW1lbnQgbmVhciB0aGUKK2JlZ2lubmluZyBvZiBs b2NleHByLWRtbC5leHAuCisKK1RoaXMgcHJvYmxlbSB3YXMgZGlmZmljdWx0IHRvIHJlcHJvZHVj ZTsgSSBmb3VuZCBteXNlbGYgY29uc3RhbnRseQorcmVmZXJyaW5nIHRvIHRoZSBiYWNrdHJhY2Ug d2hpbGUgdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgd2hhdCAoZWxzZSkgSQorbWlnaHQgYmUgbWlzc2lu ZyB3aGlsZSB0cnlpbmcgdG8gY3JlYXRlIGEgcmVwcm9kdWNlci4gIEJlbG93IGlzIGEKK3BhcnRp YWwgYmFja3RyYWNlIHdoaWNoIEkgaW5jbHVkZSBmb3IgcG9zdGVyaXR5LgorCisgIzAgIGludGVy bmFsX2Vycm9yICgKKyAgICBmaWxlPTB4YzUwMTEwICIvaXJvbndvb2QxL3NvdXJjZXdhcmUtZ2l0 L2YzNC1wcjI4MDMwL2JsZC8uLi8uLi93b3JrdHJlZS1wcjI4MDMwL2dkYi9nZGJ0eXBlcy5jIiwg bGluZT01NTc1LAorICAgIGZtdD0weGM1MjBjMCAiVW5leHBlY3RlZCB0eXBlIGZpZWxkIGxvY2F0 aW9uIGtpbmQ6ICVkIikKKyAgICBhdCAvaXJvbndvb2QxL3NvdXJjZXdhcmUtZ2l0L2YzNC1wcjI4 MDMwL2JsZC8uLi8uLi93b3JrdHJlZS1wcjI4MDMwL2dkYnN1cHBvcnQvZXJyb3JzLmNjOjUxCisg IzEgIDB4MDAwMDAwMDAwMDZlZjBjNSBpbiBjb3B5X3R5cGVfcmVjdXJzaXZlIChvYmpmaWxlPTB4 MTYzNTkzMCwKKyAgICB0eXBlPTB4Mjc0YzI2MCwgY29waWVkX3R5cGVzPTB4MzBiYjI5MCkKKyAg ICBhdCAvaXJvbndvb2QxL3NvdXJjZXdhcmUtZ2l0L2YzNC1wcjI4MDMwL2JsZC8uLi8uLi93b3Jr dHJlZS1wcjI4MDMwL2dkYi9nZGJ0eXBlcy5jOjU1NzUKKyAjMiAgMHgwMDAwMDAwMDAwNmVmMzgy IGluIGNvcHlfdHlwZV9yZWN1cnNpdmUgKG9iamZpbGU9MHgxNjM1OTMwLAorICAgIHR5cGU9MHgy NzRjYTEwLCBjb3BpZWRfdHlwZXM9MHgzMGJiMjkwKQorICAgIGF0IC9pcm9ud29vZDEvc291cmNl d2FyZS1naXQvZjM0LXByMjgwMzAvYmxkLy4uLy4uL3dvcmt0cmVlLXByMjgwMzAvZ2RiL2dkYnR5 cGVzLmM6NTYwMgorICMzICAweDAwMDAwMDAwMDBhNzQwOWEgaW4gcHJlc2VydmVfb25lX3ZhbHVl ICh2YWx1ZT0weDI0MjY5ZjAsCisgICAgb2JqZmlsZT0weDE2MzU5MzAsIGNvcGllZF90eXBlcz0w eDMwYmIyOTApCisgICAgYXQgL2lyb253b29kMS9zb3VyY2V3YXJlLWdpdC9mMzQtcHIyODAzMC9i bGQvLi4vLi4vd29ya3RyZWUtcHIyODAzMC9nZGIvdmFsdWUuYzoyNTI5CisgIzQgIDB4MDAwMDAw MDAwMDcyMDEyYSBpbiBnZGJzY21fcHJlc2VydmVfdmFsdWVzICgKKyAgICBleHRsYW5nPTB4YzU1 NzIwIDxleHRlbnNpb25fbGFuZ3VhZ2VfZ3VpbGU+LCBvYmpmaWxlPTB4MTYzNTkzMCwKKyAgICBj b3BpZWRfdHlwZXM9MHgzMGJiMjkwKQorICAgIGF0IC9pcm9ud29vZDEvc291cmNld2FyZS1naXQv ZjM0LXByMjgwMzAvYmxkLy4uLy4uL3dvcmt0cmVlLXByMjgwMzAvZ2RiL2d1aWxlL3NjbS12YWx1 ZS5jOjk0CisgIzUgIDB4MDAwMDAwMDAwMDZhM2Y4MiBpbiBwcmVzZXJ2ZV9leHRfbGFuZ192YWx1 ZXMgKG9iamZpbGU9MHgxNjM1OTMwLAorICAgIGNvcGllZF90eXBlcz0weDMwYmIyOTApCisgICAg YXQgL2lyb253b29kMS9zb3VyY2V3YXJlLWdpdC9mMzQtcHIyODAzMC9ibGQvLi4vLi4vd29ya3Ry ZWUtcHIyODAzMC9nZGIvZXh0ZW5zaW9uLmM6NTY4CisgIzYgIDB4MDAwMDAwMDAwMGE3NDI4ZCBp biBwcmVzZXJ2ZV92YWx1ZXMgKG9iamZpbGU9MHgxNjM1OTMwKQorICAgIGF0IC9pcm9ud29vZDEv c291cmNld2FyZS1naXQvZjM0LXByMjgwMzAvYmxkLy4uLy4uL3dvcmt0cmVlLXByMjgwMzAvZ2Ri L3ZhbHVlLmM6MjU3OQorICM3ICAweDAwMDAwMDAwMDA4MmQ1MTQgaW4gb2JqZmlsZTo6fm9iamZp bGUgKHRoaXM9MHgxNjM1OTMwLAorICAgIF9faW5fY2hyZz08b3B0aW1pemVkIG91dD4pCisgICAg YXQgL2lyb253b29kMS9zb3VyY2V3YXJlLWdpdC9mMzQtcHIyODAzMC9ibGQvLi4vLi4vd29ya3Ry ZWUtcHIyODAzMC9nZGIvb2JqZmlsZXMuYzo1NDkKKyAjOCAgMHgwMDAwMDAwMDAwODMxY2M4IGlu IHN0ZDo6X1NwX2NvdW50ZWRfcHRyPG9iamZpbGUqLCAoX19nbnVfY3h4OjpfTG9ja19wb2xpY3kp Mj46Ol9NX2Rpc3Bvc2UgKHRoaXM9MHgxNjU0NTgwKQorICAgIGF0IC91c3IvaW5jbHVkZS9jKysv MTEvYml0cy9zaGFyZWRfcHRyX2Jhc2UuaDozNDgKKyAjOSAgMHgwMDAwMDAwMDAwNGU2NjE3IGlu IHN0ZDo6X1NwX2NvdW50ZWRfYmFzZTwoX19nbnVfY3h4OjpfTG9ja19wb2xpY3kpMj46Ol9NX3Jl bGVhc2UgKHRoaXM9MHgxNjU0NTgwKSBhdCAvdXNyL2luY2x1ZGUvYysrLzExL2JpdHMvc2hhcmVk X3B0cl9iYXNlLmg6MTY4CisgIzEwIDB4MDAwMDAwMDAwMDRlMWQyZiBpbiBzdGQ6Ol9fc2hhcmVk X2NvdW50PChfX2dudV9jeHg6Ol9Mb2NrX3BvbGljeSkyPjo6fl9fc2hhcmVkX2NvdW50ICh0aGlz PTB4MTkwYmI4OCwgX19pbl9jaHJnPTxvcHRpbWl6ZWQgb3V0PikKKyAgICBhdCAvdXNyL2luY2x1 ZGUvYysrLzExL2JpdHMvc2hhcmVkX3B0cl9iYXNlLmg6NzA1CisgIzExIDB4MDAwMDAwMDAwMDgy ZmVlZSBpbiBzdGQ6Ol9fc2hhcmVkX3B0cjxvYmpmaWxlLCAoX19nbnVfY3h4OjpfTG9ja19wb2xp Y3kpMj46On5fX3NoYXJlZF9wdHIgKHRoaXM9MHgxOTBiYjgwLCBfX2luX2Nocmc9PG9wdGltaXpl ZCBvdXQ+KQorICAgIGF0IC91c3IvaW5jbHVkZS9jKysvMTEvYml0cy9zaGFyZWRfcHRyX2Jhc2Uu aDoxMTU0CisgIzEyIDB4MDAwMDAwMDAwMDgyZmYwYSBpbiBzdGQ6OnNoYXJlZF9wdHI8b2JqZmls ZT46On5zaGFyZWRfcHRyICgKKyAgICB0aGlzPTB4MTkwYmI4MCwgX19pbl9jaHJnPTxvcHRpbWl6 ZWQgb3V0PikKKyAgICBhdCAvdXNyL2luY2x1ZGUvYysrLzExL2JpdHMvc2hhcmVkX3B0ci5oOjEy MgorICMxMyAweDAwMDAwMDAwMDA4NWVkN2UgaW4gX19nbnVfY3h4OjpuZXdfYWxsb2NhdG9yPHN0 ZDo6X0xpc3Rfbm9kZTxzdGQ6OnNoYXJlZF9wdHI8b2JqZmlsZT4gPiA+OjpkZXN0cm95PHN0ZDo6 c2hhcmVkX3B0cjxvYmpmaWxlPiA+ICh0aGlzPTB4MTE0YmMwMCwKKyAgICBfX3A9MHgxOTBiYjgw KSBhdCAvdXNyL2luY2x1ZGUvYysrLzExL2V4dC9uZXdfYWxsb2NhdG9yLmg6MTY4CisgIzE0IDB4 MDAwMDAwMDAwMDg1ZTg4ZCBpbiBzdGQ6OmFsbG9jYXRvcl90cmFpdHM8c3RkOjphbGxvY2F0b3I8 c3RkOjpfTGlzdF9ub2RlPHN0ZDo6c2hhcmVkX3B0cjxvYmpmaWxlPiA+ID4gPjo6ZGVzdHJveTxz dGQ6OnNoYXJlZF9wdHI8b2JqZmlsZT4gPiAoX19hPS4uLiwKKyAgICBfX3A9MHgxOTBiYjgwKSBh dCAvdXNyL2luY2x1ZGUvYysrLzExL2JpdHMvYWxsb2NfdHJhaXRzLmg6NTMxCisgIzE1IDB4MDAw MDAwMDAwMDg1ZTUwYyBpbiBzdGQ6Ol9fY3h4MTE6Omxpc3Q8c3RkOjpzaGFyZWRfcHRyPG9iamZp bGU+LCBzdGQ6OmFsbG9jYXRvcjxzdGQ6OnNoYXJlZF9wdHI8b2JqZmlsZT4gPiA+OjpfTV9lcmFz ZSAodGhpcz0weDExNGJjMDAsIF9fcG9zaXRpb249CisgIHN0ZDo6c2hhcmVkX3B0cjxvYmpmaWxl PiAoZXhwaXJlZCwgd2VhayBjb3VudCAxKSA9IHtnZXQoKSA9IDB4MTYzNTkzMH0pCisgICAgYXQg L3Vzci9pbmNsdWRlL2MrKy8xMS9iaXRzL3N0bF9saXN0Lmg6MTkyNQorICMxNiAweDAwMDAwMDAw MDA4NWRmMGUgaW4gc3RkOjpfX2N4eDExOjpsaXN0PHN0ZDo6c2hhcmVkX3B0cjxvYmpmaWxlPiwg c3RkOjphbGxvY2F0b3I8c3RkOjpzaGFyZWRfcHRyPG9iamZpbGU+ID4gPjo6ZXJhc2UgKHRoaXM9 MHgxMTRiYzAwLCBfX3Bvc2l0aW9uPQorICBzdGQ6OnNoYXJlZF9wdHI8b2JqZmlsZT4gKGV4cGly ZWQsIHdlYWsgY291bnQgMSkgPSB7Z2V0KCkgPSAweDE2MzU5MzB9KQorICAgIGF0IC91c3IvaW5j bHVkZS9jKysvMTEvYml0cy9saXN0LnRjYzoxNTgKKyAjMTcgMHgwMDAwMDAwMDAwODVjNzQ4IGlu IHByb2dyYW1fc3BhY2U6OnJlbW92ZV9vYmpmaWxlICh0aGlzPTB4MTE0YmJjMCwKKyAgICBvYmpm aWxlPTB4MTYzNTkzMCkKKyAgICBhdCAvaXJvbndvb2QxL3NvdXJjZXdhcmUtZ2l0L2YzNC1wcjI4 MDMwL2JsZC8uLi8uLi93b3JrdHJlZS1wcjI4MDMwL2dkYi9wcm9nc3BhY2UuYzoyMTAKKyAjMTgg MHgwMDAwMDAwMDAwODJkM2FlIGluIG9iamZpbGU6OnVubGluayAodGhpcz0weDE2MzU5MzApCisg ICAgYXQgL2lyb253b29kMS9zb3VyY2V3YXJlLWdpdC9mMzQtcHIyODAzMC9ibGQvLi4vLi4vd29y a3RyZWUtcHIyODAzMC9nZGIvb2JqZmlsZXMuYzo0ODcKKyAjMTkgMHgwMDAwMDAwMDAwODJlNjhj IGluIG9iamZpbGVfcHVyZ2Vfc29saWJzICgpCisgICAgYXQgL2lyb253b29kMS9zb3VyY2V3YXJl LWdpdC9mMzQtcHIyODAzMC9ibGQvLi4vLi4vd29ya3RyZWUtcHIyODAzMC9nZGIvb2JqZmlsZXMu Yzo4NzUKKyAjMjAgMHgwMDAwMDAwMDAwOTJkZDM3IGluIG5vX3NoYXJlZF9saWJyYXJpZXMgKGln bm9yZWQ9MHgwLCBmcm9tX3R0eT0xKQorICAgIGF0IC9pcm9ud29vZDEvc291cmNld2FyZS1naXQv ZjM0LXByMjgwMzAvYmxkLy4uLy4uL3dvcmt0cmVlLXByMjgwMzAvZ2RiL3NvbGliLmM6MTIzNgor ICMyMSAweDAwMDAwMDAwMDA5YTM3ZmUgaW4gdGFyZ2V0X3ByZV9pbmZlcmlvciAoZnJvbV90dHk9 MSkKKyAgICBhdCAvaXJvbndvb2QxL3NvdXJjZXdhcmUtZ2l0L2YzNC1wcjI4MDMwL2JsZC8uLi8u Li93b3JrdHJlZS1wcjI4MDMwL2dkYi90YXJnZXQuYzoyNDk2CisgIzIyIDB4MDAwMDAwMDAwMDc0 NTRkNiBpbiBydW5fY29tbWFuZF8xIChhcmdzPTB4MCwgZnJvbV90dHk9MSwKKyAgICBydW5faG93 PVJVTl9OT1JNQUwpCisgICAgYXQgL2lyb253b29kMS9zb3VyY2V3YXJlLWdpdC9mMzQtcHIyODAz MC9ibGQvLi4vLi4vd29ya3RyZWUtcHIyODAzMC9nZGIvaW5mY21kLmM6NDM3CisKK0knbGwgbm90 ZSBhIGZldyBwb2ludHMgcmVnYXJkaW5nIHRoaXMgYmFja3RyYWNlOgorCitGcmFtZSAjMSBpcyB3 aGVyZSB0aGUgaW50ZXJuYWwgZXJyb3Igb2NjdXJzLiAgSXQncyBjYXVzZWQgYnkgYW4KK3VuaGFu ZGxlZCBjYXNlIGZvciBGSUVMRF9MT0NfS0lORF9EV0FSRl9CTE9DSy4gIFRoZSBmaXggZm9yIHRo aXMgYnVnCithZGRzIHN1cHBvcnQgZm9yIHRoaXMgY2FzZS4KKworRnJhbWUgIzIyIC0gaXQncyBh IHBhcnRpYWwgYmFja3RyYWNlIC0gc2hvd3MgdGhhdCBHREIgaXMgYXR0ZW1wdGluZyB0bworKHJl KXJ1biB0aGUgcHJvZ3JhbS4gIFlvdSBjYW4gc2VlIHRoZSBleGFjdCBjb21tYW5kIHNlcXVlbmNl IHRoYXQgd2FzCit1c2VkIGZvciByZXByb2R1Y2luZyB0aGlzIHByb2JsZW0gaW4gdGhlIFBSIChh dAoraHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MjgwMzAp LCBidXQgaW4gYQorbnV0c2hlbGwsIGFmdGVyIHN0YXJ0aW5nIHRoZSBwcm9ncmFtIGFuZCBhZHZh bmNpbmcgdG8gdGhlIGFwcHJvcHJpYXRlCitzb3VyY2UgbGluZSwgR0RCIHdhcyBhc2tlZCB0byBz dGVwIGludG8gbGlic3RkYysrOyBhICJmaW5pc2giIGNvbW1hbmQKK3dhcyBpc3N1ZWQsIHJldHVy bmluZyBhIHZhbHVlLiAgVGhlIGZhY3QgdGhhdCBhIHZhbHVlIHdhcyByZXR1cm5lZCBpcwordmVy eSBpbXBvcnRhbnQuICBHREIgd2FzIHRoZW4gdXNlZCB0byBzdGVwIGJhY2sgaW50byBsaWJzdGRj KysuICBBCiticmVha3BvaW50IHdhcyBzZXQgb24gYSBzb3VyY2UgbGluZSBpbiB0aGUgbGlicmFy eSBhZnRlciB3aGljaCBhICJydW4iCitjb21tYW5kIHdhcyBpc3N1ZWQuCisKK0ZyYW1lICMxOSBz aG93cyBhIGNhbGwgdG8gb2JqZmlsZV9wdXJnZV9zb2xpYnMuICBJdCdzIGFwdGx5IG5hbWVkLgor CitGcmFtZSAjNyBpcyBhIGNhbGwgdG8gdGhlIGRlc3RydWN0b3IgZm9yIG9uZSBvZiB0aGUgb2Jq ZmlsZSBzb2xpYnM7IGl0Cit0dXJuZWQgb3V0IHRvIGJlIHRoZSBvbmUgZm9yIGxpYnN0ZGMrKy4K KworRnJhbWVzICM2IHRocnUgIzMgc2hvdyB2YXJpb3VzIHZhbHVlIHByZXNlcnZhdGlvbiBmcmFt ZXMuICBJZiB5b3UgbG9vaworYXQgcHJlc2VydmVfdmFsdWVzKCkgaW4gZ2RiL3ZhbHVlLmMsIHRo ZSB2YWx1ZSBoaXN0b3J5IGlzIHByZXNlcnZlZAorZmlyc3QsIGZvbGxvd2VkIGJ5IGludGVybmFs IHZhcmlhYmxlcywgZm9sbG93ZWQgYnkgdmFsdWVzIGZvciB0aGUKK2V4dGVuc2lvbiBsYW5ndWFn ZXMgKHB5dGhvbiBhbmQgZ3VpbGUpLgorCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIu ZHdhcmYyL2xvY2V4cHItZGF0YS1tZW1iZXItbG9jYXRpb24tbGliLmMgYi9nZGIvdGVzdHN1aXRl L2dkYi5kd2FyZjIvbG9jZXhwci1kYXRhLW1lbWJlci1sb2NhdGlvbi1saWIuYworbmV3IGZpbGUg bW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJm Mi9sb2NleHByLWRhdGEtbWVtYmVyLWxvY2F0aW9uLWxpYi5jCitAQCAtMCwwICsxLDQ4IEBACisr LyogQ29weXJpZ2h0IChDKSAyMDIxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKwor KyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdEQi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAgIGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5CisrICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNp b24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAgIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysg ICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4gICovCisrCisrI2luY2x1ZGUgImxvY2V4cHItZGF0YS1tZW1iZXItbG9j YXRpb24uaCIKKysKKytzdHJ1Y3QgQSBnX0EgPSB7MywgNH07Cisrc3RydWN0IEIgZ19CID0geyB7 OCwgOX0sIDEwLCAxMSB9OworKworK0IgKgorK2ZvbyAoKQorK3sJCQkJCQkvKiBmb28gcHJvbG9n dWUgKi8KKysgIGFzbSAoImZvb19sYWJlbDogLmdsb2JsIGZvb19sYWJlbCIpOworKyAgcmV0dXJu ICZnX0I7CQkJCQkvKiBmb28gcmV0dXJuICovCisrfQkJCQkJCS8qIGZvbyBlbmQgKi8KKysKKytC ICoKKytiYXIgKEIgKnYpCisrewkJCQkJCS8qIGJhciBwcm9sb2d1ZSAqLworKyAgYXNtICgiYmFy X2xhYmVsOiAuZ2xvYmwgYmFyX2xhYmVsIik7CisrICByZXR1cm4gdjsJCQkJCS8qIGJhciByZXR1 cm4gKi8KKyt9CQkJCQkJLyogYmFyIGVuZCAqLworKworKy8qIFNvbWUgb2YgdGhlIERXQVJGIGFz c2VtYmxlciBwcm9jcyAoZS5nLiBmdW5jdGlvbl9yYW5nZSkgY29tcGlsZQorKyAgIHRoaXMgZmls ZSwgZXhwZWN0aW5nIGl0IHRvIGJlIGEgY29tcGxldGUgcHJvZ3JhbSB3aXRoIGEgbWFpbigpCisr ICAgZnVuY3Rpb24uICBXaGVuIElTX1NIQVJFRExJQiBpcyBOT1QgZGVmaW5lZCwgd2UgaGF2ZSBt YWluKCkgYXMKKysgICBkZWZpbmVkIGJlbG93LiAgKi8KKysKKysjaWZuZGVmIElTX1NIQVJFRExJ QgorK2ludAorK21haW4gKCkKKyt7CisrICBCICpiID0gZm9vICgpOworK30KKysjZW5kaWYKK2Rp ZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvbG9jZXhwci1kYXRhLW1lbWJlci1s b2NhdGlvbi1tYWluLmMgYi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvbG9jZXhwci1kYXRhLW1l bWJlci1sb2NhdGlvbi1tYWluLmMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxs CisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvbG9jZXhwci1kYXRhLW1lbWJlci1sb2Nh dGlvbi1tYWluLmMKK0BAIC0wLDAgKzEsMjcgQEAKKysvKiBDb3B5cmlnaHQgKEMpIDIwMjEgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2Yg R0RCLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysgICB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgor KyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhpcyBwcm9n cmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisr ICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlCisrICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysKKysj aW5jbHVkZSAibG9jZXhwci1kYXRhLW1lbWJlci1sb2NhdGlvbi5oIgorKworK2ludAorK21haW4g KHZvaWQpCisreworKyAgQiAqdjE7CisrICB2MSA9IGJhciAoZm9vICgpKTsKKysKKysgIHJldHVy biAwOworK30KK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvbG9jZXhwci1k YXRhLW1lbWJlci1sb2NhdGlvbi5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvbG9jZXhw ci1kYXRhLW1lbWJlci1sb2NhdGlvbi5leHAKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rl di9udWxsCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvbG9jZXhwci1kYXRhLW1lbWJl ci1sb2NhdGlvbi5leHAKK0BAIC0wLDAgKzEsMzQ5IEBACisrIyBDb3B5cmlnaHQgMjAyMSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBv ZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u CisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2 ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0 aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz Lz4uCisrCisrIyBUaGlzIHRlc3QgY2FzZSB1c2VzIHRoZSBEV0FSRiBhc3NlbWJsZXIgdG8gcmVw cm9kdWNlIHRoZSBwcm9ibGVtCisrIyBkZXNjcmliZWQgYnkgUFIyODAzMC4gIFRoZSBidWcgdHVy bmVkIG91dCB0byBiZSB0aGF0CisrIyBGSUVMRF9MT0NfS0lORF9EV0FSRl9CTE9DSyB3YXMgbm90 IGhhbmRsZWQgd2hlbiByZWN1cnNpdmVseSBjb3B5aW5nCisrIyBhIHZhbHVlJ3MgdHlwZSB3aGVu IHByZXNlcnZpbmcgdGhlIHZhbHVlIGhpc3RvcnkgZHVyaW5nIHRoZSBmcmVlaW5nCisrIyB1cCBv ZiBvYmpmaWxlcyBhc3NvY2lhdGVkIHdpdGggYSBzaGFyZWQgb2JqZWN0LiAgKFllcywgZmlndXJp bmcgb3V0CisrIyBob3cgdG8gbWFrZSB0aGlzIGhhcHBlbiBpbiBhIGNvbmNpc2UgdGVzdCBjYXNl IHR1cm5lZCBvdXQgdG8gYmUKKysjIGNoYWxsZW5naW5nLikKKysjCisrIyBUaGUgZm9sbG93aW5n IGVsZW1lbnRzIHByb3ZlZCB0byBiZSBuZWNlc3NhcnkgZm9yIHJlcHJvZHVjaW5nIHRoZQorKyMg cHJvYmxlbToKKysjCisrIyAxKSBBIGxvY2F0aW9uIGV4cHJlc3Npb24gbmVlZGVkIHRvIGJlIHVz ZWQgd2l0aAorKyMgICAgRFdfQVRfZGF0YV9tZW1iZXJfbG9jYXRpb24gcmF0aGVyIHRoYW4gYSBz aW1wbGUgb2Zmc2V0LgorKyMgICAgTW9yZW92ZXIsIHRoaXMgbG9jYXRpb24gZXhwcmVzc2lvbiBu ZWVkZWQgdG8gdXNlIG9wY29kZXMKKysjICAgIHdoaWNoIEdEQidzIERXQVJGIHJlYWRlciBjb3Vs ZCBub3QgY29udmVydCB0byBhIHNpbXBsZQorKyMgICAgb2Zmc2V0LiAgKE5vdGUsIGhvd2V2ZXIs IHRoYXQgR0RCIGNvdWxkIHByb2JhYmx5IGJlIGltcHJvdmVkCisrIyAgICB0byBoYW5kbGUgdGhl IG9wY29kZXMgY2hvc2VuIGZvciB0aGlzIHRlc3Q7IGlmIGRlY29kZV9sb2NkZXNjKCkKKysjICAg IGluIGR3YXJmMi9yZWFkLmMgaXMgZXZlciB1cGRhdGVkIHRvIGhhbmRsZSBib3RoIERXX09QX3Bp Y2sgYW5kCisrIyAgICBEV19PUF9kcm9wLCB0aGVuIHRoaXMgdGVzdCBjb3VsZCBlbmQgdXAgcGFz c2luZyBldmVuIGlmCisrIyAgICB0aGUgYnVnIGl0J3MgaW50ZW5kZWQgdG8gdGVzdCBoYXMgbm90 IGJlZW4gZml4ZWQuKQorKyMKKysjIDIpIFRoZSBkZWJ1ZyBpbmZvIGNvbnRhaW5pbmcgdGhlIGFi b3ZlIERXQVJGIGluZm8gbmVlZGVkCisrIyAgICB0byBiZSBhc3NvY2lhdGVkIHdpdGggYSBzaGFy ZWQgb2JqZWN0IHNpbmNlIHRoZSBwcm9ibGVtCisrIyAgICBvY2N1cnJlZCB3aGlsZSBHREIgd2Fz IHByZXNlcnZpbmcgdmFsdWVzIGR1cmluZyB0aGUKKysjICAgIHB1cmdpbmcgb2Ygc2hhcmVkIG9i amVjdHMuCisrIworKyMgMykgQWZ0ZXIgcGVyZm9ybWluZyBzb21lIHNpbXBsZSBnZGIgY29tbWFu ZHMsIHRoZSBwcm9ncmFtIGlzCisrIyAgICBydW4gYWdhaW4uICBJbiB0aGUgY291cnNlIG9mIHJ1 bm5pbmcgdGhlIG9iamZpbGUgZGVzdHJ1Y3RvcgorKyMgICAgYXNzb2NpYXRlZCB3aXRoIHRoZSBz aGFyZWQgb2JqZWN0LCB2YWx1ZXMgYXJlIHByZXNlcnZlZAorKyMgICAgYWxvbmcgd2l0aCB0aGVp ciB0eXBlcy4gIEFzIG5vdGVkIGVhcmxpZXIsIGl0IHdhcyBkdXJpbmcKKysjICAgIHRoZSByZWN1 cnNpdmUgdHlwZSBjb3B5IHRoYXQgdGhlIGJ1ZyB3YXMgb2JzZXJ2ZWQuCisrIworKyMgVGhlcmVm b3JlLCBkdWUgdG8gIzIgYWJvdmUsIHRoaXMgdGVzdCBjYXNlIGNyZWF0ZXMgZGVidWcgaW5mbwor KyMgd2hpY2ggaXMgdGhlbiB1c2VkIGJ5IGEgc2hhcmVkIG9iamVjdC4KKysKKysjIFRoaXMgdGVz dCBjYW4ndCBiZSBydW4gb24gdGFyZ2V0cyBsYWNraW5nIHNoYXJlZCBsaWJyYXJ5IHN1cHBvcnQu CisraWYgW3NraXBfc2hsaWJfdGVzdHNdIHsKKysgICAgcmV0dXJuIDAKKyt9CisrCisrbG9hZF9s aWIgZHdhcmYuZXhwCisrCisrIyBUaGlzIHRlc3QgY2FuIG9ubHkgYmUgcnVuIG9uIHRhcmdldHMg d2hpY2ggc3VwcG9ydCBEV0FSRi0yIGFuZCB1c2UgZ2FzLgorK2lmICFbZHdhcmYyX3N1cHBvcnRd IHsKKysgICAgcmV0dXJuIDAKKyt9CisrCisrIyBnZGJfdGVzdF9maWxlX25hbWUgaXMgdGhlIG5h bWUgb2YgdGhpcyBmaWxlIHdpdGhvdXQgdGhlIC5leHAKKysjIGV4dGVuc2lvbi4gIFVzZSBpdCB0 byBmb3JtIGJhc2VuYW1lcyBmb3IgdGhlIG1haW4gcHJvZ3JhbQorKyMgYW5kIHNoYXJlZCBvYmpl Y3QuCisrc2V0IG1haW5fYmFzZW5hbWUgJHs6OmdkYl90ZXN0X2ZpbGVfbmFtZX0tbWFpbgorK3Nl dCBsaWJfYmFzZW5hbWUgJHs6OmdkYl90ZXN0X2ZpbGVfbmFtZX0tbGliCisrCisrIyBXZSdyZSBn ZW5lcmF0aW5nIERXQVJGIGFzc2VtYmx5IGZvciB0aGUgc2hhcmVkIG9iamVjdDsgdGhlcmVmb3Jl LAorKyMgdGhlIHNvdXJjZSBmaWxlIGZvciB0aGUgbGlicmFyeSAvIHNoYXJlZCBvYmplY3QgbXVz dCBiZSBsaXN0ZWQgZmlyc3QKKysjIChpbiB0aGUgc3RhbmRhcmRfdGVzdGZpbGUgaW52b2NhdGlv bikgc2luY2UgJHtzcmNmaWxlfSBpcyB1c2VkIGJ5CisrIyBnZXRfZnVuY19pbmZvIChmb3IgZGV0 ZXJtaW5pbmcgdGhlIHN0YXJ0LCBlbmQsIGFuZCBsZW5ndGggb2YgYQorKyMgZnVuY3Rpb24pLgor KyMKKysjIFRoZSBvdXRwdXQgb2YgRHdhcmY6OmFzc2VtYmxlIHdpbGwgYmUgcGxhY2VkIGluICRs aWJfYmFzZW5hbWUuUworKyMgd2hpY2ggd2lsbCBiZSAke3NyY2ZpbGUzfSBhZnRlciB0aGUgZXhl Y3V0aW9uIG9mIHN0YW5kYXJkX3Rlc3RmaWxlLgorKworK3N0YW5kYXJkX3Rlc3RmaWxlICRsaWJf YmFzZW5hbWUuYyAkbWFpbl9iYXNlbmFtZS5jICRsaWJfYmFzZW5hbWUuUworKworK3NldCBsaWJz cmMgIiR7OjpzcmNkaXJ9LyR7OjpzdWJkaXJ9LyR7OjpzcmNmaWxlfSIKKytzZXQgbGliX3NvIFtz dGFuZGFyZF9vdXRwdXRfZmlsZSAke2xpYl9iYXNlbmFtZX0uc29dCisrc2V0IGFzbV9maWxlIFtz dGFuZGFyZF9vdXRwdXRfZmlsZSAkezo6c3JjZmlsZTN9XQorKworKyMgV2UgbmVlZCB0byBrbm93 IHRoZSBzaXplIG9mIHNvbWUgdHlwZXMgaW4gb3JkZXIgdG8gd3JpdGUgc29tZSBvZiB0aGUKKysj IGRlYnVnZ2luZyBpbmZvIHRoYXQgd2UncmUgYWJvdXQgdG8gZ2VuZXJhdGUuICBGb3IgdGhhdCwg d2UgYXNrIEdEQgorKyMgYnkgZGVidWdnaW5nIHRoZSBzaGFyZWQgb2JqZWN0IGFzc29jaWF0ZWQg d2l0aCB0aGlzIHRlc3QgY2FzZS4KKysKKysjIENvbXBpbGUgdGhlIHNoYXJlZCBsaWJyYXJ5OiAt RElTX1NIQVJFRExJQiBwcmV2ZW50cyBtYWluKCkgZnJvbQorKyMgYmVpbmcgZGVmaW5lZC4gIE5v dGUgdGhhdCBkZWJ1Z2dpbmcgc3ltYm9scyB3aWxsIGJlIHByZXNlbnQgZm9yCisrIyB0aGlzIGNv bXBpbGF0aW9uLgorK2lmIHtbZ2RiX2NvbXBpbGVfc2hsaWIgJGxpYnNyYyAkbGliX3NvIFwKKysg ICAgICAgICAgICAgICAgICAgICAgIHthZGRpdGlvbmFsX2ZsYWdzPS1ESVNfU0hBUkVETElCIGRl YnVnfV0gIT0gIiJ9IHsKKysgICAgdW50ZXN0ZWQgImZhaWxlZCB0byBjb21waWxlIHNoYXJlZCBs aWJyYXJ5IgorKyAgICByZXR1cm4KKyt9CisrCisrIyBTdGFydCBhIGZyZXNoIEdEQiBhbmQgbG9h ZCB0aGUgc2hhcmVkIGxpYnJhcnkuCisrY2xlYW5fcmVzdGFydCAkbGliX3NvCisrCisrIyBVc2lu ZyBvdXIgcnVubmluZyBHREIgc2Vzc2lvbiwgZGV0ZXJtaW5lIHNpemVzIG9mIHNldmVyYWwgdHlw ZXMuCisrc2V0IGxvbmdfc2l6ZSBbZ2V0X3NpemVvZiAibG9uZyIgLTFdCisrc2V0IGFkZHJfc2l6 ZSBbZ2V0X3NpemVvZiAidm9pZCAqIiAtMV0KKytzZXQgc3RydWN0X0Ffc2l6ZSBbZ2V0X3NpemVv ZiAiZ19BIiAtMV0KKytzZXQgc3RydWN0X0Jfc2l6ZSBbZ2V0X3NpemVvZiAiZ19CIiAtMV0KKysK KytpZiB7ICRsb25nX3NpemUgPT0gLTEgfHwgJGFkZHJfc2l6ZSA9PSAtMSBcCisrICAgICB8fCAk c3RydWN0X0Ffc2l6ZSA9PSAtMSB8fCAkc3RydWN0X0Jfc2l6ZSA9PSAtMX0geworKyAgICBwZXJy b3IgIkNhbid0IGRldGVybWluZSB0eXBlIHNpemVzIgorKyAgICByZXR1cm4KKyt9CisrCisrIyBS ZXRyaWV2ZSBzdHJ1Y3Qgb2Zmc2V0IG9mIE1CUiBpbiBzdHJ1Y3QgVFAKKytwcm9jIGdldF9vZmZz ZXRvZiB7IHRwIG1iciB9IHsKKysgICAgcmV0dXJuIFtnZXRfaW50ZWdlcl92YWx1ZW9mICImKCgk e3RwfSAqKSAwKS0+JHttYnJ9IiAtMV0KKyt9CisrCisrIyBVc2UgcnVubmluZyBHREIgc2Vzc2lv biB0byBnZXQgc3RydWN0IG9mZnNldHMKKytzZXQgQV9hIFtnZXRfb2Zmc2V0b2YgQSBhXQorK3Nl dCBBX3ggW2dldF9vZmZzZXRvZiBBIHhdCisrc2V0IEJfYSBbZ2V0X29mZnNldG9mIEIgYV0KKytz ZXQgQl9iIFtnZXRfb2Zmc2V0b2YgQiBiXQorK3NldCBCX3gyIFtnZXRfb2Zmc2V0b2YgQiB4Ml0K KysKKysjIENyZWF0ZSB0aGUgRFdBUkYuCisrRHdhcmY6OmFzc2VtYmxlICR7YXNtX2ZpbGV9IHsK KysgICAgZGVjbGFyZV9sYWJlbHMgTAorKworKyAgICAjIEZpbmQgc3RhcnQsIGVuZCwgYW5kIGxl bmd0aCBvZiBmdW5jdGlvbnMgZm9vIGFuZCBiYXIuCisrICAgICMgVGhlc2UgY2FsbHMgdG8gZ2V0 X2Z1bmNfaW5mbyB3aWxsIGNyZWF0ZSBhbmQgc2V0IHZhcmlhYmxlcworKyAgICAjIGZvb19zdGFy dCwgYmFyX3N0YXJ0LCBmb29fZW5kLCBiYXJfZW5kLCBmb29fbGVuLCBhbmQKKysgICAgIyBiYXJf bGVuLgorKyAgICAjCisrICAgICMgSW4gb3JkZXIgdG8gZ2V0IHRoZSByaWdodCBhbnN3ZXJzLCBn ZXRfZnVuY19pbmZvIChhbmQsCisrICAgICMgdW5kZXJuZWF0aCwgZnVuY3Rpb25fcmFuZ2UpIHNo b3VsZCB1c2UgdGhlIHNhbWUgY29tcGlsZXIgZmxhZ3MKKysgICAgIyBhcyB0aG9zZSB1c2VkIHRv IG1ha2UgYSBzaGFyZWQgb2JqZWN0LiAgRm9yIGFueSB0YXJnZXRzIHRoYXQgZ2V0CisrICAgICMg dGhpcyBmYXIsIC1mcGljIGlzIHByb2JhYmx5IGNvcnJlY3QuCisrICAgICMKKysgICAgIyBBbHNv LCBpdCBzaG91bGQgYmUgbm90ZWQgdGhhdCBJU19TSEFSRURMSUIgaXMgTk9UIGRlZmluZWQgYXMg b25lCisrICAgICMgb2YgdGhlIGFkZGl0aW9uYWwgZmxhZ3MuICBOb3QgZGVmaW5pbmcgSVNfU0hB UkVETElCIHdpbGwgY2F1c2UgYQorKyAgICAjIG1haW4oKSB0byBiZSBkZWZpbmVkIGZvciB0aGUg Y29tcGlsYXRpb24gb2YgdGhlIHNoYXJlZCBsaWJyYXJ5CisrICAgICMgc291cmNlIGZpbGUgd2hp Y2ggaGFwcGVucyBhcyBhIHJlc3VsdCBvZiB1c2luZyBnZXRfZnVuY19pbmZvOworKyAgICAjIHRo aXMgaXMgY3VycmVudGx5IHJlcXVpcmVkIGluIG9yZGVyIHRvIHRoaXMgZmFjaWxpdHkuCisrICAg IHNldCBmbGFncyB7YWRkaXRpb25hbF9mbGFncz0tZnBpYyBkZWJ1Z30KKysgICAgZ2V0X2Z1bmNf aW5mbyBmb28gJGZsYWdzCisrICAgIGdldF9mdW5jX2luZm8gYmFyICRmbGFncworKworKyAgICBj dSB7fSB7CisrCURXX1RBR19jb21waWxlX3VuaXQgeworKwkgICAge0RXX0FUX2xhbmd1YWdlIEBE V19MQU5HX0NfcGx1c19wbHVzfQorKwkgICAge25hbWUgJHs6OnNyY2ZpbGV9fQorKwkgICAge3N0 bXRfbGlzdCAkTCBEV19GT1JNX3NlY19vZmZzZXR9CisrICAgICAgICB9IHsKKysJICAgIGRlY2xh cmVfbGFiZWxzIGludF9sYWJlbCBjbGFzc19BX2xhYmVsIGNsYXNzX0JfbGFiZWwgXAorKwkgICAg ICAgICAgICAgICAgICAgQl9wdHJfbGFiZWwKKysKKysJICAgIGludF9sYWJlbDogRFdfVEFHX2Jh c2VfdHlwZSB7CisrCQl7RFdfQVRfYnl0ZV9zaXplICR7Ojpsb25nX3NpemV9IERXX0ZPUk1fdWRh dGF9CisrCQl7RFdfQVRfZW5jb2RpbmcgQERXX0FURV9zaWduZWR9CisrCQl7RFdfQVRfbmFtZSAi aW50In0KKysJICAgIH0KKysKKysJICAgIGNsYXNzX0FfbGFiZWw6IERXX1RBR19jbGFzc190eXBl IHsKKysJCXtEV19BVF9uYW1lICJBIn0KKysJCXtEV19BVF9ieXRlX3NpemUgJHs6OnN0cnVjdF9B X3NpemV9IERXX0ZPUk1fc2RhdGF9CisrCSAgICB9IHsKKysJCURXX1RBR19tZW1iZXIgeworKwkJ ICAgIHtEV19BVF9uYW1lICJhIn0KKysJCSAgICB7RFdfQVRfdHlwZSA6JGludF9sYWJlbH0KKysJ CSAgICB7RFdfQVRfZGF0YV9tZW1iZXJfbG9jYXRpb24gJHs6OkFfYX0gRFdfRk9STV91ZGF0YX0K KysJCX0KKysJCURXX1RBR19tZW1iZXIgeworKwkJICAgIHtEV19BVF9uYW1lICJ4In0KKysJCSAg ICB7RFdfQVRfdHlwZSA6JGludF9sYWJlbH0KKysJCSAgICB7RFdfQVRfZGF0YV9tZW1iZXJfbG9j YXRpb24gJHs6OkFfeH0gRFdfRk9STV91ZGF0YX0KKysJCX0KKysJICAgIH0KKysKKysJICAgIGNs YXNzX0JfbGFiZWw6IERXX1RBR19jbGFzc190eXBlIHsKKysJCXtEV19BVF9uYW1lICJCIn0KKysJ CXtEV19BVF9ieXRlX3NpemUgJHs6OnN0cnVjdF9CX3NpemV9IERXX0ZPUk1fc2RhdGF9CisrCSAg ICB9IHsKKysJCSMgV2hpbGUgdGhlcmUgYXJlIGVhc2llciAvIGJldHRlciB3YXlzIHRvIHNwZWNp ZnkgYW4KKysJCSMgb2Zmc2V0IHVzZWQgYnkgRFdfQVRfZGF0YV9tZW1iZXJfbG9jYXRpb24gdGhh biB0aGF0CisrCQkjIHVzZWQgYmVsb3csIHdlIG5lZWQgYSBsb2NhdGlvbiBleHByZXNzaW9uIGhl cmUgaW4KKysJCSMgb3JkZXIgdG8gcmVwcm9kdWNlIHRoZSBidWcuICBNb3Jlb3ZlciwgdGhpcyBs b2NhdGlvbgorKwkJIyBleHByZXNzaW9uIG5lZWRzIHRvIHVzZSBvcGNvZGVzIHRoYXQgYXJlbid0 IGhhbmRsZWQKKysJCSMgYnkgZGVjb2RlX2xvY2Rlc2MoKSBpbiBkd2FyZjIvcmVhZC5jOyBpZiB3 ZSB1c2UKKysJCSMgb3Bjb2RlcyB0aGF0IF9hcmVfIGhhbmRsZWQgYnkgdGhhdCBmdW5jdGlvbiwg dGhlCisrCQkjIGxvY2F0aW9uIGV4cHJlc3Npb24gd2lsbCBiZSBjb252ZXJ0ZWQgaW50byBhIHNp bXBsZQorKwkJIyBvZmZzZXQgLSB3aGljaCB3aWxsIHRoZW4gKGFnYWluKSBub3QgcmVwcm9kdWNl IHRoZQorKwkJIyBidWcuICBBdCB0aGUgdGltZSB0aGF0IHRoaXMgdGVzdCB3YXMgd3JpdHRlbiwK KysJCSMgbmVpdGhlciBEV19PUF9waWNrIG5vciBEV19PUF9kcm9wIHdlcmUgYmVpbmcgaGFuZGxl ZAorKwkJIyBieSBkZWNvZGVfbG9jZGVzYygpOyB0aGlzIGlzIHdoeSB0aG9zZSBvcGNvZGVzIHdl cmUKKysJCSMgY2hvc2VuLgorKwkJRFdfVEFHX2luaGVyaXRhbmNlIHsKKysJCSAgICB7RFdfQVRf dHlwZSA6JGNsYXNzX0FfbGFiZWx9CisrCQkgICAge0RXX0FUX2RhdGFfbWVtYmVyX2xvY2F0aW9u IHsKKysJCQlEV19PUF9jb25zdHUgJHs6OkJfYX0KKysJCQlEV19PUF9wbHVzCisrCQkJRFdfT1Bf cGljayAwCisrCQkJRFdfT1BfZHJvcH0gU1BFQ0lBTF9leHByfQorKwkJICAgIHtEV19BVF9hY2Nl c3NpYmlsaXR5IDEgRFdfRk9STV9kYXRhMX0KKysJCX0KKysJCURXX1RBR19tZW1iZXIgeworKwkJ ICAgIHtEV19BVF9uYW1lICJiIn0KKysJCSAgICB7RFdfQVRfdHlwZSA6JGludF9sYWJlbH0KKysJ CSAgICB7RFdfQVRfZGF0YV9tZW1iZXJfbG9jYXRpb24gJHs6OkJfYn0gRFdfRk9STV91ZGF0YX0K KysJCX0KKysJCURXX1RBR19tZW1iZXIgeworKwkJICAgIHtEV19BVF9uYW1lICJ4MiJ9CisrCQkg ICAge0RXX0FUX3R5cGUgOiRpbnRfbGFiZWx9CisrCQkgICAge0RXX0FUX2RhdGFfbWVtYmVyX2xv Y2F0aW9uICR7OjpCX3gyfSBEV19GT1JNX3VkYXRhfQorKwkJfQorKwkgICAgfQorKworKwkgICAg Ql9wdHJfbGFiZWw6IERXX1RBR19wb2ludGVyX3R5cGUgeworKwkJe0RXX0FUX3R5cGUgOiRjbGFz c19CX2xhYmVsfQorKwkJe0RXX0FUX2J5dGVfc2l6ZSAkezo6YWRkcl9zaXplfSBEV19GT1JNX3Nk YXRhfQorKwkgICAgfQorKworKwkgICAgRFdfVEFHX3ZhcmlhYmxlIHsKKysJCXtEV19BVF9uYW1l ICJnX0EifQorKwkJe0RXX0FUX3R5cGUgOiRjbGFzc19BX2xhYmVsfQorKwkJe0RXX0FUX2V4dGVy bmFsIDEgZmxhZ30KKysJCXtEV19BVF9sb2NhdGlvbiB7RFdfT1BfYWRkciBbZ2RiX3RhcmdldF9z eW1ib2wgImdfQSJdfSBcCisrCQkgICAgICAgICAgICAgICAgIFNQRUNJQUxfZXhwcn0KKysJICAg IH0KKysKKysJICAgIERXX1RBR192YXJpYWJsZSB7CisrCQl7RFdfQVRfbmFtZSAiZ19CIn0KKysJ CXtEV19BVF90eXBlIDokY2xhc3NfQl9sYWJlbH0KKysJCXtEV19BVF9leHRlcm5hbCAxIGZsYWd9 CisrCQl7RFdfQVRfbG9jYXRpb24ge0RXX09QX2FkZHIgW2dkYl90YXJnZXRfc3ltYm9sICJnX0Ii XX0gXAorKwkJICAgICAgICAgICAgICAgICBTUEVDSUFMX2V4cHJ9CisrCSAgICB9CisrCisrCSAg ICAjIFdlIGNhbid0IHVzZSBNQUNST19BVCBmb3IgdGhlIGRlZmluaXRpb25zIG9mIGZvbyBhbmQg YmFyCisrCSAgICAjIGJlY2F1c2UgaXQgZG9lc24ndCBwcm92aWRlIGEgd2F5IHRvIHBhc3MgdGhl IGFwcHJvcHJpYXRlCisrCSAgICAjIGZsYWdzLiAgVGhlcmVmb3JlLCB3ZSBsaXN0IHRoZSBuYW1l LCBsb3dfcGMsIGFuZCBoaWdoX3BjCisrCSAgICAjIGV4cGxpY2l0bHkuCisrCSAgICBEV19UQUdf c3VicHJvZ3JhbSB7CisrCQl7RFdfQVRfbmFtZSBmb299CisrCQl7RFdfQVRfbG93X3BjICRmb29f c3RhcnQgRFdfRk9STV9hZGRyfQorKwkJe0RXX0FUX2hpZ2hfcGMgJGZvb19lbmQgRFdfRk9STV9h ZGRyfQorKwkJe0RXX0FUX3R5cGUgOiR7Ql9wdHJfbGFiZWx9fQorKwkJe0RXX0FUX2V4dGVybmFs IDEgZmxhZ30KKysJICAgIH0KKysKKysJICAgIERXX1RBR19zdWJwcm9ncmFtIHsKKysJCXtEV19B VF9uYW1lIGJhcn0KKysJCXtEV19BVF9sb3dfcGMgJGJhcl9zdGFydCBEV19GT1JNX2FkZHJ9Cisr CQl7RFdfQVRfaGlnaF9wYyAkYmFyX2VuZCBEV19GT1JNX2FkZHJ9CisrCQl7RFdfQVRfdHlwZSA6 JHtCX3B0cl9sYWJlbH19CisrCQl7RFdfQVRfZXh0ZXJuYWwgMSBmbGFnfQorKwkgICAgfSB7Cisr CQlEV19UQUdfZm9ybWFsX3BhcmFtZXRlciB7CisrCQkgICAge0RXX0FUX25hbWUgdn0KKysJCSAg ICB7RFdfQVRfdHlwZSA6JHtCX3B0cl9sYWJlbH19CisrCQl9CisrCSAgICB9CisrCX0KKysgICAg fQorKworKyAgICBsaW5lcyB7dmVyc2lvbiAyfSBMIHsKKysJaW5jbHVkZV9kaXIgIiR7OjpzcmNk aXJ9LyR7OjpzdWJkaXJ9IgorKwlmaWxlX25hbWUgIiR7OjpzcmNmaWxlfSIgMQorKworKwkjIEdl bmVyYXRlIGEgbGluZSB0YWJsZSBwcm9ncmFtLgorKwlwcm9ncmFtIHsKKysJICAgIHtEV19MTkVf c2V0X2FkZHJlc3MgJGZvb19zdGFydH0KKysJICAgIHtsaW5lIFtnZGJfZ2V0X2xpbmVfbnVtYmVy ICJmb28gcHJvbG9ndWUiXX0KKysJICAgIHtEV19MTlNfY29weX0KKysJICAgIHtEV19MTkVfc2V0 X2FkZHJlc3MgZm9vX2xhYmVsfQorKwkgICAge2xpbmUgW2dkYl9nZXRfbGluZV9udW1iZXIgImZv byByZXR1cm4iXX0KKysJICAgIHtEV19MTlNfY29weX0KKysJICAgIHtsaW5lIFtnZGJfZ2V0X2xp bmVfbnVtYmVyICJmb28gZW5kIl19CisrCSAgICB7RFdfTE5TX2NvcHl9CisrCSAgICB7RFdfTE5F X3NldF9hZGRyZXNzICRmb29fZW5kfQorKwkgICAge0RXX0xOU19hZHZhbmNlX2xpbmUgMX0KKysJ ICAgIHtEV19MTlNfY29weX0KKysJICAgIHtEV19MTkVfZW5kX3NlcXVlbmNlfQorKworKwkgICAg e0RXX0xORV9zZXRfYWRkcmVzcyAkYmFyX3N0YXJ0fQorKwkgICAge2xpbmUgW2dkYl9nZXRfbGlu ZV9udW1iZXIgImJhciBwcm9sb2d1ZSJdfQorKwkgICAge0RXX0xOU19jb3B5fQorKwkgICAge0RX X0xORV9zZXRfYWRkcmVzcyBiYXJfbGFiZWx9CisrCSAgICB7bGluZSBbZ2RiX2dldF9saW5lX251 bWJlciAiYmFyIHJldHVybiJdfQorKwkgICAge0RXX0xOU19jb3B5fQorKwkgICAge2xpbmUgW2dk Yl9nZXRfbGluZV9udW1iZXIgImJhciBlbmQiXX0KKysJICAgIHtEV19MTlNfY29weX0KKysJICAg IHtEV19MTkVfc2V0X2FkZHJlc3MgJGJhcl9lbmR9CisrCSAgICB7RFdfTE5TX2FkdmFuY2VfbGlu ZSAxfQorKwkgICAge0RXX0xOU19jb3B5fQorKwkgICAge0RXX0xORV9lbmRfc2VxdWVuY2V9Cisr CX0KKysgICAgfQorK30KKysKKysjIENvbXBpbGUgdGhlIHNoYXJlZCBvYmplY3QgYWdhaW4sIGJ1 dCB0aGlzIHRpbWUgaW5jbHVkZSAvIHVzZSB0aGUKKysjIERXQVJGIGluZm8gdGhhdCB3ZSd2ZSBj cmVhdGVkIGFib3ZlLiAgTm90ZSB0aGF0IChhZ2FpbikKKysjIC1ESVNfU0hBUkVETElCIGlzIHVz ZWQgdG8gcHJldmVudCBpbmNsdXNpb24gb2YgbWFpbigpIGluIHRoZSBzaGFyZWQKKysjIG9iamVj dC4gIEFsc28gbm90ZSB0aGUgdXNlIG9mIHRoZSAibm9kZWJ1ZyIgb3B0aW9uLiAgQW55IGRlYnVn Z2luZworKyMgaW5mb3JtYXRpb24gdGhhdCB3ZSBuZWVkIHdpbGwgYmUgcHJvdmlkZWQgYnkgdGhl IERXQVJGIGluZm8gY3JlYXRlZAorKyMgYWJvdmUuCisraWYge1tnZGJfY29tcGlsZV9zaGxpYiBb bGlzdCAkbGlic3JjICRhc21fZmlsZV0gJGxpYl9zbyBcCisrICAgICAgICAgICAgICAgICAgICAg ICB7YWRkaXRpb25hbF9mbGFncz0tRElTX1NIQVJFRExJQiBub2RlYnVnfV0gIT0gIiJ9IHsKKysg ICAgdW50ZXN0ZWQgImZhaWxlZCB0byBjb21waWxlIHNoYXJlZCBsaWJyYXJ5IgorKyAgICByZXR1 cm4KKyt9CisrCisrIyBDb21waWxlIHRoZSBtYWluIHByb2dyYW0gZm9yIHVzZSB3aXRoIHRoZSBz aGFyZWQgb2JqZWN0LgorK2lmIFtwcmVwYXJlX2Zvcl90ZXN0aW5nICJmYWlsZWQgdG8gcHJlcGFy ZSIgJHt0ZXN0ZmlsZX0gXAorKyAgICAgICAgICAgICAgICAgICAgICAgICR7OjpzcmNmaWxlMn0g W2xpc3QgZGVidWcgc2hsaWI9JGxpYl9zb11dIHsKKysgICAgcmV0dXJuIC0xCisrfQorKworKyMg RG8gd2hhdGV2ZXIgaXMgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBzaGFyZWQgbGli cmFyeSBpcworKyMgbG9hZGVkIGZvciByZW1vdGUgdGFyZ2V0cy4KKytnZGJfbG9hZF9zaGxpYiAk e2xpYl9zb30KKysKKytpZiAhW3J1bnRvX21haW5dIHRoZW4geworKyAgICBmYWlsICJjYW4ndCBy dW4gdG8gbWFpbiIKKysgICAgcmV0dXJuCisrfQorKworKyMgU3RlcCBpbnRvIGZvbyBzbyB0aGF0 IHdlIGNhbiBmaW5pc2ggb3V0IG9mIGl0LgorK2dkYl90ZXN0ICJzdGVwIiAiZm9vIC4uIGF0IC4q IGZvbyBlbmQuKiIgInN0ZXAgaW50byBmb28iCisrCisrIyBGaW5pc2hpbmcgb3V0IG9mIGZvbyB3 aWxsIGNyZWF0ZSBhIHZhbHVlIHRoYXQgd2lsbCBsYXRlciBuZWVkIHRvCisrIyBiZSBwcmVzZXJ2 ZWQgd2hlbiByZXN0YXJ0aW5nIHRoZSBwcm9ncmFtLgorK2dkYl90ZXN0ICJmaW5pc2giICI9IFxc KGNsYXNzIEIgXFwqXFwpICR7OjpoZXh9IC4qIiAiZmluaXNoIG91dCBvZiBmb28iCisrCisrIyBE ZXJlZmVyZW5jaW5nIGFuZCBwcmludGluZyB0aGUgcmV0dXJuIHZhbHVlIGlzbid0IG5lY2Vzc2Fy eQorKyMgZm9yIHJlcHJvZHVjaW5nIHRoZSBidWcsIGJ1dCB3ZSBzaG91bGQgbWFrZSBzdXJlIHRo YXQgdGhlCisrIyByZXR1cm4gdmFsdWUgaXMgd2hhdCB3ZSBleHBlY3QgaXQgdG8gYmUuCisrZ2Ri X3Rlc3QgInAgKiQiIHsgPSB7PEE+ID0ge2EgPSA4LCB4ID0gOX0sIGIgPSAxMCwgeDIgPSAxMX19 IFwKKysgICAgICAgICAiZGVyZWZlcmVuY2UgcmV0dXJuIHZhbHVlIgorKworKyMgVGhlIG9yaWdp bmFsIFBSMjgwMzAgcmVwcm9kdWNlciBzdGVwcGVkIGJhY2sgaW50byB0aGUgc2hhcmVkIG9iamVj dCwKKysjIHNvIHdlJ2xsIGRvIHRoZSBzYW1lIGhlcmU6CisrZ2RiX3Rlc3QgInN0ZXAiICJiYXIg XFwoLioiICJzdGVwIGludG8gYmFyIgorKworKyMgV2UgZG9uJ3Qgd2FudCBhIGNsZWFuIHJlc3Rh cnQgaGVyZSBzaW5jZSB0aGF0IHdpbGwgYmUgdG9vIGNsZWFuLgorKyMgVGhlIG9yaWdpbmFsIHJl cHJvZHVjZXIgZm9yIFBSMjgwMzAgc2V0IGEgYnJlYWtwb2ludCBpbiB0aGUgc2hhcmVkCisrIyBs aWJyYXJ5IGFuZCB0aGVuIHJlc3RhcnRlZCB2aWEgInJ1biIuICBUaGUgY29tbWFuZCBiZWxvdyBk b2VzIHJvdWdobHkKKysjIHRoZSBzYW1lIHRoaW5nLiAgSXQncyBhdCB0aGlzIHN0ZXAgdGhhdCBh biBpbnRlcm5hbCBlcnJvciB3b3VsZAorKyMgb2NjdXIgZm9yIFBSMjgwMzAuICBUaGUgIm1lc3Nh Z2UiIGFyZ3VtZW50IHRlbGxzIHJ1bnRvIHRvIHR1cm4gb24KKysjIHRoZSBwcmludGluZyBvZiBQ QVNTZXMgd2hpbGUgcnVudG8gaXMgZG9pbmcgaXRzIGpvYi4KKytydW50byAiYmFyIiBtZXNzYWdl CitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2xvY2V4cHItZGF0YS1tZW1i ZXItbG9jYXRpb24uaCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9sb2NleHByLWRhdGEtbWVt YmVyLWxvY2F0aW9uLmgKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysg Yi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvbG9jZXhwci1kYXRhLW1lbWJlci1sb2NhdGlvbi5o CitAQCAtMCwwICsxLDMwIEBACisrLyogQ29weXJpZ2h0IChDKSAyMDIxIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgorKworKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdEQi4KKysKKysg ICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrICAgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysgICAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisr ICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu CisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwg c2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrdHlwZWRlZiBzdHJ1 Y3QgQSB7CisrICAgIGxvbmcgYTsKKysgICAgbG9uZyB4OworK30gQTsKKysKKyt0eXBlZGVmIHN0 cnVjdCBCIHsKKysgICAgQSBhOworKyAgICBsb25nIGI7CisrICAgIGxvbmcgeDI7CisrfSBCOwor KworK2V4dGVybiBCICpmb28gKCk7CisrZXh0ZXJuIEIgKmJhciAoQiAqdik7CgpkaWZmIC0tZ2l0 IGEvZ2RiLnNwZWMgYi9nZGIuc3BlYwppbmRleCA4Njk0OWQ1Li5lOWM5Zjg2IDEwMDY0NAotLS0g YS9nZGIuc3BlYworKysgYi9nZGIuc3BlYwpAQCAtMzEsMTMgKzMxLDEzIEBAIE5hbWU6ICV7P3Nj bF9wcmVmaXh9Z2RiCiAjIEZyZWV6ZSBpdCB3aGVuIEdEQiBnZXRzIGJyYW5jaGVkCiAlZ2xvYmFs IHNuYXBzcmMgICAgMjAyMDAyMDgKICMgU2VlIHRpbWVzdGFtcCBvZiBzb3VyY2UgZ251bGliIGlu c3RhbGxlZCBpbnRvIGdudWxpYi8gLgotJWdsb2JhbCBzbmFwZ251bGliIDIwMjAwNjMwCislZ2xv YmFsIHNuYXBnbnVsaWIgMjAyMTAxMDUKICVnbG9iYWwgdGFybmFtZSBnZGItJXt2ZXJzaW9ufQot VmVyc2lvbjogMTAuMgorVmVyc2lvbjogMTEuMQogCiAjIFRoZSByZWxlYXNlIGFsd2F5cyBjb250 YWlucyBhIGxlYWRpbmcgcmVzZXJ2ZWQgbnVtYmVyLCBzdGFydCBpdCBhdCAxLgogIyBgdXBzdHJl YW0nIGlzIG5vdCBhIHBhcnQgb2YgYG5hbWUnIHRvIHN0YXkgZnVsbHkgcnBtIGRlcGVuZGVuY2ll cyBjb21wYXRpYmxlIGZvciB0aGUgdGVzdGluZy4KLVJlbGVhc2U6IDYlez9kaXN0fQorUmVsZWFz ZTogOSV7P2Rpc3R9CiAKIExpY2Vuc2U6IEdQTHYzKyBhbmQgR1BMdjMrIHdpdGggZXhjZXB0aW9u cyBhbmQgR1BMdjIrIGFuZCBHUEx2Misgd2l0aCBleGNlcHRpb25zIGFuZCBHUEwrIGFuZCBMR1BM djIrIGFuZCBMR1BMdjMrIGFuZCBCU0QgYW5kIFB1YmxpYyBEb21haW4gYW5kIEdGREwKICMgRG8g bm90IHByb3ZpZGUgVVJMIGZvciBzbmFwc2hvdHMgYXMgdGhlIGZpbGUgbGFzdHMgdGhlcmUgb25s eSBmb3IgMiBkYXlzLgpAQCAtMjM4LDcgKzIzOCw3IEBAIEJ1aWxkUmVxdWlyZXM6IC91c3IvYmlu L3BvZDJtYW4KICVpZiAwJXshP3JoZWw6MX0gfHwgMCV7P3JoZWx9ID4gNwogQnVpbGRSZXF1aXJl czogbGliYmFiZWx0cmFjZS1kZXZlbCV7YnVpbGRpc2F9CiAlaWYgMCV7P3JoZWx9IDwgOQotQnVp bGRSZXF1aXJlczogZ3VpbGUtZGV2ZWwle2J1aWxkaXNhfQorQnVpbGRSZXF1aXJlczogZ3VpbGUy Mi1kZXZlbCV7YnVpbGRpc2F9CiAlZW5kaWYKICVlbmRpZgogJWdsb2JhbCBoYXZlX2xpYmlwdCAw CkBAIC01MTgsNyArNTE4LDcgQEAgQ09NTU9OX0dEQl9DT05GSUdVUkVfRkxBR1M9IlwKIAktLW1h bmRpcj0le19tYW5kaXJ9CQkJCQlcCiAJLS1pbmZvZGlyPSV7X2luZm9kaXJ9CQkJCQlcCiAJLS13 aXRoLWdkYi1kYXRhZGlyPSV7X2RhdGFkaXJ9L2dkYgkJCVwKLQktLWVuYWJsZS1nZGItYnVpbGQt d2FybmluZ3M9LC1Xbm8tdW51c2VkCQlcCisJLS1lbmFibGUtZ2RiLWJ1aWxkLXdhcm5pbmdzPSwt V25vLXVudXNlZCwtV25vLWRlcHJlY2F0ZWQtZGVjbGFyYXRpb25zLC1Xbm8tdW51c2VkLWZ1bmN0 aW9uXAogCS0tZW5hYmxlLWJ1aWxkLXdpdGgtY3h4CQkJCQlcCiAlaWZuYXJjaCAle2l4ODZ9IGFs cGhhIHBwYyBzMzkwIHMzOTB4IHg4Nl82NCBwcGM2NCBwcGM2NGxlIHNwYXJjIHNwYXJjdjkgc3Bh cmM2NCAle2FybX0gYWFyY2g2NAogCS0tZGlzYWJsZS13ZXJyb3IJCQkJCVwKQEAgLTUyNiw3ICs1 MjYsNyBAQCBDT01NT05fR0RCX0NPTkZJR1VSRV9GTEFHUz0iXAogCS0tZW5hYmxlLXdlcnJvcgkJ CQkJCVwKICVlbmRpZgogCS0td2l0aC1zZXBhcmF0ZS1kZWJ1Zy1kaXI9L3Vzci9saWIvZGVidWcJ CVwKLQktLWRpc2FibGUtc2ltCQkJCQkJXAorCS0tZGlzYWJsZS1zaW0JCQkgICAgICAgICAgICAg ICAgCVwKIAktLWRpc2FibGUtcnBhdGgJCQkJCQlcCiAJLS13aXRob3V0LXN0YWdlMS1sZGZsYWdz CQkJCVwKIAktLWRpc2FibGUtbGlibWNoZWNrCQkJCQlcCkBAIC01ODIsMTAgKzU4MiwxMSBAQCBH REJfTUlOSU1BTF9DT05GSUdVUkVfRkxBR1M9IlwKICAgICAtLWRpc2FibGUtdW5pdC10ZXN0cyBc CiAgICAgLS1kaXNhYmxlLXNvdXJjZS1oaWdobGlnaHQiCiAKLWV4cG9ydCBDRkxBR1M9IiRSUE1f T1BUX0ZMQUdTICV7P193aXRoX2FzYW46LWZzYW5pdGl6ZT1hZGRyZXNzfSIKLWV4cG9ydCBMREZM QUdTPSIlez9fX2dsb2JhbF9sZGZsYWdzfSAlez9fd2l0aF9hc2FuOi1mc2FuaXRpemU9YWRkcmVz c30iCi0KLWV4cG9ydCBDWFhGTEFHUz0iJENGTEFHUyIKKyMgUG9wdWxhdGUgQ0ZMQUdTLCBMREZM QUdTLCBDQywgQ1hYLCBldGMuCislc2V0X2J1aWxkX2ZsYWdzCitDRkxBR1M9IiRDRkxBR1MgJXs/ X3dpdGhfYXNhbjotZnNhbml0aXplPWFkZHJlc3N9IgorTERGTEFHUz0iJExERkxBR1MgJXs/X3dp dGhfYXNhbjotZnNhbml0aXplPWFkZHJlc3N9IgorQ1hYRkxBR1M9IiRDWFhGTEFHUyAlez9fd2l0 aF9hc2FuOi1mc2FuaXRpemU9YWRkcmVzc30iCiAKICMgLS1odG1sZGlyIGFuZCAtLXBkZmRpciBh cmUgbm90IHVzZWQgYXMgdGhleSBhcmUgdXNlZCBmcm9tICV7Z2RiX2J1aWxkfS4KIC4uL2NvbmZp Z3VyZQkJCQkJCQlcCkBAIC0xMTQzLDcgKzExNDQsODEgQEAgZmkKICVlbmRpZgogCiAlY2hhbmdl bG9nCi0qIFdlZCBKdWwgMjEgMjAyMSBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5n QGZlZG9yYXByb2plY3Qub3JnPgorKiBXZWQgSmFuIDEyIDIwMjIgQWxleGFuZHJhIEjDoWprb3bD oSAtIDExLjEtOQorLSBSZW1vdmUgZ2RiLTYuMy1pbmZlcmlvci1ub3RpZmljYXRpb24tMjAwNTA3 MjEucGF0Y2gKKyAgd2hpY2ggYWRkcyBwcm9ibGVtYXRpYyBhdHRhY2gtMzIgdGVzdC4KKworKiBU dWUgSmFuIDExIDIwMjIgQWxleGFuZHJhIEjDoWprb3bDoSAtIDExLjEtOAorLSBCYWNrcG9ydCB1 cHN0cmVhbSBwYXRjaCAiW1BSIGdkYi8yNzAyNl0gQ1RSTC1DIGlzIGlnbm9yZWQKKyAgd2hlbiBk ZWJ1ZyBpbmZvIGlzIGRvd25sb2FkZWQiIChSSEJaIDIwMjQ4NzUsIEFhcm9uIE1lcmV5KS4KKwor KiBUdWUgSmFuIDExIDIwMjIgQWxleGFuZHJhIEjDoWprb3bDoSAtIDExLjEtOAorLSBCYWNrcG9y dCB1cHN0cmVhbSBwYXRjaCAicmV3b3JrICJzZXQgZGVidWdpbmZvZCIgY29tbWFuZHMiCisgIChS SEJaIDIwMjQ4NzUsIFNpbW9uIE1hcmNoaSkuCisKKyogVHVlIEphbiAxMSAyMDIyIEFsZXhhbmRy YSBIw6Fqa292w6EgLSAxMS4xLTgKKy0gQmFja3BvcnQgdXBzdHJlYW0gcGF0Y2ggIkZpeCB1bml0 dGVzdC5leHAgZmFpbHVyZSBkdWUgdG8gJ3NldCBkZWJ1Z2luZm9kJyBhZGRpdGlvbiIKKyAgKFJI QlogMjAyNDg3NSwgVG9tIFRyb21leSkuCisKKyogTW9uIEphbiAxMCAyMDIyIEFsZXhhbmRyYSBI w6Fqa292w6EgLSAxMS4xLTgKKy0gQWRkIC1Xbm8tdW51c2VkLWZ1bmN0aW9uIHRvIC0tZW5hYmxl LWdkYi1idWlsZC13YXJuaW5ncyB0byBwcmV2ZW50IHRoZSBidWlsZCBmYWlsdXJlOgorICAiLi4v Li4vZ2RiL2MtZXhwLnk6MzQ1NToxOiBlcnJvcjogJ3ZvaWQgY19wcmludF90b2tlbihGSUxFKiwg aW50LCBZWVNUWVBFKScKKyAgZGVmaW5lZCBidXQgbm90IHVzZWQgWy1XZXJyb3I9dW51c2VkLWZ1 bmN0aW9uXSIKKworKiBNb24gSmFuIDEwIDIwMjIgQWxleGFuZHJhIEjDoWprb3bDoSAtIDExLjEt OAorLSBCYWNrcG9ydCB1cHN0cmVhbSBwYXRjaCAiZ2RiOiBhZGQgc2V0L3Nob3cgY29tbWFuZHMg Zm9yIG1hbmFnaW5nIGRlYnVnaW5mb2QiCisgIChSSEJaIDIwMjQ4NzUsIEFhcm9uIE1lcmV5KS4K KworKiBNb24gSmFuIDEwIDIwMjIgQWxleGFuZHJhIEjDoWprb3bDoSAtIDExLjEtOAorLSBCYWNr cG9ydCB1cHN0cmVhbSBwYXRjaCAiZ2RiLnRleGluZm86IEV4cGFuZCBkb2N1bWVudGF0aW9uIGZv ciBkZWJ1Z2luZm9kIgorICAoUkhCWiAyMDI0ODc1LCBBYXJvbiBNZXJleSkuCisKKyogTW9uIERl YyA2IDIwMjEgS2V2aW4gQnVldHRuZXIgLSAxMS4xLTcKKy0gQWRkIC1Xbm8tZGVwcmVjYXRlZC1k ZWNsYXJhdGlvbnMgdG8gLS1lbmFibGUtZ2RiLWJ1aWxkLXdhcm5pbmdzIHRvIHdvcmsKKyAgYXJv dW5kIHRoZSBweXRob24gMy4xMSBkZXByZWNhdGlvbiBvZiBQeV9TZXRQcm9ncmFtTmFtZS4KKwor KiBGcmkgTm92IDEyIDIwMjEgVGltbSBCw6RkZXIgPHRiYWVkZXJAcmVkaGF0LmNvbT4gLSAxMS4x LTYKKy0gVXNlICUlc2V0X2J1aWxkX2ZsYWdzIHRvIHBvcHVsYXRlIGFsbCByZWxldmFudCBidWls ZCBmbGFncworCisqIFdlZCBOb3YgMTAgMjAyMSBLZXZpbiBCdWV0dG5lciAtIDExLjEtNQorLSBC YWNrcG9ydCB1cHN0cmVhbSBmaXggYW5kIHRlc3QgY2FzZSBmb3IgYSBkcHJpbnRmIGJ1ZyAoUkhC WiAyMDIyMTc3LCBLZXZpbgorICBCdWV0dG5lcikuCisKKyogVHVlIE5vdiA5IDIwMjEgQnJ1bm8g TGFyc2VuIC0gMTEuMS00CistIEJhY2twb3J0IG1hbnBhZ2UgdXBkYXRlIHRvIGJlIGNsb3NlciB0 byAtaGVscCAoUkhCWiA4NTMwNzEpCisKKyogV2VkIE5vdiAzIDIwMjEgS2V2aW4gQnVldHRuZXIg LSAxMS4xLTMKKy0gTWFrZSBhZGp1c3RtZW50cyB0byBnZGItNi42LWJ1aWxkaWQtbG9jYXRlLnBh dGNoLCBwcm92aWRlZCBieSBUb20gZGUgVnJpZXMuCisKKyogTW9uIE9jdCAxMSAyMDIxIEtldmlu IEJ1ZXR0bmVyIC0gMTEuMS0yCistIEJhY2twb3J0IHVwc3RyZWFtIHBhdGNoIHdoaWNoIHBhcGVy cyBvdmVyIEZvcnRyYW4gbGV4aWNhbCBhbmFseXplcgorICBidWcgKFJIQlogMjAxMjk3NiwgVG9t IGRlIFZyaWVzKS4KKworKiBNb24gT2N0IDA0IDIwMjEgS2V2aW4gQnVldHRuZXIgLSAxMS4xLTEK Ky0gUmViYXNlIHRvIEZTRiBHREIgMTEuMS4KKy0gQWRqdXN0IGJ1aWxkLWlkIHJlbGF0ZWQgcGF0 Y2hlcy4KKy0gRHJvcCBiYWNrcG9ydGVkIHBhdGNoZXMgd2hpY2ggYXJlIG5vIGxvbmdlciByZWxl dmFudC4KKy0gQnVtcCAnc25hcGdudWxpYicgZGF0ZS4KKworKiBUaHUgU2VwIDMwIDIwMjEgQWxl eGFuZHJhIEjDoWprb3bDoSA8YWhhamtvdmFAcmVkaGF0LmNvbT4gLSAxMC4yLTkKKy0gQmFja3Bv cnQgdGVzdCBmb3IgUkhCWiAxOTc2ODg3IChLZXZpbiBCdWV0dG5lcikuCisKKyogVGh1IFNlcCAz MCAyMDIxIEFsZXhhbmRyYSBIw6Fqa292w6EgPGFoYWprb3ZhQHJlZGhhdC5jb20+IC0gMTAuMi05 CistIEJhY2twb3J0IHVwc3RyZWFtIHBhdGNoIHdoaWNoIGZpeGVzIGludGVybmFsLWVycm9yOiBV bmV4cGVjdGVkCisgIHR5cGUgZmllbGQgbG9jYXRpb24ga2luZCAoUkhCWiAxOTc2ODg3LCBBbGV4 YW5kcmEgSMOhamtvdsOhKS4KKworKiBXZWQgU2VwIDIyIDIwMjEgQnJ1bm8gTGFyc2VuIDxibGFy c2VuQHJlZGhhdC5jb20+IC0gMTAuMi04CistIEJhY2twb3J0ICJbZ2RiXSBJbXByb3ZlIGVhcmx5 IGV4aXRzIGZvciBlbnYgdmFyIGluIGRlYnVnaW5mb2Qtc3VwcG9ydC5jIgorICAoVG9tIGRlIFZy aWVzKQorCisqIFdlZCBTZXAgMjIgMjAyMSBCcnVubyBMYXJzZW4gPGJsYXJzZW5AcmVkaGF0LmNv bT4gLSAxMC4yLTgKKy0gQmFja3BvcnQgIltnZGIvY2xpXSBEb24ndCBhc3NlcnQgb24gZW1wdHkg c3RyaW5nIGZvciBjb3JlLWZpbGUiCisgIChUb20gZGUgVnJpZXMpCisKKyogVHVlIFNlcCAyMSAy MDIxIFBldGVyIFJvYmluc29uIDxwYnJvYmluc29uQGZlZG9yYXByb2plY3Qub3JnPiAxMC4yLTcK Ky0gVXNlIGd1aWxlIDIuMiAocmhieiAjMTkwMTM1MykKKworKiBXZWQgSnVsIDIxIDIwMjEgRmVk b3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gMTAuMi02 CiAtIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfMzVf TWFzc19SZWJ1aWxkCiAKICogVHVlIEp1bCAyMCAyMDIxIEtldmluIEJ1ZXR0bmVyIDxrZXZpbmJA cmVkaGF0LmNvbT4gLSAxMC4yLTUKCmRpZmYgLS1naXQgYS9zb3VyY2VzIGIvc291cmNlcwppbmRl eCBlY2M3Nzg0Li40N2EwMmU1IDEwMDY0NAotLS0gYS9zb3VyY2VzCisrKyBiL3NvdXJjZXMKQEAg LTEsMyArMSwzIEBACiBTSEE1MTIgKGdkYi1saWJzdGRjKystdjMtcHl0aG9uLTguMS4xLTIwMTgw NjI2LnRhci54eikgPSBhOGIxYzU0ZGQzNDhjZmViMzdkYTczZjk2ODc0Mjg5NmJlM2RkMTNhNDIx NWY4ZDg1MTk4NzBjMmFiZWE5MTVmNTE3NmMzZmE2OTg5ZGRkMTBmMjAwMjBhMTZmMGZhYjIwY2Jh ZTY4ZWU4ZDU4YTgyMjM0ZDg3NzgwMjM1MjBmOAogU0hBNTEyICh2Mi4wLjQudGFyLmd6KSA9IDU5 NmQyZGFjMjVmZGJkM2U1NjYwZDdlMWZlZWI3ZThkNWQzNTlkMWQwZTE5YjYyZWY1OTM0NDkwMzdk ZjIzNmRiMWQ0ZDk4ODIwZjAwMzEwNjFiNTU3M2VkNjc3OTdhODVhNzdmYjk5OTFlMjE1YWJhYWJj NGJmZTE2Y2VhZWM4Ci1TSEE1MTIgKGdkYi0xMC4yLnRhci54eikgPSAzNjUzNzYyYWMwMDhlMDY1 YzM3Y2Q2NDE2NTMxODRjOWZmN2NlNTFlZTIyMjJhZGUxMTIyYmVjOWQ2Y2M2NGRmZmQ0ZmI3NDg4 OGVmMTFhYzE5NDIwNjRhMDg5MTBlOTZiNzg2NTExMmFkMzdmNDYwMmViMGExNmJlZDA3NGNhYQor U0hBNTEyIChnZGItMTEuMS50YXIueHopID0gYzQwYmY5NzBlMmY3YzIxMDdiMjljNWFhNmE3MTUw ZGFhNzA5ZDc1ZGRhZGI3M2FjMjA3NDI0MTlkNDYzN2QxNThlMzA2M2E0YzZmZjZlNDdmYWU4Y2E4 ZTFkMzYyNTM5NzNmODVlYTE1NDQ1ZDAwNGJlNmQ1ZDdhMmRkOWJkNDYKCmRpZmYgLS1naXQgYS90 ZXN0aW5nLWN1c3RvbS1pbnB1dHJjLnBhdGNoIGIvdGVzdGluZy1jdXN0b20taW5wdXRyYy5wYXRj aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzk1ZjdkMS4uMDAwMDAwMAotLS0gYS90 ZXN0aW5nLWN1c3RvbS1pbnB1dHJjLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBA QAotRnJvbSBGRURPUkFfUEFUQ0hFUyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtl aXRoIFNlaXR6IDxrZWl0aHNAcmVkaGF0LmNvbT4KLURhdGU6IFR1ZSwgMjMgTWFyIDIwMjEgMDk6 MzI6MzcgLTA3MDAKLVN1YmplY3Q6IHRlc3RpbmctY3VzdG9tLWlucHV0cmMucGF0Y2gKLQotOzsg QmFja3BvcnQgIkRpc2FibGUgYnJhY2tldGVkIHBhc3RlIG1vZGUgaW4gR0RCIHRlc3RzIgotOzsg KFRvbSBUcm9tZXkpCi0KLSAgIGNvbW1pdCAxYWY0YzljNDIwOWMzNDc4MjI0ZjE4ZGZiNzlkYzA5 NTY3Yjk2NzA1Ci0gICBBdXRob3I6IFRvbSBUcm9tZXkgPHRvbUB0cm9tZXkuY29tPgotICAgRGF0 ZTogICBTYXQgSmFuIDIzIDA4OjUyOjQ1IDIwMjEgLTA3MDAKLQotICAgIERpc2FibGUgYnJhY2tl dGVkIHBhc3RlIG1vZGUgaW4gR0RCIHRlc3RzCi0KLSAgICBJIGhhdmUgYSBwYXRjaCB0byBpbXBv cnQgR05VIHJlYWRsaW5lIDguMSBpbnRvIEdEQi4gIEhvd2V2ZXIsIHdoZW4KLSAgICBydW5uaW5n IHRoZSB0ZXN0cywgdGhlcmUgd2VyZSBhIG51bWJlciBvZiBmYWlsdXJlcyBkdWUgdG8gImJyYWNr ZXRlZAotICAgIHBhc3RlIG1vZGUiLiAgVGhpcyBpcyBhIHRlcm1pbmFsIGZlYXR1cmUgdGhhdCBy ZWFkbGluZSA4LjEgZW5hYmxlcyBieQotICAgIGRlZmF1bHQuCi0KLSAgICBUaGUgc2ltcGxlc3Qg d2F5IHRvIHdvcmsgYXJvdW5kIHRoaXMgd2FzIHRvIGFsd2F5cyBtYWtlIGEgIi5pbnB1dHJjIgot ICAgIGZvciBHREIgdGVzdHMgdGhhdCB3aWxsIHRlbGwgcmVhZGxpbmUgdG8gZGlzYWJsZSBicmFj a3RlZCBwYXN0ZSBtb2RlLgotCi0gICAgZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKLSAgICAyMDIx LTAxLTIzICBUb20gVHJvbWV5ICA8dG9tQHRyb21leS5jb20+Ci0KLSAgICAgICAgICAgICogbGli L2dkYi5leHAgKGRlZmF1bHRfZ2RiX2luaXQpOiBTZXQgSU5QVVRSQyB0byBhIGNhY2hlZCBmaWxl LgotCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cCBiL2dkYi90ZXN0c3Vp dGUvbGliL2dkYi5leHAKLS0tLSBhL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAKLSsrKyBiL2dk Yi90ZXN0c3VpdGUvbGliL2dkYi5leHAKLUBAIC01MTM1LDEzICs1MTM1LDE0IEBAIHByb2MgZGVm YXVsdF9nZGJfaW5pdCB7IHRlc3RfZmlsZV9uYW1lIH0gewotICAgICBzZXRlbnYgTENfQ1RZUEUg QwotICAgICBzZXRlbnYgTEFORyBDCi0gCi0tICAgICMgRG9uJ3QgbGV0IGEgLmlucHV0cmMgZmls ZSBvciBhbiBleGlzdGluZyBzZXR0aW5nIG9mIElOUFVUUkMgbWVzcyB1cAotLSAgICAjIHRoZSB0 ZXN0IHJlc3VsdHMuICBFdmVuIGlmIC9kZXYvbnVsbCBkb2Vzbid0IGV4aXN0IG9uIHRoZSBwYXJ0 aWN1bGFyCi0tICAgICMgcGxhdGZvcm0sIHRoZSByZWFkbGluZSBsaWJyYXJ5IHdpbGwgdXNlIHRo ZSBkZWZhdWx0IHNldHRpbmcganVzdCBieQotLSAgICAjIGZhaWxpbmcgdG8gb3BlbiB0aGUgZmls ZS4gIE9UT0gsIG9wZW5pbmcgL2Rldi9udWxsIHN1Y2Nlc3NmdWxseSB3aWxsCi0tICAgICMgYWxz byByZXN1bHQgaW4gdGhlIGRlZmF1bHQgc2V0dGluZ3MgYmVpbmcgdXNlZCBzaW5jZSBub3RoaW5n IHdpbGwgYmUKLS0gICAgIyByZWFkIGZyb20gdGhpcyBmaWxlLgotLSAgICBzZXRlbnYgSU5QVVRS QyAiL2Rldi9udWxsIgotKyAgICAjIERvbid0IGxldCBhIC5pbnB1dHJjIGZpbGUgb3IgYW4gZXhp c3Rpbmcgc2V0dGluZyBvZiBJTlBVVFJDIG1lc3MKLSsgICAgIyB1cCB0aGUgdGVzdCByZXN1bHRz LiAgQ2VydGFpbiB0ZXN0cyAoc3R5bGUgdGVzdHMgYW5kIFRVSSB0ZXN0cykKLSsgICAgIyB3YW50 IHRvIHNldCB0aGUgdGVybWluYWwgdG8gYSBub24tImR1bWIiIHZhbHVlLCBhbmQgZm9yIHRob3Nl IHdlCi0rICAgICMgd2FudCB0byBkaXNhYmxlIGJyYWNrZXRlZCBwYXN0ZSBtb2RlLiAgVmVyc2lv bnMgb2YgUmVhZGxpbmUKLSsgICAgIyBiZWZvcmUgOC4wIHdpbGwgbm90IHVuZGVyc3RhbmQgdGhp cyBhbmQgd2lsbCBpc3N1ZSBhIHdhcm5pbmcuCi0rICAgICMgV2UgdHJpZWQgdXNpbmcgYSAkaWYg dG8gZ3VhcmQgaXQsIGJ1dCBSZWFkbGluZSA4LjEgaGFkIGEgYnVnIGluCi0rICAgICMgaXRzIHZl cnNpb24tY29tcGFyaXNvbiBjb2RlIHRoYXQgcHJldmVudGVkIHRoaXMgZm9yIHdvcmtpbmcuCi0r ICAgIHNldGVudiBJTlBVVFJDIFtjYWNoZWRfZmlsZSBpbnB1dHJjICJzZXQgZW5hYmxlLWJyYWNr ZXRlZC1wYXN0ZSBvZmYiXQotIAotICAgICAjIFRoaXMgZGlzYWJsZXMgc3R5bGUgb3V0cHV0LCB3 aGljaCB3b3VsZCBpbnRlcmZlcmUgd2l0aCBtYW55Ci0gICAgICMgdGVzdHMuCg==