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: Jakub Jelinek To: git-commits@fedoraproject.org Subject: [rpms/gcc] rhel-f41-base: 4.5.0-1 Date: Mon, 29 Jun 2026 12:24:51 GMT Message-ID: <178273589177.1.8601724602570936850.rpms-gcc-8717b1d4117b@fedoraproject.org> List-ID: X-Git-Repo: rpms/gcc X-Git-Branch: rhel-f41-base X-Git-Rev: 8717b1d4117bc11adfa0119d8a26792e6aa2d908 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2NjCkJyYW5jaCA6 IHJoZWwtZjQxLWJhc2UKQ29tbWl0IDogODcxN2IxZDQxMTdiYzExYWRmYTAxMTlkOGEyNjc5MmU2 YWEyZDkwOApBdXRob3IgOiBKYWt1YiBKZWxpbmVrIDxqYWt1YkBmZWRvcmFwcm9qZWN0Lm9yZz4K RGF0ZSAgIDogMjAxMC0wNy0wN1QxNzozNToyMSswMDowMApTdGF0cyAgOiArMTM5MC8tMzE4MiBp biA0MSBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMv Z2NjL2MvODcxN2IxZDQxMTdiYzExYWRmYTAxMTlkOGEyNjc5MmU2YWEyZDkwOD9icmFuY2g9cmhl bC1mNDEtYmFzZQoKTG9nOgo0LjUuMC0xCgotLS0KZGlmZiAtLWdpdCBhLy5jdnNpZ25vcmUgYi8u Y3ZzaWdub3JlCmluZGV4IDg3NTExMDAuLmUwMTQxMGEgMTAwNjQ0Ci0tLSBhLy5jdnNpZ25vcmUK KysrIGIvLmN2c2lnbm9yZQpAQCAtMSwyICsxLDIgQEAKIGZhc3RqYXItMC45Ny50YXIuZ3oKLWdj Yy00LjQuNC0yMDEwMDYzMC50YXIuYnoyCitnY2MtNC41LjAtMjAxMDA3MDcudGFyLmJ6MgoKZGlm ZiAtLWdpdCBhL1JFQURNRS5saWJnY2p3ZWJwbHVnaW4uc28gYi9SRUFETUUubGliZ2Nqd2VicGx1 Z2luLnNvCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMGM5MDkwLi4wMDAwMDAwCi0t LSBhL1JFQURNRS5saWJnY2p3ZWJwbHVnaW4uc28KKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCww IEBACi1nY2p3ZWJwbHVnaW4gaXMgYSBGaXJlZm94IHBsdWdpbiBmb3IgcnVubmluZyBKYXZhIGFw cGxldHMuICBJdCBpcyBub3cKLWluY2x1ZGVkIGluIHRoZSBsaWJnY2ogc3ViLXBhY2thZ2UsIHRo b3VnaCBpdCBpcyBub3QgZW5hYmxlZCBieQotZGVmYXVsdC4KLQotR05VIENsYXNzcGF0aCBhbmQg bGliZ2NqJ3Mgc2VjdXJpdHkgaW1wbGVtZW50YXRpb24gaXMgdW5kZXIgYWN0aXZlCi1kZXZlbG9w bWVudCwgYnV0IGl0IGlzIG5vdCByZWFkeSB0byBiZSBkZWNsYXJlZCBzZWN1cmUuICBTcGVjaWZp Y2FsbHksCi1pdCBjYW5ub3QgcnVuIHVudHJ1c3RlZCBhcHBsZXRzIHNhZmVseS4KLQotV2hlbiBn Y2p3ZWJwbHVnaW4gaXMgZW5hYmxlZCwgaXQgcHJvbXB0cyB5b3Ugd2l0aCBhIGRpYWxvZyBiZWZv cmUKLWxvYWRpbmcgYW4gYXBwbGV0LiAgVGhlIGRpYWxvZyB0ZWxscyB5b3UgdGhhdCBhIGNlcnRh aW4gVVJMIHdvdWxkIGxpa2UKLXRvIGxvYWQgYW4gYXBwbGV0LCBhbmQgYXNrcyBpZiB5b3UgdHJ1 c3QgdGhlIGFwcGxldC4gIEJlIGF3YXJlIHRob3VnaAotdGhhdCB0aGlzIGRpYWxvZyBpcyBtb3N0 bHkgaW5mb3JtYXRpdmUgYW5kIGRvZXNuJ3QgcHJvdmlkZSBtdWNoCi1wcm90ZWN0aW9uOgotCi0t IGh0dHAgYW5kIEROUyBjYW4gYmUgc3Bvb2ZlZCBtZWFuaW5nIHRoYXQgdGhlIFVSTCBuYW1lZCBp biB0aGUKLSAgd2FybmluZyBkaWFsb2cgY2Fubm90IGJlIHRydXN0ZWQKLQotLSBzb21lb25lIGNv dWxkIGNyZWF0ZSBhIGJyb3dzZXIgZGVuaWFsLW9mLXNlcnZpY2UgYXR0YWNrIGJ5IGNyZWF0aW5n IGEKLSAgcGFnZSB3aXRoIGh1bmRyZWRzIG9mIGFwcGxldCB0YWdzLCBjYXVzaW5nIGdjandlYnBs dWdpbiB0byBjcmVhdGUKLSAgd2FybmluZyBkaWFsb2cgYWZ0ZXIgd2FybmluZyBkaWFsb2cuICBU aGUgYnJvd3NlciB3b3VsZCBoYXZlIHRvIGJlCi0gIGNsb3NlZCB0byBlbGltaW5hdGUgdGhlIGxh dGVzdCBkaWFsb2cKLQotLSB0aGUgd2hpdGVsaXN0IGlzIHByb3ZpZGVkIGFzIGEgY29udmVuaWVu Y2UsIGJ1dCBpdCBpcyB1bnNhZmUgYmVjYXVzZSBhCi0gIGRvbWFpbiBtYXkgY2hhbmdlIGhhbmRz IGZyb20gYSB0cnVzdGVkIG93bmVyIHRvIGFuIHVudHJ1c3RlZCBvd25lci4KLSAgSWYgdGhhdCBk b21haW4gaXMgaW4gdGhlIHdoaXRlbGlzdCB0aGVuIHRoZSB3YXJuaW5nIGRpYWxvZyB3aWxsIG5v dAotICBhcHBlYXIgd2hlbiBsb2FkaW5nIHRoZSBuZXcgbWFsaWNpb3VzIGFwcGxldC4KLQotQ1VS UkVOVExZIEdDSldFQlBMVUdJTiBSVU5TIFdJVEggTk8gU0VDVVJJVFkgTUFOQUdFUi4gIFRISVMg TUVBTlMgVEhBVAotQVBQTEVUUyBDQU4gRE8gQU5ZVEhJTkcgQSBKQVZBIEFQUExJQ0FUSU9OIFRI QVQgWU9VIERPV05MT0FEIEFORCBSVU4KLUNPVUxEIERPLiAgQkUgKlZFUlkqIENBUkVGVUwgV0hJ Q0ggQVBQTEVUUyBZT1UgUlVOLiAgRE8gTk9UIFVTRQotR0NKV0VCUExVR0lOIE9OIFlPVVIgU1lT VEVNIElGIFlPVVIgU1lTVEVNIFNUT1JFUyBJTVBPUlRBTlQgREFUQS4KLVRISVMgREFUQSBDQU4g QkUgREVTVFJPWUVEIE9SIFNUT0xFTi4KLQotVGhlIHNhbWUgd2FybmluZyBhcHBsaWVzIHRvIGdh cHBsZXR2aWV3ZXIsIHdoaWNoIGFsc28gcnVucyB3aXRoIG5vCi1zZWN1cml0eSBtYW5hZ2VyIChp biBmYWN0LCBnY2p3ZWJwbHVnaW4gc3Bhd25zIGdhcHBsZXR2aWV3ZXIgdG8gZG8gdGhlCi1hcHBs ZXQgbG9hZGluZykuICBXaGVuIHJ1biBvbiB0aGUgY29tbWFuZCBsaW5lLCBnYXBwbGV0dmlld2Vy IGlzc3VlcyBhCi13YXJuaW5nIG9uIHN0YXJ0dXAgYW5kIGFza3MgeW91IGlmIHlvdSB3YW50IHRv IGNvbnRpbnVlLgotCi1FdmVuIGNvbnNpZGVyaW5nIHRoZSByaXNrcyBpbnZvbHZlZCwgeW91IG1h eSBzdGlsbCB3YW50IHRvIHRyeQotZ2Nqd2VicGx1Z2luLiAgR05VIENsYXNzcGF0aCdzIEFXVCBh bmQgU3dpbmcgaW1wbGVtZW50YXRpb25zIGFyZSBub3cKLXN1ZmZpY2llbnRseSBtYXR1cmUgdGhh dCB0aGV5J3JlIGFibGUgdG8gcnVuIG1hbnkgYXBwbGV0cyBkZXBsb3llZCBvbgotdGhlIHdlYi4g IElmIHlvdSdyZSBpbnRlcmVzdGVkIGluIHRyeWluZyBnY2p3ZWJwbHVnaW4sIHlvdSBjYW4gZG8g c28KLWJ5IGNyZWF0aW5nIGEgc3ltYm9saWMgbGluayBpbiB+Ly5tb3ppbGxhL3BsdWdpbnMgbGlr ZSBzbzoKLQotbG4gLXMgL3Vzci9saWIvZ2NqLUBWRVJTSU9OQC9saWJnY2p3ZWJwbHVnaW4uc28g fi8ubW96aWxsYS9wbHVnaW5zLwotCi1UeXBlIGFib3V0OnBsdWdpbnMgaW4gRmlyZWZveCdzIFVS TCBiYXIgdG8gY29uZmlybSB0aGF0IHRoZSBwbHVnaW4gaGFzCi1iZWVuIGxvYWRlZC4gIFRvIHNl ZSBnY2p3ZWJwbHVnaW4gZGVidWdnaW5nIG91dHB1dCwgcnVuOgotCi1maXJlZm94IC1nCi0KLXRo ZW4gYXQgdGhlIEdEQiBwcm9tcHQsIHR5cGUKLQotcnVuCi0KLVBsZWFzZSByZXBvcnQgYnVncyBp biBSZWQgSGF0IEJ1Z3ppbGxhOiBodHRwOi8vYnVnemlsbGEucmVkaGF0LmNvbQoKZGlmZiAtLWdp dCBhL2djYy5zcGVjIGIvZ2NjLnNwZWMKaW5kZXggZjM2MTNmOS4uNzRmM2QxZCAxMDA2NDQKLS0t IGEvZ2NjLnNwZWMKKysrIGIvZ2NjLnNwZWMKQEAgLTEsMTYgKzEsMTEgQEAKLSVnbG9iYWwgREFU RSAyMDEwMDYzMAotJWdsb2JhbCBTVk5SRVYgMTYxNTg5Ci0lZ2xvYmFsIGdjY192ZXJzaW9uIDQu NC40CislZ2xvYmFsIERBVEUgMjAxMDA3MDcKKyVnbG9iYWwgU1ZOUkVWIDE2MTkxMgorJWdsb2Jh bCBnY2NfdmVyc2lvbiA0LjUuMAogIyBOb3RlLCBnY2NfcmVsZWFzZSBtdXN0IGJlIGludGVnZXIs IGlmIHlvdSB3YW50IHRvIGFkZCBzdWZmaXhlcyB0bwogIyAle3JlbGVhc2V9LCBhcHBlbmQgdGhl bSBhZnRlciAle2djY19yZWxlYXNlfSBvbiBSZWxlYXNlOiBsaW5lLgotJWdsb2JhbCBnY2NfcmVs ZWFzZSAxMAorJWdsb2JhbCBnY2NfcmVsZWFzZSAxCiAlZ2xvYmFsIF91bnBhY2thZ2VkX2ZpbGVz X3Rlcm1pbmF0ZV9idWlsZCAwCiAlZ2xvYmFsIG11bHRpbGliXzY0X2FyY2hzIHNwYXJjNjQgcHBj NjQgczM5MHggeDg2XzY0Ci0laWYgMCV7P2ZlZG9yYX0gPj0gMTMgfHwgMCV7P3JoZWx9ID49IDYK LSVnbG9iYWwgaW5jbHVkZV9nYXBwbGV0dmlld2VyIDAKLSVlbHNlCi0lZ2xvYmFsIGluY2x1ZGVf Z2FwcGxldHZpZXdlciAxCi0lZW5kaWYKICVpZmFyY2ggJXtpeDg2fSB4ODZfNjQgaWE2NCBwcGMg cHBjNjQgYWxwaGEKICVnbG9iYWwgYnVpbGRfYWRhIDEKICVlbHNlCkBAIC01NSw4ICs1MCw2IEBA IEdyb3VwOiBEZXZlbG9wbWVudC9MYW5ndWFnZXMKICMgdGFyIGNmIC0gZ2NjLSV7dmVyc2lvbn0t JXtEQVRFfSB8IGJ6aXAyIC05ID4gZ2NjLSV7dmVyc2lvbn0tJXtEQVRFfS50YXIuYnoyCiBTb3Vy Y2UwOiBnY2MtJXt2ZXJzaW9ufS0le0RBVEV9LnRhci5iejIKIFNvdXJjZTE6IGxpYmdjY19wb3N0 X3VwZ3JhZGUuYwotU291cmNlMjogUkVBRE1FLmxpYmdjandlYnBsdWdpbi5zbwotU291cmNlMzog cHJvdG9pemUuMQogJWdsb2JhbCBmYXN0amFyX3ZlciAwLjk3CiBTb3VyY2U0OiBodHRwOi8vZG93 bmxvYWQuc2F2YW5uYWgubm9uZ251Lm9yZy9yZWxlYXNlcy9mYXN0amFyL2Zhc3RqYXItJXtmYXN0 amFyX3Zlcn0udGFyLmd6CiBVUkw6IGh0dHA6Ly9nY2MuZ251Lm9yZwpAQCAtNzAsMTIgKzYzLDgg QEAgQnVpbGRSb290OiAle190bXBwYXRofS8le25hbWV9LSV7dmVyc2lvbn0tJXtyZWxlYXNlfS1y b290LSUoJXtfX2lkX3V9IC1uKQogIyBOZWVkIGJpbnV0aWxzIHdoaWNoIHN1cHBvcnQgLS1idWls ZC1pZCA+PSAyLjE3LjUwLjAuMTctMwogIyBOZWVkIGJpbnV0aWxzIHdoaWNoIHN1cHBvcnQgJWdu dV91bmlxdWVfb2JqZWN0ID49IDIuMTkuNTEuMC4xNAogIyBOZWVkIGJpbnV0aWxzIHdoaWNoIHN1 cHBvcnQgLmNmaV9zZWN0aW9ucyA+PSAyLjE5LjUxLjAuMTQtMzMKLSVpZiAwJXs/ZmVkb3JhfSA+ PSAxMwogIyBOZWVkIGJpbnV0aWxzIHdoaWNoIHN1cHBvcnQgLS1uby1hZGQtbmVlZGVkID49IDIu MjAuNTEuMC4yLTEyCiBCdWlsZFJlcXVpcmVzOiBiaW51dGlscyA+PSAyLjIwLjUxLjAuMi0xMgot JWVsc2UKLUJ1aWxkUmVxdWlyZXM6IGJpbnV0aWxzID49IDIuMTkuNTEuMC4xNC0zMwotJWVuZGlm CiAjIFdoaWxlIGdjYyBkb2Vzbid0IGluY2x1ZGUgc3RhdGljYWxseSBsaW5rZWQgYmluYXJpZXMs IGR1cmluZyB0ZXN0aW5nCiAjIC1zdGF0aWMgaXMgdXNlZCBzZXZlcmFsIHRpbWVzLgogQnVpbGRS ZXF1aXJlczogZ2xpYmMtc3RhdGljCkBAIC05NCw3ICs4Myw4IEBAIEJ1aWxkUmVxdWlyZXM6IGdj Yy1qYXZhLCBsaWJnY2oKICMgTWFrZSBzdXJlIGdsaWJjIHN1cHBvcnRzIHN0YWNrIHByb3RlY3Rv cgogIyBNYWtlIHN1cmUgZ2xpYmMgc3VwcG9ydHMgRFRfR05VX0hBU0gKIEJ1aWxkUmVxdWlyZXM6 IGdsaWJjLWRldmVsID49IDIuNC45MC0xMwotQnVpbGRSZXF1aXJlczogZWxmdXRpbHMtZGV2ZWwg Pj0gMC43MgorQnVpbGRSZXF1aXJlczogZWxmdXRpbHMtZGV2ZWwgPj0gMC4xNDcKK0J1aWxkUmVx dWlyZXM6IGVsZnV0aWxzLWxpYmVsZi1kZXZlbCA+PSAwLjE0NwogJWlmYXJjaCBwcGMgcHBjNjQg czM5MCBzMzkweCBzcGFyYyBzcGFyY3Y5IGFscGhhCiAjIE1ha2Ugc3VyZSBnbGliYyBzdXBwb3J0 cyBURm1vZGUgbG9uZyBkb3VibGUKIEJ1aWxkUmVxdWlyZXM6IGdsaWJjID49IDIuMy45MC0zNQpA QCAtMTMwLDEyICsxMjAsOCBAQCBSZXF1aXJlczogY3BwID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9 CiAjIE5lZWQgYmludXRpbHMgdGhhdCBzdXBwb3J0IC0tYnVpbGQtaWQKICMgTmVlZCBiaW51dGls cyB0aGF0IHN1cHBvcnQgJWdudV91bmlxdWVfb2JqZWN0CiAjIE5lZWQgYmludXRpbHMgdGhhdCBz dXBwb3J0IC5jZmlfc2VjdGlvbnMKLSVpZiAwJXs/ZmVkb3JhfSA+PSAxMwogIyBOZWVkIGJpbnV0 aWxzIHRoYXQgc3VwcG9ydCAtLW5vLWFkZC1uZWVkZWQKIFJlcXVpcmVzOiBiaW51dGlscyA+PSAy LjIwLjUxLjAuMi0xMgotJWVsc2UKLVJlcXVpcmVzOiBiaW51dGlscyA+PSAyLjE5LjUxLjAuMTQt MzMKLSVlbmRpZgogIyBNYWtlIHN1cmUgZ2RiIHdpbGwgdW5kZXJzdGFuZCBEV19GT1JNX3N0cnAK IENvbmZsaWN0czogZ2RiIDwgNS4xLTIKIFJlcXVpcmVzOiBnbGliYy1kZXZlbCA+PSAyLjIuOTAt MTIKQEAgLTE1NiwyNSArMTQyLDIyIEBAIFJlcXVpcmVzKHBvc3QpOiAvc2Jpbi9pbnN0YWxsLWlu Zm8KIFJlcXVpcmVzKHByZXVuKTogL3NiaW4vaW5zdGFsbC1pbmZvCiBBdXRvUmVxOiB0cnVlCiAK LVBhdGNoMDogZ2NjNDQtaGFjay5wYXRjaAotUGF0Y2gxOiBnY2M0NC1idWlsZC1pZC5wYXRjaAot UGF0Y2gyOiBnY2M0NC1jKystYnVpbHRpbi1yZWRlY2wucGF0Y2gKLVBhdGNoMzogZ2NjNDQtaWE2 NC1saWJ1bndpbmQucGF0Y2gKLVBhdGNoNDogZ2NjNDQtamF2YS1ub211bHRpLnBhdGNoCi1QYXRj aDU6IGdjYzQ0LXBwYzMyLXJldGFkZHIucGF0Y2gKLVBhdGNoNjogZ2NjNDQtcHIzMzc2My5wYXRj aAotUGF0Y2g3OiBnY2M0NC1yaDMzMDc3MS5wYXRjaAotUGF0Y2g4OiBnY2M0NC1pMzg2LWxpYmdv bXAucGF0Y2gKLVBhdGNoOTogZ2NjNDQtc3BhcmMtY29uZmlnLWRldGVjdGlvbi5wYXRjaAotUGF0 Y2gxMDogZ2NjNDQtbGliZ29tcC1vbXBfaC1tdWx0aWxpYi5wYXRjaAotUGF0Y2gxMTogZ2NjNDQt bGlidG9vbC1uby1ycGF0aC5wYXRjaAotUGF0Y2gxMjogZ2NjNDQtY2xvb2ctZGwucGF0Y2gKLVBh dGNoMTM6IGdjYzQ0LXVud2luZC1kZWJ1Zy1ob29rLnBhdGNoCi1QYXRjaDE0OiBnY2M0NC1wcjM4 NzU3LnBhdGNoCi1QYXRjaDE1OiBnY2M0NC1saWJzdGRjKystZG9jcy5wYXRjaAotUGF0Y2gxNjog Z2NjNDQtcHBjNjQtYWl4ZGVzYy5wYXRjaAotUGF0Y2gxNzogZ2NjNDQtbm8tYWRkLW5lZWRlZC5w YXRjaAotUGF0Y2gxODogZ2NjNDQtcHI0NDU0Mi5wYXRjaAorUGF0Y2gwOiBnY2M0NS1oYWNrLnBh dGNoCitQYXRjaDE6IGdjYzQ1LWJ1aWxkLWlkLnBhdGNoCitQYXRjaDI6IGdjYzQ1LWMrKy1idWls dGluLXJlZGVjbC5wYXRjaAorUGF0Y2g0OiBnY2M0NS1qYXZhLW5vbXVsdGkucGF0Y2gKK1BhdGNo NTogZ2NjNDUtcHBjMzItcmV0YWRkci5wYXRjaAorUGF0Y2g2OiBnY2M0NS1wcjMzNzYzLnBhdGNo CitQYXRjaDc6IGdjYzQ1LXJoMzMwNzcxLnBhdGNoCitQYXRjaDg6IGdjYzQ1LWkzODYtbGliZ29t cC5wYXRjaAorUGF0Y2g5OiBnY2M0NS1zcGFyYy1jb25maWctZGV0ZWN0aW9uLnBhdGNoCitQYXRj aDEwOiBnY2M0NS1saWJnb21wLW9tcF9oLW11bHRpbGliLnBhdGNoCitQYXRjaDExOiBnY2M0NS1s aWJ0b29sLW5vLXJwYXRoLnBhdGNoCitQYXRjaDEyOiBnY2M0NS1jbG9vZy1kbC5wYXRjaAorUGF0 Y2gxNDogZ2NjNDUtcHIzODc1Ny5wYXRjaAorUGF0Y2gxNTogZ2NjNDUtbGlic3RkYysrLWRvY3Mu cGF0Y2gKK1BhdGNoMTc6IGdjYzQ1LW5vLWFkZC1uZWVkZWQucGF0Y2gKK1BhdGNoMTg6IGdjYzQ1 LXByNDQ1NDIucGF0Y2gKIAogUGF0Y2gxMDAwOiBmYXN0amFyLTAuOTctc2VnZmF1bHQucGF0Y2gK IFBhdGNoMTAwMTogZmFzdGphci0wLjk3LWxlbjEucGF0Y2gKQEAgLTE5OCwxMSArMTgxLDExIEBA IFBhdGNoMTAwNDogZmFzdGphci1tYW4ucGF0Y2gKICVlbmRpZgogCiAlZGVzY3JpcHRpb24KLVRo ZSBnY2MgcGFja2FnZSBjb250YWlucyB0aGUgR05VIENvbXBpbGVyIENvbGxlY3Rpb24gdmVyc2lv biA0LjQuCitUaGUgZ2NjIHBhY2thZ2UgY29udGFpbnMgdGhlIEdOVSBDb21waWxlciBDb2xsZWN0 aW9uIHZlcnNpb24gNC41LgogWW91J2xsIG5lZWQgdGhpcyBwYWNrYWdlIGluIG9yZGVyIHRvIGNv bXBpbGUgQyBjb2RlLgogCiAlcGFja2FnZSAtbiBsaWJnY2MKLVN1bW1hcnk6IEdDQyB2ZXJzaW9u IDQuNCBzaGFyZWQgc3VwcG9ydCBsaWJyYXJ5CitTdW1tYXJ5OiBHQ0MgdmVyc2lvbiA0LjUgc2hh cmVkIHN1cHBvcnQgbGlicmFyeQogR3JvdXA6IFN5c3RlbSBFbnZpcm9ubWVudC9MaWJyYXJpZXMK IEF1dG9yZXE6IGZhbHNlCiAKQEAgLTI5Nyw3ICsyODAsNyBAQCBTdW1tYXJ5OiBGb3J0cmFuIHN1 cHBvcnQKIEdyb3VwOiBEZXZlbG9wbWVudC9MYW5ndWFnZXMKIFJlcXVpcmVzOiBnY2MgPSAle3Zl cnNpb259LSV7cmVsZWFzZX0KIFJlcXVpcmVzOiBsaWJnZm9ydHJhbiA9ICV7dmVyc2lvbn0tJXty ZWxlYXNlfQotQnVpbGRSZXF1aXJlczogZ21wLWRldmVsID49IDQuMS4yLTgsIG1wZnItZGV2ZWwg Pj0gMi4yLjEKK0J1aWxkUmVxdWlyZXM6IGdtcC1kZXZlbCA+PSA0LjEuMi04LCBtcGZyLWRldmVs ID49IDIuMi4xLCBsaWJtcGMtZGV2ZWwgPj0gMC44LjEKIFJlcXVpcmVzKHBvc3QpOiAvc2Jpbi9p bnN0YWxsLWluZm8KIFJlcXVpcmVzKHByZXVuKTogL3NiaW4vaW5zdGFsbC1pbmZvCiBBdXRvcmVx OiB0cnVlCkBAIC0zODIsOSArMzY1LDYgQEAgUmVxdWlyZXM6IGxpYmFydF9sZ3BsID49IDIuMS4w CiAlaWYgJXtidWlsZF9qYXZhfQogQnVpbGRSZXF1aXJlczogZ3RrMi1kZXZlbCA+PSAyLjQuMAog QnVpbGRSZXF1aXJlczogZ2xpYjItZGV2ZWwgPj0gMi40LjAKLSVpZiAle2luY2x1ZGVfZ2FwcGxl dHZpZXdlcn0KLUJ1aWxkUmVxdWlyZXM6IHh1bHJ1bm5lci1kZXZlbAotJWVuZGlmCiBCdWlsZFJl cXVpcmVzOiBsaWJhcnRfbGdwbC1kZXZlbCA+PSAyLjEuMAogQnVpbGRSZXF1aXJlczogYWxzYS1s aWItZGV2ZWwKIEJ1aWxkUmVxdWlyZXM6IGxpYlh0c3QtZGV2ZWwKQEAgLTQ5Miw3ICs0NzIsNiBA QCBHTkFUIGlzIGEgR05VIEFkYSA5NSBmcm9udC1lbmQgdG8gR0NDLiBUaGlzIHBhY2thZ2UgaW5j bHVkZXMgc3RhdGljIGxpYnJhcmllcy4KICVwYXRjaDAgLXAwIC1iIC5oYWNrfgogJXBhdGNoMSAt cDAgLWIgLmJ1aWxkLWlkfgogJXBhdGNoMiAtcDAgLWIgLmMrKy1idWlsdGluLXJlZGVjbH4KLSVw YXRjaDMgLXAwIC1iIC5pYTY0LWxpYnVud2luZH4KICVwYXRjaDQgLXAwIC1iIC5qYXZhLW5vbXVs dGl+CiAlcGF0Y2g1IC1wMCAtYiAucHBjMzItcmV0YWRkcn4KICVwYXRjaDYgLXAwIC1iIC5wcjMz NzYzfgpAQCAtNTA0LDE1ICs0ODMsMTEgQEAgR05BVCBpcyBhIEdOVSBBZGEgOTUgZnJvbnQtZW5k IHRvIEdDQy4gVGhpcyBwYWNrYWdlIGluY2x1ZGVzIHN0YXRpYyBsaWJyYXJpZXMuCiAlaWYgJXti dWlsZF9jbG9vZ30KICVwYXRjaDEyIC1wMCAtYiAuY2xvb2ctZGx+CiAlZW5kaWYKLSVwYXRjaDEz IC1wMCAtYiAudW53aW5kLWRlYnVnLWhvb2t+CiAlcGF0Y2gxNCAtcDAgLWIgLnByMzg3NTd+CiAl aWYgJXtidWlsZF9saWJzdGRjeHhfZG9jc30KICVwYXRjaDE1IC1wMCAtYiAubGlic3RkYysrLWRv Y3N+CiAlZW5kaWYKLSVwYXRjaDE2IC1wMCAtYiAucHBjNjQtYWl4ZGVzY34KLSVpZiAwJXs/ZmVk b3JhfSA+PSAxMwogJXBhdGNoMTcgLXAwIC1iIC5uby1hZGQtbmVlZGVkfgotJWVuZGlmCiAlcGF0 Y2gxOCAtcDAgLWIgLnByNDQ1NDJ+CiAKICMgVGhpcyB0ZXN0Y2FzZSBkb2Vzbid0IGNvbXBpbGUu CkBAIC01MzAsNyArNTA1LDcgQEAgdGFyIHh6ZiAle1NPVVJDRTR9CiB0YXIgeGpmICV7U09VUkNF MTB9CiAlZW5kaWYKIAotc2VkIC1pIC1lICdzLzRcLjRcLjUvNC40LjQvJyBnY2MvQkFTRS1WRVIK K3NlZCAtaSAtZSAncy80XC41XC4xLzQuNS4wLycgZ2NjL0JBU0UtVkVSCiBlY2hvICdSZWQgSGF0 ICV7dmVyc2lvbn0tJXtnY2NfcmVsZWFzZX0nID4gZ2NjL0RFVi1QSEFTRQogCiAjIERlZmF1bHQg dG8gLWdkd2FyZi0zIHJhdGhlciB0aGFuIC1nZHdhcmYtMgpAQCAtNjQ5LDI1ICs2MjQsMjMgQEAg Y2FzZSAiJE9QVF9GTEFHUyIgaW4KICAgICAgIC4uL2djYy9NYWtlZmlsZS5pbgogICAgIDs7CiBl c2FjCi1DQz0iJENDIiBDRkxBR1M9IiRPUFRfRkxBR1MiIENYWEZMQUdTPSJgZWNobyAkT1BUX0ZM QUdTIHwgc2VkICdzLyAtV2FsbCAvIC9nJ2AiIFhDRkxBR1M9IiRPUFRfRkxBR1MiIFRDRkxBR1M9 IiRPUFRfRkxBR1MiIFwKLQlHQ0pGTEFHUz0iJE9QVF9GTEFHUyIgXAorQ0M9IiRDQyIgQ0ZMQUdT PSIkT1BUX0ZMQUdTIiBDWFhGTEFHUz0iYGVjaG8gJE9QVF9GTEFHUyB8IHNlZCAncy8gLVdhbGwg LyAvZydgIiBcCisJWENGTEFHUz0iJE9QVF9GTEFHUyIgVENGTEFHUz0iJE9QVF9GTEFHUyIgR0NK RkxBR1M9IiRPUFRfRkxBR1MiIFwKIAkuLi9jb25maWd1cmUgLS1wcmVmaXg9JXtfcHJlZml4fSAt LW1hbmRpcj0le19tYW5kaXJ9IC0taW5mb2Rpcj0le19pbmZvZGlyfSBcCiAJLS13aXRoLWJ1Z3Vy bD1odHRwOi8vYnVnemlsbGEucmVkaGF0LmNvbS9idWd6aWxsYSAtLWVuYWJsZS1ib290c3RyYXAg XAogCS0tZW5hYmxlLXNoYXJlZCAtLWVuYWJsZS10aHJlYWRzPXBvc2l4IC0tZW5hYmxlLWNoZWNr aW5nPXJlbGVhc2UgXAogCS0td2l0aC1zeXN0ZW0temxpYiAtLWVuYWJsZS1fX2N4YV9hdGV4aXQg LS1kaXNhYmxlLWxpYnVud2luZC1leGNlcHRpb25zIFwKIAktLWVuYWJsZS1nbnUtdW5pcXVlLW9i amVjdCBcCiAlaWYgISV7YnVpbGRfYWRhfQotCS0tZW5hYmxlLWxhbmd1YWdlcz1jLGMrKyxvYmpj LG9iai1jKyssamF2YSxmb3J0cmFuIFwKKwktLWVuYWJsZS1sYW5ndWFnZXM9YyxjKyssb2JqYyxv YmotYysrLGphdmEsZm9ydHJhbixsdG8gXAogJWVsc2UKLQktLWVuYWJsZS1sYW5ndWFnZXM9Yyxj Kyssb2JqYyxvYmotYysrLGphdmEsZm9ydHJhbixhZGEgXAorCS0tZW5hYmxlLWxhbmd1YWdlcz1j LGMrKyxvYmpjLG9iai1jKyssamF2YSxmb3J0cmFuLGFkYSxsdG8gXAogJWVuZGlmCisJLS1lbmFi bGUtcGx1Z2luIFwKICVpZiAhJXtidWlsZF9qYXZhfQogCS0tZGlzYWJsZS1saWJnY2ogXAogJWVs c2UKIAktLWVuYWJsZS1qYXZhLWF3dD1ndGsgLS1kaXNhYmxlLWRzc2kgXAotJWlmICV7aW5jbHVk ZV9nYXBwbGV0dmlld2VyfQotCS0tZW5hYmxlLXBsdWdpbiBcCi0lZW5kaWYKIAktLXdpdGgtamF2 YS1ob21lPSV7X3ByZWZpeH0vbGliL2p2bS9qYXZhLTEuNS4wLWdjai0xLjUuMC4wL2pyZSBcCiAJ LS1lbmFibGUtbGliZ2NqLW11bHRpZmlsZSBcCiAlaWYgISV7Ym9vdHN0cmFwX2phdmF9CkBAIC03 MjQsOSArNjk3LDYgQEAgQ0M9IiRDQyIgQ0ZMQUdTPSIkT1BUX0ZMQUdTIiBDWFhGTEFHUz0iYGVj aG8gJE9QVF9GTEFHUyB8IHNlZCAncy8gLVdhbGwgLyAvZydgIiAKICNHQ0pGTEFHUz0iJE9QVF9G TEFHUyIgbWFrZSAlez9fc21wX21mbGFnc30gQk9PVF9DRkxBR1M9IiRPUFRfRkxBR1MiIGJvb3Rz dHJhcAogR0NKRkxBR1M9IiRPUFRfRkxBR1MiIG1ha2UgJXs/X3NtcF9tZmxhZ3N9IEJPT1RfQ0ZM QUdTPSIkT1BUX0ZMQUdTIiBwcm9maWxlZGJvb3RzdHJhcAogCi0jIE1ha2UgcHJvdG9pemUKLW1h a2UgLUMgZ2NjIENDPSIuL3hnY2MgLUIgLi8gLU8yIiBwcm90bwotCiAjIE1ha2UgZ2VuZXJhdGVk IG1hbiBwYWdlcyBldmVuIGlmIFBvZDo6TWFuIGlzIG5vdCBuZXcgZW5vdWdoCiBwZXJsIC1waSAt ZSAncy9oZWFkMy9oZWFkMi8nIC4uL2NvbnRyaWIvdGV4aTJwb2QucGwKIGZvciBpIGluIC4uL2dj Yy9kb2MvKi50ZXhpOyBkbwpAQCAtNzQ4LDcgKzcxOCw2IEBAIGNkIC4uCiBta2RpciAtcCBycG0u ZG9jL2dmb3J0cmFuIHJwbS5kb2Mvb2JqYwogbWtkaXIgLXAgcnBtLmRvYy9ib2VobS1nYyBycG0u ZG9jL2Zhc3RqYXIgcnBtLmRvYy9saWJmZmkgcnBtLmRvYy9saWJqYXZhCiBta2RpciAtcCBycG0u ZG9jL2NoYW5nZWxvZ3Mve2djYy9jcCxnY2MvamF2YSxnY2MvYWRhLGxpYnN0ZGMrKy12MyxsaWJv YmpjLGxpYm11ZGZsYXAsbGliZ29tcH0KLXNlZCAtZSAncyxAVkVSU0lPTkAsJXtnY2NfdmVyc2lv bn0sJyAle1NPVVJDRTJ9ID4gcnBtLmRvYy9SRUFETUUubGliZ2Nqd2VicGx1Z2luLnNvCiAKIGZv ciBpIGluIHtnY2MsZ2NjL2NwLGdjYy9qYXZhLGdjYy9hZGEsbGlic3RkYysrLXYzLGxpYm9iamMs bGlibXVkZmxhcCxsaWJnb21wfS9DaGFuZ2VMb2cqOyBkbwogCWNwIC1wICRpIHJwbS5kb2MvY2hh bmdlbG9ncy8kaQpAQCAtODc4LDkgKzg0Nyw5IEBAIHJtIC1yZiAle2J1aWxkcm9vdH0le19wcmVm aXh9L2luY2x1ZGUvYysrLyV7Z2NjX3ZlcnNpb259LyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vCiBs aWJzdGRjeHhfZG9jX2J1aWxkZGlyPSV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vbGlic3RkYysrLXYz L2RvYy9kb3h5Z2VuCiBta2RpciAtcCAuLi9ycG0uZG9jL2xpYnN0ZGMrKy12MwogY3AgLXIgLXAg Li4vbGlic3RkYysrLXYzL2RvYy9odG1sIC4uL3JwbS5kb2MvbGlic3RkYysrLXYzL2h0bWwKLW12 ICRsaWJzdGRjeHhfZG9jX2J1aWxkZGlyL2h0bWwgLi4vcnBtLmRvYy9saWJzdGRjKystdjMvaHRt bC9hcGkKK2NwIC1yIC1wICRsaWJzdGRjeHhfZG9jX2J1aWxkZGlyL2h0bWwgLi4vcnBtLmRvYy9s aWJzdGRjKystdjMvaHRtbC9hcGkKIG1rZGlyIC1wICV7YnVpbGRyb290fSV7X21hbmRpcn0KLW12 ICRsaWJzdGRjeHhfZG9jX2J1aWxkZGlyL21hbi9tYW4zICV7YnVpbGRyb290fSV7X21hbmRpcn0v bWFuMy8KK2NwIC1yIC1wICRsaWJzdGRjeHhfZG9jX2J1aWxkZGlyL21hbi9tYW4zICV7YnVpbGRy b290fSV7X21hbmRpcn0vbWFuMy8KIGZpbmQgLi4vcnBtLmRvYy9saWJzdGRjKystdjMgLW5hbWUg XCp+IHwgeGFyZ3Mgcm0KICVlbmRpZgogCkBAIC05NzQsMTAgKzk0MywxNCBAQCBpZiBbICIle19s aWJ9IiAhPSAibGliIiBdOyB0aGVuCiBmaQogJWVuZGlmCiAKK21rZGlyIC1wICV7YnVpbGRyb290 fSV7X2RhdGFkaXJ9L2dkYi9hdXRvLWxvYWQvJXtfcHJlZml4fS8le19saWJ9CittdiAtZiAle2J1 aWxkcm9vdH0le19wcmVmaXh9LyV7X2xpYn0vbGlic3RkYysrKmdkYi5weSogXAorICAgICAgJXti dWlsZHJvb3R9JXtfZGF0YWRpcn0vZ2RiL2F1dG8tbG9hZC8le19wcmVmaXh9LyV7X2xpYn0vCisK IHB1c2hkICRGVUxMUEFUSAogaWYgWyAiJXtfbGlifSIgPSAibGliIiBdOyB0aGVuCiBsbiAtc2Yg Li4vLi4vLi4vbGlib2JqYy5zby4yIGxpYm9iamMuc28KLWxuIC1zZiAuLi8uLi8uLi9saWJzdGRj Kysuc28uNi4qIGxpYnN0ZGMrKy5zbworbG4gLXNmIC4uLy4uLy4uL2xpYnN0ZGMrKy5zby42Lipb MC05XSBsaWJzdGRjKysuc28KIGxuIC1zZiAuLi8uLi8uLi9saWJnZm9ydHJhbi5zby4zLiogbGli Z2ZvcnRyYW4uc28KIGxuIC1zZiAuLi8uLi8uLi9saWJnb21wLnNvLjEuKiBsaWJnb21wLnNvCiBs biAtc2YgLi4vLi4vLi4vbGlibXVkZmxhcC5zby4wLiogbGlibXVkZmxhcC5zbwpAQCAtOTg5LDcg Kzk2Miw3IEBAIGxuIC1zZiAuLi8uLi8uLi9saWJnaWouc28uMTAuKiBsaWJnaWouc28KICVlbmRp ZgogZWxzZQogbG4gLXNmIC4uLy4uLy4uLy4uLyV7X2xpYn0vbGlib2JqYy5zby4yIGxpYm9iamMu c28KLWxuIC1zZiAuLi8uLi8uLi8uLi8le19saWJ9L2xpYnN0ZGMrKy5zby42LiogbGlic3RkYysr LnNvCitsbiAtc2YgLi4vLi4vLi4vLi4vJXtfbGlifS9saWJzdGRjKysuc28uNi4qWzAtOV0gbGli c3RkYysrLnNvCiBsbiAtc2YgLi4vLi4vLi4vLi4vJXtfbGlifS9saWJnZm9ydHJhbi5zby4zLiog bGliZ2ZvcnRyYW4uc28KIGxuIC1zZiAuLi8uLi8uLi8uLi8le19saWJ9L2xpYmdvbXAuc28uMS4q IGxpYmdvbXAuc28KIGxuIC1zZiAuLi8uLi8uLi8uLi8le19saWJ9L2xpYm11ZGZsYXAuc28uMC4q IGxpYm11ZGZsYXAuc28KQEAgLTEwMjIsMjggKzk5NSwyOCBAQCBtdiAtZiAkRlVMTFBBVEgvYWRh e2luY2x1ZGUsbGlifSAkRlVMTExQQVRILwogcHVzaGQgJEZVTExMUEFUSC9hZGFsaWIKIGlmIFsg IiV7X2xpYn0iID0gImxpYiIgXTsgdGhlbgogbG4gLXNmIC4uLy4uLy4uLy4uLy4uL2xpYmduYXJs LSouc28gbGliZ25hcmwuc28KLWxuIC1zZiAuLi8uLi8uLi8uLi8uLi9saWJnbmFybC0qLnNvIGxp YmduYXJsLTQuNC5zbworbG4gLXNmIC4uLy4uLy4uLy4uLy4uL2xpYmduYXJsLSouc28gbGliZ25h cmwtNC41LnNvCiBsbiAtc2YgLi4vLi4vLi4vLi4vLi4vbGliZ25hdC0qLnNvIGxpYmduYXQuc28K LWxuIC1zZiAuLi8uLi8uLi8uLi8uLi9saWJnbmF0LSouc28gbGliZ25hdC00LjQuc28KK2xuIC1z ZiAuLi8uLi8uLi8uLi8uLi9saWJnbmF0LSouc28gbGliZ25hdC00LjUuc28KIGVsc2UKIGxuIC1z ZiAuLi8uLi8uLi8uLi8uLi8uLi8le19saWJ9L2xpYmduYXJsLSouc28gbGliZ25hcmwuc28KLWxu IC1zZiAuLi8uLi8uLi8uLi8uLi8uLi8le19saWJ9L2xpYmduYXJsLSouc28gbGliZ25hcmwtNC40 LnNvCitsbiAtc2YgLi4vLi4vLi4vLi4vLi4vLi4vJXtfbGlifS9saWJnbmFybC0qLnNvIGxpYmdu YXJsLTQuNS5zbwogbG4gLXNmIC4uLy4uLy4uLy4uLy4uLy4uLyV7X2xpYn0vbGliZ25hdC0qLnNv IGxpYmduYXQuc28KLWxuIC1zZiAuLi8uLi8uLi8uLi8uLi8uLi8le19saWJ9L2xpYmduYXQtKi5z byBsaWJnbmF0LTQuNC5zbworbG4gLXNmIC4uLy4uLy4uLy4uLy4uLy4uLyV7X2xpYn0vbGliZ25h dC0qLnNvIGxpYmduYXQtNC41LnNvCiBmaQogcG9wZAogZWxzZQogcHVzaGQgJEZVTExQQVRIL2Fk YWxpYgogaWYgWyAiJXtfbGlifSIgPSAibGliIiBdOyB0aGVuCiBsbiAtc2YgLi4vLi4vLi4vLi4v bGliZ25hcmwtKi5zbyBsaWJnbmFybC5zbwotbG4gLXNmIC4uLy4uLy4uLy4uL2xpYmduYXJsLSou c28gbGliZ25hcmwtNC40LnNvCitsbiAtc2YgLi4vLi4vLi4vLi4vbGliZ25hcmwtKi5zbyBsaWJn bmFybC00LjUuc28KIGxuIC1zZiAuLi8uLi8uLi8uLi9saWJnbmF0LSouc28gbGliZ25hdC5zbwot bG4gLXNmIC4uLy4uLy4uLy4uL2xpYmduYXQtKi5zbyBsaWJnbmF0LTQuNC5zbworbG4gLXNmIC4u Ly4uLy4uLy4uL2xpYmduYXQtKi5zbyBsaWJnbmF0LTQuNS5zbwogZWxzZQogbG4gLXNmIC4uLy4u Ly4uLy4uLy4uLyV7X2xpYn0vbGliZ25hcmwtKi5zbyBsaWJnbmFybC5zbwotbG4gLXNmIC4uLy4u Ly4uLy4uLy4uLyV7X2xpYn0vbGliZ25hcmwtKi5zbyBsaWJnbmFybC00LjQuc28KK2xuIC1zZiAu Li8uLi8uLi8uLi8uLi8le19saWJ9L2xpYmduYXJsLSouc28gbGliZ25hcmwtNC41LnNvCiBsbiAt c2YgLi4vLi4vLi4vLi4vLi4vJXtfbGlifS9saWJnbmF0LSouc28gbGliZ25hdC5zbwotbG4gLXNm IC4uLy4uLy4uLy4uLy4uLyV7X2xpYn0vbGliZ25hdC0qLnNvIGxpYmduYXQtNC40LnNvCitsbiAt c2YgLi4vLi4vLi4vLi4vLi4vJXtfbGlifS9saWJnbmF0LSouc28gbGliZ25hdC00LjUuc28KIGZp CiBwb3BkCiBmaQpAQCAtMTA1MSw3ICsxMDI0LDcgQEAgZmkKIAogJWlmYXJjaCBzcGFyY3Y5IHBw YwogbG4gLXNmIC4uLy4uLy4uLy4uLy4uL2xpYjY0L2xpYm9iamMuc28uMiA2NC9saWJvYmpjLnNv Ci1sbiAtc2YgLi4vYGVjaG8gLi4vLi4vLi4vLi4vbGliL2xpYnN0ZGMrKy5zby42LiogfCBzZWQg c34vbGliL34vbGliNjQvfmAgNjQvbGlic3RkYysrLnNvCitsbiAtc2YgLi4vYGVjaG8gLi4vLi4v Li4vLi4vbGliL2xpYnN0ZGMrKy5zby42LipbMC05XSB8IHNlZCBzfi9saWIvfi9saWI2NC9+YCA2 NC9saWJzdGRjKysuc28KIGxuIC1zZiAuLi9gZWNobyAuLi8uLi8uLi8uLi9saWIvbGliZ2ZvcnRy YW4uc28uMy4qIHwgc2VkIHN+L2xpYi9+L2xpYjY0L35gIDY0L2xpYmdmb3J0cmFuLnNvCiBsbiAt c2YgLi4vYGVjaG8gLi4vLi4vLi4vLi4vbGliL2xpYmdvbXAuc28uMS4qIHwgc2VkIHN+L2xpYi9+ L2xpYjY0L35gIDY0L2xpYmdvbXAuc28KIHJtIC1mIGxpYm11ZGZsYXAuc28gbGlibXVkZmxhcHRo LnNvCkBAIC0xMDg3LDcgKzEwNjAsNyBAQCBsbiAtc2YgLi4vbGliNjQvYWRhbGliIDY0L2FkYWxp YgogJWlmYXJjaCAle211bHRpbGliXzY0X2FyY2hzfQogbWtkaXIgLXAgMzIKIGxuIC1zZiAuLi8u Li8uLi8uLi9saWJvYmpjLnNvLjIgMzIvbGlib2JqYy5zbwotbG4gLXNmIC4uL2BlY2hvIC4uLy4u Ly4uLy4uL2xpYjY0L2xpYnN0ZGMrKy5zby42LiogfCBzZWQgc34vLi4vbGliNjQvfi9+YCAzMi9s aWJzdGRjKysuc28KK2xuIC1zZiAuLi9gZWNobyAuLi8uLi8uLi8uLi9saWI2NC9saWJzdGRjKysu c28uNi4qWzAtOV0gfCBzZWQgc34vLi4vbGliNjQvfi9+YCAzMi9saWJzdGRjKysuc28KIGxuIC1z ZiAuLi9gZWNobyAuLi8uLi8uLi8uLi9saWI2NC9saWJnZm9ydHJhbi5zby4zLiogfCBzZWQgc34v Li4vbGliNjQvfi9+YCAzMi9saWJnZm9ydHJhbi5zbwogbG4gLXNmIC4uL2BlY2hvIC4uLy4uLy4u Ly4uL2xpYjY0L2xpYmdvbXAuc28uMS4qIHwgc2VkIHN+Ly4uL2xpYjY0L34vfmAgMzIvbGliZ29t cC5zbwogcm0gLWYgbGlibXVkZmxhcC5zbyBsaWJtdWRmbGFwdGguc28KQEAgLTEyMjYsMTAgKzEx OTksNiBAQCBjaG1vZCA3NTUgJXtidWlsZHJvb3R9JXtfcHJlZml4fS9zaGFyZS9qYXZhL2djai1l bmRvcnNlZCBcCiB0b3VjaCAle2J1aWxkcm9vdH0le19wcmVmaXh9LyV7X2xpYn0vZ2NqLSV7dmVy c2lvbn0vY2xhc3NtYXAuZGIKICVlbmRpZgogCi1pbnN0YWxsIC1tNjQ0ICV7U09VUkNFM30gJXti dWlsZHJvb3R9JXtfbWFuZGlyfS9tYW4xL3Byb3RvaXplLjEKLWVjaG8gJy5zbyBtYW4xL3Byb3Rv aXplLjEnID4gJXtidWlsZHJvb3R9JXtfbWFuZGlyfS9tYW4xL3VucHJvdG9pemUuMQotY2htb2Qg NjQ0ICV7YnVpbGRyb290fSV7X21hbmRpcn0vbWFuMS91bnByb3RvaXplLjEKLQogJWNoZWNrCiBj ZCBvYmotJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfQogCkBAIC0xMzkwLDggKzEzNTksNiBAQCBmaQog JXtfcHJlZml4fS9iaW4vYzk5CiAle19wcmVmaXh9L2Jpbi9nY2MKICV7X3ByZWZpeH0vYmluL2dj b3YKLSV7X3ByZWZpeH0vYmluL3Byb3RvaXplCi0le19wcmVmaXh9L2Jpbi91bnByb3RvaXplCiAl aWZhcmNoIHBwYwogJXtfcHJlZml4fS9iaW4vJXtfdGFyZ2V0X3BsYXRmb3JtfS1nY2MKICVlbmRp ZgpAQCAtMTQwNCw4ICsxMzcxLDYgQEAgZmkKICV7X3ByZWZpeH0vYmluLyV7Z2NjX3RhcmdldF9w bGF0Zm9ybX0tZ2NjCiAle19tYW5kaXJ9L21hbjEvZ2NjLjEqCiAle19tYW5kaXJ9L21hbjEvZ2Nv di4xKgotJXtfbWFuZGlyfS9tYW4xL3Byb3RvaXplLjEqCi0le19tYW5kaXJ9L21hbjEvdW5wcm90 b2l6ZS4xKgogJXtfaW5mb2Rpcn0vZ2NjKgogJWRpciAle19wcmVmaXh9L2xpYi9nY2MKICVkaXIg JXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0KQEAgLTE0MTQsNyArMTM3 OSw4IEBAIGZpCiAlZGlyICV7X3ByZWZpeH0vbGliZXhlYy9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRm b3JtfQogJWRpciAle19wcmVmaXh9L2xpYmV4ZWMvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0v JXtnY2NfdmVyc2lvbn0KICVkaXIgJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0 Zm9ybX0vJXtnY2NfdmVyc2lvbn0vaW5jbHVkZQotJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3Rh cmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vU1lTQ0FMTFMuYy5YCisle19wcmVmaXh9L2xp YmV4ZWMvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbHRvMQorJXtf cHJlZml4fS9saWJleGVjL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259 L2x0by13cmFwcGVyCiAle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8l e2djY192ZXJzaW9ufS9pbmNsdWRlL3N0ZGRlZi5oCiAle19wcmVmaXh9L2xpYi9nY2MvJXtnY2Nf dGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9pbmNsdWRlL3N0ZGFyZy5oCiAle19wcmVm aXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9pbmNsdWRl L3N0ZGZpeC5oCkBAIC0xNDI2LDYgKzEzOTIsOCBAQCBmaQogJXtfcHJlZml4fS9saWIvZ2NjLyV7 Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vaW5jbHVkZS9zeXNsaW1pdHMuaAog JXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0v aW5jbHVkZS91bndpbmQuaAogJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9y bX0vJXtnY2NfdmVyc2lvbn0vaW5jbHVkZS9vbXAuaAorJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2Nj X3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vaW5jbHVkZS9zdGRpbnQuaAorJXtfcHJl Zml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vaW5jbHVk ZS9zdGRpbnQtZ2NjLmgKICVpZmFyY2ggJXtpeDg2fSB4ODZfNjQKICV7X3ByZWZpeH0vbGliL2dj Yy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2luY2x1ZGUvbW1pbnRyaW4u aAogJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lv bn0vaW5jbHVkZS94bW1pbnRyaW4uaApAQCAtMTQ0NSw2ICsxNDEzLDcgQEAgZmkKICV7X3ByZWZp eH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2luY2x1ZGUv bHdwaW50cmluLmgKICV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7 Z2NjX3ZlcnNpb259L2luY2x1ZGUvYWJtaW50cmluLmgKICV7X3ByZWZpeH0vbGliL2djYy8le2dj Y190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2luY2x1ZGUvcG9wY250aW50cmluLmgK KyV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259 L2luY2x1ZGUvaWEzMmludHJpbi5oCiAle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3Bs YXRmb3JtfS8le2djY192ZXJzaW9ufS9pbmNsdWRlL21tX21hbGxvYy5oCiAle19wcmVmaXh9L2xp Yi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9pbmNsdWRlL21tM2Ru b3cuaAogJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVy c2lvbn0vaW5jbHVkZS9jcHVpZC5oCkBAIC0xNTY1LDYgKzE1MzQsMTMgQEAgZmkKICVmaWxlcyAt biBsaWJzdGRjKysKICVkZWZhdHRyKC0scm9vdCxyb290LC0pCiAle19wcmVmaXh9LyV7X2xpYn0v bGlic3RkYysrLnNvLjYqCislZGlyICV7X2RhdGFkaXJ9L2dkYgorJWRpciAle19kYXRhZGlyfS9n ZGIvYXV0by1sb2FkCislZGlyICV7X2RhdGFkaXJ9L2dkYi9hdXRvLWxvYWQvJXtfcHJlZml4fQor JWRpciAle19kYXRhZGlyfS9nZGIvYXV0by1sb2FkLyV7X3ByZWZpeH0vJXtfbGlifS8KKyV7X2Rh dGFkaXJ9L2dkYi9hdXRvLWxvYWQvJXtfcHJlZml4fS8le19saWJ9L2xpYnN0ZGMqZ2RiLnB5Kgor JWRpciAle19wcmVmaXh9L3NoYXJlL2djYy0le2djY192ZXJzaW9ufQorJXtfcHJlZml4fS9zaGFy ZS9nY2MtJXtnY2NfdmVyc2lvbn0vcHl0aG9uCiAKICVmaWxlcyAtbiBsaWJzdGRjKystZGV2ZWwK ICVkZWZhdHRyKC0scm9vdCxyb290LC0pCkBAIC0xNTk3LDcgKzE1NzMsNiBAQCBmaQogJWVuZGlm CiAlZG9jIHJwbS5kb2MvY2hhbmdlbG9ncy9saWJzdGRjKystdjMvQ2hhbmdlTG9nKiBsaWJzdGRj KystdjMvUkVBRE1FKgogCi0laWYgMCV7P2ZlZG9yYX0gPj0gMTQKICVmaWxlcyAtbiBsaWJzdGRj Kystc3RhdGljCiAlZGVmYXR0cigtLHJvb3Qscm9vdCwtKQogJWRpciAle19wcmVmaXh9L2xpYi9n Y2MKQEAgLTE2MTcsNyArMTU5Miw2IEBAIGZpCiAle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFy Z2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9saWJzdGRjKysuYQogJXtfcHJlZml4fS9saWIv Z2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGlic3VwYysrLmEKICVl bmRpZgotJWVuZGlmCiAKICVpZiAle2J1aWxkX2xpYnN0ZGN4eF9kb2NzfQogJWZpbGVzIC1uIGxp YnN0ZGMrKy1kb2NzCkBAIC0xNzYwLDEwICsxNzM0LDYgQEAgZmkKICV7X3ByZWZpeH0vYmluL2dv cmJkCiAle19wcmVmaXh9L2Jpbi9nc2VyaWFsdmVyCiAle19wcmVmaXh9L2Jpbi9nY2otZGJ0b29s Ci0laWYgJXtpbmNsdWRlX2dhcHBsZXR2aWV3ZXJ9Ci0le19wcmVmaXh9L2Jpbi9nYXBwbGV0dmll d2VyCi0le19tYW5kaXJ9L21hbjEvZ2FwcGxldHZpZXdlci4xKgotJWVuZGlmCiAle19wcmVmaXh9 L2Jpbi9namFyc2lnbmVyCiAle19tYW5kaXJ9L21hbjEvZmFzdGphci4xKgogJXtfbWFuZGlyfS9t YW4xL2dyZXBqYXIuMSoKQEAgLTE3ODksOSArMTc1OSw2IEBAIGZpCiAle19wcmVmaXh9LyV7X2xp Yn0vZ2NqLSV7dmVyc2lvbn0vbGliZ3RrcGVlci5zbwogJXtfcHJlZml4fS8le19saWJ9L2djai0l e3ZlcnNpb259L2xpYmdqc21hbHNhLnNvCiAle19wcmVmaXh9LyV7X2xpYn0vZ2NqLSV7dmVyc2lv bn0vbGliamF3dC5zbwotJWlmICV7aW5jbHVkZV9nYXBwbGV0dmlld2VyfQotJXtfcHJlZml4fS8l e19saWJ9L2djai0le3ZlcnNpb259L2xpYmdjandlYnBsdWdpbi5zbwotJWVuZGlmCiAle19wcmVm aXh9LyV7X2xpYn0vZ2NqLSV7dmVyc2lvbn0vbGlianZtLnNvCiAle19wcmVmaXh9LyV7X2xpYn0v Z2NqLSV7dmVyc2lvbn0vbGliamF2YW1hdGguc28KICVkaXIgJXtfcHJlZml4fS9zaGFyZS9qYXZh CkBAIC0xODAyLDkgKzE3NjksNiBAQCBmaQogJXtfcHJlZml4fS8le19saWJ9L2xvZ2dpbmcucHJv cGVydGllcwogJWRpciAle19wcmVmaXh9LyV7X2xpYn0vZ2NqLSV7dmVyc2lvbn0vY2xhc3NtYXAu ZGIuZAogJWF0dHIoMDY0NCxyb290LHJvb3QpICV2ZXJpZnkobm90IG1kNSBzaXplIG10aW1lKSAl Z2hvc3QgJWNvbmZpZyhtaXNzaW5nb2ssbm9yZXBsYWNlKSAle19wcmVmaXh9LyV7X2xpYn0vZ2Nq LSV7dmVyc2lvbn0vY2xhc3NtYXAuZGIKLSVpZiAle2luY2x1ZGVfZ2FwcGxldHZpZXdlcn0KLSVk b2MgcnBtLmRvYy9SRUFETUUubGliZ2Nqd2VicGx1Z2luLnNvCi0lZW5kaWYKIAogJWZpbGVzIC1u IGxpYmdjai1kZXZlbAogJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKQEAgLTE4ODgsMzAgKzE4NTIs MjMgQEAgZmkKICVkaXIgJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0v JXtnY2NfdmVyc2lvbn0vbGliMzIKICV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxh dGZvcm19LyV7Z2NjX3ZlcnNpb259L2xpYjMyL2FkYWluY2x1ZGUKICV7X3ByZWZpeH0vbGliL2dj Yy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2xpYjMyL2FkYWxpYgotJWlm IDAlez9mZWRvcmF9ID49IDE0CiAlZXhjbHVkZSAle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFy Z2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9saWIzMi9hZGFsaWIvbGliZ25hdC5hCiAlZXhj bHVkZSAle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJz aW9ufS9saWIzMi9hZGFsaWIvbGliZ25hcmwuYQogJWVuZGlmCi0lZW5kaWYKICVpZmFyY2ggc3Bh cmM2NCBwcGM2NAogJWRpciAle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3Jt fS8le2djY192ZXJzaW9ufS9saWI2NAogJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9w bGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGliNjQvYWRhaW5jbHVkZQogJXtfcHJlZml4fS9saWIv Z2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGliNjQvYWRhbGliCi0l aWYgMCV7P2ZlZG9yYX0gPj0gMTQKICVleGNsdWRlICV7X3ByZWZpeH0vbGliL2djYy8le2djY190 YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2xpYjY0L2FkYWxpYi9saWJnbmF0LmEKICVl eGNsdWRlICV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3Zl cnNpb259L2xpYjY0L2FkYWxpYi9saWJnbmFybC5hCiAlZW5kaWYKLSVlbmRpZgogJWlmbmFyY2gg c3BhcmN2OSBzcGFyYzY0IHBwYyBwcGM2NAogJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3Rhcmdl dF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vYWRhaW5jbHVkZQogJXtfcHJlZml4fS9saWIvZ2Nj LyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vYWRhbGliCi0laWYgMCV7P2Zl ZG9yYX0gPj0gMTQKICVleGNsdWRlICV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxh dGZvcm19LyV7Z2NjX3ZlcnNpb259L2FkYWxpYi9saWJnbmF0LmEKICVleGNsdWRlICV7X3ByZWZp eH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2FkYWxpYi9s aWJnbmFybC5hCiAlZW5kaWYKLSVlbmRpZgogCi0laWYgMCV7P2ZlZG9yYX0gPj0gMTQKICVmaWxl cyAtbiBsaWJnbmF0LXN0YXRpYwogJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKICVkaXIgJXtfcHJl Zml4fS9saWIvZ2NjCkBAIC0xOTM1LDcgKzE4OTIsNiBAQCBmaQogJXtfcHJlZml4fS9saWIvZ2Nj LyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vYWRhbGliL2xpYmduYXJsLmEK ICVlbmRpZgogJWVuZGlmCi0lZW5kaWYKIAogJWZpbGVzIC1uIGxpYmdvbXAKICVkZWZhdHRyKC0s cm9vdCxyb290LC0pCkBAIC0xOTc3LDcgKzE5MzMsNiBAQCBmaQogJWVuZGlmCiAlZG9jIHJwbS5k b2MvY2hhbmdlbG9ncy9saWJtdWRmbGFwL0NoYW5nZUxvZyoKIAotJWlmIDAlez9mZWRvcmF9ID49 IDE0CiAlZmlsZXMgLW4gbGlibXVkZmxhcC1zdGF0aWMKICVkZWZhdHRyKC0scm9vdCxyb290LC0p CiAlZGlyICV7X3ByZWZpeH0vbGliL2djYwpAQCAtMTk5Nyw5OTMgKzE5NTIsNyBAQCBmaQogJXtf cHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGli bXVkZmxhcC5hCiAle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2dj Y192ZXJzaW9ufS9saWJtdWRmbGFwdGguYQogJWVuZGlmCi0lZW5kaWYKIAogJWNoYW5nZWxvZwot KiBXZWQgSnVuIDMwIDIwMTAgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gNC40LjQt MTAKLS0gdXBkYXRlIGZyb20gZ2NjLTRfNC1icmFuY2gKLSAgLSBQUnMgZm9ydHJhbi80Mzg0MSwg Zm9ydHJhbi80Mzg0MywgdHJlZS1vcHRpbWl6YXRpb24vNDQ2ODMKLSAgLSBmaXggcXVhbGlmaWVk LWlkIGFzIHRlbXBsYXRlIGFyZ3VtZW50IGhhbmRsaW5nICgjNjA1NzYxLCBQUiBjKysvNDQ1ODcp Ci0tIC1XdW51c2VkLWJ1dC1zZXQtKiBzdGF0aWNfY2FzdCBmaXggKFBSIGMrKy80NDY4MikKLS0g VlRBIGJhY2twb3J0cwotICAtIFBScyBkZWJ1Zy80NDYxMCwgZGVidWcvNDQ2NjgsIGRlYnVnLzQ0 Njk0Ci0tIHVuc3dpdGNoaW5nIGZpeGVzIChQUiBtaWRkbGUtZW5kLzQzODY2KQotCi0qIFRodSBK dW4gMjQgMjAxMCBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjQuNC05Ci0tIHVw ZGF0ZSBmcm9tIGdjYy00XzQtYnJhbmNoCi0gIC0gUFJzIGJvb3RzdHJhcC80NDQyNiwgYm9vdHN0 cmFwLzQ0NTQ0LCBjKysvNDQ2MjcsIGZvcnRyYW4vNDQ1MzYsCi0JbGliZ2NqLzQ0MjE2LCB0YXJn ZXQvMzk2OTAsIHRhcmdldC80Mzc0MCwgdGFyZ2V0LzQ0MjYxLCB0YXJnZXQvNDQ0ODEsCi0JdGFy Z2V0LzQ0NTM0LCB0YXJnZXQvNDQ2MTUsIHRlc3RzdWl0ZS8zMjg0MywgdGVzdHN1aXRlLzQzNzM5 LAotCXRyZWUtb3B0aW1pemF0aW9uLzQ0NTA4Ci0tIFZUQSBiYWNrcG9ydHMKLSAgLSBQUnMgZGVi dWcvNDM2NTAsIGRlYnVnLzQ0MTgxLCBkZWJ1Zy80NDI0NwotLSAtV3VudXNlZC1idXQtc2V0LSog LT4qLy4qIGZpeCAoUFIgYysrLzQ0NjE5KQotLSB1bmRlcHJlY2F0ZSAjaWRlbnQgYW5kICNzY2Nz ICgjNjA2MDY5KQotJWlmIDAlez9mZWRvcmF9ID49IDE0Ci0tIGZpeCB1cCBsaWJnbmF0LXN0YXRp YwotJWVuZGlmCi0tIGZpeHVwIGRhdGVzIGluIGdlbmVyYXRlZCBtYW4gcGFnZXMgZXZlbiBmb3Ig ZmFzdGphciBhbmQgZ2NjLyBtYW4gcGFnZXMKLS0gZG9uJ3QgcmVhbGlnbiBzdGFjayBvbiB4ODYv eDg2LTY0IGp1c3QgYmVjYXVzZSBhIERFQ0xfQUxJR04gd2FzIHNldAotICB0b28gaGlnaCBieSBl eHBhbnNpb24gY29kZSAoIzYwMzkyNCwgUFIgdGFyZ2V0LzQ0NTQyKQotLSBkb24ndCBhbGxvdyBz aWRlLWVmZmVjdHMgaW4gaW5saW5lLWFzbSBtZW1vcnkgb3BlcmFuZHMgdW5sZXNzCi0gIDwgb3Ig PiBpcyBwcmVzZW50IGluIG9wZXJhbmQncyBjb25zdHJhaW50ICgjNjAyMzU5LCBQUiBtaWRkbGUt ZW5kLzQ0NDkyKQotCi0qIEZyaSBKdW4gMTEgMjAxMCBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRo YXQuY29tPiA0LjQuNC04Ci0tIHVwZGF0ZSBmcm9tIGdjYy00XzQtYnJhbmNoCi0gIC0gZml4IGRl bWFuZ2xlciAoUFIgb3RoZXIvNDM4MzgpCi0tIFZUQSBiYWNrcG9ydHMKLSAgLSBmdXJ0aGVyIHZh ci10cmFja2luZyBzcGVlZHVwICgjNTk4MzEwLCBQUiBkZWJ1Zy80MTM3MSkKLS0gZm9yIHR5cGVk ZWZzIGluIG5vbi10ZW1wbGF0ZSBjbGFzc2VzIGFkanVzdCB1bmRlcmx5aW5nIHR5cGUgdG8KLSAg ZW1pdCBwcm9wZXIgZGVidWcgaW5mbyAoIzYwMTg5MykKLS0gZml4IHVwIGZhc3RqYXIgZGlyZWN0 b3J5IHRyYXZlcnNhbCBidWdzIChDVkUtMjAxMC0wODMxKQotCi0qIFR1ZSBKdW4gIDggMjAxMCBK YWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjQuNC03Ci0tIHVwZGF0ZSBmcm9tIGdj Yy00XzQtYnJhbmNoCi0gIC0gUFJzIGMrKy80MzU1NSwgZm9ydHJhbi80MjkwMCwgZm9ydHJhbi80 NDM2MCwgbGliZm9ydHJhbi80MTE2OSwKLQlsaWJnY2ovMzgyNTEsIGxpYm9iamMvMzY2MTAsIGxp YnN0ZGMrKy8zMjQ5OSwgcGNoLzE0OTQwLAotCXJ0bC1vcHRpbWl6YXRpb24vMzk1ODAsIHRhcmdl dC80NDA3NSwgdGFyZ2V0LzQ0MTY5LCB0YXJnZXQvNDQxOTkKLS0gVlRBIGJhY2twb3J0cwotICAt IFBScyBkZWJ1Zy80NDM2NywgZGVidWcvNDQzNzUsIHJ0bC1vcHRpbWl6YXRpb24vNDQwMTMsCi0J dHJlZS1vcHRpbWl6YXRpb24vNDQxODIKLSAgLSBzcGVlZCB1cCB2YXItdHJhY2tpbmcgKCM1OTgz MTAsIFBSIGRlYnVnLzQxMzcxKQotLSAtV3VudXNlZC1idXQtc2V0LSogYnVnZml4ZXMKLSAgLSBQ UnMgYysrLzQ0MzYxLCBjKysvNDQzNjIsIGMrKy80NDQxMiwgYysrLzQ0NDQzLCBjKysvNDQ0NDQK LS0gZml4IC1tbm8tZnVzZWQtbWFkZCAtbWZtYTQgb24gaT84Ni94ODZfNjQgKFBSIHRhcmdldC80 NDMzOCkKLS0gdXNlIEdDSl9QUk9QRVJUSUVTPWpkdC5jb21waWxlci51c2VTaW5nbGVUaHJlYWQ9 dHJ1ZSB3aGVuCi0gIGJ1aWxkaW5nIGNsYXNzZXMgd2l0aCBlY2oxICgjNTI0MTU1KQotJWlmIDAl ez9mZWRvcmF9ID49IDE0Ci0tIGFkZCBzb21lIHN0YXRpYyBzdWJwYWNrYWdlcyAoIzU1NjA0OSkK LSVlbmRpZgotCi0qIFR1ZSBNYXkgMjUgMjAxMCBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQu Y29tPiA0LjQuNC01Ci0tIHVwZGF0ZSBmcm9tIGdjYy00XzQtYnJhbmNoCi0gIC0gUFJzIGJvb3Rz dHJhcC80Mzg3MCwgZGVidWcvNDQyMDUsIHRhcmdldC80MzczMywgdGFyZ2V0LzQ0MDc0LAotCXRh cmdldC80NDIwMiwgdGFyZ2V0LzQ0MjQ1LCB0cmVlLW9wdGltaXphdGlvbi80Mzg0NQotICAtIGZp eCBjdi1xdWFsIGlzc3VlIHdpdGggZnVuY3Rpb24gdHlwZXMgKCM1OTM3NTAsIFBSIGMrKy80NDE5 MykKLS0gVlRBIGJhY2twb3J0cwotICAtIFBScyBkZWJ1Zy80MTM3MSwgZGVidWcvNDI4MDEsIGRl YnVnLzQzMjYwLCBkZWJ1Zy80MzUyMQotCi0qIFR1ZSBNYXkgMTggMjAxMCBKYWt1YiBKZWxpbmVr IDxqYWt1YkByZWRoYXQuY29tPiA0LjQuNC00Ci0tIHVwZGF0ZSBmcm9tIGdjYy00XzQtYnJhbmNo Ci0gIC0gUFIgZm9ydHJhbi80NDEzNQotLSBDKysgLVd1bnVzZWQtYnV0LXNldC12YXJpYWJsZSBm aXggKFBSIGMrKy80NDEwOCkKLS0gYXZvaWQgQysrIGdpbXBsaWZpY2F0aW9uIGFmZmVjdGluZyBt YW5nbGluZyAoIzU5MTYzNSwgUFIgYysrLzQ0MTQ4KQotLSBhc20gZ290byBmaXhlcyAoUFJzIG1p ZGRsZS1lbmQvNDQxMDIsIGJvb3RzdHJhcC80MjM0NykKLS0gVlRBIGJhY2twb3J0cwotICAtIFBS cyBkZWJ1Zy80MTM3MSwgZGVidWcvNDQxMTIKLQotKiBGcmkgTWF5IDE0IDIwMTAgSmFrdWIgSmVs aW5layA8amFrdWJAcmVkaGF0LmNvbT4gNC40LjQtMwotLSB1cGRhdGUgZnJvbSBnY2MtNF80LWJy YW5jaAotICAtIFBScyBkZWJ1Zy80MzM3MCwgZG9jdW1lbnRhdGlvbi80NDAxNiwgZm9ydHJhbi80 NDAzNiwgbWlkZGxlLWVuZC80MzY3MSwKLQltaWRkbGUtZW5kLzQ0MDg1LCB0YXJnZXQvNDM3NDQK LS0gbWFrZSBjb21kYXQgZ3VhcmRzIG9mIFNUQl9HTlVfVU5JUVVFIHZhcmlhYmxlcyBhbHNvIFNU Ql9HTlVfVU5JUVVFCi0gIChQUiBjKysvNDQwNTkpCi0tIFZUQSBiYWNrcG9ydHMKLSAgLSBQUnMg ZGVidWcvNDIyNzgsIGRlYnVnLzQzOTUwLCBkZWJ1Zy80Mzk4MyxkZWJ1Zy80NDEwNCwgZGVidWcv NDQxMzYKLSAgLSBmaXggdXAgLmRlYnVnX21hY2luZm8gKCM0Nzk5MTQpCi0tIGFzbSBnb3RvIGZp eGVzIChQUnMgbWlkZGxlLWVuZC80NDA3MSwgbWlkZGxlLWVuZC80MjczOSkKLS0gZml4IHVwIC1t YXJjaD1uYXRpdmUgKFBSIHRhcmdldC80NDA0NikKLS0gQysrIC1XdW51c2VkLWJ1dC1zZXQte3Zh cmlhYmxlLHBhcmFtZXRlcn0gc3VwcG9ydCwgZml4ZXMgZm9yIEMgc3VwcG9ydAotICAoIzUzODI2 NiwgUFJzIGMrKy80NDA2MiwgYy80Mzk4MSkKLS0gLW1hcmNoPWJkdmVyMSBhbmQgLW10dW5lPWJk dmVyMSBzdXBwb3J0Ci0KLSogTW9uIE1heSAgMyAyMDEwIEpha3ViIEplbGluZWsgPGpha3ViQHJl ZGhhdC5jb20+IDQuNC40LTIKLS0gZml4IFZUQSBJQ0Ugb24gc3VicmVncyBvZiBAR09UUENSRUwg c3ltYm9scyAoIzU4ODE1NCwgUFIgZGVidWcvNDM5NzIpCi0KLSogRnJpIEFwciAzMCAyMDEwIEph a3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuNC40LTEKLS0gdXBkYXRlIGZyb20gZ2Nj LTRfNC1icmFuY2gKLSAgLSBHQ0MgNC40LjQgcmVsZWFzZQotLSBWVEEgYmFja3BvcnRzCi0gIC0g UFIgdGFyZ2V0LzQzOTIxCi0KLSogVHVlIEFwciAyNyAyMDEwIEpha3ViIEplbGluZWsgPGpha3Vi QHJlZGhhdC5jb20+IDQuNC4zLTE5Ci0tIFBvd2VyNyBiYWNrcG9ydHMgKCM1ODQ5OTMsICM1ODUw MDUpCi0gIC0gUFJzIHRyZWUtb3B0aW1pemF0aW9uLzQzNTQ0LCB0YXJnZXQvNDE3ODcsIHRhcmdl dC80MzE1NCwgbWlkZGxlLWVuZC80MjQzMSwKLQlydGwtb3B0aW1pemF0aW9uLzQzNDEzCi0tIGFk ZCBAR0NDXzQuNS4wIHN5bWJvbHMgdG8gbGliZ2NjX3MKLSAgLSBQUnMgdGFyZ2V0LzQzMzgzLCBv dGhlci8yNTIzMgotLSBmb3JjZSBEV19DRkFfZGVmX2NmYSBpbnN0ZWFkIG9mIERXX0NGQV9kZWZf Y2ZhX3tyZWdpc3RlcixvZmZzZXR7LF9zZn19Ci0gIGFmdGVyIERXX0NGQV9kZWZfY2ZhX2V4cHJl c3Npb24KLS0gbWFrZSBzdXJlIF9VbndpbmRfRGVidWdIb29rIHVzZXMgc3RhbmRhcmQgY2FsbGlu ZyBjb252ZW50aW9uCi0tICNwcmFnbWEgb21wIGZvciBmaXggKFBSIGMvNDM4OTMpCi0KLSogVGh1 IEFwciAyMiAyMDEwIEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuNC4zLTE4Ci0t IHVwZGF0ZSBmcm9tIGdjYy00XzQtYnJhbmNoCi0gIC0gUFJzIGZvcnRyYW4vNDMzMzksIGZvcnRy YW4vNDM4MzYsIGxpYmdjai80MDg2MCwgbGliZ29tcC80MzU2OSwKLQlsaWJnb21wLzQzNzA2LCBs aWJzdGRjKysvNDA1MTgsIG1pZGRsZS1lbmQvNDMzMzcsIG1pZGRsZS1lbmQvNDM1NzAsCi0JdHJl ZS1vcHRpbWl6YXRpb24vNDM3NjksIHRyZWUtb3B0aW1pemF0aW9uLzQzNzcxCi0gIC0gZml4IElD RSB3aGVuIGNvbXBpbGluZyA2NC1iaXQgV2luZSAoIzU4MzUwMSwgUFIgdGFyZ2V0LzQzNjYyKQot LSBWVEEgYmFja3BvcnRzCi0gIC0gUFJzIGRlYnVnLzQwMDQwLCBkZWJ1Zy80Mzc2MgotLSBhZGQg c3VwcG9ydCBmb3IgLVd1bnVzZWQtYnV0LXNldC17cGFyYW1ldGVyLHZhcmlhYmxlfSBub24tZGVm YXVsdAotICB3YXJuaW5ncyBmb3IgQyAoIzUzODI2NiwgUFJzIGMvMTg2MjQsIGJvb3RzdHJhcC80 MzY5OSkKLQotKiBGcmkgQXByICA5IDIwMTAgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNv bT4gNC40LjMtMTYKLS0gdXBkYXRlIGZyb20gZ2NjLTRfNC1icmFuY2gKLSAgLSBQUnMgYWRhLzQx OTEyLCBmb3J0cmFuLzQzNTM5LCBtaWRkbGUtZW5kLzQyOTU2LCBtaWRkbGUtZW5kLzQzNjE0LAot CXRhcmdldC8zODA4NSwgdGFyZ2V0LzQzNDU4LCB0YXJnZXQvNDM2NDMsIHRhcmdldC80MzY2OCwK LQl0cmVlLW9wdGltaXphdGlvbi80MzE4NiwgdHJlZS1vcHRpbWl6YXRpb24vNDM1NjAsCi0JdHJl ZS1vcHRpbWl6YXRpb24vNDM2MDcsIHRyZWUtb3B0aW1pemF0aW9uLzQzNjI5Ci0tIFZUQSBiYWNr cG9ydHMKLSAgLSBQUiBkZWJ1Zy80MzY3MAotLSBmaXggeG9wLXZwZXJtaWwycCogdGVzdHMgKHRh cmdldC80MzEwMykKLQotKiBXZWQgQXByICA3IDIwMTAgSmFrdWIgSmVsaW5layA8amFrdWJAcmVk aGF0LmNvbT4gNC40LjMtMTUKLS0gdXBkYXRlIGZyb20gZ2NjLTRfNC1icmFuY2gKLSAgLSBQUnMg bGliZm9ydHJhbi80MzYwNSwgdGFyZ2V0LzQzNjM4Ci0tIEFNRCBYT1AgZml4ZXMgKCM1Nzk0OTMs IFBScyB0YXJnZXQvNDI2NjQsIHRhcmdldC80MzY2NykKLS0gZml4IHJhdyBzdHJpbmcgc3VwcG9y dCBvbiBiaWcgZW5kaWFuIGhvc3RzIChQUiBwcmVwcm9jZXNzb3IvNDM2NDIpCi0tIGFsbG93IC1n ZHdhcmYtNCBvcHRpb24KLQotKiBUaHUgQXByICAxIDIwMTAgSmFrdWIgSmVsaW5layA8amFrdWJA cmVkaGF0LmNvbT4gNC40LjMtMTQKLS0gdXBkYXRlIGZyb20gZ2NjLTRfNC1icmFuY2gKLSAgLSBQ UnMgb3RoZXIvNDM1NjIsIGMrKy80MTE4NSwgYysrLzQxNzg2LCBmb3J0cmFuLzQzNDA5LCBmb3J0 cmFuLzQzNTUxLAotCWxpYmZvcnRyYW4vNDM0MDksIG1pZGRsZS1lbmQvNDM2MDAsIHRhcmdldC8z OTI1NCwgdGFyZ2V0LzQzNTI0LAotCXRyZWUtb3B0aW1pemF0aW9uLzQzNTI4Ci0tIHVwZGF0ZSBy YXcgc3RyaW5nIHN1cHBvcnQgdG8gbWF0Y2ggTjMwNzcKLS0gVlRBIGJhY2twb3J0cwotICAtIFBS cyBib290c3RyYXAvNDM1OTYsIGRlYnVnLzQyOTc3LCBkZWJ1Zy80MzU1NywgZGVidWcvNDM1OTMs Ci0JdGFyZ2V0LzQzNTgwCi0KLSogU2F0IE1hciAyNyAyMDEwIEpha3ViIEplbGluZWsgPGpha3Vi QHJlZGhhdC5jb20+IDQuNC4zLTEzCi0tIHVwZGF0ZSBmcm9tIGdjYy00XzQtYnJhbmNoCi0gIC0g UFJzIGMvNDMzODEsIGxpYmZvcnRyYW4vNDM1MTcsIHRhcmdldC80MjExMwotLSBWVEEgYmFja3Bv cnRzCi0gIC0gUFJzIGRlYnVnLzQzNTE2LCBkZWJ1Zy80MzU0MAotCi0qIFRodSBNYXIgMjUgMjAx MCBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjQuMy0xMgotLSB1cGRhdGUgZnJv bSBnY2MtNF80LWJyYW5jaAotICAtIFBScyBjLzQzMzg1LCB0YXJnZXQvNDMzNDgsIHRyZWUtb3B0 aW1pemF0aW9uLzQzNDE1Ci0tIFZUQSBiYWNrcG9ydHMKLSAgLSBQUnMgYm9vdHN0cmFwLzQzNTEx LCBkZWJ1Zy8xOTE5MiwgZGVidWcvNDM0NzksIGRlYnVnLzQzNTA4Ci0tIHByb3ZpZGUgdW53aW5k IGluZm8gZXZlbiBmb3IgQysrIHRodW5rcyBvbiB4ODYsIHg4Ni02NCBhbmQgczM5MHsseH0KLSAg KFBSIHRhcmdldC80MzQ5OCkKLS0gcHJvdmlkZSB1bndpbmQgaW5mbyBmb3IgeDg2IFBJQyB0aHVu a3MgZXZlbiB3aGVuIG5vdCB1c2luZyBDRkkgYXNzZW1ibGVyCi0gIGRpcmVjdGl2ZXMgKFBSIGRl YnVnLzQzMjkzKQotCi0qIE1vbiBNYXIgMjIgMjAxMCBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRo YXQuY29tPiA0LjQuMy0xMQotLSB1cGRhdGUgZnJvbSBnY2MtNF80LWJyYW5jaAotICAtIFBScyBj KysvNDMxMTYsIGxpYmZvcnRyYW4vNDMyNjUsIGxpYmdvbXAvNDI5NDIsIG1pZGRsZS1lbmQvNDI3 MTgsCi0JbWlkZGxlLWVuZC80MzQxOSwgcnRsLW9wdGltaXphdGlvbi80MzM2MCwgcnRsLW9wdGlt aXphdGlvbi80MzQzOCwKLQl0YXJnZXQvNDMzMDUsIHRhcmdldC80MzQxNwotLSBWVEEgYmFja3Bv cnRzCi0gIC0gUFJzIGJvb3RzdHJhcC80MzM5OSwgYm9vdHN0cmFwLzQzNDAzLCBkZWJ1Zy80Mjg3 MywgZGVidWcvNDMwNTgsCi0JZGVidWcvNDM0NDMsIHRhcmdldC80MzM5OQotCi0qIFR1ZSBNYXIg MTYgMjAxMCBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjQuMy0xMAotLSB1cGRh dGUgZnJvbSBnY2MtNF80LWJyYW5jaAotICAtIFBScyBmb3J0cmFuLzQzMjI4LCBmb3J0cmFuLzQz MzAzLCBsaWJmb3J0cmFuLzQzMjY1LCBsaWJmb3J0cmFuLzQzMzIwCi0tIFZUQSBiYWNrcG9ydHMK LSAgLSBQUnMgZGVidWcvMzY3MjgsIGRlYnVnLzQzMDUxLCBkZWJ1Zy80MzA5MiwgZGVidWcvNDMy OTAsCi0JdHJlZS1vcHRpbWl6YXRpb24vNDI5MTcsIHRyZWUtb3B0aW1pemF0aW9uLzQzMzE3Ci0g IC0gZml4IG5vbi1sb2NhbGl6ZWQgdmFycyBoYW5kbGluZyBhbmQgZm9yd2FyZGVyIGJsb2NrIG1l cmdpbmcKLSAgICAoIzU3MjI2MCwgUFIgZGVidWcvNDMzMjkpCi0laWYgMCV7P3JoZWx9ID49IDYK LS0gcmVtb3ZlIGdhcHBsZXR2aWV3ZXIsIGdjandlYnBsdWdpbiBhbmQgcmVsYXRlZCBmaWxlcyBl dmVuIGZvcgotICBSSEVMLCBhcyB4dWxydW5uZXIgZ290IHVwZGF0ZWQgdG8gMS45LjIuMQotJWVu ZGlmCi0KLSogVHVlIE1hciAgOSAyMDEwIEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+ IDQuNC4zLTkKLS0gdXBkYXRlIGZyb20gZ2NjLTRfNC1icmFuY2gKLSAgLSBQUnMgYWRhLzQyMjUz LCBib290c3RyYXAvNDMxMjEsIGMvNDMyNDgsIHRyZWUtb3B0aW1pemF0aW9uLzQzMjIwCi0tIFZU QSBiYWNrcG9ydHMKLSAgLSBQUnMgZGVidWcvNDI4OTcsIGRlYnVnLzQzMTc2LCBkZWJ1Zy80MzE3 NywgZGVidWcvNDMyMjksIGRlYnVnLzQzMjM3LAotCWRlYnVnLzQzMjkwLCBkZWJ1Zy80MzI5OSwg ZGVidWcvNDMzMDQKLS0gZml4IHVud2luZCBpbmZvIGluIGk/ODYgUElDIHJlZ2lzdGVyIHNldHVw IHNlcXVlbmNlcyAoUFIgZGVidWcvNDMyOTMpCi0KLSogRnJpIEZlYiAyNiAyMDEwIEpha3ViIEpl bGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuNC4zLTgKLS0gdXBkYXRlIGZyb20gZ2NjLTRfNC1i cmFuY2gKLSAgLSBQUiBsaWJzdGRjKysvMjE3NjkKLS0gVlRBIGJhY2twb3J0cwotICAtIFBScyBk ZWJ1Zy80MjgwMCwgZGVidWcvNDMwNzcsIGRlYnVnLzQzMTUwLCBkZWJ1Zy80MzE2MCwgZGVidWcv NDMxNjEsCi0JZGVidWcvNDMxNjUsIGRlYnVnLzQzMTY2LCBkZWJ1Zy80MzE5MCwgdGFyZ2V0LzQz MTM5Ci0tIGZpeCBhbGlnbm1lbnQgb2Ygc29tZSBzdGFjayB2YXJzIChQUiBtaWRkbGUtZW5kLzM5 MzE1KQotCi0qIFN1biBGZWIgMjEgMjAxMCBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29t PiA0LjQuMy03Ci0tIHVwZGF0ZSBmcm9tIGdjYy00XzQtYnJhbmNoCi0gIC0gUFJzIGMrKy80MzAy NCwgYysrLzQzMDMzLCBmb3J0cmFuLzQxODY5LCB0YXJnZXQvNDA4ODcsCi0JdHJlZS1vcHRpbWl6 YXRpb24vNDI4NzEsIHRyZWUtb3B0aW1pemF0aW9uLzQzMDc0Ci0tIFZUQSBiYWNrcG9ydHMgKFBS cyBkZWJ1Zy80MjkxOCwgZGVidWcvNDMwODQpCi0tIC0tZW5hYmxlLWRlY2ltYWwtZmxvYXQgb24g czM5MHsseH0gKCM1NjU4NzEpCi0tIGltcHJvdmUgX19idWlsdGluX2V4cGVjdCBoYW5kbGluZywg cHJvcGFnYXRlIGJyYW5jaCBwcm9iYWJpbGl0aWVzCi0gIGR1cmluZyBleHBhbnNpb24gZXZlbiBm b3Igc2VxdWVuY2VzIHdpdGggbW9yZSB0aGFuIG9uZSBqdW1wCi0gIChQUiBtaWRkbGUtZW5kLzQy MjMzKQotCi0qIFRodSBGZWIgMTEgMjAxMCBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29t PiA0LjQuMy02Ci0tIHVwZGF0ZSBmcm9tIGdjYy00XzQtYnJhbmNoCi0gIC0gUFIgdHJlZS1vcHRp bWl6YXRpb24vNDI3MDUKLSAgLSBmaXggdXAgLWZlbWl0LXN0cnVjdC1kZWJ1Zy1iYXNlb25seSAo IzU2MTMyMCwgUFIgZGVidWcvNDMwMTApCi0gIC0gLS1lbmFibGUtY2hlY2tpbmc9dmFsZ3JpbmQg YnVnZml4ZXMgKFBScyBmb3J0cmFuLzQzMDI5LCBmb3J0cmFuLzQzMDMwKQotLSBWVEEgYmFja3Bv cnRzICgjNTYyMzEyKQotLSBzb21lIGZ1cnRoZXIgLS1lbmFibGUtY2hlY2tpbmc9dmFsZ3JpbmQg YnVnZml4ZXMgKFBSIHRhcmdldC8zODc4MSkKLQotKiBNb24gRmViICA4IDIwMTAgSmFrdWIgSmVs aW5layA8amFrdWJAcmVkaGF0LmNvbT4gNC40LjMtNQotLSB1cGRhdGUgZnJvbSBnY2MtNF80LWJy YW5jaAotICAtIFBScyBmb3J0cmFuLzM4MzI0LCBmb3J0cmFuLzQxMDQ0LCBmb3J0cmFuLzQxMTY3 LCBmb3J0cmFuLzQyMzA5LAotCWZvcnRyYW4vNDI2NTAsIGZvcnRyYW4vNDI3MzYsIGxpYmZvcnRy YW4vNDI5MDEsIG1pZGRsZS1lbmQvNDI4OTgsCi0JbWlkZGxlLWVuZC80Mjk5NSwgcnRsLW9wdGlt aXphdGlvbi80Mjk1MiwgdHJlZS1vcHRpbWl6YXRpb24vNDI0NjIsCi0JdHJlZS1vcHRpbWl6YXRp b24vNDI4OTAsIHRyZWUtb3B0aW1pemF0aW9uLzQyOTMxCi0tIFZUQSBiYWNrcG9ydHMKLSAgLSBQ UnMgdGFyZ2V0LzQyOTI0LCBkZWJ1Zy80Mjg5NiwgcnRsLW9wdGltaXphdGlvbi80Mjg4OQotJWlm IDAlez9mZWRvcmF9ID49IDEzCi0tIHBhc3MgLS1uby1hZGQtbmVlZGVkIHRvIHRoZSBsaW5rZXIK LSVlbmRpZgotCi0qIFdlZCBKYW4gMjcgMjAxMCBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQu Y29tPiA0LjQuMy00Ci0tIHVwZGF0ZSBmcm9tIGdjYy00XzQtYnJhbmNoCi0gIC0gUFJzIGJvb3Rz dHJhcC80Mjc4NiwgZm9ydHJhbi80Mjg2NiwgdGFyZ2V0LzM4Njk3LCB0YXJnZXQvNDI4NDEKLS0g Zml4IHVwIGhhbmRsaW5nIG9mIGNvbnN0YW50IHBvb2wgZWxlbWVudHMgaW4gZHdhcmYyb3V0Ci0t IGZpeCBhY2F0cyBub3J1bi5sc3QgaGFuZGxpbmcKLS0gZml4IGFzbSByZWRpcmVjdGlvbiBvZiBi dWlsdGluIGZmcyBvbiA2NC1iaXQgYXJjaGVzICgjNTU5MTg2KQotCi0qIE1vbiBKYW4gMjUgMjAx MCBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjQuMy0zCi0tIFZUQSBpbXByb3Zl bWVudHMgKCM1NTY5NzUsIFBSIGRlYnVnLzQyODYxKQotCi0qIFNhdCBKYW4gMjMgMjAxMCBEZW5u aXMgR2lsbW9yZSA8ZGVubmlzQGF1c2lsLnVzPiA0LjQuMy0yCi0tIHVzZSBnYXMgLnNlY3Rpb24g c3ludGF4ICgjNTMwODQ3KQotCi0qIFRodSBKYW4gMjEgMjAxMCBKYWt1YiBKZWxpbmVrIDxqYWt1 YkByZWRoYXQuY29tPiA0LjQuMy0xCi0tIHVwZGF0ZSBmcm9tIGdjYy00XzQtYnJhbmNoCi0gIC0g R0NDIDQuNC4zIHJlbGVhc2UKLS0gZG9uJ3QgaW5zZXJ0IERFQlVHX1NUTVRzIGFmdGVyIHN0bXRz IHRoYXQgY2FuIHRocm93LCBpbnN0ZWFkIGluc2VydCB0aGVtCi0gIGF0IHRoZSBzdGFydCBvZiB0 aGUgbmV4dCBiYgotCi0qIFRodSBKYW4gMjEgMjAxMCBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRo YXQuY29tPiA0LjQuMi0yOAotLSB1cGRhdGUgZnJvbSBnY2MtNF80LWJyYW5jaAotICAtIFBScyBt aWRkbGUtZW5kLzQyODAzLCBydGwtb3B0aW1pemF0aW9uLzQyNjkxLCB0YXJnZXQvNDI1NDIsIHRh cmdldC80Mjc3NCwKLQl0cmVlLW9wdGltaXphdGlvbi80MTgyNiwgdHJlZS1vcHRpbWl6YXRpb24v NDI3NzMKLSAgLSBmaXggRFdfT1BfbW9kIGhhbmRsaW5nIGluIHRoZSB1bndpbmRlcgotLSBWVEEg YmFja3BvcnRzCi0gIC0gUFJzIGRlYnVnLzQyNzgyLCBkZWJ1Zy80Mjc2NwotICAtIGF2b2lkIGRl YWQgVkFMVUVTIHRvIG1hZ2ljYWxseSByZWFwcGVhciBkdXJpbmcgdmFyLXRyYWNraW5nCi0gICAg KCM1NTcwNjgsIFBSIGRlYnVnLzQyNzE1KQotICAtIGRvbid0IGFzc3VtZSBub24tYWRkcmVzc2Fi bGUgYXV0b21hdGljIE1FTXMgZGllIGF0IGVhY2ggY2FsbAotICAgIGR1cmluZyB2YXItdHJhY2tp bmcgKCM1NTY5NzUsIFBSIGRlYnVnLzQyNzI4KQotCi0qIEZyaSBKYW4gMTUgMjAxMCBKYWt1YiBK ZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjQuMi0yNwotLSBmaXggSUNFIHdpdGggc3RkOjpj b21wbGV4PGZsb2F0PiBjb3B5ICgjNTU1NzA1LCBQUiBtaWRkbGUtZW5kLzQyNzYwKQotLSBhdm9p ZCBleHBvbmVudGlhbCBoYW5ncyBpbiBnZW5fbHNtX3RtcF9uYW1lCi0KLSogRnJpIEphbiAxNSAy MDEwIEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuNC4yLTI2Ci0tIHVwZGF0ZSBm cm9tIGdjYy00XzQtYnJhbmNoCi0gIC0gUFIgYysrLzQyNjU1Ci0KLSogVGh1IEphbiAxNCAyMDEw IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuNC4yLTI1Ci0tIHVwZGF0ZSBmcm9t IGdjYy00XzQtYnJhbmNoCi0gIC0gUFJzIGMvNDI3MjEsIG1pZGRsZS1lbmQvNDAyODEsIG1pZGRs ZS1lbmQvNDI2NjcsIHJ0bC1vcHRpbWl6YXRpb24vNDI2OTkKLS0gcmUtYWRkIC0tcGFyYW0gbWF4 LXZhcnRyYWNrLXNpemUgcGF0Y2gsIGJ1dCB0aGlzIHRpbWUgd2l0aCBkZWZhdWx0IDUwbWlsCi0g IGluc3RlYWQgb2YgNW1pbCAoIzUzMTIxOCwgIzU0ODgyNikKLS0gZG9uJ3QgZW1pdCAtV3JldHVy bi10eXBlIHdhcm5pbmdzIGluIG5vcmV0dXJuIGZ1bmN0aW9ucwotICAoUFIgbWlkZGxlLWVuZC80 MjY3NCkKLS0gbWFyY2g9bmF0aXZlIGZpeGVzIGZvciBpeDg2L3g4Nl82NAotCi0qIFR1ZSBKYW4g MTIgMjAxMCBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjQuMi0yNAotLSB1cGRh dGUgZnJvbSBnY2MtNF80LWJyYW5jaAotICAtIFBScyBkZWJ1Zy80MjY2MiwgbGliamF2YS80MDg1 OQotLSBzcGVlZCB1cCB2YXItdHJhY2tpbmcgb24gdmFyaW91cyBLREUgc291cmNlcyAoUFIgZGVi dWcvNDEzNzEpCi0tIHJldmVydCAtLXBhcmFtIG1heC12YXJ0cmFjay1zaXplPU5OTk4gaGFjawot LSBmaXggdXAgZXBpbG9ndWUgdW53aW5kaW5nIHdpdGggLWZzY2hlZDItdXNlLXN1cGVyYmxvY2tz IChQUiBtaWRkbGUtZW5kLzQxODgzKQotLSBmaXggYSAtZmNvbXBhcmUtZGVidWcgZmFpbHVyZSAo UFIgdHJlZS1vcHRpbWl6YXRpb24vNDI2NDUpCi0tIGRvbid0IG1ha2UgdW5kZWYgc3ltYm9scyB3 ZWFrIGp1c3QgYmVjYXVzZSB0aGV5IGFyZSBrbm93biB0byBoYXZlIEMrKyB2YWd1ZQotICBsaW5r YWdlIChQUiBjKysvNDI2MDgpCi0KLSogU2F0IEphbiAgOSAyMDEwIEpha3ViIEplbGluZWsgPGph a3ViQHJlZGhhdC5jb20+IDQuNC4yLTIzCi0tIHVwZGF0ZSBmcm9tIGdjYy00XzQtYnJhbmNoCi0g IC0gUFJzIHRhcmdldC80MjUxMSwgdGFyZ2V0LzQyNTQyLCB0YXJnZXQvNDI1NjQKLS0gVlRBIGJh Y2twb3J0cwotICAtIFBScyBkZWJ1Zy80MjYzMCwgZGVidWcvNDI2MzEKLS0gaW1wcm92ZSBjb25z dHJ1Y3Rpb24gb2YgcHBjNjQgY29uc3RhbnRzIGJldHdlZW4gMHg4MDAwMDAwMCBhbmQgMHhmZmZm ZmZmZgotLSBmaXggaW5saW5lciBhbmQgdmFyLXRyYWNraW5nIG5vdCB0byBkcm9wIGxvY2F0aW9u IGluZm8gbmVlZGxlc3NseSBpbiBjZXJ0YWluCi0gIGNhc2VzICgjNTUyMzc2LCBQUiBkZWJ1Zy80 MjY1NykKLQotKiBXZWQgSmFuICA2IDIwMTAgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNv bT4gNC40LjItMjIKLS0gYWRkIC0tcGFyYW0gbWF4LXZhcnRyYWNrLXNpemU9Tk5OTiBwYXJhbWV0 ZXIsIGdpdmUgdXAgb24KLSAgLWZ2YXItdHJhY2tpbmctYXNzaWdubWVudHMgaWYgdmFyLXRyYWNr aW5nIGhhc2ggdGFibGVzIGFyZSBvdmVyIHRoYXQgbGltaXQKLS0gZml4IFZUQSBidWdzIGluIHRo ZSB2ZWN0b3JpemVyIChQUnMgZGVidWcvNDI2MDQsIGRlYnVnLzQyMzk1KQotLSBmaXggVlRBIGJ1 ZyB3aXRoIG5vcmV0dXJuIGNhbGxzIChQUiBtaWRkbGUtZW5kLzQyMzYzKQotCi0qIFR1ZSBKYW4g IDUgMjAxMCBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjQuMi0yMQotLSB1cGRh dGUgZnJvbSBnY2MtNF80LWJyYW5jaAotICAtIFBScyBjKysvNDIzMzEsIG1pZGRsZS1lbmQvNDEz NDQsIG1pZGRsZS1lbmQvNDIwOTksIG90aGVyLzQyNjExLAotCXJ0bC1vcHRpbWl6YXRpb24vNDI0 NzUsIHRhcmdldC80MDEzNCwgdGFyZ2V0LzQyNDQ4LCB0YXJnZXQvNDI1MDMsCi0JdGFyZ2V0LzQy NTQ5LCB0cmVlLW9wdGltaXphdGlvbi80MTk1NiwgdHJlZS1vcHRpbWl6YXRpb24vNDIyMzEsCi0J dHJlZS1vcHRpbWl6YXRpb24vNDIzMzcsIHRyZWUtb3B0aW1pemF0aW9uLzQyNjE0Ci0tIGZpeCAt bSo9bmF0aXZlIHdpdGggc2V2ZXJhbCBzb3VyY2VzIG9uIHRoZSBjb21tYW5kIGxpbmUgKFBSIGRy aXZlci80MjQ0MikKLS0gYXZvaWQgY29kZSBzaXplIGRpZmZlcmVuY2VzIGZyb20gdHJhdmVyc2lu ZyBkZWNsIGhhc2ggdGFibGVzIGhhc2hlZCBieSB1aWQKLSAgaWYgdWlkIGdhcCBzaXplcyBkaWZm ZXIKLS0gZml4IC5kZWJ1Z19yYW5nZXMgd2l0aCAtZmZ1bmN0aW9uLXNlY3Rpb25zIChQUiBkZWJ1 Zy80MjQ1NCkKLQotKiBUdWUgRGVjIDIyIDIwMDkgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0 LmNvbT4gNC40LjItMjAKLS0gZml4IE1FTV9TSVpFIG9mIHJlbG9hZCBjcmVhdGVkIHN0YWNrIHNs b3RzICgjNTQ4ODI1LAotICBQUiBydGwtb3B0aW1pemF0aW9uLzQyNDI5KQotJWlmICEle2luY2x1 ZGVfZ2FwcGxldHZpZXdlcn0KLS0gcmVtb3ZlIGdhcHBsZXR2aWV3ZXIsIGdjandlYnBsdWdpbiBh bmQgcmVsYXRlZCBmaWxlcyBmb3IgRjEzICgjNTQ4NzgzKQotJWVuZGlmCi0tIGZpeCBhZGRpdGlv biBvZiBvbmUgY2hhcmFjdGVyIGxvbmcgZmlsZW5hbWVzIGluIGZhc3RqYXIgKCM1NDk0OTMpCi0K LSogVGh1IERlYyAxNyAyMDA5IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuNC4y LTE4Ci0tIHVwZGF0ZSBmcm9tIGdjYy00XzQtYnJhbmNoCi0gIC0gUFJzIGMrKy80MjM4NwotLSBh bm90aGVyIEMrKyB2aXJ0dWFsIGR0b3JzIGZpeCAoUFIgYysrLzQyMzg2KQotLSBWVEEgbW9kZSBh bmQgQ09ORF9FWEVDIGZpeGVzIChQUiBkZWJ1Zy80MTY3OSkKLS0gZml4IElDRSBpbiBjaHJlY19j b252ZXJ0XzEgKCM1NDc3NzUpCi0tIGZpeCBkZWJ1Z2luZm8gZm9yIG9wdGltaXplZCBvdXQgVExT IHZhcnMKLS0gdXNlIERXX0FUX2xvY2F0aW9uIHdpdGggRFdfT1BfYWRkciArIERXX09QX3N0YWNr X3ZhbHVlIGluc3RlYWQgb2YKLSAgRFdfQVRfY29uc3RfdmFsdWUgd2l0aCBhZGRyZXNzIGluIGl0 LCB1c2UgRFdfT1BfYWRkciArIERXX09QX3N0YWNrX3ZhbHVlCi0gIGluc3RlYWQgb2YgRFdfT1Bf aW1wbGljaXRfdmFsdWUgd2l0aCBhZGRyZXNzICgjNTQ2MDE3KQotCi0qIE1vbiBEZWMgMTQgMjAw OSBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjQuMi0xNwotLSBwcm9wYWdhdGUg VFJFRV9OT1RIUk9XL1RSRUVfUkVBRE9OTFkvREVDTF9QVVJFX1AgZnJvbSBpcGEtcHVyZS1jb25z dCBhbmQKLSAgRUggb3B0IHRvIGFsbCBzYW1lIGJvZHkgYWxpYXNlcyAoIzU0NzI4NikKLS0gZG9u J3QgZW1pdCBEV0FSRiBsb2NhdGlvbiBsaXN0IGVudHJpZXMgd2l0aCBubyBsb2NhdGlvbiBvciBE V19BVF9sb2NhdGlvbgotICB3aXRoIGVtcHR5IGJsb2NrcyAoUFIgZGVidWcvNDE0NzMpCi0tIGZp eCB1cCBBTUQgTFdQIHN1cHBvcnQKLS0gZG9uJ3QgY3Jhc2ggd2hlbiBtYW5nbGluZyBDKysgZGVj bHMgaW5zaWRlIG9mIG1pZGRsZS1lbmQgZ2VuZXJhdGVkIGZ1bmN0aW9ucwotICAoUFIgYysrLzQx MTgzKQotCi0qIEZyaSBEZWMgMTEgMjAwOSBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29t PiA0LjQuMi0xNgotLSB1cGRhdGUgZnJvbSBnY2MtNF80LWJyYW5jaAotICAtIFBScyBjKysvMjc0 MjUsIGMrKy8zNDI3NCwgYysrLzQyMzAxLCBmb3J0cmFuLzQyMjY4LCBqYXZhLzQxOTkxLAotCWxp YnN0ZGMrKy80MjI3MywgcnRsLW9wdGltaXphdGlvbi80MTU3NCwgdGFyZ2V0LzQxMTk2LCB0YXJn ZXQvNDE5MzkKLQl0YXJnZXQvNDIyNjMKLQotKiBXZWQgRGVjICA5IDIwMDkgSmFrdWIgSmVsaW5l ayA8amFrdWJAcmVkaGF0LmNvbT4gNC40LjItMTUKLS0gVlRBIGJhY2twb3J0cwotICAtIFBScyBk ZWJ1Zy80MjE2NiwgZGVidWcvNDIyMzQsIGRlYnVnLzQyMjQ0LCBkZWJ1Zy80MjI5OQotLSBmaXgg aGFuZGxpbmcgb2YgQysrIENPTURBVCB2aXJ0dWFsIGRlc3RydWN0b3JzCi0tIHNvbWUgeDg2L3g4 Nl82NCBGTUE0LCBYT1AsIEFCTSBhbmQgTFdQIGZpeGVzCi0tIGZpeCBhIGRlY2x0eXBlIGhhbmRs aW5nIGJ1ZyBpbiB0ZW1wbGF0ZXMgKFBSIGMrKy80MjI3NykKLQotKiBGcmkgRGVjICA0IDIwMDkg SmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gNC40LjItMTQKLS0gdXBkYXRlIGZyb20g Z2NjLTRfNC1icmFuY2gKLSAgLSBQUnMgbGlic3RkYysrLzQyMjYxLCBtaWRkbGUtZW5kLzQyMDQ5 Ci0tIGJhY2twb3J0IEMrKzB4IElDRSBmaXggZnJvbSB0cnVuayAoUFIgYysrLzQyMjY2KQotLSBm b3J0cmFuICEkb21wIHdvcmtzaGFyZSBpbXByb3ZlbWVudHMgKFBSIGZvcnRyYW4vMzU0MjMpCi0t IEZNQTQgYW5kIFhPUCBmaXhlcwotCi0qIFdlZCBEZWMgIDIgMjAwOSBKYWt1YiBKZWxpbmVrIDxq YWt1YkByZWRoYXQuY29tPiA0LjQuMi0xMwotLSBmaXggc2VjdXJpdHkgaXNzdWVzIGluIGxpYmx0 ZGwgYnVuZGxlZCB3aXRoaW4gbGliZ2NqIChDVkUtMjAwOS0zNzM2KQotCi0qIFdlZCBEZWMgIDIg MjAwOSBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjQuMi0xMgotLSB1cGRhdGUg ZnJvbSBnY2MtNF80LWJyYW5jaAotICAtIFBScyBjKysvNDIyMzQsIGZvcnRyYW4vNDEyNzgsIGZv cnRyYW4vNDE4MDcsIGZvcnRyYW4vNDIxNjIsIHRhcmdldC80MjExMywKLQl0YXJnZXQvNDIxNjUK LSAgLSBkb24ndCBJQ0Ugb24gLU8yNTYgKCM1Mzk5MjMpCi0tIGZpeCAtbXJlZ25hbWVzIG9uIHBw Yy9wcGM2NAotLSBvcHRpbWl6ZSBldmVuIENPTURBVCBjb25zdHJ1Y3RvcnMgYW5kIGRlc3RydWN0 b3JzIHdpdGhvdXQgdmlydHVhbAotICBiYXNlcyAoUFIgYysrLzMxODcpCi0KLSogTW9uIE5vdiAy MyAyMDA5IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuNC4yLTExCi0tIHVwZGF0 ZSBmcm9tIGdjYy00XzQtYnJhbmNoCi0gIC0gUFJzIGMrKy80MjA1OSwgYysrLzQyMDYxLCBsaWJn Zm9ydHJhbi80MjA5MAotLSBWVEEgYmFja3BvcnRzCi0gIC0gUFJzIGRlYnVnLzQxODg2LCBkZWJ1 Zy80MTg4OCwgZGVidWcvNDE5MjYsIHRyZWUtb3B0aW1pemF0aW9uLzQyMDc4Ci0tIG9wdGltaXpl IG5vbi1DT01EQVQgY29uc3RydWN0b3JzIGFuZCBkZXN0cnVjdG9ycyB3aXRob3V0IHZpcnR1YWwK LSAgYmFzZXMgYnkgbWFraW5nIHRoZSBiYXNlIGFuZCBjb21wbGV0ZSBjdG9yIG9yIGR0b3IgYWxp YXNlcyBvZgotICBlYWNoIG90aGVyIChQUiBjKysvMzE4NykKLQotKiBTYXQgTm92IDE0IDIwMDkg SmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gNC40LjItMTAKLS0gdXBkYXRlIGZyb20g Z2NjLTRfNC1icmFuY2gKLSAgLSBQUnMgYysrLzIxMDA4LCBjKysvMzcwMzcsIGMrKy80MTk3Miwg YysrLzQxOTk0LCBtaWRkbGUtZW5kLzQwOTQ2LAotCW1pZGRsZS1lbmQvNDIwMjkKLS0gVlRBIGJh Y2twb3J0cwotICAtIFBSIG1pZGRsZS1lbmQvNDE5MzAKLS0gb3B0aW1pemUgZGVsZXRpbmcgZGVz dHJ1Y3RvcnMgZm9yIHNpemUgKFBSIGMrKy8zMTg3KQotLSB0cnkgdG8gYXZvaWQgZmlsZSBSZXF1 aXJlcyBieSByZXF1aXJpbmcgcGFja2FnZSUlez9faXNhfSAoIzUzMzk0NykKLQotKiBNb24gTm92 ICA5IDIwMDkgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gNC40LjItOQotLSB1cGRh dGUgZnJvbSBnY2MtNF80LWJyYW5jaAotICAtIFBScyBjKysvMzUwNjcsIGMrKy8zNjkxMiwgYysr LzM2OTU5LCBjKysvMzcwOTMsIGMrKy8zODY5OSwgYysrLzM5Nzg2LAotCWMrKy80MTg1NiwgYysr LzQxODc2LCBjKysvNDE5NjcsIGMrKy85MzgxLCBmb3J0cmFuLzQxNzcyLAotCWZvcnRyYW4vNDE5 MDksIG1pZGRsZS1lbmQvNDE5NjMsIHJ0bC1vcHRpbWl6YXRpb24vNDE5MTcsCi0JdGFyZ2V0LzQx OTAwLCB0cmVlLW9wdGltaXphdGlvbi80MTY0MwotLSBzZWxlY3RlZCBiYWNrcG9ydHMgZnJvbSB0 cnVuawotICAtIFBScyBkZWJ1Zy80MTgwMSwgbWlkZGxlLWVuZC80MTgzNywgdGFyZ2V0LzQxOTg1 LCB0cmVlLW9wdGltaXphdGlvbi80MTg0MQotLSBpbml0aWFsIEFNRCBPcm9jaGkgLW14b3AgYW5k IC1tbHdwIHN1cHBvcnQKLS0gdHJ5IHRvIGF2b2lkIHdyYXBwaW5nIENPTlNUX0lOVHMvVk9JRG1v ZGUgQ09OU1RfRE9VQkxFcyBpbnRvIENPTlNUCi0KLSogTW9uIE5vdiAgMiAyMDA5IEpha3ViIEpl bGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuNC4yLTgKLS0gdXBkYXRlIGZyb20gZ2NjLTRfNC1i cmFuY2gKLSAgLSBQUnMgYysrLzQxNzU0LCBmb3J0cmFuLzQxNzc3LCBmb3J0cmFuLzQxODUwLCBs aWJzdGRjKysvNDA4NTIKLS0gZml4IElDRSB3aXRoIHVubWF0Y2hlZCAjcHJhZ21hIEdDQyB2aXNp YmlsaXR5IHB1c2gvcG9wIChQUiBjKysvNDE3NzQpCi0tIGZpeCBWVEEgSUNFIHdpdGggLWNvbWJp bmUgKCM1MzEzODUsIFBSIGRlYnVnLzQxODkzKQotLSBmaXggUlRUSSBmb3IgYW5vbiBuYW1lc3Bh Y2UgY2xhc3NlcwotLSBmaXggaW5jb3JyZWN0IHVzZXMgb2YgX19yZXN0cmljdCBrZXl3b3JkIGlu IHZhbGFycmF5IChQUiBsaWJzdGRjKysvNDE3NjMpCi0KLSogVHVlIE9jdCAyNyAyMDA5IEpha3Vi IEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuNC4yLTcKLS0gdXBkYXRlIGZyb20gZ2NjLTRf NC1icmFuY2gKLSAgLSBQUnMgYysrLzQwODA4LCBjLzQxODQyLCBjcC10b29scy8zOTE3NwotLSBW VEEgYmFja3BvcnRzCi0gIC0gUFIgYm9vdHN0cmFwLzQxMzQ1Ci0tIGRvbid0IGVtaXQgRFdfQVRf bmFtZTogPGFub255bW91cyBzdHJ1Y3Q+IGV0Yy4gaW50byBkZWJ1ZyBpbmZvCi0gICgjNTMwMzA0 LCBQUiBkZWJ1Zy80MTgyOCkKLS0gcG93ZXI3IEFCSSBmaXhlcyAoUFIgdGFyZ2V0LzQxNzg3KQot LSBmaXggSUNFIGluIGl4ODZfcGljX3JlZ2lzdGVyX3AgKFBSIHRhcmdldC80MTc2MikKLQotKiBU aHUgT2N0IDIyIDIwMDkgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gNC40LjItNgot LSB1cGRhdGUgZnJvbSBnY2MtNF80LWJyYW5jaAotICAtIFBSIHRhcmdldC80MTcwMgotICAtIGZp eCBhIHBvZDJtYW4gZXJyb3IgaW4gZ2NjLjEgKCM1MzAxMDIpCi0gIC0gZml4IG1hbmdsaW5nIG9m IHZlcnkgbGFyZ2UgbmFtZXMKLS0gZG9jdW1lbnQgLXByaW50LW11bHRpLW9zLWRpcmVjdG9yeSBp biBnY2MuaW5mbyBhbmQgZ2NjLjEKLSAgKCM1Mjk2NTksIFBSIG90aGVyLzI1NTA3KQotCi0qIE1v biBPY3QgMTkgMjAwOSBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjQuMi01Ci0t IHVwZGF0ZSBmcm9tIGdjYy00XzQtYnJhbmNoCi0gIC0gUFIgZm9ydHJhbi80MTc1NQotICAtIHMz OTAgejEwIHR1bmluZyBmaXhlcwotLSBwcm92aWRlIGFjY3VyYXRlIGF0dHJpYnV0ZXMgZm9yIHBv d2VycGMgYnVpbHRpbnMgKFBSIHRhcmdldC8yMzk4MykKLS0gZml4IC1mY29tcGFyZS1kZWJ1ZyBk aWZmZXJlbmNlcyBjYXVzZWQgYnkgRENFIHJlbW92YWwgb2YgZGVidWcgc3RtdHMKLS0gZml4IHVw ZGF0aW5nIG9mIHNwZWN1bGF0aW9uIHN0YXR1cyB3aXRoIFZUQSAoUFIgZGVidWcvNDE3MzkpCi0K LSogU3VuIE9jdCAxOCAyMDA5IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuNC4y LTQKLS0gdXBkYXRlIGZyb20gZ2NjLTRfNC1icmFuY2gKLSAgLSBQUnMgYysrLzM3MjA0LCBjKysv Mzc3NjYsIGMrKy8zNzg3NSwgYysrLzM4Nzk4LCBjKysvNDAwOTIsCi0JbGlic3RkYysrLzQwNjU0 LCBsaWJzdGRjKysvNDA4MjYKLS0gZml4IFZUQSBJQ0Ugb24gaW52YWxpZCBwb2ludGVyIGFyaXRo bWV0aWNzICgjNTI5NTEyKQotCi0qIFNhdCBPY3QgMTcgMjAwOSBKYWt1YiBKZWxpbmVrIDxqYWt1 YkByZWRoYXQuY29tPiA0LjQuMi0zCi0tIGZpeCBWVEEgaGFuZGxpbmcgaW4gdGhlIHNjaGVkdWxl ciAoUFIgZGVidWcvNDE1MzUpCi0tIGZpeCB1cCAlJWNoZWNrIHNlY3Rpb24gdG8gYmUgYWJsZSB0 byBmaW5kIGVjajEKLQotKiBGcmkgT2N0IDE2IDIwMDkgSmFrdWIgSmVsaW5layA8amFrdWJAcmVk aGF0LmNvbT4gNC40LjItMgotLSB1cGRhdGUgZnJvbSBnY2MtNF80LWJyYW5jaAotICAtIFBSIHRh cmdldC80MDkxMwotLSBWVEEgYmFja3BvcnRzCi0gIC0gUFIgZGVidWcvNDE3MTcKLS0gZml4IEFk YSAuZWhfZnJhbWUgZ2VuZXJhdGlvbiAoUFIgZGVidWcvNDA1MjEpCi0KLSogVGh1IE9jdCAxNSAy MDA5IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuNC4yLTEKLS0gdXBkYXRlIGZy b20gZ2NjLTRfNC1icmFuY2gKLSAgLSBHQ0MgNC40LjIgcmVsZWFzZQotICAtIFBScyBtaWRkbGUt ZW5kLzIyMDcyLCB0YXJnZXQvNDE2NjUKLS0gZG9uJ3QgZW1pdCAtV3BhZGRlZCB3YXJuaW5ncyBm b3IgYnVpbHRpbiBzdHJ1Y3R1cmVzCi0tIGRvbid0IGdlbmVyYXRlIC5laF9mcmFtZSwgYnV0IGdl bmVyYXRlIC5kZWJ1Z19mcmFtZSB3aGVuIC1nIGFuZCBub25lIG9mCi0gIC1mYXN5bmNocm9ub3Vz LXVud2luZC10YWJsZXMvLWZleGNlcHRpb25zLy1mdW53aW5kLXRhYmxlcyBpcyB1c2VkCi0gIChQ UiBkZWJ1Zy80MDUyMSkKLQotKiBXZWQgT2N0IDE0IDIwMDkgSmFrdWIgSmVsaW5layA8amFrdWJA cmVkaGF0LmNvbT4gNC40LjEtMjIKLS0gdXBkYXRlIGZyb20gZ2NjLTRfNC1icmFuY2gKLSAgLSBQ UnMgdGFyZ2V0LzI2NTE1LCB0YXJnZXQvMzg5NDgKLSAgLSBmaXggczM5MHsseH0gQkxLbW9kZSBz eW1ib2wgaGFuZGxpbmcKLSAgLSBmaXggaT84NiB0ZXN0cWkgc3BsaXR0ZXIgKCM1MjgyMDYsIFBS IHRhcmdldC80MTY4MCkKLS0gVlRBIGJhY2twb3J0cwotICAtIGludHJvZHVjZSBkZWJ1ZyB0ZW1w cyAoUFJzIGRlYnVnLzQxMjY0LCBkZWJ1Zy80MTMzOCwgZGVidWcvNDEzNDMsCi0gICAgZGVidWcv NDE0NDcsIHRhcmdldC80MTY5MykKLSAgLSBidWlsZCBkZWJ1ZyBzdG10cyBvbiB1cGRhdGVzIChQ UiBkZWJ1Zy80MTYxNikKLSAgLSBmaXggYW5vdGhlciB3aXRoL3dpdGhvdXQgLXNhdmUtdGVtcHMg ZGVidWcgaW5mbyBkaWZmZXJlbmNlCi0gICAgKCM1MjY4NDEsIFBSIHByZXByb2Nlc3Nvci80MTU0 MykKLSAgLSBmaXggaW52YWxpZCByYW5nZXMgaW4gLmRlYnVnX2xvYyBzZWN0aW9uIChQUiBkZWJ1 Zy80MTY5NSkKLSVpZiAwJXs/cmhlbH0gPj0gNgotLSBpZiAtbWNwdT0gaXNuJ3Qgc3BlY2lmaWVk LCBkZWZhdWx0IHRvIC1tY3B1PXBvd2VyNCAoIzQ2MzU0OSkKLSVlbmRpZgotCi0qIFNhdCBPY3Qg MTAgMjAwOSBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjQuMS0yMQotLSB1cGRh dGUgZnJvbSBnY2MtNF80LWJyYW5jaAotICAtIGZpeCBzMzkweyx4fSBwcmVmZXRjaCBmb3IgcHJl LXoxMCBDUFVzICgjNTI0NTUyKQotLSBWVEEgYmFja3BvcnRzCi0gIC0gZml4IGRlYnVnIGluZm8g ZGlmZmVyZW5jZXMgd2l0aC93aXRob3V0IC1zYXZlLXRlbXBzCi0gICAgKFBSIHByZXByb2Nlc3Nv ci80MTQ0NSkKLS0gZml4IElDRSB3aXRoIHNtYWxsIEJMS21vZGUgcmV0dXJuaW5nIGNhbGwgKCM1 MTYwMjgsCi0gIFBSIHJ0bC1vcHRpbWl6YXRpb24vNDE2NDYpCi0KLSogVGh1IE9jdCAgOCAyMDA5 IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuNC4xLTIwCi0tIHVwZGF0ZSBmcm9t IGdjYy00XzQtYnJhbmNoCi0gIC0gUFJzIGMrKy8zOTg2MywgYysrLzQxMDM4Ci0tIGF2b2lkIHJl ZHVuZGFudCBEV19BVF9jb25zdF92YWx1ZSB3aGVuIGFic3RyYWN0IG9yaWdpbiBhbHJlYWR5IGhh cyBvbmUKLSAgKCM1Mjc0MzApCi0tIGFub3RoZXIgVlRBIGRlYnVnIHN0bXQgcmVuYW1pbmcgYnVn Zml4ICgjNTIxOTkxKQotCi0qIE1vbiBPY3QgIDUgMjAwOSBKYWt1YiBKZWxpbmVrIDxqYWt1YkBy ZWRoYXQuY29tPiA0LjQuMS0xOQotLSB1cGRhdGUgZnJvbSBnY2MtNF80LWJyYW5jaAotICAtIFBS cyBmb3J0cmFuLzQxNDc5LCBmb3J0cmFuLzQxNTE1Ci0tIFZUQSBiYWNrcG9ydHMKLSAgLSBQUnMg ZGVidWcvNDEzNTMsIGRlYnVnLzQxNDA0LCBydGwtb3B0aW1pemF0aW9uLzQxNTExCi0gIC0gYW5v dGhlciBkZWJ1ZyBpbmZvIGZpeCBmb3IgZGVjbHMgcGFzc2VkIGJ5IHJlZmVyZW5jZSAoIzUyNzA1 NywKLSAgICBQUiBkZWJ1Zy80MTU1OCkKLSAgLSBkb24ndCBlbWl0IERXX0FUX25hbWUgb24gRFdf VEFHX2NvbnN0X3R5cGUgKCM1MjY5NzApCi0tIGF2b2lkIGludmFsaWQgZm9sZGluZyBvZiBjYXN0 cyB0byBhZGRyZXNzZXMgb2YgZmlyc3QgZmllbGRzCi0gICgjNTI3MTIxLCBQUiBtaWRkbGUtZW5k LzQxMzE3KQotCi0qIFRodSBPY3QgIDEgMjAwOSBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQu Y29tPiA0LjQuMS0xOAotLSB1cGRhdGUgZnJvbSBnY2MtNF80LWJyYW5jaAotICAtIFBScyBhZGEv NDExMDAsIHRhcmdldC8yMjA5MwotLSBWVEEgYmFja3BvcnRzCi0gIC0gUFJzIGRlYnVnLzQxNDM4 LCBkZWJ1Zy80MTQ3NCwgdGFyZ2V0LzQxMjc5LCB0ZXN0c3VpdGUvNDE0NDQKLS0gZml4IFZUQSBJ Q0Ugb24gTGludXgga2VybmVsICgjNTIxOTkxKQotLSBBTUQgT3JvY2hpIC1tZm1hNCBzdXBwb3J0 Ci0tIGRvbid0IHJ1biBpbnN0YWxsLWluZm8gaWYgaW5mbyBmaWxlcyBhcmUgbWlzc2luZyBiZWNh dXNlIG9mIC0tZXhjbHVkZWRvY3MKLSAgKCM1MTU5MjEsICM1MTU5NjAsICM1MTU5NjIsICM1MTU5 NjUsICM1MTYwMDAsICM1MTYwMDgsICM1MTYwMTQpCi0KLSogRnJpIFNlcCAyNSAyMDA5IEpha3Vi IEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuNC4xLTE3Ci0tIHVwZGF0ZSBmcm9tIGdjYy00 XzQtYnJhbmNoCi0gIC0gZml4IHZlY3Rvcml6ZXIgZm9yIHBvd2VyNyAoIzQ2Mzg0NikKLS0gVlRB IGJhY2twb3J0cwotICAtIGZpeCBkZWJ1ZyBpbmZvIGZvciBwYXJhbWV0ZXJzIHBhc3NlZCBieSBy ZWZlcmVuY2UgKCM1MjU3MDkpCi0gIC0gUFIgYm9vdHN0cmFwLzQxNDU3Ci0tIHJlbW92ZSBwb3dl cjcgVlNYIGxvYWQvc3RvcmUgd2l0aCB1cGRhdGUgaW5zbiBzdXBwb3J0Ci0tIHJlbW92ZSBTU0U1 IHN1cHBvcnQKLQotKiBXZWQgU2VwIDIzIDIwMDkgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0 LmNvbT4gNC40LjEtMTYKLS0gdXBkYXRlIGZyb20gZ2NjLTRfNC1icmFuY2gKLSAgLSBQUnMgYy8z OTc3OSwgYy80MTA0OSwgZGVidWcvNDEwNjUsIGxpYmZmaS80MDI0MiwgbGliZmZpLzQxNDQzLAot CWxpYmdmb3J0cmFuLzQxMzI4LCB0ZXN0c3VpdGUvNDEyODgKLS0gVlRBIGJhY2twb3J0cwotICAt IFBScyBib290c3RyYXAvNDEzOTcsIGJvb3RzdHJhcC80MTQwNCwgYm9vdHN0cmFwLzQxNDA1LCBk ZWJ1Zy80MTI5NSwKLQlkZWJ1Zy80MTQxMSwgZGVidWcvNDE0MzkKLSAgLSBmaXggSUNFIGNhdXNl ZCBieSByZWxvYWQgc3Vic3RpdHV0aW9uIG9mIGNvbnN0X2ludCBpbnRvIHplcm9fZXh0ZW5kCi0g ICAgaW4gZGVidWdfaW5zbiAoIzUyNDQzOSkKLS0gZml4IGFsdGl2ZWMgdmVjX2NtcHtsdCxndH0g KCM1MjQyNzMpCi0tIGZpeCAtbW5vLXNjaGVkLWVwaWxvZ3VlIG9uIHBwYyAoIzUyNDIxNiwgUFIg dGFyZ2V0LzQwNDczKQotLSBkb24ndCBsb29rIGF0IE1VREZMQVBfT1BUSU9OUyBlbnYgdmFyIGlu IHN1aWQvc2dpZCBwcm9ncmFtcwotICAoUFIgbGlibXVkZmxhcC80MTQzMykKLQotKiBGcmkgU2Vw IDE4IDIwMDkgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gNC40LjEtMTUKLS0gZm9y IG5vdyBkaXNhYmxlIG91dCBvZiBsaW5lIGdwci9mcHIgc2F2aW5nIG9uIHBwYyB3aXRoIC1tNjQg LU9zIC1tY2FsbC1haXhkZXNjCi0tIGZpeCBEV19BVF9kZWNsX3tmaWxlLGxvY2F0aW9ufSBmb3Ig RFdfVEFHX3N0cnVjdHVyZV90eXBlIGZvciBDIHN0cnVjdHMKLSAgd2l0aCBmb3J3YXJkIGRlY2xh cmF0aW9ucyAoIzUyMzgxMCkKLQotKiBXZWQgU2VwIDE2IDIwMDkgSmFrdWIgSmVsaW5layA8amFr dWJAcmVkaGF0LmNvbT4gNC40LjEtMTQKLS0gdXBkYXRlIGZyb20gZ2NjLTRfNC1icmFuY2gKLSAg LSBQUnMgZm9ydHJhbi8zOTg3NiwgdHJlZS1vcHRpbWl6YXRpb24vNDExMDEKLS0gYXNtIGdvdG8g c3VwcG9ydAotLSBWVEEgZGVsYXllZCBicmFuY2ggc2NoZWR1bGluZyBmaXggKFBSIGJvb3RzdHJh cC80MTM0OSkKLS0gcG93ZXI3IFZTWCBmaXggKFBSIHRhcmdldC80MTIxMCkKLS0gcHBjIGJzd2Fw IGZpeGVzIChQUiB0YXJnZXQvNDEzMzEpCi0KLSogRnJpIFNlcCAxMSAyMDA5IEpha3ViIEplbGlu ZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuNC4xLTEzCi0tIGZpeCBJQ0UgaW4gZGVidWdpbmZvIG91 dHB1dCB3aXRoIEJMT0NLX05PTkxPQ0FMSVpFRF9WQVJTICgjNTE4MzAzKQotLSB3cmFwX2NvbnN0 YW50IHdoZW4gcHJvcGFnYXRpbmcgZm9yIHN1YnN0IGluIGRlYnVnIGluIHRoZSBjb21iaW5lciAo IzUyMjU3NykKLS0gZnVydGhlciBmaXggZm9yIHBwYyAtbTMyIC1PcyBvdXQgb2YgbGluZSBncHIv ZnByIHJlc3RvcmluZyAoUFIgdGFyZ2V0LzQxMTc1KQotCi0qIFRodSBTZXAgMTAgMjAwOSBKYWt1 YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjQuMS0xMgotLSB1cGRhdGUgZnJvbSBnY2Mt NF80LWJyYW5jaAotICAtIFBScyBib290c3RyYXAvNDExODAsIHRhcmdldC80MTMxNQotLSBmaXgg SUNFIGluIHRyZWUtc3NhLXBoaXByb3AuYyAoIzUyMjI3NywgUFIgdHJlZS1vcHRpbWl6YXRpb24v Mzk4MjcpCi0tIHBwYzY0IGJzd2FwIGZpeAotLSBmaXggcHBjL3BwYzY0IC1tbXVsdGlwbGUgYW5k IG91dCBvZiBsaW5lIGdwci9mcHIgc2F2aW5nIGJ1Z3MKLSAgKCM1MTk0MDksIFBSIHRhcmdldC80 MDY3NywgUFIgdGFyZ2V0LzQxMTc1KQotCi0qIFdlZCBTZXAgIDkgMjAwOSBKYWt1YiBKZWxpbmVr IDxqYWt1YkByZWRoYXQuY29tPiA0LjQuMS0xMQotLSBmaXggSUNFIGluIHRsc19tZW1fbG9jX2Rl c2NyaXB0b3IgKCM1MjE5OTEpCi0KLSogVHVlIFNlcCAgOCAyMDA5IEpha3ViIEplbGluZWsgPGph a3ViQHJlZGhhdC5jb20+IDQuNC4xLTEwCi0tIHVwZGF0ZSBmcm9tIGdjYy00XzQtYnJhbmNoCi0g IC0gUFJzIGZvcnRyYW4vNDEyNTgsIHJ0bC1vcHRpbWl6YXRpb24vNDA4NjEKLS0gZml4IHNjaGVk dWxlciBub3QgdG8gcmVvcmRlciBwb3RlbnRpYWxseSB0cmFwcGluZyBpbnNucyBhY3Jvc3MKLSAg Y2FsbHMgdGhhdCBtaWdodCBub3QgYWx3YXlzIHJldHVybiAoIzUyMDkxNiwgUFIgcnRsLW9wdGlt aXphdGlvbi80MTIzOSkKLS0gbWVyZ2UgaW4gVlRBCi0KLSogVGh1IFNlcCAgMyAyMDA5IEpha3Vi IEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuNC4xLTkKLS0gdXBkYXRlIGZyb20gZ2NjLTRf NC1icmFuY2gKLSAgLSBmaXggd2lkZSBjaGFyIGNvbnN0YW50IHN0cmluZ2lmaWNhdGlvbgotLSBf X2J1aWx0aW5fdW5yZWFjaGFibGUgZml4Ci0KLSogV2VkIFNlcCAgMiAyMDA5IEpha3ViIEplbGlu ZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuNC4xLTgKLS0gZml4IHVwIF9fYnVpbHRpbl9vYmplY3Rf c2l6ZSAoIzUwNTg2MikKLS0gZml4IEZvcnRyYW4gR09UTyB3YXJuaW5nIChQUiBmb3J0cmFuLzM4 NTA3KQotCi0qIFR1ZSBTZXAgIDEgMjAwOSBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29t PiA0LjQuMS03Ci0tIHVwZGF0ZSBmcm9tIGdjYy00XzQtYnJhbmNoCi0gIC0gUFJzIGMrKy80MTEy MCwgYysrLzQxMTI3LCBjKysvNDExMzEsIGZvcnRyYW4vNDEwNjIsIGZvcnRyYW4vNDExMDIsCi0J Zm9ydHJhbi80MTEyMSwgZm9ydHJhbi80MTEyNiwgZm9ydHJhbi80MTEzOSwgZm9ydHJhbi80MTE1 NywKLQlmb3J0cmFuLzQxMTYyLCBsaWJmb3J0cmFuLzQwOTYyLCBsaWJzdGRjKysvNDEwMDUsIG1p ZGRsZS1lbmQvNDEwOTQsCi0JbWlkZGxlLWVuZC80MTEyMywgbWlkZGxlLWVuZC80MTE2MywgdGFy Z2V0LzM0NDEyLCB0YXJnZXQvNDA3MTgKLS0gZml4IHByMjIwMzMuQyBvbiBwcGMqL2lhNjQvc3Bh cmMqCi0tIGVtaXQgbmFtZXNwYWNlIERJRSBldmVuIGlmIGl0IGNvbnRhaW5zIGp1c3Qgc29tZSB1 c2VkIHR5cGUgKFBSIGRlYnVnLzQxMTcwKQotLSBmaXggZHluYW1pY19jYXN0ICgjNTE5NTE3KQot LSBiYWNrcG9ydCBwb3dlcjcgY2hhbmdlcyBmcm9tIHRoZSB0cnVuaywgaW5zdGVhZCBvZiB1c2lu ZyB0aGUgb2xkIGluY29tcGxldGUKLSAgYmFja3BvcnQgZnJvbSBpYm0vcG93ZXI3LW1laXNzbmVy Ci0KLSogVHVlIEF1ZyAxOCAyMDA5IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQu NC4xLTYKLS0gdXBkYXRlIGZyb20gZ2NjLTRfNC1icmFuY2gKLSAgLSBQUnMgYm9vdHN0cmFwLzQx MDE4LCBjLzQxMDQ2LCBkZWJ1Zy8zNzgwMSwgZGVidWcvNDA5OTAsIGZvcnRyYW4vNDA4NDcsCi0J cnRsLW9wdGltaXphdGlvbi80MTAzMywgdGFyZ2V0LzQxMDE1LCB0YXJnZXQvNDEwMTksIHRhcmdl dC84NjAzLAotCXRyZWUtb3B0aW1pemF0aW9uLzQxMDE2Ci0KLSogRnJpIEF1ZyAgNyAyMDA5IEph a3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuNC4xLTUKLS0gdXBkYXRlIGZyb20gZ2Nj LTRfNC1icmFuY2gKLSAgLSBQUnMgYysrLzQwOTQ4LCB0YXJnZXQvNDA5MDYKLS0gLWZleGNlcHRp b25zIHN1cHBvcnQgZm9yIC1mcmVvcmRlci1ibG9ja3MtYW5kLXBhcnRpdGlvbgotCi0qIFdlZCBB dWcgIDUgMjAwOSBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjQuMS00Ci0tIHVw ZGF0ZSBmcm9tIGdjYy00XzQtYnJhbmNoCi0gIC0gUFJzIGJ1aWxkLzQwMDEwLCBjKysvMzk5ODcs IGMrKy80MDc0OSwgYysrLzQwODM0LCBjKysvNDA5NDgsIGRlYnVnLzM5NzA2LAotCWZvcnRyYW4v NDA4MjIsIGZvcnRyYW4vNDA4NDgsIGZvcnRyYW4vNDA4NTEsIGZvcnRyYW4vNDA4NzgsCi0JbGli Zm9ydHJhbi80MDg1MywgbWlkZGxlLWVuZC80MDk0MywgcnRsLW9wdGltaXphdGlvbi80MDkyNCwK LQl0YXJnZXQvNDA1NzcsIHRlc3RzdWl0ZS80MDgyOSwgdGVzdHN1aXRlLzQwODkxLAotCXRyZWUt b3B0aW1pemF0aW9uLzQwNTcwCi0tIGJhY2twb3J0IF9fYnVpbHRpbl91bnJlYWNoYWJsZSAoKSBz dXBwb3J0Ci0tIGZpeCBwb3dlcnBjIElDRSBpbiBtZW1vcnlfYWRkcmVzcyAoIzUxNTY3MiwgUFIg dGFyZ2V0LzQwOTcxKQotCi0qIFNhdCBKdWwgMjUgMjAwOSBKYWt1YiBKZWxpbmVrIDxqYWt1YkBy ZWRoYXQuY29tPiA0LjQuMS0zCi0tIHVwZGF0ZSBmcm9tIGdjYy00XzQtYnJhbmNoCi0gIC0gUFIg Zm9ydHJhbi80MDcyNwotLSBmaXggdW53aW5kIGluZm8gZm9yIC1mcmVvcmRlci1ibG9ja3MtYW5k LXBhcnRpdGlvbnMKLSAgKFBSIHJ0bC1vcHRpbWl6YXRpb24vMzQ5OTkpCi0tIGZpeCBGb3J0cmFu IE1JTkxPQy9NQVhMT0MvTUlOVkFML01BWFZBTCBoYW5kbGluZyBvZiBpbmZpbml0aWVzIGFuZCBO YU5zLAotICBzcGVlZCB0aGVtIHVwIChQUnMgZm9ydHJhbi80MDY0MywgZm9ydHJhbi8zMTA2NykK LS0gZml4IElDRSB3aXRoIEZvcnRyYW4gZGF0YSB4ZmVyIHdpdGhvdXQgaW8gdW5pdCAoUFIgZm9y dHJhbi80MDgzOSkKLQotKiBUaHUgSnVsIDIzIDIwMDkgSmFrdWIgSmVsaW5layA8amFrdWJAcmVk aGF0LmNvbT4gNC40LjEtMgotLSB1cGRhdGUgZnJvbSBnY2MtNF80LWJyYW5jaAotICAtIFBScyBy dGwtb3B0aW1pemF0aW9uLzQwNzEwLCB0YXJnZXQvNDA4MzIsIHRyZWUtb3B0aW1pemF0aW9uLzQw MzIxCi0tIHVzZSBTVEJfR05VX1VOSVFVRSBzeW1ib2xzIGZvciBpbmxpbmUgZm4gbG9jYWwgc3Rh dGljcyBhbmQKLSAgdGVtcGxhdGUgc3RhdGljIGRhdGEgbWVtYmVycwotLSB1c2Ugc3RyY21wIGZv ciBDKysgdHlwZWluZm8gY29tcGFyaXNvbnMgaW5zdGVhZCBvZiBwb2ludGVyIGNvbXBhcmlzb24K LQotKiBXZWQgSnVsIDIyIDIwMDkgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gNC40 LjEtMQotLSB1cGRhdGUgZnJvbSBnY2MtNF80LWJyYW5jaAotICAtIEdDQyA0LjQuMSByZWxlYXNl Ci0KLSogVHVlIEp1bCAyMSAyMDA5IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQu NC4wLTE1Ci0tIHVwZGF0ZSBmcm9tIGdjYy00XzQtYnJhbmNoCi0gIC0gUFJzIGxpYmZvcnRyYW4v NDA3MTQsIHRhcmdldC8zOTk0MywgdGFyZ2V0LzQwODA5LCB0cmVlLW9wdGltaXphdGlvbi80MDc5 MgotICAtIGZpeCBJQ0UgaW4gZ3NpX2luc2VydF9zZXFfbm9kZXNfYWZ0ZXIgKCM1MDU3OTgsCi0g ICAgUFIgdHJlZS1vcHRpbWl6YXRpb24vNDA4MTMpCi0tIHNsaWdodGx5IHJlbGF4IC1EX0ZPUlRJ RllfU09VUkNFPTIgcnVsZXMgZm9yIGZsZXhpYmxlLWFycmF5LW1lbWJlciBsaWtlCi0gIGNvbnN0 cnVjdHMgKCM1MTI2ODksICM1MTE1NzMpCi0tIHZlY3Rvcml6ZSB1bnNpZ25lZCBpbnQgLT4ge2Zs b2F0LGRvdWJsZX0gY29udmVyc2lvbnMgb24geDg2L3g4Nl82NAotICAoUFIgdGFyZ2V0LzQwODEx KQotLSB1cGRhdGUgZm9yIGk1ODYucnBtIC0+IGk2ODYucnBtIHN3aXRjaCAoZGVmYXVsdCB0byAt bWFyY2g9aTY4NiAtbXR1bmU9Z2VuZXJpYwotICBpbiBpNjg2LnJwbSBnY2MgYW5kIGFsc28gd2l0 aCAtbTMyIGluIHg4Nl82NC5ycG0gZ2NjKQotCi0qIEZyaSBKdWwgMTcgMjAwOSBKYWt1YiBKZWxp bmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjQuMC0xNAotLSB1cGRhdGUgZnJvbSBnY2MtNF80LWJy YW5jaAotICAtIFBScyBjKysvNDA3NDAsIGxpYnN0ZGMrKy80MDY5MSwgbWlkZGxlLWVuZC80MDc0 NwotICAtIGZpeCBJQ0UgaW4gZ2ltcGxpZnlfY29udmVyc2lvbiAoIzUxMTIyOSwgUFIgYysrLzQw NzgwKQotCi0qIE1vbiBKdWwgMTMgMjAwOSBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29t PiA0LjQuMC0xMwotLSB1cGRhdGUgZnJvbSBnY2MtNF80LWJyYW5jaAotICAtIFBScyBjKysvMzY2 MjgsIGMrKy8zNzIwNiwgYysrLzQwNTAyLCBjKysvNDA2ODQsIGMrKy80MDY4OSwgZm9ydHJhbi80 MDQ0MCwKLQlydGwtb3B0aW1pemF0aW9uLzQwNjY3LCB0YXJnZXQvNDA2NjgKLS0gYXZvaWQgb3Zl cmxhcHBpbmcgZW50cmllcyBpbiAuZGVidWdfcmFuZ2VzIHNlY3Rpb24gKFBSIGRlYnVnLzQwNzEz KQotCi0qIFdlZCBKdWwgIDggMjAwOSBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0 LjQuMC0xMgotLSB1cGRhdGUgZnJvbSBnY2MtNF80LWJyYW5jaAotICAtIFBScyBjKysvMzU4Mjgs IGMrKy8zNzgxNiwgYysrLzM3OTQ2LCBjKysvNDA1NTcsIGMrKy80MDYzMywgYysrLzQwNjM5LAot CWRlYnVnLzQwNjY2LCB0YXJnZXQvMzg5MDAKLS0gdXNlIG1vcmUgY29tcGFjdCBEV19BVF9tZW1i ZXJfbG9jYXRpb24gZm9yIGNvbnN0YW50IG9mZnNldHMgKFBSIGRlYnVnLzQwNjU5KQotCi0qIFR1 ZSBKdWwgIDcgMjAwOSBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjQuMC0xMQot LSB1cGRhdGUgZnJvbSBnY2MtNF80LWJyYW5jaAotICAtIFBScyBjKysvNDAyNzQsIGMrKy80MDM0 MiwgYysrLzQwNTY2LCBjKysvNDA1OTUsIGMrKy80MDYxOSwgYy8zOTkwMiwKLQlmb3J0cmFuLzQw NDQzLCBmb3J0cmFuLzQwNTUxLCBmb3J0cmFuLzQwNTc2LCBmb3J0cmFuLzQwNTk0LAotCWZvcnRy YW4vNDA2MzgsIGxpYmZvcnRyYW4vNDA1NzYsIGxpYnN0ZGMrKy80MDI5NywgbGlic3RkYysrLzQw NjAwLAotCW1pZGRsZS1lbmQvNDA1ODUsIG1pZGRsZS1lbmQvNDA2NjksIG90aGVyLzQwMDI0LCB0 YXJnZXQvNDA1ODcsCi0JdHJlZS1vcHRpbWl6YXRpb24vNDA0OTMsIHRyZWUtb3B0aW1pemF0aW9u LzQwNTQyLAotCXRyZWUtb3B0aW1pemF0aW9uLzQwNTUwLCB0cmVlLW9wdGltaXphdGlvbi80MDU3 OSwKLQl0cmVlLW9wdGltaXphdGlvbi80MDU4MiwgdHJlZS1vcHRpbWl6YXRpb24vNDA2NDAKLS0g YmFja3BvcnRzIGZyb20gdHJ1bmsKLSAgLSBmaXggZGVidWdpbmZvIGluIGR5bmFtaWNhbGx5IHJl YWxpZ25lZCBmdW5jdGlvbnMgKFBSIGRlYnVnLzQwNTk2KQotICAtIHNwZWVkIHVwIHBvbHloZWRy b24gTkYgKFBSIG1pZGRsZS1lbmQvMzQxNjMpCi0gIC0gZXBpbG9ndWUgdW53aW5kaW5nIGZpeGVz IChQUnMgYm9vdHN0cmFwLzQwMzQ3LCBkZWJ1Zy80MDQ2MikKLSAgLSBmaXggZGVidWcgaW5mbyBm b3IgaW5saW5lcyAoUFIgZGVidWcvNDA1NzMpCi0gIC0gb3B0aW1pemUgYXNzdW1pbmcgYWxsb2Nh dGFibGUgYXJyYXlzIGluIHRoZSBpbm5lcm1vc3QKLSAgICBkaW1lbnNpb24gYXJlIGFsd2F5cyBz dHJpZGUgMSAoUFIgZm9ydHJhbi8zMjEzMSkKLQotKiBUdWUgSnVuIDIzIDIwMDkgSmFrdWIgSmVs aW5layA8amFrdWJAcmVkaGF0LmNvbT4gNC40LjAtMTAKLS0gdXBkYXRlIGZyb20gZ2NjLTRfNC1i cmFuY2gKLSAgLSBQUnMgZm9ydHJhbi8zOTgwMCwgZm9ydHJhbi80MDQwMiwgbGlic3RkYysrLzQw NDk3LCBtaWRkbGUtZW5kLzQwMzg5LAotCW1pZGRsZS1lbmQvNDA0MDQsIG1pZGRsZS1lbmQvNDA0 NDYsIG1pZGRsZS1lbmQvNDA0NjAsIG9iamMvMjgwNTAsCi0JdGFyZ2V0LzQwNDcwLCB0cmVlLW9w dGltaXphdGlvbi80MDQ5MgotLSBkZWNyZWFzZSBtZW1vcnkgY29uc3VtcHRpb24gYW5kIHNwZWVk IHVwIHZhci10cmFja2luZyBwYXNzICgjNTAzODE2KQotLSBfX2J1aWx0aW5fb2JqZWN0X3NpemUg Zml4IGZvciBDKysgKCM1MDY5NTIpCi0KLSogTW9uIEp1biAxNSAyMDA5IEpha3ViIEplbGluZWsg PGpha3ViQHJlZGhhdC5jb20+IDQuNC4wLTkKLS0gdXBkYXRlIGZyb20gZ2NjLTRfNC1icmFuY2gK LSAgLSBQUiBmb3J0cmFuLzQwMTY4Ci0tIGZpeCB1cCBkZWJ1Zy5leHAgdGVzdHN1aXRlIChQUiB0 ZXN0c3VpdGUvNDA0MjYpCi0tIGZpeCB1cCBhIHBhc3RvIGluIHJlY2VudCAtRF9GT1JUSUZZX1NP VVJDRSBjaGFuZ2VzICgjNTA2MDk5KQotCi0qIEZyaSBKdW4gMTIgMjAwOSBKYWt1YiBKZWxpbmVr IDxqYWt1YkByZWRoYXQuY29tPiA0LjQuMC04Ci0tIHVwZGF0ZSBmcm9tIGdjYy00XzQtYnJhbmNo Ci0gIC0gUFJzIGMrKy80MDM4MSwgbGliZm9ydHJhbi80MDMzMAotLSBhZGQgLW1jcmMzMiBzdXBw b3J0IG9uIGl4ODYKLS0gc3VwcG9ydCAtZ2R3YXJmLTMgYW5kIGRlZmF1bHQgdG8gaXQsIGVtaXQg RFdfT1BfY2FsbF9mcmFtZV9jZmEKLS0gZml4IHVwIGl4ODYgcGFkZGluZyBmb3IgYnJhbmNoIG1p c3ByZWRpY3RzCi0tIGltcHJvdmUgLmRlYnVnX2xvYyBnZW5lcmF0aW9uCi0KLSogVHVlIEp1biAg OSAyMDA5IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuNC4wLTcKLS0gdXBkYXRl IGZyb20gZ2NjLTRfNC1icmFuY2gKLSAgLSBQUnMgYWRhLzQwMTY2LCBib290c3RyYXAvNDAwMjcs IGMrKy8zODA2NCwgYysrLzM5NzU0LCBjKysvNDAwMDcsCi0JYysrLzQwMTM5LCBjLzQwMTcyLCBj KysvNDAzMDYsIGMrKy80MDMwNywgYysrLzQwMzA4LCBjKysvNDAzMTEsCi0JYysrLzQwMzcwLCBj KysvNDAzNzIsIGMrKy80MDM3MywgZGVidWcvNDAxMDksIGZvcnRyYW4vMjI0MjMsCi0JZm9ydHJh bi8zODY1NCwgZm9ydHJhbi8zOTg5MywgZm9ydHJhbi80MDAxOSwgZm9ydHJhbi80MDE5NSwKLQls aWJmb3J0cmFuLzI1NTYxLCBsaWJmb3J0cmFuLzM3NzU0LCBsaWJmb3J0cmFuLzM4NjY4LAotCWxp YmZvcnRyYW4vMzk2NjUsIGxpYmZvcnRyYW4vMzk2NjcsIGxpYmZvcnRyYW4vMzk3MDIsCi0JbGli Zm9ydHJhbi8zOTcwOSwgbGliZm9ydHJhbi8zOTc4MiwgbGliZm9ydHJhbi80MDMzNCwKLQlsaWJn Zm9ydHJhbi8zOTY2NCwgbGliZ29tcC80MDE3NCwgbGlic3RkYysrLzM2MjExLCBsaWJzdGRjKysv NDAxOTIsCi0JbGlic3RkYysrLzQwMjk2LCBsaWJzdGRjKysvNDAyOTksIG1pZGRsZS1lbmQvMzI5 NTAsIG1pZGRsZS1lbmQvNDAxNDcsCi0JbWlkZGxlLWVuZC80MDIwNCwgbWlkZGxlLWVuZC80MDIz MywgbWlkZGxlLWVuZC80MDI1MiwKLQltaWRkbGUtZW5kLzQwMjkxLCBtaWRkbGUtZW5kLzQwMzI4 LCBtaWRkbGUtZW5kLzQwMzQwLAotCXJ0bC1vcHRpbWl6YXRpb24vNDAxMDUsIHRhcmdldC80MDAx NywgdGFyZ2V0LzQwMTUzLCB0YXJnZXQvNDAyNjYsCi0JdGVzdHN1aXRlLzM5OTA3LCB0cmVlLW9w dGltaXphdGlvbi8zOTk5OSwgdHJlZS1vcHRpbWl6YXRpb24vNDAwODcsCi0JdHJlZS1vcHRpbWl6 YXRpb24vNDAyMzgsIHRyZWUtb3B0aW1pemF0aW9uLzQwMjU0Ci0tIHN1cHBvcnQgQXRvbSBmb3Ig LW1hcmNoPW5hdGl2ZQotLSBhZGQgLW1tb3ZiZSBzdXBwb3J0IGZvciBBdG9tCi0tIGltcHJvdmUg aXg4NiBpbnN0cnVjdGlvbiBsZW5ndGggY29tcHV0YXRpb24sIHJlbW92ZSBzb21lIHVubmVlZGVk IHBhZGRpbmcKLS0gLURfRk9SVElGWV9TT1VSQ0UgaW1wcm92ZW1lbnRzCi0tIGVtaXQgYWNjdXJh dGUgZXBpbG9ndWUgdW53aW5kaW5nIGluZm9ybWF0aW9uCi0tIGFkZCB1bndpbmQgZGVidWcgaG9v ayBmb3IgZ2RiCi0KLSogVGh1IE1heSAxNCAyMDA5IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhh dC5jb20+IDQuNC4wLTUKLS0gdXBkYXRlIGZyb20gZ2NjLTRfNC1icmFuY2gKLSAgLSBQUnMgYysr LzE3Mzk1LCBjLzM5OTgzLCBmb3J0cmFuLzM4ODYzLCBmb3J0cmFuLzM4OTU2LCBmb3J0cmFuLzM5 ODc5LAotCWZvcnRyYW4vNDAwMTgsIGxpYnN0ZGMrKy8zOTU0NiwgbGlic3RkYysrLzQwMDM4LCBt aWRkbGUtZW5kLzM5OTg2LAotCW1pZGRsZS1lbmQvNDAwMjEsIG1pZGRsZS1lbmQvNDAwMjMsIG1p ZGRsZS1lbmQvNDAwNDMsCi0JbWlkZGxlLWVuZC80MDA1NywgbWlkZGxlLWVuZC80MDA4MCwgdGFy Z2V0LzM3MTc5LAotCXRyZWUtb3B0aW1pemF0aW9uLzQwMDYyLCB0cmVlLW9wdGltaXphdGlvbi80 MDA3NAotLSBmaXggRm9ydHJhbiBGTVQ9IGNoYXJhY3RlciBhcnJheSBhcmd1bWVudHMgKCM0OTIy MDksIFBSIGZvcnRyYW4vMzk4NjUpCi0tIGFsbG93IHB1dHRpbmcgYnJlYWtwb2ludHMgb24gRm9y dHJhbiBFTkR7U1VCUk9VVElORSxGVU5DVElPTn0KLSAgKFBSIGZvcnRyYW4vMzQxNTMpCi0tIGlu Y29ycG9yYXRlIGNoYW5nZXMgc3VnZ2VzdGVkIGluIGdjYzQ0IHBhY2thZ2UgcmV2aWV3ICgjNDk4 OTExKQotCi0qIFdlZCBNYXkgIDYgMjAwOSBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29t PiA0LjQuMC00Ci0tIHVwZGF0ZSBmcm9tIGdjYy00XzQtYnJhbmNoCi0gIC0gUFJzIGMrKy80MDAx MywgbGliZ2NqLzM5ODk5LCBsaWJzdGRjKysvMzk4NjgsIGxpYnN0ZGMrKy8zOTg4MCwKLQlsaWJz dGRjKysvMzk4ODEsIGxpYnN0ZGMrKy8zOTg4MiwgbGlic3RkYysrLzM5OTA5LCBtaWRkbGUtZW5k LzM5OTM3LAotCXJ0bC1vcHRpbWl6YXRpb24vMzk5MTQsIHRhcmdldC8zOTU2NSwgdGVzdHN1aXRl LzM5NzY5LAotCXRlc3RzdWl0ZS8zOTc3NiwgdGVzdHN1aXRlLzM5NzkwLCB0ZXN0c3VpdGUvMzk4 MDcsCi0JdHJlZS1vcHRpbWl6YXRpb24vMzk5NDEKLSAgLSBmaXggcGhpcHJvcCB0dXBsaWZpY2F0 aW9uICgjNDk2NDAwLCBQUiB0cmVlLW9wdGltaXphdGlvbi80MDAyMikKLS0gZG9uJ3QgYWRkIGFy dGlmaWNpYWwgZGVmYXVsdCBjYXNlIGxhYmVsIGlmIHN3aXRjaCBsYWJlbHMgYWxyZWFkeQotICBj b3ZlciB0aGUgd2hvbGUgcmFuZ2UgKFBSIG1pZGRsZS1lbmQvMzk2NjYpCi0tIGZpeCBEU0Ugd2l0 aCBibG9jayByZWFkcyAoUFIgbWlkZGxlLWVuZC80MDAzNSkKLS0gZml4IGRlYnVnaW5mbyBmb3Ig QysrIHR5cGVkZWYgc3RydWN0IHsuLi59IFQgKFBSIGRlYnVnLzM1NDYzKQotLSByZW1vdmUgc29t ZSB1bm5lY2Vzc2FyeSBwYWRkaW5nIG9uIHg4Nl82NC9pMzg2IGFkZGVkIGZvciA+PSA0IGNvbnRy b2wKLSAgZmxvdyBpbnNucyBpbiBhIDE2LWJ5dGUgYmxvY2sgKFBSIHRhcmdldC8zOTk0MikKLS0g ZG9uJ3QgY3JlYXRlIGludmFsaWQgRFdBUkYgbG9jYXRpb24gbGlzdHMgY29udGFpbmluZyBEV19P UF9yZWcqCi0gIGZvbGxvd2VkIGJ5IERXX09QX2RlcmVmKiwgaW5zdGVhZCB1c2UgRFdfT1BfYnJl ZyogMCAoIzQ4MTY3NSkKLS0gYWRkIGxpYnN0ZGMrKy1kb2NzIHN1YnBhY2thZ2UsIG1vdmUgaHRt bCBtYW51YWwgdG8gaXQsIGFkZCBkb3h5Z2VuCi0gIGdlbmVyYXRlZCBodG1sIGFuZCBtYW4gcGFn ZXMKLQotKiBNb24gQXByIDI3IDIwMDkgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4g NC40LjAtMwotLSB1cGRhdGUgZnJvbSBnY2MtNF80LWJyYW5jaAotICAtIFBSIGJvb3RzdHJhcC8z OTczOQotICAtIGZpeCAtV3VudXNlZC12YWx1ZSAoIzQ5NzU0NSwgUFIgYy8zOTg4OSkKLS0gYmFj a3BvcnQgZnVydGhlciBwb3dlcjctbWVpc3NuZXIgYnJhbmNoIGNoYW5nZXMgKCM0OTc4MTYpCi0t IGZpeCByZWctc3RhY2sgSUNFIG9uIFNQRUMyazYgNDUzLnBvdnJheSB3aXRoIC1tMzIgLU8zIC1t c3NlMwotICAoUFIgdGFyZ2V0LzM5ODU2KQotLSBmaXggeDg2XzY0IElDRSBvbiBwYXNzaW5nIHN0 cnVjdHVyZSB3aXRoIGZsZXhpYmxlIGFycmF5IG1lbWJlcgotICAoUFIgdGFyZ2V0LzM5OTAzKQot Ci0qIEZyaSBBcHIgMjQgMjAwOSBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjQu MC0yCi0tIHVwZGF0ZSBmcm9tIGdjYy00XzQtYnJhbmNoCi0gIC0gUFIgYysrLzM4MjI4Ci0tIGZp eCBmb2xkaW5nIG9mIGNvbmQgZXhwciB3aXRoIGNvbXBhcmlzb24gdG8gTUFYL01JTiAoUFIgbWlk ZGxlLWVuZC8zOTg2NykKLS0gZml4IHVwIGdjYy1nbmF0IGluc3RhbGwtaW5mbyBhcmd1bWVudHMg KCM0NTI3ODMpCi0KLSogVGh1IEFwciAyMyAyMDA5IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhh dC5jb20+IDQuNC4wLTEKLS0gdXBkYXRlIGZyb20gZ2NjLTRfNC1icmFuY2gKLSAgLSBHQ0MgNC40 LjAgcmVsZWFzZQotICAtIFBScyBsaWJzdGRjKysvMzk4MDIsIGMrKy8zOTYzOSwgYy8zOTg1NSwg cnRsLW9wdGltaXphdGlvbi8zOTc2MiwKLQl0ZXN0c3VpdGUvMzk3ODEsIHRyZWUtb3B0aW1pemF0 aW9uLzM5ODI0Ci0tIGZpeCB1cCBEU0UgKFBSIHJ0bC1vcHRpbWl6YXRpb24vMzk3OTQpCi0tIGRl YnVnaW5mbyBmaXhlcyBmb3IgVkxBIGFuZCBuZXN0ZWQvY29udGFpbmVkIGZ1bmN0aW9ucyAoIzQ1 OTM3NCkKLS0gaW1wcm92ZSAtZnRyZWUtc3dpdGNoLWNvbnZlcnNpb24gb3B0aW1pemF0aW9uIGlm IHRoZSBjb25zdGFudCBpcyB0aGUKLSAgc2FtZSBpbiBhbGwgY2FzZXMKLQotKiBNb24gQXByIDIw IDIwMDkgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gNC40LjAtMC4zNQotLSB1cGRh dGUgZnJvbSBnY2MtNF80LWJyYW5jaAotICAtIFBScyBtaWRkbGUtZW5kLzM5ODA0LCB0YXJnZXQv Mzk2NzgsIHRhcmdldC8zOTc2NywgdHJlZS1vcHRpbWl6YXRpb24vMzk2NzUsCi0JdHJlZS1vcHRp bWl6YXRpb24vMzk3NjQKLQotKiBUdWUgQXByIDE0IDIwMDkgSmFrdWIgSmVsaW5layA8amFrdWJA cmVkaGF0LmNvbT4gNC40LjAtMC4zNAotLSB1cGRhdGUgZnJvbSBnY2MtNF80LWJyYW5jaAotICAt IEdDQyA0LjQuMC1yYzEKLSAgLSBsaWNlbnNlIGNoYW5nZXMgdG8gR1BMdjMrIHdpdGggR0NDIFJ1 bnRpbWUgRXhjZXB0aW9uIGZvciBtb3N0IG9mIHRoZQotICAgIGxpYiogZmlsZXMKLSAgLSBQUnMg YysrLzI4MzAxLCBjKysvMzk0ODAsIGMrKy8zOTc0MiwgYysrLzM5NzUwLCBjLzM5NjEzLCBjLzM5 NjE0LCBjLzM5NjczLAotCWxpYm9iamMvMzY2MTAsIHRhcmdldC8zOTc0MCwgdGVzdHN1aXRlLzM1 NjIxLCB0cmVlLW9wdGltaXphdGlvbi8zOTcxMwotLSBmaXggYW5vdGhlciAtV3NoYWRvdyBDKysg aXNzdWUgKFBSIGMrKy8zOTc2MykKLQotKiBUaHUgQXByICA5IDIwMDkgSmFrdWIgSmVsaW5layA8 amFrdWJAcmVkaGF0LmNvbT4gNC40LjAtMC4zMgotLSB1cGRhdGUgZnJvbSBnY2MtNF80LWJyYW5j aAotICAtIFBScyBjKysvMzQ2OTEsIGMrKy8zNTE0NiwgYysrLzM1MjQwLCBjKysvMzc4MDYsIGMr Ky8zODAzMCwgYysrLzM4ODUwLAotCWMrKy8zOTYwOCwgYysrLzM5NjM3LCBjKysvNDkyNiwgYy8z Nzc3MiwgZm9ydHJhbi8zODE1MiwKLQlmb3J0cmFuLzM5NTE5LCBmb3J0cmFuLzM5NTk0LCBsaWJt dWRmbGFwLzM4NDYyLCBsaWJzdGRjKysvMzkzMTAsCi0JbWlkZGxlLWVuZC8zOTU3Mywgb2JqYy8x ODQ1Niwgb2JqYy8yNzM3Nywgb3RoZXIvMzk1OTEsCi0JcnRsLW9wdGltaXphdGlvbi8zOTU4OCwg cnRsLW9wdGltaXphdGlvbi8zOTYwNywgdGFyZ2V0LzM5NTAxLAotCXRhcmdldC8zOTU5MiwgdGFy Z2V0LzM5NjM0LCB0ZXN0c3VpdGUvMzkzMjUsIHRyZWUtb3B0aW1pemF0aW9uLzM1MDExLAotCXRy ZWUtb3B0aW1pemF0aW9uLzM5NTk1LCB0cmVlLW9wdGltaXphdGlvbi8zOTY0OAotICAtIGhhbmRs ZSAuY2ZpX3VuZGVmaW5lZCglaXApIGluIGxpYmdjY19zIHVud2luZGVyICgjNDkxNTQyKQotLSBm aXggZGVidWcgaW5mbyBmb3IgQysrIHN0YXRpYyBkYXRhIG1lbWJlcnMgKCM0MTA2OTEpCi0tIHJl dmVydCBmd3Byb3AgZml4LCBpdCBjYXVzZXMgZ2xpYmMuaTU4NiBtaXNjb21waWxhdGlvbgotCi0q IE1vbiBNYXIgMzAgMjAwOSBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjQuMC0w LjMxCi0tIHVwZGF0ZSBmcm9tIGdjYy00XzQtYnJhbmNoCi0gIC0gUFIgdGFyZ2V0LzM5NTQ1Ci0g IC0gZml4IEZvcnRyYW4gYmluZChjKSBmdW5jdGlvbiB1c2luZyBSRVNVTFQoKSAoIzQ5MjY1NykK LS0gZml4IGJvZ3VzIHdhcm5pbmdzIG9uIHN0cmNtcC9zdHJuY21wIG1hY3JvcyAoIzQ5Mjg0NikK LQotKiBTYXQgTWFyIDI4IDIwMDkgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gNC40 LjAtMC4zMAotLSB1cGRhdGUgZnJvbSBnY2MtNF80LWJyYW5jaAotICAtIFBScyBjKysvMzkzODAs IGMrKy8yODI3NCwgYysrLzI5NzI3LCBjKysvMzU2NTIsIGMrKy8zNjc5OSwgYysrLzM3NjQ3LAot CWMrKy8zODYzOCwgYysrLzM5NTU0LCBsaWJmb3J0cmFuLzM5NTI4LCBtaWRkbGUtZW5kLzM5NDk3 LAotCXJ0bC1vcHRpbWl6YXRpb24vMzk1MjIsIHRhcmdldC8zODAzNCwgdGFyZ2V0LzM5NTIzLAot CXRyZWUtb3B0aW1pemF0aW9uLzM5NTI5LCB0cmVlLW9wdGltaXphdGlvbi8zOTU0OCwKLQl0cmVl LW9wdGltaXphdGlvbi8zOTU1NwotLSBlbWl0IGRlYnVnaW5mbyBmb3IgYmxvY2sgbG9jYWwgZXh0 ZXJucyBpbiBDIChQUiBkZWJ1Zy8zOTU2MykKLS0gZml4IC1tYWx0aXZlYyBjb25kaXRpb25hbCB2 ZWN0b3IgbWFjcm8gKFBSIHRhcmdldC8zOTU1OCkKLS0gdGVhY2ggZndwcm9wIHRvIGhhbmRsZSBh c20gKFBSIGlubGluZS1hc20vMzk1NDMpCi0KLSogVHVlIE1hciAyNCAyMDA5IEpha3ViIEplbGlu ZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuNC4wLTAuMjkKLS0gdXBkYXRlIGZyb20gdHJ1bmsKLSAg LSBQUnMgYysrLzI4ODc5LCBjKysvMzc3MjksIGMrKy8zOTUyNiwgZGVidWcvMzk1MjQsIHRyZWUt b3B0aW1pemF0aW9uLzM5NTE2Ci0KLSogVGh1IE1hciAxOSAyMDA5IEpha3ViIEplbGluZWsgPGph a3ViQHJlZGhhdC5jb20+IDQuNC4wLTAuMjgKLS0gdXBkYXRlIGZyb20gdHJ1bmsKLSAgLSBQUnMg YysrLzM5NDI1LCBjKysvMzk0NzUsIGMvMzk0OTUsIGRlYnVnLzM5NDg1LCBtaWRkbGUtZW5kLzM3 ODA1LAotCW1pZGRsZS1lbmQvMzg2MDksIG1pZGRsZS1lbmQvMzkzNzgsIG1pZGRsZS1lbmQvMzk0 NDcsCi0JbWlkZGxlLWVuZC8zOTUwMCwgdGFyZ2V0LzM1MTgwLCB0YXJnZXQvMzkwNjMsIHRhcmdl dC8zOTQ5NgotICAtIGZpeCBSQSBidWcgd2l0aCBnbG9iYWwgcmVnIHZhcmlhYmxlcyAoIzQ5MDUw OSkKLS0gdXNlIERXX0xBTkdfQzk5IGZvciAtc3RkPWM5OSBvciAtc3RkPWdudTk5IGNvbXBpbGVk IEMgY29kZSAoUFIgZGVidWcvMzg3NTcpCi0tIGVtaXQgRFdfQVRfZXhwbGljaXQgd2hlbiBuZWVk ZWQgKFBSIGRlYnVnLzM3OTU5KQotLSBvcHRpbWl6ZSBtZW1tb3ZlIGludG8gbWVtY3B5IGluIG1v cmUgY2FzZXMgd2hlbiB3ZSBjYW4gcHJvdmUgc3JjIGFuZCBkZXN0Ci0gIGRvbid0IG92ZXJsYXAK LQotKiBUdWUgTWFyIDE3IDIwMDkgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gNC40 LjAtMC4yNwotLSB1cGRhdGUgZnJvbSB0cnVuawotICAtIFBScyBkZWJ1Zy8zNzg5MCwgZGVidWcv Mzk0NzEsIGRlYnVnLzM5NDc0LCBsaWJzdGRjKysvMzk0MDUsIHRhcmdldC8zNDI5OSwKLQl0YXJn ZXQvMzk0NzMsIHRhcmdldC8zOTQ3NiwgdGFyZ2V0LzM5NDc3LCB0YXJnZXQvMzk0ODIsCi0JdGVz dHN1aXRlLzM3NjI4LCB0ZXN0c3VpdGUvMzc2MzAsIHRlc3RzdWl0ZS8zNzk2MCwgdGVzdHN1aXRl LzM4NTI2LAotCXRyZWUtb3B0aW1pemF0aW9uLzM5NDU1Ci0KLSogU2F0IE1hciAxNCAyMDA5IEph a3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuNC4wLTAuMjYKLS0gZml4IHBwYzY0IHJl Z3Jlc3Npb24gY2F1c2VkIGJ5IHRoZSBwb3dlcjcgYmFja3BvcnQgKCM0OTAxNDksCi0gIFBSIHRh cmdldC8zOTQ1NykKLQotKiBGcmkgTWFyIDEzIDIwMDkgSmFrdWIgSmVsaW5layA8amFrdWJAcmVk aGF0LmNvbT4gNC40LjAtMC4yNQotLSB1cGRhdGUgZnJvbSB0cnVuawotICAtIFBScyBkZWJ1Zy8z OTA4NiwgZGVidWcvMzk0MzIsIGxpYm9iamMvMjc0NjYsIG1pZGRsZS1lbmQvMzc4NTAsCi0JdGFy Z2V0LzM5MTM3LCB0YXJnZXQvMzkxODEsIHRhcmdldC8zOTQzMSwgdGFyZ2V0LzM5NDQ1LCB0YXJn ZXQvNTM2MiwKLQl0ZXN0c3VpdGUvMzk0NTEsIHRyZWUtb3B0aW1pemF0aW9uLzM5NDIyCi0tIGZp eCBJQ0UgaW4gZ2VuX3RhZ2dlZF90eXBlX2luc3RhbnRpYXRpb25fZGllICgjNDg5MzA4LCBQUiBk ZWJ1Zy8zOTQxMikKLS0gZml4IG1lbWNtcCBidWlsdGluIGFzbSByZWRpcmVjdGlvbiAoUFIgbWlk ZGxlLWVuZC8zOTQ0MykKLS0gZml4IHNwYXJjdjkgcHJvZmlsZWRib290c3RyYXAgKFBSIGJvb3Rz dHJhcC8zOTQ1NCkKLQotKiBUaHUgTWFyIDEyIDIwMDkgRGVubmlzIEdpbG1vcmUgPGRlbm5pc0Bh dXNpbC51cz4KLS0gZG9uJ3QgYnVpbGQgd2l0aCBncmFwaGl0ZSBzdXBwb3J0IG9uIHNwYXJjIGFy Y2hlcwotICAtIHN0aWxsIG1pc3Npbmcgc29tZSBkZXBzCi0KLSogVHVlIE1hciAxMCAyMDA5IEph a3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuNC4wLTAuMjQKLS0gdXBkYXRlIGZyb20g dHJ1bmsKLSAgLSBQUnMgYWRhLzM5MjIxLCBjKysvMzkwNjAsIGMrKy8zOTM2NywgYysrLzM5Mzcx LCBsaWJmb3J0cmFuLzM5NDAyLAotCW1pZGRsZS1lbmQvMzgwMjgsIHRhcmdldC8zOTM2MSwgdHJl ZS1vcHRpbWl6YXRpb24vMzkzOTQKLS0gdXNlIHN5c3RlbSBjbG9vZy1wcGwgaW5zdGVhZCBvZiBi dWlsZGluZyBhIHByaXZhdGUgbGliY2xvb2cuc28uMCAoIzQ4OTE4MykKLS0gcHJlbGltaW5hcnkg UG93ZXI3IHN1cHBvcnQgKCM0NjM4NDYpCi0KLSogU2F0IE1hciAgNyAyMDA5IEpha3ViIEplbGlu ZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuNC4wLTAuMjMKLS0gdXBkYXRlIGZyb20gdHJ1bmsKLSAg LSBQUnMgYysrLzEzNTQ5LCBjKysvMjk0NjksIGMrKy8yOTYwNywgYysrLzMzNDkyLCBjKysvMzc1 MjAsIGMrKy8zODkwOCwKLQljKysvOTYzNCwgZGVidWcvMzkzNzIsIG1pZGRsZS1lbmQvMzkzNjAs IHJ0bC1vcHRpbWl6YXRpb24vMzkyMzUsCi0JdGVzdHN1aXRlLzM5MzU3LCB0cmVlLW9wdGltaXph dGlvbi8zOTM0OQotICAtIGVtaXQgRFdfVEFHX2ltcG9ydGVkKiBldmVuIGluIG1haW4gb3IgaW4g bGV4aWNhbCBibG9ja3MgdGhhdAotICAgIGNvbnRhaW4gbm8gYXV0b21hdGljIHZhcmlhYmxlcyAo IzQ4ODU0NywgUFIgZGVidWcvMzkzNzkpCi0gIC0gZml4IERXX0FUX2RlY2xfbGluZSBvbiBEV19U QUdfaW1wb3J0ZWQqICgjNDg4NzcxLCBQUiBkZWJ1Zy8zOTM4NykKLSAgLSBmaXggU0NDVk4gd2l0 aCBTU0EgbmFtZXMgb2NjdXJyaW5nIGluIGFibm9ybWFsIFBISXMgKCM0ODgwNjEsCi0gICAgUFIg dHJlZS1vcHRpbWl6YXRpb24vMzkzNjIpCi0KLSogV2VkIE1hciAgNCAyMDA5IEpha3ViIEplbGlu ZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuNC4wLTAuMjIKLS0gdXBkYXRlIGZyb20gdHJ1bmsKLSAg LSBQUnMgYWRhLzM5MTcyLCBhZGEvMzkyNjQsIGJvb3RzdHJhcC8zOTI1NywgYysrLzM2NDExLCBj KysvMzc3ODksCi0JYysrLzM4ODgwLCBjKysvMzkyMjUsIGMrKy8zOTI0MiwgYy8xMjI0NSwgY2xh c3NwYXRoLzM4NDE3LAotCWNsYXNzcGF0aC8zODkxMiwgZGVidWcvMzkyNjcsIGRlYnVnLzM5Mjg1 LCBmb3J0cmFuLzM4OTE0LAotCWZvcnRyYW4vMzkyOTIsIGZvcnRyYW4vMzkyOTUsIGZvcnRyYW4v MzkzMDksIGZvcnRyYW4vMzkzNTQsCi0JbGliZ2NqLzM4ODYxLCBtaWRkbGUtZW5kLzEwMTA5LCBt aWRkbGUtZW5kLzM0NDQzLAotCW1pZGRsZS1lbmQvMzkxNTcsIG1pZGRsZS1lbmQvMzkyNzIsIG1p ZGRsZS1lbmQvMzkzMDgsCi0JbWlkZGxlLWVuZC8zOTMzNSwgbWlkZGxlLWVuZC8zOTM0NSwgcnRs LW9wdGltaXphdGlvbi8zOTI0MSwKLQl0YXJnZXQvMzM3ODUsIHRhcmdldC8zNTk2NSwgdGFyZ2V0 LzM5MjU2LCB0YXJnZXQvMzkyNjEsCi0JdGFyZ2V0LzM5MzI3LCB0ZXN0c3VpdGUvMzgxNjQsIHRy ZWUtb3B0aW1pemF0aW9uLzM3NzA5LAotCXRyZWUtb3B0aW1pemF0aW9uLzM5MjQ4LCB0cmVlLW9w dGltaXphdGlvbi8zOTI1OSwKLQl0cmVlLW9wdGltaXphdGlvbi8zOTI2MCwgdHJlZS1vcHRpbWl6 YXRpb24vMzkzMTgsCi0JdHJlZS1vcHRpbWl6YXRpb24vMzkzMzEsIHRyZWUtb3B0aW1pemF0aW9u cy8zOTI1OSwKLQl0cmVlLW9wdGltaXphdGlvbi8zOTM1OAotICAtIGZpeCBpdm9wdHMgKCM0ODYw ODgsIFBSIHRyZWUtb3B0aW1pemF0aW9uLzM5MjMzKQotICAtIGZpeCBTUkEgKCM0ODc3OTUsIFBS IHRyZWUtb3B0aW1pemF0aW9uLzM5MzM5KQotICAtIGZpeCBfX2J1aWx0aW5fb2JqZWN0X3NpemUg d2l0aCB1bmlvbnMgKCM0ODc3MDIsCi0gICAgUFIgdHJlZS1vcHRpbWl6YXRpb24vMzkzNDMpCi0t IGZpeCBwcGMgLW02NCAtTzIgLW10dW5lPWNlbGwgYW5kIHBhdHRlcm5zICgjNDg1MDY3LCBQUiB0 YXJnZXQvMzkyMjYpCi0tIC1tYXJjaD1hdG9tLy1tdHVuZT1hdG9tIHN1cHBvcnQgZnJvbSBpeDg2 L2F0b20gYnJhbmNoCi0KLSogVGh1IEZlYiAxOSAyMDA5IEpha3ViIEplbGluZWsgPGpha3ViQHJl ZGhhdC5jb20+IDQuNC4wLTAuMjEKLS0gdXBkYXRlIGZyb20gdHJ1bmsKLSAgLSBQUnMgYysrLzM5 MTg4LCBjKysvMzkyMTksIGMvMzU0NDcsIGMvMzg0ODMsIHRhcmdldC8zNDU4NywKLQl0YXJnZXQv Mzg4OTEsIHRhcmdldC8zOTA4MiwgdGFyZ2V0LzM5MTc5LCB0YXJnZXQvMzkyMjQsCi0JdGFyZ2V0 LzM5MjI4LCB0ZXN0c3VpdGUvMzgxNjUsIHRlc3RzdWl0ZS8zODE2NiwKLQl0cmVlLW9wdGltaXph dGlvbi8zNjkyMiwgdHJlZS1vcHRpbWl6YXRpb24vMzkwNzQsCi0gIC0gYW5vdGhlciBib2d1cyBh bGlhc2luZyB3YXJuaW5nIGZpeCAoIzQ4NTQ2MywgUFIgdHJlZS1vcHRpbWl6YXRpb24vMzkyMDcp Ci0tIGZpeCB0YWlsIGNhbGwgb3B0aW1pemF0aW9uIG9uIHBwYyAoIzQ4NTA2NywgUFIgdGFyZ2V0 LzM5MjQwKQotCi0qIFR1ZSBGZWIgMTcgMjAwOSBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQu Y29tPiA0LjQuMC0wLjIwCi0tIHVwZGF0ZSBmcm9tIHRydW5rCi0gIC0gUFJzIGMvMzU0NDYsIG1p ZGRsZS1lbmQvMzkyMTQsIHRyZWUtb3B0aW1pemF0aW9uLzM5MjAyCi0gIC0gZml4IElDRSBpbiBj b21wdXRlX2F0dGljICgjNDg1NzA4LCBQUiB0cmVlLW9wdGltaXphdGlvbi8zOTIwNCkKLSAgLSBm aXggYm9ndXMgYWxpYXNpbmcgd2FybmluZyAoIzQ4NTQ2MywgUFIgdHJlZS1vcHRpbWl6YXRpb24v MzkyMDcpCi0tIHVwZGF0ZSBmb3IgaTM4Ni5ycG0gLT4gaTU4Ni5ycG0gc3dpdGNoCi0KLSogTW9u IEZlYiAxNiAyMDA5IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuNC4wLTAuMTkK LS0gdXBkYXRlIGZyb20gdHJ1bmsKLSAgLSBQUnMgYysrLzM5MDcwLCBmb3J0cmFuLzM2NTI4LCBm b3J0cmFuLzM2NzAzLCBmb3J0cmFuLzM4MjU5LAotCWxpYnN0ZGMrKy8zOTE2OCwgdGFyZ2V0LzM3 MDQ5LCB0YXJnZXQvMzgwNTYsIHRhcmdldC8zOTE0OSwKLQl0YXJnZXQvMzkxNjIsIHRhcmdldC8z OTE5NgotICAtIGl4ODYgcGVlcGhvbGUgZml4ICgjNDg1NzI5LCBQUiB0YXJnZXQvMzkxNTIpCi0g IC0gdWdsaWZ5IGZ1bmN0aW9uIHBhcmFtZXRlciBuYW1lcyBpbiBndGhyKi5oICgjNDg1NjE5KQot Ci0qIEZyaSBGZWIgMTMgMjAwOSBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjQu MC0wLjE4Ci0tIHVwZGF0ZSBmcm9tIHRydW5rCi0gIC0gUFJzIGMrKy8zMDExMSwgYysrLzM4OTUw LCBjKysvMzkxNTMsIGMvMzU0NDQsIG1pZGRsZS1lbmQvMzkxNTQsCi0JdGFyZ2V0LzM4ODI0LCB0 YXJnZXQvMzkxNTIKLS0gZml4IElDRSBvbiBwcGMzMiB3aXRoIC1mcGljIC1mdmlzaWJpbGl0eT1o aWRkZW4gKCM0ODUyMzIsIFBSIHRhcmdldC8zOTE3NSkKLQotKiBXZWQgRmViIDExIDIwMDkgSmFr dWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gNC40LjAtMC4xNwotLSB1cGRhdGUgZnJvbSB0 cnVuawotICAtIGZpeCBJQ0Ugb24geGVuIChQUiB0YXJnZXQvMzkxMzkpCi0gIC0gUFJzIGMrKy8z NDM5NywgYysrLzM1MTQ3LCBjKysvMzY3NDQsIGMrKy8zNzczNywgYysrLzM4NjQ5LCBjKysvMzkx MDksCi0JYy8zNTQzNCwgYy8zNjQzMiwgYy8zOTAzNSwgYy8zOTA4NCwgbWlkZGxlLWVuZC8zNTIw MiwKLQltaWRkbGUtZW5kLzM4OTUzLCBtaWRkbGUtZW5kLzM4OTgxLCBtaWRkbGUtZW5kLzM5MTI0 LAotCW1pZGRsZS1lbmQvMzkxMjcsIHRhcmdldC8zOTExOCwgdGFyZ2V0LzM5MTE5LCB0ZXN0c3Vp dGUvMzMzMDAsCi0JdHJlZS1vcHRpbWl6YXRpb24vMzkxMzIKLS0gZm9yY2UgZW1pdHRpbmcgLmRl YnVnX2luZm8gZm9yIGVtcHR5IENVcyB3aXRoIC1nMyAoIzQ3OTkxMikKLQotKiBGcmkgRmViICA2 IDIwMDkgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gNC40LjAtMC4xNgotLSB1cGRh dGUgZnJvbSB0cnVuawotICAtIGRvbid0IGVtaXQgdGh1bmtzIGZvciB2ZXJzaW9uZWQgZnVuY3Rp b25zIChQUiBjKysvMzkxMDYpCi0gIC0gZml4IC1mc3RyaWN0LWFsaWFzaW5nIG1pc2NvbXBpbGF0 aW9uIChQUiB0cmVlLW9wdGltaXphdGlvbi8zOTEwMCkKLQotKiBXZWQgRmViICA0IDIwMDkgSmFr dWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gNC40LjAtMC4xNQotLSB1cGRhdGUgZnJvbSB0 cnVuawotICAtIEMrKyBtYW5nbGluZyBmaXggKFBSIGMrKy8zOTA5NSkKLSAgLSBvbmx5IGNvbXBs YWluIGFib3V0IGNhbGxpbmcgbWFpbiBpbiBDKysgaWYgLXBlZGFudGljCi0tIGFkZCByYXcgc3Ry aW5nIHN1cHBvcnQKLQotKiBUdWUgRmViICAzIDIwMDkgSmFrdWIgSmVsaW5layA8amFrdWJAcmVk aGF0LmNvbT4gNC40LjAtMC4xNAotLSB1cGRhdGUgZnJvbSB0cnVuawotLSB3aGVuIGNvbXBpbGlu ZyB3aXRoIC1tYXJjaD1pMzg2LCBkb24ndCB1c2UgX19zeW5jXyogYnVpbHRpbnMgaW4KLSAgZXh0 L2F0b21pY2l0eS5oCi0KLSogV2VkIEphbiAyOCAyMDA5IEpha3ViIEplbGluZWsgPGpha3ViQHJl ZGhhdC5jb20+IDQuNC4wLTAuMTMKLS0gZml4IGdyYXBoaXRlIG1ha2UgY2hlY2sKLQotKiBUdWUg SmFuIDI3IDIwMDkgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gNC40LjAtMC4xMgot LSB1cGRhdGUgZnJvbSB0cnVuawotLSBhZGQgZ3JhcGhpdGUgc3VwcG9ydAotLSBjaGFuZ2UgZ2Nj IGRlZmF1bHQgSVNBIGFuZCB0dW5pbmc6Ci0gIGkzODYgYW5kIHg4Nl82NCAtbTMyOgotICAtbWFy Y2g9aTU4NiAtbXR1bmU9Z2VuZXJpYyBmcm9tIC1tYXJjaD1pMzg2IC1tdHVuZT1nZW5lcmljCi0g IHg4Nl82NCAtbTY0IHJlbWFpbnMgYXQ6Ci0gIC1tYXJjaD14ODYtNjQgLW10dW5lPWdlbmVyaWMK LSAgczM5MCBhbmQgczM5MHggLW0zMToKLSAgLW1hcmNoPXo5LTEwOSAtbXR1bmU9ejEwIGZyb20g LW1hcmNoPWc1IC1tdHVuZT16OS0xMDkKLSAgczM5MHggLW02NDoKLSAgLW1hcmNoPXo5LTEwOSAt bXR1bmU9ejEwIGZyb20gLW1hcmNoPXo5MDAgLW10dW5lPXo5LTEwOQotCi0qIFdlZCBKYW4gMjEg MjAwOSBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjQuMC0wLjkKLS0gcmVidWls dCB3aXRob3V0IHBwYzY0IGFkYSBib290c3RyYXAgaGFja3MKLQotKiBUdWUgSmFuIDIwIDIwMDkg SmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gNC40LjAtMC44Ci0tIGF0dGVtcHQgdG8g ZW5hYmxlIEFkYSBzdXBwb3J0IG9uIHBwYzY0Ci0KLSogRnJpIEphbiAxNiAyMDA5IEpha3ViIEpl bGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuNC4wLTAuMwotLSBpbml0aWFsIDQuNCBwYWNrYWdl LCB1c2luZyBuZXdseSBjcmVhdGVkIHJlZGhhdC9nY2MtNF80LWJyYW5jaAorKiBXZWQgSnVuICA3 IDIwMTAgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gNC41LjAtMQorLSBpbml0aWFs IDQuNSBwYWNrYWdlLCB1c2luZyBuZXdseSBjcmVhdGVkIHJlZGhhdC9nY2MtNF81LWJyYW5jaAoK ZGlmZiAtLWdpdCBhL2djYzQ0LWJ1aWxkLWlkLnBhdGNoIGIvZ2NjNDQtYnVpbGQtaWQucGF0Y2gK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY3NmY5MzkuLjAwMDAwMDAKLS0tIGEvZ2Nj NDQtYnVpbGQtaWQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1MiArMCwwIEBACi0yMDA3LTA3 LTIyICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgotCi0JKiBjb25maWcvcnM2 MDAwL3N5c3Y0LmggKExJTktfRUhfU1BFQyk6IEFkZCAtLWJ1aWxkLWlkIGZvcgotCW5vbi1yZWxv Y2F0YWJsZSBsaW5rLgotCSogY29uZmlnL2xpbnV4LmggKExJTktfRUhfU1BFQyk6IExpa2V3aXNl LgotCSogY29uZmlnL2FscGhhL2VsZi5oIChMSU5LX0VIX1NQRUMpOiBMaWtld2lzZS4KLQkqIGNv bmZpZy9pYTY0L2xpbnV4LmggKExJTktfRUhfU1BFQyk6IExpa2V3aXNlLgotCi0tLS0gZ2NjL2Nv bmZpZy9yczYwMDAvc3lzdjQuaC5+MX4KLSsrKyBnY2MvY29uZmlnL3JzNjAwMC9zeXN2NC5oCi1A QCAtOTA2LDcgKzkwNiw3IEBAIGV4dGVybiBpbnQgZml4dXBsYWJlbG5vOwotICAgJXshZHluYW1p Yy1saW5rZXI6LWR5bmFtaWMtbGlua2VyICIgTElOVVhfRFlOQU1JQ19MSU5LRVIgIn19fSIKLSAK LSAjaWYgZGVmaW5lZChIQVZFX0xEX0VIX0ZSQU1FX0hEUikKLS0jIGRlZmluZSBMSU5LX0VIX1NQ RUMgIiV7IXN0YXRpYzotLWVoLWZyYW1lLWhkcn0gIgotKyMgZGVmaW5lIExJTktfRUhfU1BFQyAi JXshc3RhdGljOi0tZWgtZnJhbWUtaGRyfSAleyFyOi0tYnVpbGQtaWR9ICIKLSAjZW5kaWYKLSAK LSAjZGVmaW5lIENQUF9PU19MSU5VWF9TUEVDICItRF9fdW5peF9fIC1EX19nbnVfbGludXhfXyAt RF9fbGludXhfXyBcCi0tLS0gZ2NjL2NvbmZpZy9saW51eC5oLn4xfgotKysrIGdjYy9jb25maWcv bGludXguaAotQEAgLTg1LDcgKzg1LDcgQEAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuICAq LwotICAgICB9IHdoaWxlICgwKQotIAotICNpZiBkZWZpbmVkKEhBVkVfTERfRUhfRlJBTUVfSERS KQotLSNkZWZpbmUgTElOS19FSF9TUEVDICIleyFzdGF0aWM6LS1laC1mcmFtZS1oZHJ9ICIKLSsj ZGVmaW5lIExJTktfRUhfU1BFQyAiJXshc3RhdGljOi0tZWgtZnJhbWUtaGRyfSAleyFyOi0tYnVp bGQtaWR9ICIKLSAjZW5kaWYKLSAKLSAvKiBEZWZpbmUgdGhpcyBzbyB3ZSBjYW4gY29tcGlsZSBN UyBjb2RlIGZvciB1c2Ugd2l0aCBXSU5FLiAgKi8KLS0tLSBnY2MvY29uZmlnL2FscGhhL2VsZi5o Ln4xfgotKysrIGdjYy9jb25maWcvYWxwaGEvZWxmLmgKLUBAIC00MjEsNyArNDIxLDcgQEAgZXh0 ZXJuIGludCBhbHBoYV90aGlzX2dwZGlzcF9zZXF1ZW5jZV9udQotICAgIEkgaW1hZ2luZSB0aGF0 IG90aGVyIHN5c3RlbXMgd2lsbCBjYXRjaCB1cC4gIEluIHRoZSBtZWFudGltZSwgaXQKLSAgICBk b2Vzbid0IGhhcm0gdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGRhdGEgZXhpc3RzIHRvIGJlIHVzZWQg bGF0ZXIuICAqLwotICNpZiBkZWZpbmVkKEhBVkVfTERfRUhfRlJBTUVfSERSKQotLSNkZWZpbmUg TElOS19FSF9TUEVDICIleyFzdGF0aWM6LS1laC1mcmFtZS1oZHJ9ICIKLSsjZGVmaW5lIExJTktf RUhfU1BFQyAiJXshc3RhdGljOi0tZWgtZnJhbWUtaGRyfSAleyFyOi0tYnVpbGQtaWR9ICIKLSAj ZW5kaWYKLSAKLSAvKiBBIEMgc3RhdGVtZW50IChzYW5zIHNlbWljb2xvbikgdG8gb3V0cHV0IHRv IHRoZSBzdGRpbyBzdHJlYW0gU1RSRUFNCi0tLS0gZ2NjL2NvbmZpZy9pYTY0L2xpbnV4LmgufjF+ Ci0rKysgZ2NjL2NvbmZpZy9pYTY0L2xpbnV4LmgKLUBAIC01Niw3ICs1Niw3IEBAIGRvIHsJCQkJ CQlcCi0gICAgU2lnbmFsaXplIHRoYXQgYmVjYXVzZSB3ZSBoYXZlIGZkZS1nbGliYywgd2UgZG9u J3QgbmVlZCBhbGwgQyBzaGFyZWQgbGlicwotICAgIGxpbmtlZCBhZ2FpbnN0IC1sZ2NjX3MuICAq LwotICN1bmRlZiBMSU5LX0VIX1NQRUMKLS0jZGVmaW5lIExJTktfRUhfU1BFQyAiIgotKyNkZWZp bmUgTElOS19FSF9TUEVDICIleyFyOi0tYnVpbGQtaWR9ICIKLSAKLSAjZGVmaW5lIE1EX1VOV0lO RF9TVVBQT1JUICJjb25maWcvaWE2NC9saW51eC11bndpbmQuaCIKLSAKCmRpZmYgLS1naXQgYS9n Y2M0NC1jKystYnVpbHRpbi1yZWRlY2wucGF0Y2ggYi9nY2M0NC1jKystYnVpbHRpbi1yZWRlY2wu cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFmMzZmMWYuLjAwMDAwMDAKLS0t IGEvZ2NjNDQtYysrLWJ1aWx0aW4tcmVkZWNsLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTAy ICswLDAgQEAKLTIwMDctMTAtMDIgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgot Ci0JKiBkZWNsLmMgKGR1cGxpY2F0ZV9kZWNscyk6IFdoZW4gcmVkZWNsYXJpbmcgYSBidWlsdGlu IGZ1bmN0aW9uLAotCWtlZXAgdGhlIG1lcmdlZCBkZWNsIGJ1aWx0aW4gd2hlbmV2ZXIgdHlwZXMg bWF0Y2gsIGV2ZW4gaWYgbmV3Ci0JZGVjbCBkZWZpbmVzIGEgZnVuY3Rpb24uCi0KLQkqIGdjYy5k Zy9idWlsdGlucy02NS5jOiBOZXcgdGVzdC4KLQkqIGcrKy5kZy9leHQvYnVpbHRpbjEwLkM6IE5l dyB0ZXN0LgotCi0tLS0gZ2NjL2NwL2RlY2wuYy5qagkyMDA3LTEwLTAxIDIyOjExOjA5LjAwMDAw MDAwMCArMDIwMAotKysrIGdjYy9jcC9kZWNsLmMJMjAwNy0xMC0wMiAxMTozOTo0Ni4wMDAwMDAw MDAgKzAyMDAKLUBAIC0yMDAxLDIzICsyMDAxLDIxIEBAIGR1cGxpY2F0ZV9kZWNscyAodHJlZSBu ZXdkZWNsLCB0cmVlIG9sZGQKLSAJICBERUNMX0FSR1VNRU5UUyAob2xkZGVjbCkgPSBERUNMX0FS R1VNRU5UUyAobmV3ZGVjbCk7Ci0gCSAgREVDTF9SRVNVTFQgKG9sZGRlY2wpID0gREVDTF9SRVNV TFQgKG5ld2RlY2wpOwotIAl9Ci0rICAgICAgLyogSWYgcmVkZWNsYXJpbmcgYSBidWlsdGluIGZ1 bmN0aW9uLCBpdCBzdGF5cyBidWlsdCBpbi4gICovCi0rICAgICAgaWYgKHR5cGVzX21hdGNoICYm IERFQ0xfQlVJTFRfSU4gKG9sZGRlY2wpKQotKwl7Ci0rCSAgREVDTF9CVUlMVF9JTl9DTEFTUyAo bmV3ZGVjbCkgPSBERUNMX0JVSUxUX0lOX0NMQVNTIChvbGRkZWNsKTsKLSsJICBERUNMX0ZVTkNU SU9OX0NPREUgKG5ld2RlY2wpID0gREVDTF9GVU5DVElPTl9DT0RFIChvbGRkZWNsKTsKLSsJICAv KiBJZiB3ZSdyZSBrZWVwaW5nIHRoZSBidWlsdC1pbiBkZWZpbml0aW9uLCBrZWVwIHRoZSBydGws Ci0rCSAgICAgcmVnYXJkbGVzcyBvZiBkZWNsYXJhdGlvbiBtYXRjaGVzLiAgKi8KLSsJICBDT1BZ X0RFQ0xfUlRMIChvbGRkZWNsLCBuZXdkZWNsKTsKLSsJfQotICAgICAgIGlmIChuZXdfZGVmaW5l c19mdW5jdGlvbikKLSAJLyogSWYgZGVmaW5pbmcgYSBmdW5jdGlvbiBkZWNsYXJlZCB3aXRoIG90 aGVyIGxhbmd1YWdlCi0gCSAgIGxpbmthZ2UsIHVzZSB0aGUgcHJldmlvdXNseSBkZWNsYXJlZCBs YW5ndWFnZSBsaW5rYWdlLiAgKi8KLSAJU0VUX0RFQ0xfTEFOR1VBR0UgKG5ld2RlY2wsIERFQ0xf TEFOR1VBR0UgKG9sZGRlY2wpKTsKLSAgICAgICBlbHNlIGlmICh0eXBlc19tYXRjaCkKLSAJewot LQkgIC8qIElmIHJlZGVjbGFyaW5nIGEgYnVpbHRpbiBmdW5jdGlvbiwgYW5kIG5vdCBhIGRlZmlu aXRpb24sCi0tCSAgICAgaXQgc3RheXMgYnVpbHQgaW4uICAqLwotLQkgIGlmIChERUNMX0JVSUxU X0lOIChvbGRkZWNsKSkKLS0JICAgIHsKLS0JICAgICAgREVDTF9CVUlMVF9JTl9DTEFTUyAobmV3 ZGVjbCkgPSBERUNMX0JVSUxUX0lOX0NMQVNTIChvbGRkZWNsKTsKLS0JICAgICAgREVDTF9GVU5D VElPTl9DT0RFIChuZXdkZWNsKSA9IERFQ0xfRlVOQ1RJT05fQ09ERSAob2xkZGVjbCk7Ci0tCSAg ICAgIC8qIElmIHdlJ3JlIGtlZXBpbmcgdGhlIGJ1aWx0LWluIGRlZmluaXRpb24sIGtlZXAgdGhl IHJ0bCwKLS0JCSByZWdhcmRsZXNzIG9mIGRlY2xhcmF0aW9uIG1hdGNoZXMuICAqLwotLQkgICAg ICBDT1BZX0RFQ0xfUlRMIChvbGRkZWNsLCBuZXdkZWNsKTsKLS0JICAgIH0KLS0KLSAJICBERUNM X1JFU1VMVCAobmV3ZGVjbCkgPSBERUNMX1JFU1VMVCAob2xkZGVjbCk7Ci0gCSAgLyogRG9uJ3Qg Y2xlYXIgb3V0IHRoZSBhcmd1bWVudHMgaWYgd2UncmUganVzdCByZWRlY2xhcmluZyBhCi0gCSAg ICAgZnVuY3Rpb24uICAqLwotLS0tIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL2J1aWx0aW5zLTY1LmMu amoJMjAwNy0xMC0wMiAxMToyMzo1MS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnY2MvdGVzdHN1aXRl L2djYy5kZy9idWlsdGlucy02NS5jCTIwMDctMTAtMDIgMTE6MjQ6MTIuMDAwMDAwMDAwICswMjAw Ci1AQCAtMCwwICsxLDI1IEBACi0rLyogeyBkZy1kbyBjb21waWxlIH0gKi8KLSsvKiB7IGRnLW9w dGlvbnMgIi1PMiIgfSAqLwotKwotK3R5cGVkZWYgX19TSVpFX1RZUEVfXyBzaXplX3Q7Ci0rZXh0 ZXJuIHZvaWQgX19jaGtfZmFpbCAodm9pZCk7Ci0rZXh0ZXJuIGludCBzbnByaW50ZiAoY2hhciAq LCBzaXplX3QsIGNvbnN0IGNoYXIgKiwgLi4uKTsKLStleHRlcm4gaW5saW5lIF9fYXR0cmlidXRl X18oKGdudV9pbmxpbmUsIGFsd2F5c19pbmxpbmUpKSBpbnQgc25wcmludGYgKGNoYXIgKmEsIHNp emVfdCBiLCBjb25zdCBjaGFyICpmbXQsIC4uLikKLSt7Ci0rICBpZiAoX19idWlsdGluX29iamVj dF9zaXplIChhLCAwKSAhPSAtMVVMICYmIF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoYSwgMCkgPCBi KQotKyAgICBfX2Noa19mYWlsICgpOwotKyAgcmV0dXJuIF9fYnVpbHRpbl9zbnByaW50ZiAoYSwg YiwgZm10LCBfX2J1aWx0aW5fdmFfYXJnX3BhY2sgKCkpOwotK30KLStleHRlcm4gaW50IHNucHJp bnRmIChjaGFyICosIHNpemVfdCwgY29uc3QgY2hhciAqLCAuLi4pIF9fYXNtICgibXlzbnByaW50 ZiIpOwotKwotK2NoYXIgYnVmWzEwXTsKLSsKLStpbnQKLSttYWluICh2b2lkKQotK3sKLSsgIHNu cHJpbnRmIChidWYsIDEwLCAiJWQlZFxuIiwgMTAsIDEwKTsKLSsgIHJldHVybiAwOwotK30KLSsK LSsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgIm15c25wcmludGYiIH0gfSAqLwotKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3QgIl9fY2hrX2ZhaWwiIH0gfSAqLwotLS0t IGdjYy90ZXN0c3VpdGUvZysrLmRnL2V4dC9idWlsdGluMTAuQy5qagkyMDA3LTEwLTAyIDExOjE5 OjQ1LjAwMDAwMDAwMCArMDIwMAotKysrIGdjYy90ZXN0c3VpdGUvZysrLmRnL2V4dC9idWlsdGlu MTAuQwkyMDA3LTEwLTAyIDExOjIzOjI2LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwyNyBA QAotKy8vIHsgZGctZG8gY29tcGlsZSB9Ci0rLy8geyBkZy1vcHRpb25zICItTzIiIH0KLSsKLSt0 eXBlZGVmIF9fU0laRV9UWVBFX18gc2l6ZV90OwotK2V4dGVybiAiQyIgewotK2V4dGVybiB2b2lk IF9fY2hrX2ZhaWwgKHZvaWQpOwotK2V4dGVybiBpbnQgc25wcmludGYgKGNoYXIgKiwgc2l6ZV90 LCBjb25zdCBjaGFyICosIC4uLik7Ci0rZXh0ZXJuIGlubGluZSBfX2F0dHJpYnV0ZV9fKChnbnVf aW5saW5lLCBhbHdheXNfaW5saW5lKSkgaW50IHNucHJpbnRmIChjaGFyICphLCBzaXplX3QgYiwg Y29uc3QgY2hhciAqZm10LCAuLi4pCi0rewotKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAo YSwgMCkgIT0gLTFVTCAmJiBfX2J1aWx0aW5fb2JqZWN0X3NpemUgKGEsIDApIDwgYikKLSsgICAg X19jaGtfZmFpbCAoKTsKLSsgIHJldHVybiBfX2J1aWx0aW5fc25wcmludGYgKGEsIGIsIGZtdCwg X19idWlsdGluX3ZhX2FyZ19wYWNrICgpKTsKLSt9Ci0rZXh0ZXJuIGludCBzbnByaW50ZiAoY2hh ciAqLCBzaXplX3QsIGNvbnN0IGNoYXIgKiwgLi4uKSBfX2FzbSAoIm15c25wcmludGYiKTsKLSt9 Ci0rCi0rY2hhciBidWZbMTBdOwotKwotK2ludAotK21haW4gKHZvaWQpCi0rewotKyAgc25wcmlu dGYgKGJ1ZiwgMTAsICIlZCVkXG4iLCAxMCwgMTApOwotKyAgcmV0dXJuIDA7Ci0rfQotKwotKy8v IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAibXlzbnByaW50ZiIgfSB9Ci0rLy8geyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCAiX19jaGtfZmFpbCIgfSB9CgpkaWZmIC0tZ2l0IGEv Z2NjNDQtY2xvb2ctZGwucGF0Y2ggYi9nY2M0NC1jbG9vZy1kbC5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggY2I4Y2JjNy4uMDAwMDAwMAotLS0gYS9nY2M0NC1jbG9vZy1kbC5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE3MSArMCwwIEBACi0yMDA5LTAxLTI3ICBKYWt1YiBK ZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KLQotCSogTWFrZWZpbGUuaW4gKEJBQ0tFTkRMSUJT KTogTGluayBhZ2FpbnN0IC1sZGwgaW5zdGVhZCBvZiAtbGNsb29nIC1scHBsLgotCShncmFwaGl0 ZS5vKTogRm9yY2UgLU8sIHJlbW92ZSAtZmtlZXAtaW5saW5lLWZ1bmN0aW9ucy4KLQkqIGdyYXBo aXRlLmM6IEluY2x1ZGUgPGRsZmNuLmg+LiAgUmVmZXJlbmNlIGxpYmNsb29nIGFuZCBsaWJwcGwg c3ltYm9scwotCXRocm91Z2ggcG9pbnRlcnMgaW4gY2xvb2dfcG9pbnRlcnMgdmFyaWFibGUuCi0J KGluaXRfY2xvb2dfcG9pbnRlcnMpOiBOZXcgZnVuY3Rpb24uCi0JKGdjY190eXBlX2Zvcl9pdl9v Zl9jbGFzdF9sb29wKTogUmVuYW1lIHN0bXRfZm9yIGFyZ3VtZW50IHRvIHN0bXRfZm9yYS4KLQko Z3JhcGhpdGVfdHJhbnNmb3JtX2xvb3BzKTogQ2FsbCBpbml0X2Nsb29nX3BvaW50ZXJzLgotCi0t LS0gZ2NjL01ha2VmaWxlLmluLmpqCTIwMDktMDEtMjYgMjA6NTA6MzguMDAwMDAwMDAwICswMTAw Ci0rKysgZ2NjL01ha2VmaWxlLmluCTIwMDktMDEtMjcgMTQ6MTg6MTAuMDAwMDAwMDAwICswMTAw Ci1AQCAtOTE1LDcgKzkxNSw3IEBAIEJVSUxEX0xJQkRFUFM9ICQoQlVJTERfTElCSUJFUlRZKQot ICMgSG93IHRvIGxpbmsgd2l0aCBib3RoIG91ciBzcGVjaWFsIGxpYnJhcnkgZmFjaWxpdGllcwot ICMgYW5kIHRoZSBzeXN0ZW0ncyBpbnN0YWxsZWQgbGlicmFyaWVzLgotIExJQlMgPSBATElCU0Ag JChDUFBMSUIpICQoTElCSU5UTCkgJChMSUJJQ09OVikgJChMSUJJQkVSVFkpICQoTElCREVDTlVN QkVSKQotLUJBQ0tFTkRMSUJTID0gJChDTE9PR0xJQlMpICQoUFBMTElCUykgJChHTVBMSUJTKQot K0JBQ0tFTkRMSUJTID0gJChHTVBMSUJTKSAkKGlmICQoQ0xPT0dMSUJTKSwtbGRsKQotICMgQW55 IHN5c3RlbSBsaWJyYXJpZXMgbmVlZGVkIGp1c3QgZm9yIEdOQVQuCi0gU1lTTElCUyA9IEBHTkFU X0xJQkVYQ0AKLSAKLUBAIC0zMDc2LDYgKzMwNzYsOSBAQCAkKG91dF9vYmplY3RfZmlsZSk6ICQo b3V0X2ZpbGUpICQoQ09ORklHCi0gCSQoQ0MpIC1jICQoQUxMX0NGTEFHUykgJChBTExfQ1BQRkxB R1MpIFwKLSAJCSQob3V0X2ZpbGUpICQoT1VUUFVUX09QVElPTikKLSAKLStncmFwaGl0ZS5vIDog XAotKyAgQUxMX0NGTEFHUyA6PSAtTyAkKGZpbHRlci1vdXQgLWZrZWVwLWlubGluZS1mdW5jdGlv bnMsICQoQUxMX0NGTEFHUykpCi0rCi0gIyBCdWlsZCBhdXhpbGlhcnkgZmlsZXMgdGhhdCBzdXBw b3J0IGVjb2ZmIGZvcm1hdC4KLSBtaXBzLXRmaWxlOiBtaXBzLXRmaWxlLm8gdmVyc2lvbi5vICQo TElCREVQUykKLSAJJChDQykgJChDRkxBR1MpICQoTERGTEFHUykgLW8gJEAgbWlwcy10ZmlsZS5v IHZlcnNpb24ubyAkKExJQlMpCi0tLS0gZ2NjL2dyYXBoaXRlLmMuamoJMjAwOS0wMS0yNCAxOTo1 OTowMi4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnY2MvZ3JhcGhpdGUuYwkyMDA5LTAxLTI3IDE0OjUy OjA4LjAwMDAwMDAwMCArMDEwMAotQEAgLTU5LDYgKzU5LDExMCBAQCBhbG9uZyB3aXRoIEdDQzsg c2VlIHRoZSBmaWxlIENPUFlJTkczLiAgCi0gI2luY2x1ZGUgImNsb29nL2Nsb29nLmgiCi0gI2lu Y2x1ZGUgImdyYXBoaXRlLmgiCi0gCi0rI2luY2x1ZGUgPGRsZmNuLmg+Ci0rI2RlZmluZSBEWU5T WU1TIFwKLSsgIERZTlNZTSAoY2xvb2dfYmxvY2tfYWxsb2MpOyBcCi0rICBEWU5TWU0gKGNsb29n X2Jsb2NrX2xpc3RfZnJlZSk7IFwKLSsgIERZTlNZTSAoY2xvb2dfYmxvY2tfbGlzdF9tYWxsb2Mp OyBcCi0rICBEWU5TWU0gKGNsb29nX2NsYXN0X2NyZWF0ZSk7IFwKLSsgIERZTlNZTSAoY2xvb2df Y2xhc3RfZnJlZSk7IFwKLSsgIERZTlNZTSAoY2xvb2dfZG9tYWluX2ZyZWUpOyBcCi0rICBEWU5T WU0gKGNsb29nX2RvbWFpbl9tYXRyaXgyZG9tYWluKTsgXAotKyAgRFlOU1lNIChjbG9vZ19pbml0 aWFsaXplKTsgXAotKyAgRFlOU1lNIChjbG9vZ19sb29wX21hbGxvYyk7IFwKLSsgIERZTlNZTSAo Y2xvb2dfbWF0cml4X2FsbG9jKTsgXAotKyAgRFlOU1lNIChjbG9vZ19tYXRyaXhfY29weSk7IFwK LSsgIERZTlNZTSAoY2xvb2dfbWF0cml4X2ZyZWUpOyBcCi0rICBEWU5TWU0gKGNsb29nX21hdHJp eF9wcmludCk7IFwKLSsgIERZTlNZTSAoY2xvb2dfbmFtZXNfbWFsbG9jKTsgXAotKyAgRFlOU1lN IChjbG9vZ19uYW1lc19zY2FsYXJpemUpOyBcCi0rICBEWU5TWU0gKGNsb29nX29wdGlvbnNfZnJl ZSk7IFwKLSsgIERZTlNZTSAoY2xvb2dfb3B0aW9uc19tYWxsb2MpOyBcCi0rICBEWU5TWU0gKGNs b29nX3Byb2dyYW1fZHVtcF9jbG9vZyk7IFwKLSsgIERZTlNZTSAoY2xvb2dfcHJvZ3JhbV9leHRy YWN0X3NjYWxhcnMpOyBcCi0rICBEWU5TWU0gKGNsb29nX3Byb2dyYW1fZnJlZSk7IFwKLSsgIERZ TlNZTSAoY2xvb2dfcHJvZ3JhbV9nZW5lcmF0ZSk7IFwKLSsgIERZTlNZTSAoY2xvb2dfcHJvZ3Jh bV9tYWxsb2MpOyBcCi0rICBEWU5TWU0gKGNsb29nX3Byb2dyYW1fcHJpbnQpOyBcCi0rICBEWU5T WU0gKGNsb29nX3Byb2dyYW1fc2NhdHRlcik7IFwKLSsgIERZTlNZTSAoY2xvb2dfc3RhdGVtZW50 X2FsbG9jKTsgXAotKyAgRFlOU1lNIChwcGxfZmluYWxpemUpOyBcCi0rICBEWU5TWU0gKHBwcmlu dCk7IFwKLSsgIERZTlNZTSAoc3RtdF9ibG9jayk7IFwKLSsgIERZTlNZTSAoc3RtdF9mb3IpOyBc Ci0rICBEWU5TWU0gKHN0bXRfZ3VhcmQpOyBcCi0rICBEWU5TWU0gKHN0bXRfcm9vdCk7IFwKLSsg IERZTlNZTSAoc3RtdF91c2VyKTsKLStzdGF0aWMgc3RydWN0Ci0rewotKyAgYm9vbCBpbml0ZWQ7 Ci0rICB2b2lkICpoOwotKyNkZWZpbmUgRFlOU1lNKHgpIF9fdHlwZW9mICh4KSAqcF8jI3gKLSsg IERZTlNZTVMKLSsjdW5kZWYgRFlOU1lNCi0rfSBjbG9vZ19wb2ludGVyczsKLSsKLSsjZGVmaW5l IGNsb29nX2Jsb2NrX2FsbG9jICgqY2xvb2dfcG9pbnRlcnMucF9jbG9vZ19ibG9ja19hbGxvYykK LSsjZGVmaW5lIGNsb29nX2Jsb2NrX2xpc3RfZnJlZSAoKmNsb29nX3BvaW50ZXJzLnBfY2xvb2df YmxvY2tfbGlzdF9mcmVlKQotKyNkZWZpbmUgY2xvb2dfYmxvY2tfbGlzdF9tYWxsb2MgKCpjbG9v Z19wb2ludGVycy5wX2Nsb29nX2Jsb2NrX2xpc3RfbWFsbG9jKQotKyNkZWZpbmUgY2xvb2dfY2xh c3RfY3JlYXRlICgqY2xvb2dfcG9pbnRlcnMucF9jbG9vZ19jbGFzdF9jcmVhdGUpCi0rI2RlZmlu ZSBjbG9vZ19jbGFzdF9mcmVlICgqY2xvb2dfcG9pbnRlcnMucF9jbG9vZ19jbGFzdF9mcmVlKQot KyNkZWZpbmUgY2xvb2dfZG9tYWluX2ZyZWUgKCpjbG9vZ19wb2ludGVycy5wX2Nsb29nX2RvbWFp bl9mcmVlKQotKyNkZWZpbmUgY2xvb2dfZG9tYWluX21hdHJpeDJkb21haW4gKCpjbG9vZ19wb2lu dGVycy5wX2Nsb29nX2RvbWFpbl9tYXRyaXgyZG9tYWluKQotKyNkZWZpbmUgY2xvb2dfaW5pdGlh bGl6ZSAoKmNsb29nX3BvaW50ZXJzLnBfY2xvb2dfaW5pdGlhbGl6ZSkKLSsjZGVmaW5lIGNsb29n X2xvb3BfbWFsbG9jICgqY2xvb2dfcG9pbnRlcnMucF9jbG9vZ19sb29wX21hbGxvYykKLSsjZGVm aW5lIGNsb29nX21hdHJpeF9hbGxvYyAoKmNsb29nX3BvaW50ZXJzLnBfY2xvb2dfbWF0cml4X2Fs bG9jKQotKyNkZWZpbmUgY2xvb2dfbWF0cml4X2NvcHkgKCpjbG9vZ19wb2ludGVycy5wX2Nsb29n X21hdHJpeF9jb3B5KQotKyNkZWZpbmUgY2xvb2dfbWF0cml4X2ZyZWUgKCpjbG9vZ19wb2ludGVy cy5wX2Nsb29nX21hdHJpeF9mcmVlKQotKyNkZWZpbmUgY2xvb2dfbWF0cml4X3ByaW50ICgqY2xv b2dfcG9pbnRlcnMucF9jbG9vZ19tYXRyaXhfcHJpbnQpCi0rI2RlZmluZSBjbG9vZ19uYW1lc19t YWxsb2MgKCpjbG9vZ19wb2ludGVycy5wX2Nsb29nX25hbWVzX21hbGxvYykKLSsjZGVmaW5lIGNs b29nX25hbWVzX3NjYWxhcml6ZSAoKmNsb29nX3BvaW50ZXJzLnBfY2xvb2dfbmFtZXNfc2NhbGFy aXplKQotKyNkZWZpbmUgY2xvb2dfb3B0aW9uc19mcmVlICgqY2xvb2dfcG9pbnRlcnMucF9jbG9v Z19vcHRpb25zX2ZyZWUpCi0rI2RlZmluZSBjbG9vZ19vcHRpb25zX21hbGxvYyAoKmNsb29nX3Bv aW50ZXJzLnBfY2xvb2dfb3B0aW9uc19tYWxsb2MpCi0rI2RlZmluZSBjbG9vZ19wcm9ncmFtX2R1 bXBfY2xvb2cgKCpjbG9vZ19wb2ludGVycy5wX2Nsb29nX3Byb2dyYW1fZHVtcF9jbG9vZykKLSsj ZGVmaW5lIGNsb29nX3Byb2dyYW1fZXh0cmFjdF9zY2FsYXJzICgqY2xvb2dfcG9pbnRlcnMucF9j bG9vZ19wcm9ncmFtX2V4dHJhY3Rfc2NhbGFycykKLSsjZGVmaW5lIGNsb29nX3Byb2dyYW1fZnJl ZSAoKmNsb29nX3BvaW50ZXJzLnBfY2xvb2dfcHJvZ3JhbV9mcmVlKQotKyNkZWZpbmUgY2xvb2df cHJvZ3JhbV9nZW5lcmF0ZSAoKmNsb29nX3BvaW50ZXJzLnBfY2xvb2dfcHJvZ3JhbV9nZW5lcmF0 ZSkKLSsjZGVmaW5lIGNsb29nX3Byb2dyYW1fbWFsbG9jICgqY2xvb2dfcG9pbnRlcnMucF9jbG9v Z19wcm9ncmFtX21hbGxvYykKLSsjZGVmaW5lIGNsb29nX3Byb2dyYW1fcHJpbnQgKCpjbG9vZ19w b2ludGVycy5wX2Nsb29nX3Byb2dyYW1fcHJpbnQpCi0rI2RlZmluZSBjbG9vZ19wcm9ncmFtX3Nj YXR0ZXIgKCpjbG9vZ19wb2ludGVycy5wX2Nsb29nX3Byb2dyYW1fc2NhdHRlcikKLSsjZGVmaW5l IGNsb29nX3N0YXRlbWVudF9hbGxvYyAoKmNsb29nX3BvaW50ZXJzLnBfY2xvb2dfc3RhdGVtZW50 X2FsbG9jKQotKyNkZWZpbmUgcHBsX2ZpbmFsaXplICgqY2xvb2dfcG9pbnRlcnMucF9wcGxfZmlu YWxpemUpCi0rI2RlZmluZSBwcHJpbnQgKCpjbG9vZ19wb2ludGVycy5wX3BwcmludCkKLSsjZGVm aW5lIHN0bXRfYmxvY2sgKCpjbG9vZ19wb2ludGVycy5wX3N0bXRfYmxvY2spCi0rI2RlZmluZSBz dG10X2ZvciAoKmNsb29nX3BvaW50ZXJzLnBfc3RtdF9mb3IpCi0rI2RlZmluZSBzdG10X2d1YXJk ICgqY2xvb2dfcG9pbnRlcnMucF9zdG10X2d1YXJkKQotKyNkZWZpbmUgc3RtdF9yb290ICgqY2xv b2dfcG9pbnRlcnMucF9zdG10X3Jvb3QpCi0rI2RlZmluZSBzdG10X3VzZXIgKCpjbG9vZ19wb2lu dGVycy5wX3N0bXRfdXNlcikKLSsKLSsjZGVmaW5lIGNsb29nX2ZpbmFsaXplICgqY2xvb2dfcG9p bnRlcnMucF9wcGxfZmluYWxpemUpCi0rCi0rc3RhdGljIGJvb2wKLStpbml0X2Nsb29nX3BvaW50 ZXJzICh2b2lkKQotK3sKLSsgIHZvaWQgKmg7Ci0rCi0rICBpZiAoY2xvb2dfcG9pbnRlcnMuaW5p dGVkKQotKyAgICByZXR1cm4gY2xvb2dfcG9pbnRlcnMuaCAhPSBOVUxMOwotKyAgaCA9IGRsb3Bl biAoImxpYmNsb29nLnNvLjAiLCBSVExEX0xBWlkpOwotKyAgY2xvb2dfcG9pbnRlcnMuaCA9IGg7 Ci0rICBpZiAoaCA9PSBOVUxMKQotKyAgICByZXR1cm4gZmFsc2U7Ci0rI2RlZmluZSBEWU5TWU0o eCkgXAotKyAgZG8gXAotKyAgICB7IFwKLSsgICAgICB1bmlvbiB7IF9fdHlwZW9mIChjbG9vZ19w b2ludGVycy5wXyMjeCkgcDsgdm9pZCAqcTsgfSB1OyBcCi0rICAgICAgdS5xID0gZGxzeW0gKGgs ICN4KTsgXAotKyAgICAgIGlmICh1LnEgPT0gTlVMTCkgXAotKwlyZXR1cm4gZmFsc2U7IFwKLSsg ICAgICBjbG9vZ19wb2ludGVycy5wXyMjeCA9IHUucDsgXAotKyAgICB9IFwKLSsgIHdoaWxlICgw KQotKyAgRFlOU1lNUwotKyN1bmRlZiBEWU5TWU0KLSsgIHJldHVybiB0cnVlOwotK30KLSsKLSBz dGF0aWMgVkVDIChzY29wX3AsIGhlYXApICpjdXJyZW50X3Njb3BzOwotIAotIC8qIENvbnZlcnRz IGEgR01QIGNvbnN0YW50IFYgdG8gYSB0cmVlIGFuZCByZXR1cm5zIGl0LiAgKi8KLUBAIC00MDE5 LDEwICs0MTUxLDEwIEBAIGNsYXN0X2dldF9ib2R5X29mX2xvb3AgKHN0cnVjdCBjbGFzdF9zdG0K LSAgICBTVE1ULiAgKi8KLSAKLSBzdGF0aWMgdHJlZQotLWdjY190eXBlX2Zvcl9pdl9vZl9jbGFz dF9sb29wIChzdHJ1Y3QgY2xhc3RfZm9yICpzdG10X2ZvcikKLStnY2NfdHlwZV9mb3JfaXZfb2Zf Y2xhc3RfbG9vcCAoc3RydWN0IGNsYXN0X2ZvciAqc3RtdF9mb3JhKQotIHsKLS0gIHN0cnVjdCBj bGFzdF91c2VyX3N0bXQgKnN0bXQgPSBjbGFzdF9nZXRfYm9keV9vZl9sb29wICgoc3RydWN0IGNs YXN0X3N0bXQgKikgc3RtdF9mb3IpOwotLSAgY29uc3QgY2hhciAqY2xvb2dfaXYgPSBzdG10X2Zv ci0+aXRlcmF0b3I7Ci0rICBzdHJ1Y3QgY2xhc3RfdXNlcl9zdG10ICpzdG10ID0gY2xhc3RfZ2V0 X2JvZHlfb2ZfbG9vcCAoKHN0cnVjdCBjbGFzdF9zdG10ICopIHN0bXRfZm9yYSk7Ci0rICBjb25z dCBjaGFyICpjbG9vZ19pdiA9IHN0bXRfZm9yYS0+aXRlcmF0b3I7Ci0gICBDbG9vZ1N0YXRlbWVu dCAqY3MgPSBzdG10LT5zdGF0ZW1lbnQ7Ci0gICBncmFwaGl0ZV9iYl9wIGdiYiA9IChncmFwaGl0 ZV9iYl9wKSBjbG9vZ19zdGF0ZW1lbnRfdXNyIChjcyk7Ci0gCi1AQCAtNjA2MSw2ICs2MTkzLDEy IEBAIGdyYXBoaXRlX3RyYW5zZm9ybV9sb29wcyAodm9pZCkKLSAgIGlmIChudW1iZXJfb2ZfbG9v cHMgKCkgPD0gMSkKLSAgICAgcmV0dXJuOwotIAotKyAgaWYgKCFpbml0X2Nsb29nX3BvaW50ZXJz ICgpKQotKyAgICB7Ci0rICAgICAgc29ycnkgKCJHcmFwaGl0ZSBsb29wIG9wdGltaXphdGlvbnMg Y2Fubm90IGJlIHVzZWQiKTsKLSsgICAgICByZXR1cm47Ci0rICAgIH0KLSsKLSAgIGN1cnJlbnRf c2NvcHMgPSBWRUNfYWxsb2MgKHNjb3BfcCwgaGVhcCwgMyk7Ci0gICByZWNvbXB1dGVfYWxsX2Rv bWluYXRvcnMgKCk7Ci0gCgpkaWZmIC0tZ2l0IGEvZ2NjNDQtaGFjay5wYXRjaCBiL2djYzQ0LWhh Y2sucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3MTlkMTcuLjAwMDAwMDAK LS0tIGEvZ2NjNDQtaGFjay5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDY2ICswLDAgQEAKLS0t LSBsaWJhZGEvTWFrZWZpbGUuaW4uamoJMjAwOS0wMS0xNCAxMjowNzozNS4wMDAwMDAwMDAgKzAx MDAKLSsrKyBsaWJhZGEvTWFrZWZpbGUuaW4JMjAwOS0wMS0xNSAxNDoyNTozMy4wMDAwMDAwMDAg KzAxMDAKLUBAIC02OSwxOCArNjksNDAgQEAgdmVyc2lvbiA6PSAkKHNoZWxsIGNhdCAkKHNyY2Rp cikvLi4vZ2NjLwotIGxpYnN1YmRpciA6PSAkKGxpYmRpcikvZ2NjLyQodGFyZ2V0X25vbmNhbm9u aWNhbCkvJCh2ZXJzaW9uKSQoTVVMVElTVUJESVIpCi0gQURBX1JUU19ESVI9JChHQ0NfRElSKS9h ZGEvcnRzJChzdWJzdCAvLF8sJChNVUxUSVNVQkRJUikpCi0gCi0rREVGQVVMVE1VTFRJRkxBR1Mg Oj0KLStpZmVxICgkKE1VTFRJU1VCRElSKSwpCi0rdGFyZzo9JChzdWJzdCAtLCAsJCh0YXJnZXQp KQotK2FyY2g6PSQod29yZCAxLCQodGFyZykpCi0raWZlcSAoJCh3b3JkcyAkKHRhcmcpKSwyKQot K29zeXM6PSQod29yZCAyLCQodGFyZykpCi0rZWxzZQotK29zeXM6PSQod29yZCAzLCQodGFyZykp Ci0rZW5kaWYKLStpZmVxICgkKHN0cmlwICQoZmlsdGVyLW91dCBpJTg2IHg4Nl82NCBwb3dlcnBj JSBwcGMlIHMzOTAlIHNwYXJjJSBsaW51eCUsICQoYXJjaCkgJChvc3lzKSkpLCkKLStpZmVxICgk KHNoZWxsICQoQ0MpICQoQ0ZMQUdTKSAtcHJpbnQtbXVsdGktb3MtZGlyZWN0b3J5KSwuLi9saWI2 NCkKLStERUZBVUxUTVVMVElGTEFHUyA6PSAtbTY0Ci0rZWxzZQotK2lmZXEgKCQoc3RyaXAgJChm aWx0ZXItb3V0IHMzOTAlLCAkKGFyY2gpKSksKQotK0RFRkFVTFRNVUxUSUZMQUdTIDo9IC1tMzEK LStlbHNlCi0rREVGQVVMVE1VTFRJRkxBR1MgOj0gLW0zMgotK2VuZGlmCi0rZW5kaWYKLStlbmRp ZgotK2VuZGlmCi0rCi0gIyBleGVleHQgc2hvdWxkIG5vdCBiZSB1c2VkIGJlY2F1c2UgaXQncyB0 aGUgKmhvc3QqIGV4ZWV4dC4gIFdlJ3JlIGJ1aWxkaW5nCi0gIyBhICp0YXJnZXQqIGxpYnJhcnks IGFyZW4ndCB3ZT8hPyAgTGlrZXdpc2UgZm9yIENDLiAgU3RpbGwsIHByb3ZpZGUgYm9ndXMKLSAj IGRlZmluaXRpb25zIGp1c3QgaW4gY2FzZSBzb21ldGhpbmcgc2xpcHMgdGhyb3VnaCB0aGUgc2Fm ZXR5IG5ldCBwcm92aWRlZAotICMgYnkgcmVjdXJzaXZlIG1ha2UgaW52b2NhdGlvbnMgaW4gZ2Nj L2FkYS9NYWtlZmlsZS5pbgotIExJQkFEQV9GTEFHU19UT19QQVNTID0gXAotICAgICAgICAgIk1B S0VPVkVSUklERVM9IiBcCi0tICAgICAgICAiTERGTEFHUz0kKExERkxBR1MpIiBcCi0rICAgICAg ICAiTERGTEFHUz0kKHN0cmlwICQoTERGTEFHUykgJChERUZBVUxUTVVMVElGTEFHUykpIiBcCi0g ICAgICAgICAiTE5fUz0kKExOX1MpIiBcCi0gICAgICAgICAiU0hFTEw9JChTSEVMTCkiIFwKLS0g ICAgICAgICJHTkFUTElCRkxBR1M9JChHTkFUTElCRkxBR1MpICQoTVVMVElGTEFHUykiIFwKLS0g ICAgICAgICJHTkFUTElCQ0ZMQUdTPSQoR05BVExJQkNGTEFHUykgJChNVUxUSUZMQUdTKSIgXAot LSAgICAgICAgIkdOQVRMSUJDRkxBR1NfRk9SX0M9JChHTkFUTElCQ0ZMQUdTX0ZPUl9DKSAkKE1V TFRJRkxBR1MpIiBcCi0rICAgICAgICAiR05BVExJQkZMQUdTPSQoc3RyaXAgJChHTkFUTElCRkxB R1MpICQoTVVMVElGTEFHUykgJChERUZBVUxUTVVMVElGTEFHUykpIiBcCi0rICAgICAgICAiR05B VExJQkNGTEFHUz0kKHN0cmlwICQoR05BVExJQkNGTEFHUykgJChNVUxUSUZMQUdTKSAkKERFRkFV TFRNVUxUSUZMQUdTKSkiIFwKLSsgICAgICAgICJHTkFUTElCQ0ZMQUdTX0ZPUl9DPSQoc3RyaXAg JChHTkFUTElCQ0ZMQUdTX0ZPUl9DKSAkKE1VTFRJRkxBR1MpICQoREVGQVVMVE1VTFRJRkxBR1Mp KSIgXAotICAgICAgICAgIlRBUkdFVF9MSUJHQ0MyX0NGTEFHUz0kKFRBUkdFVF9MSUJHQ0MyX0NG TEFHUykiIFwKLSAgICAgICAgICJUSFJFQURfS0lORD0kKFRIUkVBRF9LSU5EKSIgXAotICAgICAg ICAgIlRSQUNFPSQoVFJBQ0UpIiBcCi1AQCAtOTEsNyArMTEzLDcgQEAgTElCQURBX0ZMQUdTX1RP X1BBU1MgPSBcCi0gICAgICAgICAiZXhlZXh0PS5leGVleHQuc2hvdWxkLm5vdC5iZS51c2VkICIg XAotIAknQ0M9dGhlLmhvc3QuY29tcGlsZXIuc2hvdWxkLm5vdC5iZS5uZWVkZWQnIFwKLSAJIkdD Q19GT1JfVEFSR0VUPSQoQ0MpIiBcCi0tICAgICAgICAiQ0ZMQUdTPSQoQ0ZMQUdTKSAkKFdBUk5f Q0ZMQUdTKSIKLSsgICAgICAgICJDRkxBR1M9JChzdHJpcCAkKENGTEFHUykgJChERUZBVUxUTVVM VElGTEFHUykgJChXQVJOX0NGTEFHUykpIgotIAotICMgUnVsZXMgdG8gYnVpbGQgZ25hdGxpYi4K LSAuUEhPTlk6IGduYXRsaWIgZ25hdGxpYi1wbGFpbiBnbmF0bGliLXNqbGogZ25hdGxpYi16Y3gg Z25hdGxpYi1zaGFyZWQgb3Njb25zCi0tLS0gZ2NjL2FkYS9tYWtlLmFkYgkyMDA4LTExLTA3IDIz OjAwOjMyLjAwMDAwMDAwMCArMDEwMAotKysrIGdjYy9hZGEvbWFrZS5hZGIJMjAwOS0wMS0xNiAx Nzo1NTowMi4wMDAwMDAwMDAgKzAxMDAKLUBAIC04MDM5LDYgKzgwMzksNyBAQCBwYWNrYWdlIGJv ZHkgTWFrZSBpcwotICAgICAgICAgICAgICBvciBlbHNlIEFyZ3YgKDIgLi4gQXJndidMYXN0KSA9 ICJwZyIKLSAgICAgICAgICAgICAgb3IgZWxzZSAoQXJndiAoMikgPSAnbScgYW5kIHRoZW4gQXJn didMYXN0ID4gMikKLSAgICAgICAgICAgICAgb3IgZWxzZSAoQXJndiAoMikgPSAnZicgYW5kIHRo ZW4gQXJndidMYXN0ID4gMikKLSsgICAgICAgICAgICAgb3IgZWxzZSAoQXJndidMYXN0ID49IDgg YW5kIHRoZW4gQXJndiAoMiAuLiA4KSA9ICItcGFyYW09IikKLSAgICAgICAgICB0aGVuCi0gICAg ICAgICAgICAgQWRkX1N3aXRjaCAoQXJndiwgQ29tcGlsZXIsIEFuZF9TYXZlID0+IEFuZF9TYXZl KTsKLSAgICAgICAgICAgICBBZGRfU3dpdGNoIChBcmd2LCBMaW5rZXIsIEFuZF9TYXZlID0+IEFu ZF9TYXZlKTsKCmRpZmYgLS1naXQgYS9nY2M0NC1pMzg2LWxpYmdvbXAucGF0Y2ggYi9nY2M0NC1p Mzg2LWxpYmdvbXAucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVkMWVlYTgu LjAwMDAwMDAKLS0tIGEvZ2NjNDQtaTM4Ni1saWJnb21wLnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsNjEgKzAsMCBAQAotQnVpbGQgaTM4Ni5ycG0gbGliZ29tcCBhbmQgbGlic3VwYysrLmEoZ3Vh cmQubykgYXMgaTQ4NissIHByZS1pNDg2Ci1oYXJkd2FyZSBpc24ndCBzdXBwb3J0ZWQgYmVjYXVz ZSBOUFRMIGRvZXNuJ3Qgc3VwcG9ydCBpdCBhbnl3YXkuCi0KLS0tLSBsaWJnb21wL2NvbmZpZ3Vy ZS50Z3QuamoJMjAwOC0wMS0xMCAyMDo1Mzo0OC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBsaWJnb21w L2NvbmZpZ3VyZS50Z3QJMjAwOC0wMy0yNyAxMjo0NDo1MS4wMDAwMDAwMDAgKzAxMDAKLUBAIC00 NCwxNCArNDQsMTQgQEAgaWYgdGVzdCAkZW5hYmxlX2xpbnV4X2Z1dGV4ID0geWVzOyB0aGVuCi0g CTs7Ci0gCi0gICAgICMgTm90ZSB0aGF0IGJhcmUgaTM4NiBpcyBub3QgaW5jbHVkZWQgaGVyZS4g IFdlIG5lZWQgY21weGNoZy4KLS0gICAgaVs0NTZdODYtKi1saW51eCopCi0rICAgIGlbMzQ1Nl04 Ni0qLWxpbnV4KikKLSAJY29uZmlnX3BhdGg9ImxpbnV4L3g4NiBsaW51eCBwb3NpeCIKLSAJY2Fz ZSAiICR7Q0N9ICR7Q0ZMQUdTfSAiIGluCi0gCSAgKiIgLW02NCAiKikKLSAJICAgIDs7Ci0gCSAg KikKLSAJICAgIGlmIHRlc3QgLXogIiR3aXRoX2FyY2giOyB0aGVuCi0tCSAgICAgIFhDRkxBR1M9 IiR7WENGTEFHU30gLW1hcmNoPWk0ODYgLW10dW5lPSR7dGFyZ2V0X2NwdX0iCi0rCSAgICAgIFhD RkxBR1M9IiR7WENGTEFHU30gLW1hcmNoPWk0ODYgLW10dW5lPWdlbmVyaWMiCi0gCSAgICBmaQot IAllc2FjCi0gCTs7Ci1AQCAtNjMsNyArNjMsNyBAQCBpZiB0ZXN0ICRlbmFibGVfbGludXhfZnV0 ZXggPSB5ZXM7IHRoZW4KLSAJY29uZmlnX3BhdGg9ImxpbnV4L3g4NiBsaW51eCBwb3NpeCIKLSAJ Y2FzZSAiICR7Q0N9ICR7Q0ZMQUdTfSAiIGluCi0gCSAgKiIgLW0zMiAiKikKLS0JICAgIFhDRkxB R1M9IiR7WENGTEFHU30gLW1hcmNoPWk0ODYgLW10dW5lPWk2ODYiCi0rCSAgICBYQ0ZMQUdTPSIk e1hDRkxBR1N9IC1tYXJjaD1pNDg2IC1tdHVuZT1nZW5lcmljIgotIAkgICAgOzsKLSAJZXNhYwot IAk7OwotLS0tIGxpYnN0ZGMrKy12My9saWJzdXBjKysvZ3VhcmQuY2MuamoJMjAwOC0wMy0wMSAw MDo1ODoyNC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBsaWJzdGRjKystdjMvbGlic3VwYysrL2d1YXJk LmNjCTIwMDgtMDMtMjcgMTQ6MDg6NDQuMDAwMDAwMDAwICswMTAwCi1AQCAtMzUsNiArMzUsMjcg QEAKLSAjaW5jbHVkZSA8bmV3PgotICNpbmNsdWRlIDxleHQvYXRvbWljaXR5Lmg+Ci0gI2luY2x1 ZGUgPGV4dC9jb25jdXJyZW5jZS5oPgotKyNpZiBkZWZpbmVkIF9faTM4Nl9fICYmICFkZWZpbmVk IF9HTElCQ1hYX0FUT01JQ19CVUlMVElOU180Ci0rIyBkZWZpbmUgX0dMSUJDWFhfQVRPTUlDX0JV SUxUSU5TXzQgMQotKyMgZGVmaW5lIF9fc3luY192YWxfY29tcGFyZV9hbmRfc3dhcChhLCBiLCBj KSBcCi0rICAoewkJCQkJCQkJXAotKyAgICAgdHlwZWRlZiBjaGFyIHNsdGFzdFtzaXplb2YgKCph KSA9PSBzaXplb2YgKGludCkgPyAxIDogLTFdOwlcCi0rICAgICBpbnQgc2x0YXM7CQkJCQkJCVwK LSsgICAgIF9fYXNtIF9fdm9sYXRpbGUgKCJsb2NrOyBjbXB4Y2hnbCAlMywgKCUxKSIJCVwKLSsJ CSAgICAgICA6ICI9YSIgKHNsdGFzKQkJCQlcCi0rCQkgICAgICAgOiAiciIgKGEpLCAiMCIgKGIp LCAiciIgKGMpIDogIm1lbW9yeSIpOwlcCi0rICAgICBzbHRhczsJCQkJCQkJXAotKyAgIH0pCi0r IyBkZWZpbmUgX19zeW5jX2xvY2tfdGVzdF9hbmRfc2V0KGEsIGIpIFwKLSsgICh7CQkJCQkJCQlc Ci0rICAgICB0eXBlZGVmIGNoYXIgc2x0YXN0W3NpemVvZiAoKmEpID09IHNpemVvZiAoaW50KSA/ IDEgOiAtMV07CVwKLSsgICAgIGludCBzbHRhczsJCQkJCQkJXAotKyAgICAgX19hc20gX192b2xh dGlsZSAoInhjaGdsICglMSksICUwIgkJCQlcCi0rCQkgICAgICAgOiAiPXIiIChzbHRhcykJCQkJ XAotKwkJICAgICAgIDogInIiIChhKSwgIjAiIChiKSA6ICJtZW1vcnkiKTsJCVwKLSsgICAgIHNs dGFzOwkJCQkJCQlcCi0rICAgfSkKLSsjZW5kaWYKLSAjaWYgZGVmaW5lZChfX0dUSFJFQURTKSAm JiBkZWZpbmVkKF9fR1RIUkVBRF9IQVNfQ09ORCkgXAotICAgICAmJiBkZWZpbmVkKF9HTElCQ1hY X0FUT01JQ19CVUlMVElOU180KSAmJiBkZWZpbmVkKF9HTElCQ1hYX0hBVkVfTElOVVhfRlVURVgp Ci0gIyBpbmNsdWRlIDxjbGltaXRzPgoKZGlmZiAtLWdpdCBhL2djYzQ0LWlhNjQtbGlidW53aW5k LnBhdGNoIGIvZ2NjNDQtaWE2NC1saWJ1bndpbmQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDhlMTA5NzkuLjAwMDAwMDAKLS0tIGEvZ2NjNDQtaWE2NC1saWJ1bndpbmQucGF0 Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1MzggKzAsMCBAQAotMjAwNC0xMS0yNyAgSmFrdWIgSmVs aW5layAgPGpha3ViQHJlZGhhdC5jb20+Ci0KLQkqIGNvbmZpZy5nY2MgKGlhNjQqLSotbGludXgq KTogSWYgbmF0aXZlIGFuZCBsaWJlbGYgaXMgaW5zdGFsbGVkLAotCXVzZSBpYTY0L3QtZ2xpYmMt bm8tbGlidW53aW5kIGluc3RlYWQgb2YgdGhlIG90aGVyIHQtKnVud2luZCoKLQlmcmFnbWVudHMu Ci0JKiBjb25maWcvaWE2NC90LWdsaWJjLW5vLWxpYnVud2luZDogTmV3IGZpbGUuCi0JKiBjb25m aWcvaWE2NC9jaGFuZ2Utc3ltdmVyLmM6IE5ldyBmaWxlLgotCSogY29uZmlnL2lhNjQvdW53aW5k LWlhNjQuYzogSWYgVVNFX1NZTVZFUl9HTE9CQUwgYW5kIFNIQVJFRCwKLQlkZWZpbmUgX1Vud2lu ZF8qIHRvIF9fc3ltdmVyZ2xvYmFsX1Vud2luZF8qLgotCShhbGlhcyk6IFVuZGVmaW5lLgotCShz eW12ZXJnbG9iYWwpOiBEZWZpbmUuICBVc2UgaXQgb24gX1Vud2luZF8qLgotCSogY29uZmlnL2lh NjQvbWttYXAtc3ltdmVyLW11bHRpLmF3azogTmV3IGZpbGUuCi0JKiBjb25maWcvaWE2NC9saWJn Y2MtaWE2NC1uby1saWJ1bndpbmQudmVyOiBOZXcgZmlsZS4KLQotLS0tIGdjYy9jb25maWcuZ2Nj LmpqCTIwMDQtMTAtMDQgMDg6NTU6NDQuMDAwMDAwMDAwIC0wNDAwCi0rKysgZ2NjL2NvbmZpZy5n Y2MJMjAwNC0xMS0xMyAwNToyMzo1MC4wMDAwMDAwMDAgLTA1MDAKLUBAIC0xMTg1LDkgKzExODUs MTYgQEAgaWE2NCotKi1mcmVlYnNkKikKLSAJOzsKLSBpYTY0Ki0qLWxpbnV4KikKLSAJdG1fZmls ZT0iJHt0bV9maWxlfSBkYnhlbGYuaCBlbGZvcy5oIHN2cjQuaCBsaW51eC5oIGlhNjQvc3lzdjQu aCBpYTY0L2xpbnV4LmgiCi0tCXRtYWtlX2ZpbGU9IiR7dG1ha2VfZmlsZX0gaWE2NC90LWlhNjQg dC1saWJ1bndpbmQgaWE2NC90LWdsaWJjIgotLQlpZiB0ZXN0IHgkd2l0aF9zeXN0ZW1fbGlidW53 aW5kICE9IHh5ZXMgOyB0aGVuCi0tCQl0bWFrZV9maWxlPSIke3RtYWtlX2ZpbGV9IHQtbGlidW53 aW5kLWVsZiBpYTY0L3QtZ2xpYmMtbGlidW53aW5kIgotKwl0bWFrZV9maWxlPSIke3RtYWtlX2Zp bGV9IGlhNjQvdC1pYTY0IgotKwlpZiB0ZXN0IHgke3RhcmdldH0gPSB4JHtob3N0fSAmJiB0ZXN0 IHgke3RhcmdldH0gPSB4JHtidWlsZH0gXAotKwkgICAmJiBncmVwIGdlbGZfZ2V0dmVyZGVmIC91 c3IvaW5jbHVkZS9nZWxmLmggPiAvZGV2L251bGwgMj4mMSBcCi0rCSAgICYmIHRlc3QgLWYgL3Vz ci9saWIvbGliZWxmLnNvOyB0aGVuCi0rCQl0bWFrZV9maWxlPSIke3RtYWtlX2ZpbGV9IGlhNjQv dC1nbGliYy1uby1saWJ1bndpbmQiCi0rCWVsc2UKLSsJCXRtYWtlX2ZpbGU9IiR7dG1ha2VfZmls ZX0gdC1saWJ1bndpbmQgaWE2NC90LWdsaWJjIgotKwkJaWYgdGVzdCB4JHdpdGhfc3lzdGVtX2xp YnVud2luZCAhPSB4eWVzIDsgdGhlbgotKwkJCXRtYWtlX2ZpbGU9IiR7dG1ha2VfZmlsZX0gdC1s aWJ1bndpbmQtZWxmIGlhNjQvdC1nbGliYy1saWJ1bndpbmQiCi0rCQlmaQotIAlmaQotIAl0YXJn ZXRfY3B1X2RlZmF1bHQ9Ik1BU0tfR05VX0FTfE1BU0tfR05VX0xEIgotIAlleHRyYV9wYXJ0cz0i Y3J0YmVnaW4ubyBjcnRlbmQubyBjcnRiZWdpblMubyBjcnRlbmRTLm8gY3J0ZmFzdG1hdGgubyIK LS0tLSBnY2MvY29uZmlnL2lhNjQvdC1nbGliYy1uby1saWJ1bndpbmQuamoJMjAwNC0wMi0xOCAx MDoyNzozNi4wMDAwMDAwMDAgLTA1MDAKLSsrKyBnY2MvY29uZmlnL2lhNjQvdC1nbGliYy1uby1s aWJ1bndpbmQJMjAwNC0xMS0xNSAwOTo1NjozMy4wMDAwMDAwMDAgLTA1MDAKLUBAIC0wLDAgKzEs MzAgQEAKLSsjIERvbid0IHVzZSBzeXN0ZW0gbGlidW53aW5kIGxpYnJhcnkgb24gSUEtNjQgR0xJ QkMgYmFzZWQgc3lzdGVtLAotKyMgYnV0IG1ha2UgX1Vud2luZF8qIHN5bWJvbHMgdW52ZXJzaW9u ZWQsIHNvIHRoYXQgY3JlYXRlZCBwcm9ncmFtcwotKyMgYXJlIHVzYWJsZSBldmVuIHdoZW4gbGli Z2NjX3MgdXNlcyBsaWJ1bndpbmQuCi0rTElCMkFEREVIICs9ICQoc3JjZGlyKS9jb25maWcvaWE2 NC9mZGUtZ2xpYmMuYwotK1NITElCX01BUEZJTEVTICs9ICQoc3JjZGlyKS9jb25maWcvaWE2NC9s aWJnY2MtaWE2NC1uby1saWJ1bndpbmQudmVyCi0rU0hMSUJfTUtNQVAgPSAkKHNyY2RpcikvY29u ZmlnL2lhNjQvbWttYXAtc3ltdmVyLW11bHRpLmF3awotKwotK1NITElCX0xJTksgPSAkKEdDQ19G T1JfVEFSR0VUKSAkKExJQkdDQzJfQ0ZMQUdTKSAtc2hhcmVkIC1ub2RlZmF1bHRsaWJzIFwKLSsJ LVdsLC0tc29uYW1lPSQoU0hMSUJfU09OQU1FKSBcCi0rCS1XbCwtLXZlcnNpb24tc2NyaXB0PSQo U0hMSUJfTUFQKSBcCi0rCS1vICQoU0hMSUJfRElSKS8kKFNITElCX1NPTkFNRSkudG1wIEBtdWx0 aWxpYl9mbGFnc0AgJChTSExJQl9PQkpTKSAtbGMgJiYgXAotKwlybSAtZiAkKFNITElCX0RJUikv JChTSExJQl9TT0xJTkspICYmIFwKLSsJaWYgWyAtZiAkKFNITElCX0RJUikvJChTSExJQl9TT05B TUUpIF07IHRoZW4gXAotKwkgIG12IC1mICQoU0hMSUJfRElSKS8kKFNITElCX1NPTkFNRSkgXAot KwkJJChTSExJQl9ESVIpLyQoU0hMSUJfU09OQU1FKS5iYWNrdXA7IFwKLSsJZWxzZSB0cnVlOyBm aSAmJiBcCi0rCWdjYyAtTzIgLW8gJChTSExJQl9ESVIpLyQoU0hMSUJfU09OQU1FKS50d2VhayBc Ci0rCSAgJCQoZ2NjX3NyY2RpcikvY29uZmlnL2lhNjQvY2hhbmdlLXN5bXZlci5jIC1sZWxmICYm IFwKLSsJJChTSExJQl9ESVIpLyQoU0hMSUJfU09OQU1FKS50d2VhayAkKFNITElCX0RJUikvJChT SExJQl9TT05BTUUpLnRtcCBcCi0rCUdDQ18zLjQuMiBfR0xPQkFMXyBcCi0rCV9VbndpbmRfR2V0 R1IgX1Vud2luZF9SYWlzZUV4Y2VwdGlvbiBfVW53aW5kX0dldFJlZ2lvblN0YXJ0IF9VbndpbmRf U2V0SVAgXAotKwlfVW53aW5kX0dldElQIF9VbndpbmRfR2V0TGFuZ3VhZ2VTcGVjaWZpY0RhdGEg X1Vud2luZF9SZXN1bWUgXAotKwlfVW53aW5kX0RlbGV0ZUV4Y2VwdGlvbiBfVW53aW5kX1NldEdS IF9VbndpbmRfRm9yY2VkVW53aW5kIFwKLSsJX1Vud2luZF9CYWNrdHJhY2UgX1Vud2luZF9GaW5k RW5jbG9zaW5nRnVuY3Rpb24gX1Vud2luZF9HZXRDRkEgXAotKwlfVW53aW5kX1Jlc3VtZV9vcl9S ZXRocm93IF9VbndpbmRfR2V0QlNQICYmIFwKLSsJcm0gLWYgJChTSExJQl9ESVIpLyQoU0hMSUJf U09OQU1FKS50d2VhayAmJiBcCi0rCW12ICQoU0hMSUJfRElSKS8kKFNITElCX1NPTkFNRSkudG1w ICQoU0hMSUJfRElSKS8kKFNITElCX1NPTkFNRSkgJiYgXAotKwkkKExOX1MpICQoU0hMSUJfU09O QU1FKSAkKFNITElCX0RJUikvJChTSExJQl9TT0xJTkspCi0rCi0rVEFSR0VUX0xJQkdDQzJfQ0ZM QUdTICs9IC1EVVNFX1NZTVZFUl9HTE9CQUwKLS0tLSBnY2MvY29uZmlnL2lhNjQvY2hhbmdlLXN5 bXZlci5jLmpqCTIwMDQtMDItMTggMTA6Mjc6MzYuMDAwMDAwMDAwIC0wNTAwCi0rKysgZ2NjL2Nv bmZpZy9pYTY0L2NoYW5nZS1zeW12ZXIuYwkyMDA0LTExLTEzIDA1OjIzOjUwLjAwMDAwMDAwMCAt MDUwMAotQEAgLTAsMCArMSwyMTEgQEAKLSsjZGVmaW5lIF9HTlVfU09VUkNFIDEKLSsjZGVmaW5l IF9GSUxFX09GRlNFVF9CSVRTIDY0Ci0rI2luY2x1ZGUgPGVuZGlhbi5oPgotKyNpbmNsdWRlIDxl cnJuby5oPgotKyNpbmNsdWRlIDxlcnJvci5oPgotKyNpbmNsdWRlIDxmY250bC5oPgotKyNpbmNs dWRlIDxmbm1hdGNoLmg+Ci0rI2luY2x1ZGUgPGdlbGYuaD4KLSsjaW5jbHVkZSA8c3RkbGliLmg+ Ci0rI2luY2x1ZGUgPHN0cmluZy5oPgotKyNpbmNsdWRlIDx1bmlzdGQuaD4KLSsKLStpbnQKLStj b21wdXRlX3ZlcmlkeCAoY29uc3QgY2hhciAqbmFtZSwgRWxmICplbGYsIEVsZl9EYXRhICp2ZXJk LCBHRWxmX1NoZHIgKnZlcmRfc2hkcikKLSt7Ci0rICBpZiAoc3RyY21wIChuYW1lLCAiX0dMT0JB TF8iKSA9PSAwKQotKyAgICByZXR1cm4gMTsKLSsKLSsgIGludCBjbnQ7Ci0rICBzaXplX3Qgb2Zm c2V0ID0gMDsKLSsgIGZvciAoY250ID0gdmVyZF9zaGRyLT5zaF9pbmZvOyAtLWNudCA+PSAwOyAp Ci0rICAgIHsKLSsgICAgICBHRWxmX1ZlcmRlZiBkZWZtZW07Ci0rICAgICAgR0VsZl9WZXJkZWYg KmRlZjsKLSsgICAgICBHRWxmX1ZlcmRhdXggYXV4bWVtOwotKyAgICAgIEdFbGZfVmVyZGF1eCAq YXV4OwotKyAgICAgIHVuc2lnbmVkIGludCBhdXhvZmZzZXQ7Ci0rCi0rICAgICAgLyogR2V0IHRo ZSBkYXRhIGF0IHRoZSBuZXh0IG9mZnNldC4gICovCi0rICAgICAgZGVmID0gZ2VsZl9nZXR2ZXJk ZWYgKHZlcmQsIG9mZnNldCwgJmRlZm1lbSk7Ci0rICAgICAgaWYgKGRlZiA9PSBOVUxMKQotKwli cmVhazsKLSsKLSsgICAgICBhdXhvZmZzZXQgPSBvZmZzZXQgKyBkZWYtPnZkX2F1eDsKLSsgICAg ICBhdXggPSBnZWxmX2dldHZlcmRhdXggKHZlcmQsIGF1eG9mZnNldCwgJmF1eG1lbSk7Ci0rICAg ICAgaWYgKGF1eCA9PSBOVUxMKQotKwlicmVhazsKLSsKLSsgICAgICBpZiAoc3RyY21wIChuYW1l LCBlbGZfc3RycHRyIChlbGYsIHZlcmRfc2hkci0+c2hfbGluaywKLSsJCSAgYXV4LT52ZGFfbmFt ZSkpID09IDApCi0rCXJldHVybiBkZWYtPnZkX25keDsKLSsKLSsgICAgICAvKiBGaW5kIHRoZSBu ZXh0IG9mZnNldC4gICovCi0rICAgICAgb2Zmc2V0ICs9IGRlZi0+dmRfbmV4dDsKLSsgICAgfQot KwotKyAgcmV0dXJuIC0xOwotK30KLSsKLStpbnQKLSttYWluIChpbnQgYXJnYywgY2hhciAqKmFy Z3YpCi0rewotKyAgaWYgKGFyZ2MgPCA0KQotKyAgICBlcnJvciAoMSwgMCwgIlVzYWdlOiBjaGFu Z2Vfc3ltdmVyIGxpYnJhcnkgZnJvbV9zeW12ZXIgdG9fc3ltdmVyIHN5bWJvbC4uLlxuRXhhbXBs ZTogY2hhbmdlX3N5bXZlciBsaWJmb28uc28gRk9PXzEuMCAqZ2xvYmFsKiBiYXIgYmF6Iik7Ci0r Ci0rICBjb25zdCBjaGFyICpmbmFtZSA9IGFyZ3ZbMV07Ci0rCi0rICAvKiBPcGVuIHRoZSBmaWxl LiAgKi8KLSsgIGludCBmZDsKLSsgIGZkID0gb3BlbiAoZm5hbWUsIE9fUkRXUik7Ci0rICBpZiAo ZmQgPT0gLTEpCi0rICAgIGVycm9yICgxLCBlcnJubywgZm5hbWUpOwotKwotKyAgZWxmX3ZlcnNp b24gKEVWX0NVUlJFTlQpOwotKwotKyAgLyogTm93IGdldCB0aGUgRUxGIGRlc2NyaXB0b3IuICAq LwotKyAgRWxmICplbGYgPSBlbGZfYmVnaW4gKGZkLCBFTEZfQ19SRUFEX01NQVAsIE5VTEwpOwot KyAgaWYgKGVsZiA9PSBOVUxMIHx8IGVsZl9raW5kIChlbGYpICE9IEVMRl9LX0VMRikKLSsgICAg ZXJyb3IgKDEsIDAsICJDb3VsZG4ndCBvcGVuICVzOiAlcyIsIGZuYW1lLCBlbGZfZXJybXNnICgt MSkpOwotKwotKyAgc2l6ZV90IHNoc3RybmR4OwotKyAgLyogR2V0IHRoZSBzZWN0aW9uIGhlYWRl ciBzdHJpbmcgdGFibGUgaW5kZXguICAqLwotKyAgaWYgKGVsZl9nZXRzaHN0cm5keCAoZWxmLCAm c2hzdHJuZHgpIDwgMCkKLSsgICAgZXJyb3IgKDEsIDAsICJjYW5ub3QgZ2V0IHNoc3RybmR4IGZy b20gJXMiLCBmbmFtZSk7Ci0rCi0rICBHRWxmX0VoZHIgZWhkcl9tZW07Ci0rICBHRWxmX0VoZHIg KmVoZHI7Ci0rCi0rICAvKiBXZSBuZWVkIHRoZSBFTEYgaGVhZGVyIGluIGEgZmV3IHBsYWNlcy4g ICovCi0rICBlaGRyID0gZ2VsZl9nZXRlaGRyIChlbGYsICZlaGRyX21lbSk7Ci0rICBpZiAoZWhk ciA9PSBOVUxMKQotKyAgICBlcnJvciAoMSwgMCwgImNvdWxkbid0IGdldCBFTEYgaGVhZGVycyAl czogJXMiLCBmbmFtZSwgZWxmX2Vycm1zZyAoLTEpKTsKLSsKLSsgIEVsZl9TY24gKnNjbiA9IE5V TEw7Ci0rICBHRWxmX1NoZHIgc2hkcl9tZW0sIHZlcmRfc2hkciwgdmVyX3NoZHIsIGR5bnN5bV9z aGRyOwotKyAgRWxmX0RhdGEgKnZlciA9IE5VTEwsICp2ZXJkID0gTlVMTCwgKmR5bnN5bSA9IE5V TEw7Ci0rCi0rICB3aGlsZSAoKHNjbiA9IGVsZl9uZXh0c2NuIChlbGYsIHNjbikpICE9IE5VTEwp Ci0rICAgIHsKLSsgICAgICBHRWxmX1NoZHIgKnNoZHIgPSBnZWxmX2dldHNoZHIgKHNjbiwgJnNo ZHJfbWVtKTsKLSsKLSsgICAgICBpZiAoc2hkciA9PSBOVUxMKQotKwllcnJvciAoMSwgMCwgImNv dWxkbid0IGdldCBzaGRyIGZyb20gJXMiLCBmbmFtZSk7Ci0rCi0rICAgICAgaWYgKChzaGRyLT5z aF9mbGFncyAmIFNIRl9BTExPQykgIT0gMCkKLSsJewotKwkgIGNvbnN0IGNoYXIgKm5hbWUgPSBl bGZfc3RycHRyIChlbGYsIHNoc3RybmR4LCBzaGRyLT5zaF9uYW1lKTsKLSsJICBFbGZfRGF0YSAq KnA7Ci0rCi0rCSAgaWYgKHN0cmNtcCAobmFtZSwgIi5nbnUudmVyc2lvbiIpID09IDApCi0rCSAg ICB7Ci0rCSAgICAgIHAgPSAmdmVyOwotKwkgICAgICB2ZXJfc2hkciA9ICpzaGRyOwotKwkgICAg fQotKwkgIGVsc2UgaWYgKHN0cmNtcCAobmFtZSwgIi5nbnUudmVyc2lvbl9kIikgPT0gMCkKLSsJ ICAgIHsKLSsJICAgICAgcCA9ICZ2ZXJkOwotKwkgICAgICB2ZXJkX3NoZHIgPSAqc2hkcjsKLSsJ ICAgIH0KLSsJICBlbHNlIGlmIChzdHJjbXAgKG5hbWUsICIuZHluc3ltIikgPT0gMCkKLSsJICAg IHsKLSsJICAgICAgcCA9ICZkeW5zeW07Ci0rCSAgICAgIGR5bnN5bV9zaGRyID0gKnNoZHI7Ci0r CSAgICB9Ci0rCSAgZWxzZQotKwkgICAgY29udGludWU7Ci0rCi0rCSAgaWYgKCpwICE9IE5VTEwp Ci0rCSAgICBlcnJvciAoMSwgMCwgIlR3byAlcyBzZWN0aW9ucyBpbiAlcyIsIG5hbWUsIGZuYW1l KTsKLSsJICAqcCA9IGVsZl9nZXRkYXRhIChzY24sIE5VTEwpOwotKwkgIGlmICgqcCA9PSBOVUxM IHx8IGVsZl9nZXRkYXRhIChzY24sICpwKSAhPSBOVUxMKQotKwkgICAgZXJyb3IgKDEsIDAsICJO byBkYXRhIG9yIG5vbi1jb250aWd1b3VzIGRhdGEgaW4gJXMgc2VjdGlvbiBpbiAlcyIsCi0rCQkg ICBuYW1lLCBmbmFtZSk7Ci0rCX0KLSsgICAgfQotKwotKyAgaWYgKHZlciA9PSBOVUxMIHx8IHZl cmQgPT0gTlVMTCB8fCBkeW5zeW0gPT0gTlVMTCkKLSsgICAgZXJyb3IgKDEsIDAsICJDb3VsZG4n dCBmaW5kIG9uZSBvZiB0aGUgbmVlZGVkIHNlY3Rpb25zIGluICVzIiwgZm5hbWUpOwotKwotKyAg aW50IGZyb21faWR4ID0gY29tcHV0ZV92ZXJpZHggKGFyZ3ZbMl0sIGVsZiwgdmVyZCwgJnZlcmRf c2hkcik7Ci0rICBpZiAoZnJvbV9pZHggPT0gLTEpCi0rICAgIGVycm9yICgxLCAwLCAiQ291bGQg bm90IGZpbmQgc3ltYm9sIHZlcnNpb24gJXMgaW4gJXMiLCBhcmd2WzJdLCBmbmFtZSk7Ci0rCi0r ICBpbnQgdG9faWR4ID0gY29tcHV0ZV92ZXJpZHggKGFyZ3ZbM10sIGVsZiwgdmVyZCwgJnZlcmRf c2hkcik7Ci0rICBpZiAodG9faWR4ID09IC0xKQotKyAgICBlcnJvciAoMSwgMCwgIkNvdWxkIG5v dCBmaW5kIHN5bWJvbCB2ZXJzaW9uICVzIGluICVzIiwgYXJndlszXSwgZm5hbWUpOwotKwotKyAg aWYgKGR5bnN5bV9zaGRyLnNoX2VudHNpemUgIT0gZ2VsZl9mc2l6ZSAoZWxmLCBFTEZfVF9TWU0s IDEsIGVoZHItPmVfdmVyc2lvbikKLSsgICAgICB8fCBkeW5zeW1fc2hkci5zaF9zaXplICUgZHlu c3ltX3NoZHIuc2hfZW50c2l6ZQotKyAgICAgIHx8IHZlcl9zaGRyLnNoX2VudHNpemUgIT0gMgot KyAgICAgIHx8ICh2ZXJfc2hkci5zaF9zaXplICYgMSkKLSsgICAgICB8fCBkeW5zeW1fc2hkci5z aF9zaXplIC8gZHluc3ltX3NoZHIuc2hfZW50c2l6ZSAhPSB2ZXJfc2hkci5zaF9zaXplIC8gMikK LSsgICAgZXJyb3IgKDEsIDAsICJVbmV4cGVjdGVkIHNoX3NpemUgb3Igc2hfZW50c2l6ZSBpbiAl cyIsIGZuYW1lKTsKLSsKLSsgIHNpemVfdCBuZW50cmllcyA9IHZlcl9zaGRyLnNoX3NpemUgLyAy OwotKyAgc2l6ZV90IGNudDsKLSsgIEdFbGZfVmVyc3ltIGFycmF5W25lbnRyaWVzXTsKLSsgIGZv ciAoY250ID0gMDsgY250IDwgbmVudHJpZXM7ICsrY250KQotKyAgICB7Ci0rICAgICAgR0VsZl9W ZXJzeW0gdnN5bW1lbTsKLSsgICAgICBHRWxmX1ZlcnN5bSAqdnN5bTsKLSsKLSsgICAgICB2c3lt ID0gZ2VsZl9nZXR2ZXJzeW0gKHZlciwgY250LCAmdnN5bW1lbSk7Ci0rICAgICAgaWYgKHZzeW0g PT0gTlVMTCkKLSsJZXJyb3IgKDEsIDAsICJnZWx0X2dldHZlcnN5bSBmYWlsZWQgaW4gJXM6ICVz IiwgZm5hbWUsIGVsZl9lcnJtc2cgKC0xKSk7Ci0rCi0rICAgICAgYXJyYXlbY250XSA9ICp2c3lt OwotKyAgICAgIGlmICgqdnN5bSAhPSBmcm9tX2lkeCkKLSsJY29udGludWU7Ci0rCi0rICAgICAg R0VsZl9TeW0gc3ltX21lbTsKLSsgICAgICBHRWxmX1N5bSAqc3ltOwotKyAgICAgIHN5bSA9IGdl bGZfZ2V0c3ltIChkeW5zeW0sIGNudCwgJnN5bV9tZW0pOwotKyAgICAgIGlmIChzeW0gPT0gTlVM TCkKLSsJZXJyb3IgKDEsIDAsICJnZWx0X2dldHN5bSBmYWlsZWQgaW4gJXM6ICVzIiwgZm5hbWUs IGVsZl9lcnJtc2cgKC0xKSk7Ci0rCi0rICAgICAgY29uc3QgY2hhciAqbmFtZSA9IGVsZl9zdHJw dHIgKGVsZiwgZHluc3ltX3NoZHIuc2hfbGluaywgc3ltLT5zdF9uYW1lKTsKLSsKLSsgICAgICBp bnQgYXJnbjsKLSsgICAgICBmb3IgKGFyZ24gPSA0OyBhcmduIDwgYXJnYzsgKythcmduKQotKwlp ZiAoZm5tYXRjaCAoYXJndlthcmduXSwgbmFtZSwgMCkgPT0gMCkKLSsJICB7Ci0rCSAgICBhcnJh eVtjbnRdID0gdG9faWR4OwotKwkgICAgYnJlYWs7Ci0rCSAgfQotKyAgICB9Ci0rCi0rICBpZiAo c2l6ZW9mIChhcnJheVswXSkgIT0gMikKLSsgICAgYWJvcnQgKCk7Ci0rCi0rI2lmIF9fQllURV9P UkRFUiA9PSBfX0xJVFRMRV9FTkRJQU4KLSsgIGlmIChlaGRyLT5lX2lkZW50W0VJX0RBVEFdID09 IEVMRkRBVEEyTFNCKQotKyAgICA7Ci0rICBlbHNlIGlmIChlaGRyLT5lX2lkZW50W0VJX0RBVEFd ID09IEVMRkRBVEEyTVNCKQotKyNlbGlmIF9fQllURV9PUkRFUiA9PSBfX0JJR19FTkRJQU4KLSsg IGlmIChlaGRyLT5lX2lkZW50W0VJX0RBVEFdID09IEVMRkRBVEEyTVNCKQotKyAgICA7Ci0rICBl bHNlIGlmIChlaGRyLT5lX2lkZW50W0VJX0RBVEFdID09IEVMRkRBVEEyTFNCKQotKyNlbHNlCi0r IyBlcnJvciBVbnN1cHBvcnRlZCBlbmRpYW5pdHkKLSsjZW5kaWYKLSsgICAgewotKyAgICAgIGZv ciAoY250ID0gMDsgY250IDwgbmVudHJpZXM7ICsrY250KQotKwlhcnJheVtjbnRdID0gKChhcnJh eVtjbnRdICYgMHhmZikgPDwgOCkgfCAoKGFycmF5W2NudF0gJiAweGZmMDApID4+IDgpOwotKyAg ICB9Ci0rICBlbHNlCi0rICAgIGVycm9yICgxLCAwLCAiVW5rbm93biBFSV9EQVRBICVkIGluICVz IiwgZWhkci0+ZV9pZGVudFtFSV9EQVRBXSwgZm5hbWUpOwotKwotKyAgaWYgKGVsZl9lbmQgKGVs ZikgIT0gMCkKLSsgICAgZXJyb3IgKDEsIDAsICJjb3VsZG4ndCBjbG9zZSAlczogJXMiLCBmbmFt ZSwgZWxmX2Vycm1zZyAoLTEpKTsKLSsKLSsgIGlmIChsc2VlayAoZmQsIHZlcl9zaGRyLnNoX29m ZnNldCwgU0VFS19TRVQpICE9IChvZmZfdCkgdmVyX3NoZHIuc2hfb2Zmc2V0KQotKyAgICBlcnJv ciAoMSwgMCwgImZhaWxlZCB0byBzZWVrIHRvICV6ZCBpbiAlcyIsIChzaXplX3QpIHZlcl9zaGRy LnNoX29mZnNldCwKLSsJICAgZm5hbWUpOwotKwotKyAgaWYgKHdyaXRlIChmZCwgYXJyYXksIDIg KiBuZW50cmllcykgIT0gKHNzaXplX3QpICgyICogbmVudHJpZXMpKQotKyAgICBlcnJvciAoMSwg MCwgImZhaWxlZCB0byB3cml0ZSAuZ251LnZlcnNpb24gc2VjdGlvbiBpbnRvICVzIiwgZm5hbWUp OwotKwotKyAgY2xvc2UgKGZkKTsKLSsgIHJldHVybiAwOwotK30KLS0tLSBnY2MvY29uZmlnL2lh NjQvdW53aW5kLWlhNjQuYy5qagkyMDA0LTEwLTA0IDA4OjU1OjU3LjAwMDAwMDAwMCAtMDQwMAot KysrIGdjYy9jb25maWcvaWE2NC91bndpbmQtaWE2NC5jCTIwMDQtMTEtMTUgMDk6MDc6NDUuMDAw MDAwMDAwIC0wNTAwCi1AQCAtNTEsNiArNTEsNTEgQEAKLSAjZGVmaW5lIFVOV19GTEFHX1VIQU5E TEVSKHgpCSgoeCkgJiAweDAwMDAwMDAyMDAwMDAwMDBMKQotICNkZWZpbmUgVU5XX0xFTkdUSCh4 KQkJKCh4KSAmIDB4MDAwMDAwMDBmZmZmZmZmZkwpCi0gCi0rI2lmIGRlZmluZWQgKFVTRV9TWU1W RVJfR0xPQkFMKSAmJiBkZWZpbmVkIChTSEFSRUQpCi0rZXh0ZXJuIF9VbndpbmRfUmVhc29uX0Nv ZGUgX19zeW12ZXJnbG9iYWxfVW53aW5kX0JhY2t0cmFjZQotKyAgKF9VbndpbmRfVHJhY2VfRm4s IHZvaWQgKik7Ci0rZXh0ZXJuIHZvaWQgX19zeW12ZXJnbG9iYWxfVW53aW5kX0RlbGV0ZUV4Y2Vw dGlvbgotKyAgKHN0cnVjdCBfVW53aW5kX0V4Y2VwdGlvbiAqKTsKLStleHRlcm4gdm9pZCAqIF9f c3ltdmVyZ2xvYmFsX1Vud2luZF9GaW5kRW5jbG9zaW5nRnVuY3Rpb24gKHZvaWQgKik7Ci0rZXh0 ZXJuIF9VbndpbmRfUmVhc29uX0NvZGUgX19zeW12ZXJnbG9iYWxfVW53aW5kX0ZvcmNlZFVud2lu ZAotKyAgKHN0cnVjdCBfVW53aW5kX0V4Y2VwdGlvbiAqLCBfVW53aW5kX1N0b3BfRm4sIHZvaWQg Kik7Ci0rZXh0ZXJuIF9VbndpbmRfV29yZCBfX3N5bXZlcmdsb2JhbF9VbndpbmRfR2V0Q0ZBCi0r ICAoc3RydWN0IF9VbndpbmRfQ29udGV4dCAqKTsKLStleHRlcm4gX1Vud2luZF9Xb3JkIF9fc3lt dmVyZ2xvYmFsX1Vud2luZF9HZXRCU1AKLSsgIChzdHJ1Y3QgX1Vud2luZF9Db250ZXh0ICopOwot K2V4dGVybiBfVW53aW5kX1dvcmQgX19zeW12ZXJnbG9iYWxfVW53aW5kX0dldEdSCi0rICAoc3Ry dWN0IF9VbndpbmRfQ29udGV4dCAqLCBpbnQgKTsKLStleHRlcm4gX1Vud2luZF9QdHIgX19zeW12 ZXJnbG9iYWxfVW53aW5kX0dldElQIChzdHJ1Y3QgX1Vud2luZF9Db250ZXh0ICopOwotK2V4dGVy biB2b2lkICpfX3N5bXZlcmdsb2JhbF9VbndpbmRfR2V0TGFuZ3VhZ2VTcGVjaWZpY0RhdGEKLSsg IChzdHJ1Y3QgX1Vud2luZF9Db250ZXh0ICopOwotK2V4dGVybiBfVW53aW5kX1B0ciBfX3N5bXZl cmdsb2JhbF9VbndpbmRfR2V0UmVnaW9uU3RhcnQKLSsgIChzdHJ1Y3QgX1Vud2luZF9Db250ZXh0 ICopOwotK2V4dGVybiBfVW53aW5kX1JlYXNvbl9Db2RlIF9fc3ltdmVyZ2xvYmFsX1Vud2luZF9S YWlzZUV4Y2VwdGlvbgotKyAgKHN0cnVjdCBfVW53aW5kX0V4Y2VwdGlvbiAqKTsKLStleHRlcm4g dm9pZCBfX3N5bXZlcmdsb2JhbF9VbndpbmRfUmVzdW1lIChzdHJ1Y3QgX1Vud2luZF9FeGNlcHRp b24gKik7Ci0rZXh0ZXJuIF9VbndpbmRfUmVhc29uX0NvZGUgX19zeW12ZXJnbG9iYWxfVW53aW5k X1Jlc3VtZV9vcl9SZXRocm93Ci0rICAgKHN0cnVjdCBfVW53aW5kX0V4Y2VwdGlvbiAqKTsKLStl eHRlcm4gdm9pZCBfX3N5bXZlcmdsb2JhbF9VbndpbmRfU2V0R1IKLSsgIChzdHJ1Y3QgX1Vud2lu ZF9Db250ZXh0ICosIGludCwgX1Vud2luZF9Xb3JkKTsKLStleHRlcm4gdm9pZCBfX3N5bXZlcmds b2JhbF9VbndpbmRfU2V0SVAKLSsgIChzdHJ1Y3QgX1Vud2luZF9Db250ZXh0ICosIF9VbndpbmRf UHRyKTsKLSsjZGVmaW5lIF9VbndpbmRfQmFja3RyYWNlIF9fc3ltdmVyZ2xvYmFsX1Vud2luZF9C YWNrdHJhY2UKLSsjZGVmaW5lIF9VbndpbmRfRGVsZXRlRXhjZXB0aW9uIF9fc3ltdmVyZ2xvYmFs X1Vud2luZF9EZWxldGVFeGNlcHRpb24KLSsjZGVmaW5lIF9VbndpbmRfRmluZEVuY2xvc2luZ0Z1 bmN0aW9uIF9fc3ltdmVyZ2xvYmFsX1Vud2luZF9GaW5kRW5jbG9zaW5nRnVuY3Rpb24KLSsjZGVm aW5lIF9VbndpbmRfRm9yY2VkVW53aW5kIF9fc3ltdmVyZ2xvYmFsX1Vud2luZF9Gb3JjZWRVbndp bmQKLSsjZGVmaW5lIF9VbndpbmRfR2V0QlNQIF9fc3ltdmVyZ2xvYmFsX1Vud2luZF9HZXRCU1AK LSsjZGVmaW5lIF9VbndpbmRfR2V0Q0ZBIF9fc3ltdmVyZ2xvYmFsX1Vud2luZF9HZXRDRkEKLSsj ZGVmaW5lIF9VbndpbmRfR2V0R1IgX19zeW12ZXJnbG9iYWxfVW53aW5kX0dldEdSCi0rI2RlZmlu ZSBfVW53aW5kX0dldElQIF9fc3ltdmVyZ2xvYmFsX1Vud2luZF9HZXRJUAotKyNkZWZpbmUgX1Vu d2luZF9HZXRMYW5ndWFnZVNwZWNpZmljRGF0YSBfX3N5bXZlcmdsb2JhbF9VbndpbmRfR2V0TGFu Z3VhZ2VTcGVjaWZpY0RhdGEKLSsjZGVmaW5lIF9VbndpbmRfR2V0UmVnaW9uU3RhcnQgX19zeW12 ZXJnbG9iYWxfVW53aW5kX0dldFJlZ2lvblN0YXJ0Ci0rI2RlZmluZSBfVW53aW5kX1JhaXNlRXhj ZXB0aW9uIF9fc3ltdmVyZ2xvYmFsX1Vud2luZF9SYWlzZUV4Y2VwdGlvbgotKyNkZWZpbmUgX1Vu d2luZF9SZXN1bWUgX19zeW12ZXJnbG9iYWxfVW53aW5kX1Jlc3VtZQotKyNkZWZpbmUgX1Vud2lu ZF9SZXN1bWVfb3JfUmV0aHJvdyBfX3N5bXZlcmdsb2JhbF9VbndpbmRfUmVzdW1lX29yX1JldGhy b3cKLSsjZGVmaW5lIF9VbndpbmRfU2V0R1IgX19zeW12ZXJnbG9iYWxfVW53aW5kX1NldEdSCi0r I2RlZmluZSBfVW53aW5kX1NldElQIF9fc3ltdmVyZ2xvYmFsX1Vud2luZF9TZXRJUAotKyNlbmRp ZgotKwotIGVudW0gdW53X2FwcGxpY2F0aW9uX3JlZ2lzdGVyCi0gewotICAgVU5XX0FSX0JTUCwK LUBAIC0yNDAyLDQgKzI0NDcsNDQgQEAgYWxpYXMgKF9VbndpbmRfU2V0R1IpOwotIGFsaWFzIChf VW53aW5kX1NldElQKTsKLSAjZW5kaWYKLSAKLSsjaWYgZGVmaW5lZCAoVVNFX1NZTVZFUl9HTE9C QUwpICYmIGRlZmluZWQgKFNIQVJFRCkKLSsjdW5kZWYgYWxpYXMKLSsjZGVmaW5lIHN5bXZlcmds b2JhbChuYW1lLCB2ZXJzaW9uKSBcCi0rX190eXBlb2YgKF9fc3ltdmVyZ2xvYmFsIyNuYW1lKSBf X3N5bXZlcmxvY2FsIyNuYW1lCQlcCi0rICBfX2F0dHJpYnV0ZV9fICgoYWxpYXMgKCJfX3N5bXZl cmdsb2JhbCIgI25hbWUpKSk7CQlcCi0rX19hc21fXyAoIi5zeW12ZXIgX19zeW12ZXJnbG9iYWwi ICNuYW1lIiwiICNuYW1lICJAQEdDQ18zLjQuMiIpO1wKLStfX2FzbV9fICgiLnN5bXZlciBfX3N5 bXZlcmxvY2FsIiAjbmFtZSIsIiAjbmFtZSAiQCIgI3ZlcnNpb24pCi0rCi0rI3VuZGVmIF9Vbndp bmRfQmFja3RyYWNlCi0rI3VuZGVmIF9VbndpbmRfRGVsZXRlRXhjZXB0aW9uCi0rI3VuZGVmIF9V bndpbmRfRmluZEVuY2xvc2luZ0Z1bmN0aW9uCi0rI3VuZGVmIF9VbndpbmRfRm9yY2VkVW53aW5k Ci0rI3VuZGVmIF9VbndpbmRfR2V0QlNQCi0rI3VuZGVmIF9VbndpbmRfR2V0Q0ZBCi0rI3VuZGVm IF9VbndpbmRfR2V0R1IKLSsjdW5kZWYgX1Vud2luZF9HZXRJUAotKyN1bmRlZiBfVW53aW5kX0dl dExhbmd1YWdlU3BlY2lmaWNEYXRhCi0rI3VuZGVmIF9VbndpbmRfR2V0UmVnaW9uU3RhcnQKLSsj dW5kZWYgX1Vud2luZF9SYWlzZUV4Y2VwdGlvbgotKyN1bmRlZiBfVW53aW5kX1Jlc3VtZQotKyN1 bmRlZiBfVW53aW5kX1Jlc3VtZV9vcl9SZXRocm93Ci0rI3VuZGVmIF9VbndpbmRfU2V0R1IKLSsj dW5kZWYgX1Vud2luZF9TZXRJUAotK3N5bXZlcmdsb2JhbCAoX1Vud2luZF9CYWNrdHJhY2UsIEdD Q18zLjMpOwotK3N5bXZlcmdsb2JhbCAoX1Vud2luZF9EZWxldGVFeGNlcHRpb24sIEdDQ18zLjAp OwotK3N5bXZlcmdsb2JhbCAoX1Vud2luZF9GaW5kRW5jbG9zaW5nRnVuY3Rpb24sIEdDQ18zLjMp OwotK3N5bXZlcmdsb2JhbCAoX1Vud2luZF9Gb3JjZWRVbndpbmQsIEdDQ18zLjApOwotK3N5bXZl cmdsb2JhbCAoX1Vud2luZF9HZXRCU1AsIEdDQ18zLjMuMik7Ci0rc3ltdmVyZ2xvYmFsIChfVW53 aW5kX0dldENGQSwgR0NDXzMuMyk7Ci0rc3ltdmVyZ2xvYmFsIChfVW53aW5kX0dldEdSLCBHQ0Nf My4wKTsKLStzeW12ZXJnbG9iYWwgKF9VbndpbmRfR2V0SVAsIEdDQ18zLjApOwotK3N5bXZlcmds b2JhbCAoX1Vud2luZF9HZXRMYW5ndWFnZVNwZWNpZmljRGF0YSwgR0NDXzMuMCk7Ci0rc3ltdmVy Z2xvYmFsIChfVW53aW5kX0dldFJlZ2lvblN0YXJ0LCBHQ0NfMy4wKTsKLStzeW12ZXJnbG9iYWwg KF9VbndpbmRfUmFpc2VFeGNlcHRpb24sIEdDQ18zLjApOwotK3N5bXZlcmdsb2JhbCAoX1Vud2lu ZF9SZXN1bWUsIEdDQ18zLjApOwotK3N5bXZlcmdsb2JhbCAoX1Vud2luZF9SZXN1bWVfb3JfUmV0 aHJvdywgR0NDXzMuMyk7Ci0rc3ltdmVyZ2xvYmFsIChfVW53aW5kX1NldEdSLCBHQ0NfMy4wKTsK LStzeW12ZXJnbG9iYWwgKF9VbndpbmRfU2V0SVAsIEdDQ18zLjApOwotKyNlbmRpZgotKwotICNl bmRpZgotLS0tIGdjYy9jb25maWcvaWE2NC9ta21hcC1zeW12ZXItbXVsdGkuYXdrLmpqCTIwMDQt MDItMTggMTA6Mjc6MzYuMDAwMDAwMDAwIC0wNTAwCi0rKysgZ2NjL2NvbmZpZy9pYTY0L21rbWFw LXN5bXZlci1tdWx0aS5hd2sJMjAwNC0xMS0xNSAwOTo0Njo1MC4wMDAwMDAwMDAgLTA1MDAKLUBA IC0wLDAgKzEsMTMzIEBACi0rIyBHZW5lcmF0ZSBhbiBFTEYgc3ltYm9sIHZlcnNpb24gbWFwIGEt bGEgU29sYXJpcyBhbmQgR05VIGxkLgotKyMJQ29udHJpYnV0ZWQgYnkgUmljaGFyZCBIZW5kZXJz b24gPHJ0aEBjeWdudXMuY29tPgotKyMKLSsjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdDQy4KLSsj Ci0rIyBHQ0MgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y IG1vZGlmeSBpdCB1bmRlcgotKyMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUKLSsjIFNvZnR3YXJlIEZvdW5kYXRpb247 IGVpdGhlciB2ZXJzaW9uIDIsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyCi0rIyB2ZXJz aW9uLgotKyMKLSsjIEdDQyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLCBidXQgV0lUSE9VVAotKyMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZCi0rIyBvciBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljCi0rIyBMaWNl bnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdpdGggR0ND OyBzZWUgdGhlIGZpbGUgQ09QWUlORy4gIElmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUKLSsjIFNv ZnR3YXJlIEZvdW5kYXRpb24sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3Rv biwgTUEKLSsjIDAyMTEwLTEzMDEsIFVTQS4KLSsKLStCRUdJTiB7Ci0rICBzdGF0ZSA9ICJubSI7 Ci0rICBzYXdzeW1ib2wgPSAwOwotK30KLSsKLSsjIFJlbW92ZSBjb21tZW50IGFuZCBibGFuayBs aW5lcy4KLSsvXiAqIy8gfHwgL14gKiQvIHsKLSsgIG5leHQ7Ci0rfQotKwotKyMgV2UgYmVnaW4g d2l0aCBubSBpbnB1dC4gIENvbGxlY3QgdGhlIHNldCBvZiBzeW1ib2xzIHRoYXQgYXJlIHByZXNl bnQKLSsjIHNvIHRoYXQgd2UgY2FuIG5vdCBlbWl0IHRoZW0gaW50byB0aGUgZmluYWwgdmVyc2lv biBzY3JpcHQgLS0gU29sYXJpcwotKyMgY29tcGxhaW5zIGF0IHVzIGlmIHdlIGRvLgotKwotK3N0 YXRlID09ICJubSIgJiYgL14lJS8gewotKyAgc3RhdGUgPSAidmVyIjsKLSsgIG5leHQ7Ci0rfQot KwotK3N0YXRlID09ICJubSIgJiYgKCQxID09ICJVIiB8fCAkMiA9PSAiVSIpIHsKLSsgIG5leHQ7 Ci0rfQotKwotK3N0YXRlID09ICJubSIgJiYgTkYgPT0gMyB7Ci0rICBpZiAoJDMgfiAvXlteQF0q QEdDQ19bMC05Ll0qJC8pIHsKLSsgICAgZGVmWyQzXSA9IDEKLSsgICAgdGw9JDMKLSsgICAgc3Vi KC9eLipALywiIix0bCkKLSsgICAgdmVyWyQzXSA9IHRsCi0rICB9IGVsc2UgewotKyAgICBzdWIo L0BAP0dDQ19bMC05Ll0qJC8sIiIsJDMpCi0rICAgIGRlZlskM10gPSAxOwotKyAgfQotKyAgc2F3 c3ltYm9sID0gMTsKLSsgIG5leHQ7Ci0rfQotKwotK3N0YXRlID09ICJubSIgewotKyAgbmV4dDsK LSt9Ci0rCi0rIyBOb3cgd2UgcHJvY2VzcyBhIHNpbXBsaWZpZWQgdmFyaWFudCBvZiB0aGUgU29s YXJpcyBzeW1ib2wgdmVyc2lvbgotKyMgc2NyaXB0LiAgV2UgaGF2ZSBvbmUgc3ltYm9sIHBlciBs aW5lLCBubyBzZW1pY29sb25zLCBzaW1wbGUgbWFya2VycwotKyMgZm9yIGJlZ2lubmluZyBhbmQg ZW5kaW5nIGVhY2ggc2VjdGlvbiwgYW5kICVpbmhlcml0IG1hcmtlcnMgZm9yCi0rIyBkZXNjcmli aW5nIHZlcnNpb24gaW5oZXJpdGVuY2UuICBBIHN5bWJvbCBtYXkgYXBwZWFyIGluIG1vcmUgdGhh bgotKyMgb25lIHN5bWJvbCB2ZXJzaW9uLCBhbmQgdGhlIGxhc3Qgc2VlbiB0YWtlcyBlZmZlY3Qu Ci0rCi0rTkYgPT0gMyAmJiAkMSA9PSAiJWluaGVyaXQiIHsKLSsgIGluaGVyaXRbJDJdID0gJDM7 Ci0rICBuZXh0OwotK30KLSsKLStORiA9PSAyICYmICQyID09ICJ7IiB7Ci0rICBsaWJzWyQxXSA9 IDE7Ci0rICB0aGlzbGliID0gJDE7Ci0rICBuZXh0OwotK30KLSsKLSskMSA9PSAifSIgewotKyAg dGhpc2xpYiA9ICIiOwotKyAgbmV4dDsKLSt9Ci0rCi0rewotKyAgdmVyWyQxXSA9IHRoaXNsaWI7 Ci0rICBuZXh0OwotK30KLSsKLStFTkQgewotKyAgaWYgKCFzYXdzeW1ib2wpCi0rICAgIHsKLSsg ICAgICBwcmludCAiTm8gc3ltYm9scyBzZWVuIC0tIGJyb2tlbiBvciBtaXMtaW5zdGFsbGVkIG5t PyIgfCAiY2F0IDE+JjIiOwotKyAgICAgIGV4aXQgMTsKLSsgICAgfQotKyAgZm9yIChsIGluIGxp YnMpCi0rICAgIG91dHB1dChsKTsKLSt9Ci0rCi0rZnVuY3Rpb24gb3V0cHV0KGxpYikgewotKyAg aWYgKGRvbmVbbGliXSkKLSsgICAgcmV0dXJuOwotKyAgZG9uZVtsaWJdID0gMTsKLSsgIGlmIChp bmhlcml0W2xpYl0pCi0rICAgIG91dHB1dChpbmhlcml0W2xpYl0pOwotKwotKyAgZW1wdHk9MQot KyAgZm9yIChzeW0gaW4gdmVyKQotKyAgICBpZiAoKHZlcltzeW1dID09IGxpYikgJiYgKHN5bSBp biBkZWYpKQotKyAgICAgIHsKLSsJaWYgKGVtcHR5KQotKwkgIHsKLSsJICAgIHByaW50ZigiJXMg e1xuIiwgbGliKTsKLSsJICAgIHByaW50ZigiICBnbG9iYWw6XG4iKTsKLSsJICAgIGVtcHR5ID0g MDsKLSsJICB9Ci0rCXN5bXAgPSBzeW07Ci0rCXN1YigvQEdDQ19bMC05Ll0qJC8sIiIsc3ltcCk7 Ci0rCXByaW50ZigiXHQlcztcbiIsIHN5bXApOwotKwlpZiAoZG90c3ltcykKLSsJICBwcmludGYo Ilx0LiVzO1xuIiwgc3ltcCk7Ci0rICAgICAgfQotKwotKyAgaWYgKGVtcHR5KQotKyAgICB7Ci0r ICAgICAgZm9yIChsIGluIGxpYnMpCi0rCWlmIChpbmhlcml0W2xdID09IGxpYikKLSsJICBpbmhl cml0W2xdID0gaW5oZXJpdFtsaWJdOwotKyAgICB9Ci0rICBlbHNlIGlmIChpbmhlcml0W2xpYl0p Ci0rICAgIHByaW50ZigifSAlcztcbiIsIGluaGVyaXRbbGliXSk7Ci0rICBlbHNlCi0rICAgIHBy aW50ZiAoIlxuICBsb2NhbDpcblx0Kjtcbn07XG4iKTsKLSt9Ci0tLS0gZ2NjL2NvbmZpZy9pYTY0 L2xpYmdjYy1pYTY0LW5vLWxpYnVud2luZC52ZXIuamoJMjAwNC0wMi0xOCAxMDoyNzozNi4wMDAw MDAwMDAgLTA1MDAKLSsrKyBnY2MvY29uZmlnL2lhNjQvbGliZ2NjLWlhNjQtbm8tbGlidW53aW5k LnZlcgkyMDA0LTExLTE1IDA5OjE5OjU2LjAwMDAwMDAwMCAtMDUwMAotQEAgLTAsMCArMSwxNyBA QAotK0dDQ18zLjQuMiB7Ci0rICBfVW53aW5kX0dldEdSCi0rICBfVW53aW5kX1JhaXNlRXhjZXB0 aW9uCi0rICBfVW53aW5kX0dldFJlZ2lvblN0YXJ0Ci0rICBfVW53aW5kX1NldElQCi0rICBfVW53 aW5kX0dldElQCi0rICBfVW53aW5kX0dldExhbmd1YWdlU3BlY2lmaWNEYXRhCi0rICBfVW53aW5k X1Jlc3VtZQotKyAgX1Vud2luZF9EZWxldGVFeGNlcHRpb24KLSsgIF9VbndpbmRfU2V0R1IKLSsg IF9VbndpbmRfRm9yY2VkVW53aW5kCi0rICBfVW53aW5kX0JhY2t0cmFjZQotKyAgX1Vud2luZF9G aW5kRW5jbG9zaW5nRnVuY3Rpb24KLSsgIF9VbndpbmRfR2V0Q0ZBCi0rICBfVW53aW5kX1Jlc3Vt ZV9vcl9SZXRocm93Ci0rICBfVW53aW5kX0dldEJTUAotK30KCmRpZmYgLS1naXQgYS9nY2M0NC1q YXZhLW5vbXVsdGkucGF0Y2ggYi9nY2M0NC1qYXZhLW5vbXVsdGkucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDE3MzM0YWEuLjAwMDAwMDAKLS0tIGEvZ2NjNDQtamF2YS1ub211 bHRpLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotLS0tIGxpYmphdmEvY29u ZmlndXJlLmFjLmpqCTIwMDctMTItMDcgMTc6NTU6NTAuMDAwMDAwMDAwICswMTAwCi0rKysgbGli amF2YS9jb25maWd1cmUuYWMJMjAwNy0xMi0wNyAxODozNjo1Ni4wMDAwMDAwMDAgKzAxMDAKLUBA IC04Miw2ICs4MiwxMyBAQCBBQ19BUkdfRU5BQkxFKGphdmEtbWFpbnRhaW5lci1tb2RlLAotIAlb YWxsb3cgcmVidWlsZGluZyBvZiAuY2xhc3MgYW5kIC5oIGZpbGVzXSkpCi0gQU1fQ09ORElUSU9O QUwoSkFWQV9NQUlOVEFJTkVSX01PREUsIHRlc3QgIiRlbmFibGVfamF2YV9tYWludGFpbmVyX21v ZGUiID0geWVzKQotIAotK0FDX0FSR19FTkFCTEUobGliamF2YS1tdWx0aWxpYiwKLSsJQVNfSEVM UF9TVFJJTkcoWy0tZW5hYmxlLWxpYmphdmEtbXVsdGlsaWJdLCBbYnVpbGQgbGliamF2YSBhcyBt dWx0aWxpYl0pKQotK2lmIHRlc3QgIiRlbmFibGVfbGliamF2YV9tdWx0aWxpYiIgPSBubzsgdGhl bgotKyAgbXVsdGlsaWI9bm8KLSsgIGFjX2NvbmZpZ3VyZV9hcmdzPSIkYWNfY29uZmlndXJlX2Fy Z3MgLS1kaXNhYmxlLW11bHRpbGliIgotK2ZpCi0rCi0gIyBJdCBtYXkgbm90IGJlIHNhZmUgdG8g cnVuIGxpbmtpbmcgdGVzdHMgaW4gQUNfUFJPR19DQy9BQ19QUk9HX0NYWC4KLSBHQ0NfTk9fRVhF Q1VUQUJMRVMKLSAKLS0tLSBsaWJqYXZhL2NvbmZpZ3VyZS5qagkyMDA3LTEyLTA3IDE3OjU1OjUw LjAwMDAwMDAwMCArMDEwMAotKysrIGxpYmphdmEvY29uZmlndXJlCTIwMDctMTItMDcgMTg6Mzk6 NTguMDAwMDAwMDAwICswMTAwCi1AQCAtMTAyMSw2ICsxMDIxLDggQEAgT3B0aW9uYWwgRmVhdHVy ZXM6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PXllcwotICAgLS1lbmFibGUt amF2YS1tYWludGFpbmVyLW1vZGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93IHJl YnVpbGRpbmcgb2YgLmNsYXNzIGFuZCAuaCBmaWxlcwotKyAgLS1lbmFibGUtbGliamF2YS1tdWx0 aWxpYgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGQgbGliamF2YSBhcyBtdWx0aWxp YgotICAgLS1kaXNhYmxlLWRlcGVuZGVuY3ktdHJhY2tpbmcgIHNwZWVkcyB1cCBvbmUtdGltZSBi dWlsZAotICAgLS1lbmFibGUtZGVwZW5kZW5jeS10cmFja2luZyAgIGRvIG5vdCByZWplY3Qgc2xv dyBkZXBlbmRlbmN5IGV4dHJhY3RvcnMKLSAgIC0tZW5hYmxlLW1haW50YWluZXItbW9kZSAgZW5h YmxlIG1ha2UgcnVsZXMgYW5kIGRlcGVuZGVuY2llcyBub3QgdXNlZnVsCi1AQCAtMTk3Myw2ICsx OTc1LDE2IEBAIGVsc2UKLSBmaQotIAotIAotKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1saWJq YXZhLW11bHRpbGliIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke2VuYWJsZV9saWJqYXZhX211bHRp bGliK3NldH0iID0gc2V0OyB0aGVuCi0rICBlbmFibGV2YWw9JGVuYWJsZV9saWJqYXZhX211bHRp bGliOwotK2ZpCi0rCi0raWYgdGVzdCAiJGVuYWJsZV9saWJqYXZhX211bHRpbGliIiA9IG5vOyB0 aGVuCi0rICBtdWx0aWxpYj1ubwotKyAgYWNfY29uZmlndXJlX2FyZ3M9IiRhY19jb25maWd1cmVf YXJncyAtLWRpc2FibGUtbXVsdGlsaWIiCi0rZmkKLSsKLSAjIEl0IG1heSBub3QgYmUgc2FmZSB0 byBydW4gbGlua2luZyB0ZXN0cyBpbiBBQ19QUk9HX0NDL0FDX1BST0dfQ1hYLgotIAotIAoKZGlm ZiAtLWdpdCBhL2djYzQ0LWxpYmdvbXAtb21wX2gtbXVsdGlsaWIucGF0Y2ggYi9nY2M0NC1saWJn b21wLW9tcF9oLW11bHRpbGliLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBk MGU5OGQxLi4wMDAwMDAwCi0tLSBhL2djYzQ0LWxpYmdvbXAtb21wX2gtbXVsdGlsaWIucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi0yMDA4LTA2LTA5ICBKYWt1YiBKZWxpbmVr ICA8amFrdWJAcmVkaGF0LmNvbT4KLQotCSogb21wLmguaW4gKG9tcF9uZXN0X2xvY2tfdCk6IEZp eCB1cCBmb3IgTGludXggbXVsdGlsaWJzLgotCi0tLS0gbGliZ29tcC9vbXAuaC5pbi5qagkyMDA4 LTA2LTA5IDEzOjM0OjA1LjAwMDAwMDAwMCArMDIwMAotKysrIGxpYmdvbXAvb21wLmguaW4JMjAw OC0wNi0wOSAxMzozNDo0OC4wMDAwMDAwMDAgKzAyMDAKLUBAIC00Miw4ICs0Miw4IEBAIHR5cGVk ZWYgc3RydWN0Ci0gCi0gdHlwZWRlZiBzdHJ1Y3QKLSB7Ci0tICB1bnNpZ25lZCBjaGFyIF94W0BP TVBfTkVTVF9MT0NLX1NJWkVAXSAKLS0gICAgX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oQE9N UF9ORVNUX0xPQ0tfQUxJR05AKSkpOwotKyAgdW5zaWduZWQgY2hhciBfeFs4ICsgc2l6ZW9mICh2 b2lkICopXSAKLSsgICAgX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oc2l6ZW9mICh2b2lkICop KSkpOwotIH0gb21wX25lc3RfbG9ja190OwotICNlbmRpZgotIAoKZGlmZiAtLWdpdCBhL2djYzQ0 LWxpYnN0ZGMrKy1kb2NzLnBhdGNoIGIvZ2NjNDQtbGlic3RkYysrLWRvY3MucGF0Y2gKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ1Y2FhZmUuLjAwMDAwMDAKLS0tIGEvZ2NjNDQtbGli c3RkYysrLWRvY3MucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi0tLS0gbGli c3RkYysrLXYzL2RvYy9odG1sL2luZGV4Lmh0bWwJMjAwOS0wMS0xNCAxMjowNjozNy4wMDAwMDAw MDAgKzAxMDAKLSsrKyBsaWJzdGRjKystdjMvZG9jL2h0bWwvaW5kZXguaHRtbAkyMDA5LTA1LTA2 IDA5OjE3OjMwLjAwMDAwMDAwMCArMDIwMAotQEAgLTEyLDcgKzEyLDggQEAKLSA8ZGl2PgotIDxo MT5UaGUgR05VIEMrKyBMaWJyYXJ5IERvY3VtZW50YXRpb248L2gxPgotIAotLTxwPkNvcHlyaWdo dCAyMDA4IEZTRjwvcD4KLSs8cD5SZWxlYXNlIDQuNC4wPC9wPgotKzxwPkNvcHlyaWdodCAyMDA4 LCAyMDA5IEZTRjwvcD4KLSAKLSA8cD4KLSAgIFBlcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBjb3B5 LCBkaXN0cmlidXRlIGFuZC9vciBtb2RpZnkgdGhpcwotLS0tIGxpYnN0ZGMrKy12My9kb2MvaHRt bC9hcGkuaHRtbAkyMDA5LTA0LTIwIDIxOjIxOjE1LjAwMDAwMDAwMCArMDIwMAotKysrIGxpYnN0 ZGMrKy12My9kb2MvaHRtbC9hcGkuaHRtbAkyMDA5LTA1LTA2IDA5OjE3OjI0LjAwMDAwMDAwMCAr MDIwMAotQEAgLTE3LDI3ICsxNywxMiBAQCB1c2VmdWwgZm9yIGV4YW1pbmluZyB0aGUgc2lnbmF0 dXJlcyBvZiBwCi0gdGhlIGxpYnJhcnkgY2xhc3NlcywgZmluZGluZyBvdXQgd2hhdCBpcyBpbiBh IHBhcnRpY3VsYXIgaW5jbHVkZQotIGZpbGUsIGxvb2tpbmcgYXQgaW5oZXJpdGFuY2UgZGlhZ3Jh bXMsIGV0Yy4KLSA8L3A+PHA+Ci0tVGhlIHNvdXJjZS1sZXZlbCBkb2N1bWVudGF0aW9uIGZvciB0 aGUgbW9zdCByZWNlbnQgcmVsZWFzZXMgY2FuIGJlCi0tdmlld2VkIG9ubGluZToKLS08L3A+PGRp diBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgdHlwZT0iZGlzYyI+PGxpPjxwPgotLSAgICAgIDxh IGNsYXNzPSJ1bGluayIgaHJlZj0ibGlic3RkYysrLWh0bWwtVVNFUlMtMy40L2luZGV4Lmh0bWwi IHRhcmdldD0iX3RvcCI+Zm9yIHRoZSAzLjQgcmVsZWFzZQotK1RoZSBzb3VyY2UtbGV2ZWwgZG9j dW1lbnRhdGlvbiBjYW4gYmUgdmlld2VkIGhlcmU6Ci0rPC9wPgotKzxkaXYgY2xhc3M9Iml0ZW1p emVkbGlzdCI+PHVsIHR5cGU9ImRpc2MiPgotKyAgICA8bGk+PHA+Ci0rICAgICAgPGEgY2xhc3M9 InVsaW5rIiBocmVmPSJhcGkvaW5kZXguaHRtbCIgdGFyZ2V0PSJfdG9wIj5mb3IgdGhlIDQuNCBy ZWxlYXNlCi0gICAgICAgPC9hPgotLSAgICA8L3A+PC9saT48bGk+PHA+Ci0tICAgICAgPGEgY2xh c3M9InVsaW5rIiBocmVmPSJsaWJzdGRjKystaHRtbC1VU0VSUy00LjEvaW5kZXguaHRtbCIgdGFy Z2V0PSJfdG9wIj5mb3IgdGhlIDQuMSByZWxlYXNlCi0tICAgICAgPC9hPgotLSAgICA8L3A+PC9s aT48bGk+PHA+Ci0tICAgICAgPGEgY2xhc3M9InVsaW5rIiBocmVmPSJsaWJzdGRjKystaHRtbC1V U0VSUy00LjIvaW5kZXguaHRtbCIgdGFyZ2V0PSJfdG9wIj5mb3IgdGhlIDQuMiByZWxlYXNlCi0t ICAgICAgPC9hPgotLSAgICA8L3A+PC9saT48bGk+PHA+Ci0tICAgICAgPGEgY2xhc3M9InVsaW5r IiBocmVmPSJsaWJzdGRjKystaHRtbC1VU0VSUy00LjMvaW5kZXguaHRtbCIgdGFyZ2V0PSJfdG9w Ij5mb3IgdGhlIDQuMyByZWxlYXNlCi0tICAgICAgPC9hPgotLSAgICA8L3A+PC9saT48bGk+PHA+ Ci0tICAgICAgPGEgY2xhc3M9InVsaW5rIiBocmVmPSJsaWJzdGRjKystaHRtbC1VU0VSUy00LjQv aW5kZXguaHRtbCIgdGFyZ2V0PSJfdG9wIj5mb3IgdGhlIDQuNCByZWxlYXNlCi0tICAgICAgPC9h PgotLSAgICA8L3A+PC9saT48bGk+PHA+Ci0tICAgICAgPGEgY2xhc3M9InVsaW5rIiBocmVmPSJs YXRlc3QtZG94eWdlbi9pbmRleC5odG1sIiB0YXJnZXQ9Il90b3AiPiJ0aGUgbGF0ZXN0IGNvbGxl Y3Rpb24iCi0tICAgICAgPC9hPgotLSAgICAgIChGb3IgdGhlIG1haW4gZGV2ZWxvcG1lbnQgdHJl ZTsgc2VlIHRoZSBkYXRlIG9uIHRoZSBmaXJzdCBwYWdlLikKLSAgICAgPC9wPjwvbGk+PC91bD48 L2Rpdj48cD4KLSBUaGlzIGdlbmVyYXRlZCBIVE1MIGNvbGxlY3Rpb24sIGFzIGFib3ZlLCBpcyBh bHNvIGF2YWlsYWJsZSBmb3IgZG93bmxvYWQgaW4gdGhlIGxpYnN0ZGMrKyBzbmFwc2hvdHMgZGly ZWN0b3J5IGF0Ci0gICAgPGNvZGUgY2xhc3M9ImxpdGVyYWwiPiZsdDtVUkw6ZnRwOi8vZ2NjLmdu dS5vcmcvcHViL2djYy9saWJzdGRjKysvZG94eWdlbi8mZ3Q7PC9jb2RlPi4KCmRpZmYgLS1naXQg YS9nY2M0NC1saWJ0b29sLW5vLXJwYXRoLnBhdGNoIGIvZ2NjNDQtbGlidG9vbC1uby1ycGF0aC5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDY2YzY2MS4uMDAwMDAwMAotLS0g YS9nY2M0NC1saWJ0b29sLW5vLXJwYXRoLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAs MCBAQAotbGlidG9vbCBzdWNrcy4KLS0tLSBsdG1haW4uc2guamoJMjAwNy0xMi0wNyAxNDo1Mzoy MS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBsdG1haW4uc2gJMjAwOC0wOS0wNSAyMTo1MTo0OC4wMDAw MDAwMDAgKzAyMDAKLUBAIC01Mzk0LDYgKzUzOTQsNyBAQCBFT0YKLSAJICBycGF0aD0iJGZpbmFs aXplX3JwYXRoIgotIAkgIHRlc3QgIiRtb2RlIiAhPSByZWxpbmsgJiYgcnBhdGg9IiRjb21waWxl X3JwYXRoJHJwYXRoIgotIAkgIGZvciBsaWJkaXIgaW4gJHJwYXRoOyBkbwotKwkgICAgY2FzZSAi JGxpYmRpciIgaW4gL3Vzci9saWJ8L3Vzci9saWI2NHwvdXNyL2xpYi8uLi9saWJ8L3Vzci9saWIv Li4vbGliNjQpIGNvbnRpbnVlOzsgZXNhYwotIAkgICAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWMiOyB0aGVuCi0gCSAgICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yIjsgdGhlbgotIAkJaWYgdGVzdCAteiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0 aGVuCi1AQCAtNjA3MSw2ICs2MDcyLDcgQEAgRU9GCi0gICAgICAgcnBhdGg9Ci0gICAgICAgaGFy ZGNvZGVfbGliZGlycz0KLSAgICAgICBmb3IgbGliZGlyIGluICRjb21waWxlX3JwYXRoICRmaW5h bGl6ZV9ycGF0aDsgZG8KLSsJY2FzZSAiJGxpYmRpciIgaW4gL3Vzci9saWJ8L3Vzci9saWI2NHwv dXNyL2xpYi8uLi9saWJ8L3Vzci9saWIvLi4vbGliNjQpIGNvbnRpbnVlOzsgZXNhYwotIAlpZiB0 ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyI7IHRoZW4KLSAJICBpZiB0ZXN0IC1u ICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciI7IHRoZW4KLSAJICAgIGlmIHRlc3QgLXogIiRo YXJkY29kZV9saWJkaXJzIjsgdGhlbgotQEAgLTYxMjAsNiArNjEyMiw3IEBAIEVPRgotICAgICAg IHJwYXRoPQotICAgICAgIGhhcmRjb2RlX2xpYmRpcnM9Ci0gICAgICAgZm9yIGxpYmRpciBpbiAk ZmluYWxpemVfcnBhdGg7IGRvCi0rCWNhc2UgIiRsaWJkaXIiIGluIC91c3IvbGlifC91c3IvbGli NjR8L3Vzci9saWIvLi4vbGlifC91c3IvbGliLy4uL2xpYjY0KSBjb250aW51ZTs7IGVzYWMKLSAJ aWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMiOyB0aGVuCi0gCSAgaWYgdGVz dCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiOyB0aGVuCi0gCSAgICBpZiB0ZXN0IC16 ICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4KCmRpZmYgLS1naXQgYS9nY2M0NC1uby1hZGQtbmVl ZGVkLnBhdGNoIGIvZ2NjNDQtbm8tYWRkLW5lZWRlZC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggNDU3MGMwYy4uMDAwMDAwMAotLS0gYS9nY2M0NC1uby1hZGQtbmVlZGVkLnBh dGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotMjAxMC0wMi0wOCAgUm9sYW5kIE1j R3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogY29uZmlnL3JzNjAwMC9zeXN2NC5oIChM SU5LX0VIX1NQRUMpOiBQYXNzIC0tbm8tYWRkLW5lZWRlZCB0byB0aGUKLQlsaW5rZXIuCi0JKiBj b25maWcvbGludXguaCAoTElOS19FSF9TUEVDKTogTGlrZXdpc2UuCi0JKiBjb25maWcvYWxwaGEv ZWxmLmggKExJTktfRUhfU1BFQyk6IExpa2V3aXNlLgotCSogY29uZmlnL2lhNjQvbGludXguaCAo TElOS19FSF9TUEVDKTogTGlrZXdpc2UuCi0KLS0tLSBnY2MvY29uZmlnL2FscGhhL2VsZi5oLn4x fgotKysrIGdjYy9jb25maWcvYWxwaGEvZWxmLmgKLUBAIC00MjEsNyArNDIxLDcgQEAgZXh0ZXJu IGludCBhbHBoYV90aGlzX2dwZGlzcF9zZXF1ZW5jZV9udQotICAgIEkgaW1hZ2luZSB0aGF0IG90 aGVyIHN5c3RlbXMgd2lsbCBjYXRjaCB1cC4gIEluIHRoZSBtZWFudGltZSwgaXQKLSAgICBkb2Vz bid0IGhhcm0gdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGRhdGEgZXhpc3RzIHRvIGJlIHVzZWQgbGF0 ZXIuICAqLwotICNpZiBkZWZpbmVkKEhBVkVfTERfRUhfRlJBTUVfSERSKQotLSNkZWZpbmUgTElO S19FSF9TUEVDICIleyFzdGF0aWM6LS1laC1mcmFtZS1oZHJ9ICV7IXI6LS1idWlsZC1pZH0gIgot KyNkZWZpbmUgTElOS19FSF9TUEVDICItLW5vLWFkZC1uZWVkZWQgJXshc3RhdGljOi0tZWgtZnJh bWUtaGRyfSAleyFyOi0tYnVpbGQtaWR9ICIKLSAjZW5kaWYKLSAKLSAvKiBBIEMgc3RhdGVtZW50 IChzYW5zIHNlbWljb2xvbikgdG8gb3V0cHV0IHRvIHRoZSBzdGRpbyBzdHJlYW0gU1RSRUFNCi0t LS0gZ2NjL2NvbmZpZy9pYTY0L2xpbnV4LmgufjF+Ci0rKysgZ2NjL2NvbmZpZy9pYTY0L2xpbnV4 LmgKLUBAIC01OCw3ICs1OCw3IEBAIGRvIHsJCQkJCQlcCi0gICAgU2lnbmFsaXplIHRoYXQgYmVj YXVzZSB3ZSBoYXZlIGZkZS1nbGliYywgd2UgZG9uJ3QgbmVlZCBhbGwgQyBzaGFyZWQgbGlicwot ICAgIGxpbmtlZCBhZ2FpbnN0IC1sZ2NjX3MuICAqLwotICN1bmRlZiBMSU5LX0VIX1NQRUMKLS0j ZGVmaW5lIExJTktfRUhfU1BFQyAiJXshcjotLWJ1aWxkLWlkfSAiCi0rI2RlZmluZSBMSU5LX0VI X1NQRUMgIi0tbm8tYWRkLW5lZWRlZCAleyFyOi0tYnVpbGQtaWR9ICIKLSAKLSAjZGVmaW5lIE1E X1VOV0lORF9TVVBQT1JUICJjb25maWcvaWE2NC9saW51eC11bndpbmQuaCIKLSAKLS0tLSBnY2Mv Y29uZmlnL2xpbnV4LmgufjF+Ci0rKysgZ2NjL2NvbmZpZy9saW51eC5oCi1AQCAtODksNyArODks NyBAQCBzZWUgdGhlIGZpbGVzIENPUFlJTkczIGFuZCBDT1BZSU5HLlJVTlRJCi0gICAgIH0gd2hp bGUgKDApCi0gCi0gI2lmIGRlZmluZWQoSEFWRV9MRF9FSF9GUkFNRV9IRFIpCi0tI2RlZmluZSBM SU5LX0VIX1NQRUMgIiV7IXN0YXRpYzotLWVoLWZyYW1lLWhkcn0gJXshcjotLWJ1aWxkLWlkfSAi Ci0rI2RlZmluZSBMSU5LX0VIX1NQRUMgIi0tbm8tYWRkLW5lZWRlZCAleyFzdGF0aWM6LS1laC1m cmFtZS1oZHJ9ICV7IXI6LS1idWlsZC1pZH0gIgotICNlbmRpZgotIAotIC8qIERlZmluZSB0aGlz IHNvIHdlIGNhbiBjb21waWxlIE1TIGNvZGUgZm9yIHVzZSB3aXRoIFdJTkUuICAqLwotLS0tIGdj Yy9jb25maWcvcnM2MDAwL3N5c3Y0LmgufjF+Ci0rKysgZ2NjL2NvbmZpZy9yczYwMDAvc3lzdjQu aAotQEAgLTkxNyw3ICs5MTcsNyBAQCBTVlI0X0FTTV9TUEVDIFwKLSAgICV7IWR5bmFtaWMtbGlu a2VyOi1keW5hbWljLWxpbmtlciAiIExJTlVYX0RZTkFNSUNfTElOS0VSICJ9fX0iCi0gCi0gI2lm IGRlZmluZWQoSEFWRV9MRF9FSF9GUkFNRV9IRFIpCi0tIyBkZWZpbmUgTElOS19FSF9TUEVDICIl eyFzdGF0aWM6LS1laC1mcmFtZS1oZHJ9ICV7IXI6LS1idWlsZC1pZH0gIgotKyMgZGVmaW5lIExJ TktfRUhfU1BFQyAiLS1uby1hZGQtbmVlZGVkICV7IXN0YXRpYzotLWVoLWZyYW1lLWhkcn0gJXsh cjotLWJ1aWxkLWlkfSAiCi0gI2VuZGlmCi0gCi0gI2RlZmluZSBDUFBfT1NfTElOVVhfU1BFQyAi LURfX3VuaXhfXyAtRF9fZ251X2xpbnV4X18gLURfX2xpbnV4X18gXAoKZGlmZiAtLWdpdCBhL2dj YzQ0LXBwYzMyLXJldGFkZHIucGF0Y2ggYi9nY2M0NC1wcGMzMi1yZXRhZGRyLnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOWFlMWJjLi4wMDAwMDAwCi0tLSBhL2djYzQ0LXBw YzMyLXJldGFkZHIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw4NiArMCwwIEBACi0yMDA1LTEx LTI4ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KLQotCSogY29uZmlnL3JzNjAw MC9yczYwMDAuYyAocnM2MDAwX3JldHVybl9hZGRyKTogSWYgQ09VTlQgPT0gMCwKLQlyZWFkIHdv cmQgUkVUVVJOX0FERFJFU1NfT0ZGU0VUIGJ5dGVzIGFib3ZlIGFyZ19wb2ludGVyX3J0eAotCWlu c3RlYWQgb2YgZG9pbmcgYW4gZXh0cmFuIGluZGlyZWN0aW9uIGZyb20gZnJhbWVfcG9pbnRlcl9y dHguCi0KLQkqIGdjYy5kZy8yMDA1MTEyOC0xLmM6IE5ldyB0ZXN0LgotCi0tLS0gZ2NjL2NvbmZp Zy9yczYwMDAvcnM2MDAwLmMuamoJMjAwNS0xMS0yNiAxNDozODowMS4wMDAwMDAwMDAgKzAxMDAK LSsrKyBnY2MvY29uZmlnL3JzNjAwMC9yczYwMDAuYwkyMDA1LTExLTI4IDIwOjMyOjE4LjAwMDAw MDAwMCArMDEwMAotQEAgLTEzMTY2LDE3ICsxMzE2NiwyMiBAQCByczYwMDBfcmV0dXJuX2FkZHIg KGludCBjb3VudCwgcnR4IGZyYW1lCi0gICAgICBkb24ndCB0cnkgdG8gYmUgdG9vIGNsZXZlciBo ZXJlLiAgKi8KLSAgIGlmIChjb3VudCAhPSAwIHx8IChERUZBVUxUX0FCSSAhPSBBQklfQUlYICYm IGZsYWdfcGljKSkKLSAgICAgewotKyAgICAgIHJ0eCB4OwotICAgICAgIGNmdW4tPm1hY2hpbmUt PnJhX25lZWRzX2Z1bGxfZnJhbWUgPSAxOwotIAotLSAgICAgIHJldHVybgotLQlnZW5fcnR4X01F TQotLQkgIChQbW9kZSwKLS0JICAgbWVtb3J5X2FkZHJlc3MKLS0JICAgKFBtb2RlLAotLQkgICAg cGx1c19jb25zdGFudCAoY29weV90b19yZWcKLS0JCQkgICAoZ2VuX3J0eF9NRU0gKFBtb2RlLAot LQkJCQkJIG1lbW9yeV9hZGRyZXNzIChQbW9kZSwgZnJhbWUpKSksCi0tCQkJICAgUkVUVVJOX0FE RFJFU1NfT0ZGU0VUKSkpOwotKyAgICAgIGlmIChjb3VudCA9PSAwKQotKwl7Ci0rCSAgZ2NjX2Fz c2VydCAoZnJhbWUgPT0gZnJhbWVfcG9pbnRlcl9ydHgpOwotKwkgIHggPSBhcmdfcG9pbnRlcl9y dHg7Ci0rCX0KLSsgICAgICBlbHNlCi0rCXsKLSsJICB4ID0gbWVtb3J5X2FkZHJlc3MgKFBtb2Rl LCBmcmFtZSk7Ci0rCSAgeCA9IGNvcHlfdG9fcmVnIChnZW5fcnR4X01FTSAoUG1vZGUsIHgpKTsK LSsJfQotKwotKyAgICAgIHggPSBwbHVzX2NvbnN0YW50ICh4LCBSRVRVUk5fQUREUkVTU19PRkZT RVQpOwotKyAgICAgIHJldHVybiBnZW5fcnR4X01FTSAoUG1vZGUsIG1lbW9yeV9hZGRyZXNzIChQ bW9kZSwgeCkpOwotICAgICB9Ci0gCi0gICBjZnVuLT5tYWNoaW5lLT5yYV9uZWVkX2xyID0gMTsK LS0tLSBnY2MvdGVzdHN1aXRlL2djYy5kZy8yMDA1MTEyOC0xLmMuamoJMjAwNS0xMC0xMCAxMToy MTo0MS4wOTY5OTkwMDAgKzAyMDAKLSsrKyBnY2MvdGVzdHN1aXRlL2djYy5kZy8yMDA1MTEyOC0x LmMJMjAwNS0xMS0yOCAxMjozMDo1Ny4wMDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEsNDEgQEAK LSsvKiB7IGRnLWRvIHJ1biB9ICovCi0rLyogeyBkZy1vcHRpb25zICItTzIgLWZwaWMiIH0gKi8K LSsKLStleHRlcm4gdm9pZCBleGl0IChpbnQpOwotK2V4dGVybiB2b2lkIGFib3J0ICh2b2lkKTsK LSsKLStpbnQgYjsKLSsKLStzdHJ1Y3QgQQotK3sKLSsgIHZvaWQgKnBhZFsxNDddOwotKyAgdm9p ZCAqcmEsICpoOwotKyAgbG9uZyBvOwotK307Ci0rCi0rdm9pZAotK19fYXR0cmlidXRlX18oKG5v aW5saW5lKSkKLStmb28gKHN0cnVjdCBBICphLCB2b2lkICp4KQotK3sKLSsgIF9fYnVpbHRpbl9t ZW1zZXQgKGEsIDAsIHNpemVvZiAoYSkpOwotKyAgaWYgKCFiKQotKyAgICBleGl0ICgwKTsKLSt9 Ci0rCi0rdm9pZAotK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKLStiYXIgKHZvaWQpCi0rewot KyAgc3RydWN0IEEgYTsKLSsKLSsgIF9fYnVpbHRpbl91bndpbmRfaW5pdCAoKTsKLSsgIGZvbyAo JmEsIF9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcyAoMCkpOwotK30KLSsKLStpbnQKLSttYWluICh2 b2lkKQotK3sKLSsgIGJhciAoKTsKLSsgIGFib3J0ICgpOwotKyAgcmV0dXJuIDA7Ci0rfQoKZGlm ZiAtLWdpdCBhL2djYzQ0LXBwYzY0LWFpeGRlc2MucGF0Y2ggYi9nY2M0NC1wcGM2NC1haXhkZXNj LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOWY0YThiLi4wMDAwMDAwCi0t LSBhL2djYzQ0LXBwYzY0LWFpeGRlc2MucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCww IEBACi0yMDA5LTA5LTE2ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KLQotCSog Y29uZmlnL3JzNjAwMC9zeXN2NC5oIChGUF9TQVZFX0lOTElORSwgR1BfU0FWRV9JTkxJTkUpOiBE aXNhYmxlCi0Jb3V0IG9mIGxpbmUgZ3ByL2ZwciBzYXZpbmcgZm9yIC1tNjQgLU9zIC1tY2FsbC1h aXhkZXNjLgotCi0tLS0gZ2NjL2NvbmZpZy9yczYwMDAvc3lzdjQuaC5qagkyMDA5LTA5LTE2IDE0 OjQ2OjE5LjAwMDAwMDAwMCArMDIwMAotKysrIGdjYy9jb25maWcvcnM2MDAwL3N5c3Y0LmgJMjAw OS0wOS0xNiAxNDo0NjoxOS4wMDAwMDAwMDAgKzAyMDAKLUBAIC0yNzMsMTIgKzI3MywxNCBAQCBk byB7CQkJCQkJCQkJXAotIC8qIERlZmluZSBjdXRvZmYgZm9yIHVzaW5nIGV4dGVybmFsIGZ1bmN0 aW9ucyB0byBzYXZlIGZsb2F0aW5nIHBvaW50LgotICAgIFdoZW4gb3B0aW1pemluZyBmb3Igc2l6 ZSwgdXNlIGV4dGVybmFsIGZ1bmN0aW9ucyB3aGVuIHByb2ZpdGFibGUuICAqLwotICNkZWZpbmUg RlBfU0FWRV9JTkxJTkUoRklSU1RfUkVHKSAob3B0aW1pemVfc2l6ZQkJCVwKLSsJCQkJICAgJiYg KCFUQVJHRVRfNjRCSVQgfHwgIURPVF9TWU1CT0xTKQlcCi0gCQkJCSAgID8gKChGSVJTVF9SRUcp ID09IDYyCQkJXAotIAkJCQkgICAgICB8fCAoRklSU1RfUkVHKSA9PSA2MykJCVwKLSAJCQkJICAg OiAoRklSU1RfUkVHKSA8IDY0KQotIC8qIEFuZCBzaW1pbGFybHkgZm9yIGdlbmVyYWwgcHVycG9z ZSByZWdpc3RlcnMuICAqLwotLSNkZWZpbmUgR1BfU0FWRV9JTkxJTkUoRklSU1RfUkVHKSAoKEZJ UlNUX1JFRykgPCAzMglcCi0tCQkJCSAgICYmICFvcHRpbWl6ZV9zaXplKQotKyNkZWZpbmUgR1Bf U0FWRV9JTkxJTkUoRklSU1RfUkVHKSAoKEZJUlNUX1JFRykgPCAzMgkJCVwKLSsJCQkJICAgJiYg KCFvcHRpbWl6ZV9zaXplCQkJXAotKwkJCQkgICAgICAgIHx8IChUQVJHRVRfNjRCSVQgJiYgRE9U X1NZTUJPTFMpKSkKLSAKLSAvKiBQdXQganVtcCB0YWJsZXMgaW4gcmVhZC1vbmx5IG1lbW9yeSwg cmF0aGVyIHRoYW4gaW4gLnRleHQuICAqLwotICNkZWZpbmUgSlVNUF9UQUJMRVNfSU5fVEVYVF9T RUNUSU9OIDAKCmRpZmYgLS1naXQgYS9nY2M0NC1wcjMzNzYzLnBhdGNoIGIvZ2NjNDQtcHIzMzc2 My5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODZjOGFjNy4uMDAwMDAwMAot LS0gYS9nY2M0NC1wcjMzNzYzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTUzICswLDAgQEAK LTIwMDctMTEtMDYgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgotCi0JUFIgdHJl ZS1vcHRpbWl6YXRpb24vMzM3NjMKLQkqIGdjYy5kZy9wcjMzNzYzLmM6IE5ldyB0ZXN0LgotCSog ZysrLmRnL29wdC9pbmxpbmUxMy5DOiBOZXcgdGVzdC4KLQotMjAwNy0xMS0wNiAgSmFuIEh1Ymlj a2EgIDxqaEBzdXNlLmN6PgotCi0JUFIgdHJlZS1vcHRpbWl6YXRpb24vMzM3NjMKLQkqIHRyZWUt aW5saW5lLmMgKGV4cGFuZF9jYWxsX2lubGluZSk6IFNpbGVudGx5IGlnbm9yZSBhbHdheXNfaW5s aW5lCi0JYXR0cmlidXRlIGZvciByZWRlZmluZWQgZXh0ZXJuIGlubGluZSBmdW5jdGlvbnMuCi0K LS0tLSBnY2MvdHJlZS1pbmxpbmUuYy5qagkyMDA3LTExLTA2IDA5OjI5OjA0LjAwMDAwMDAwMCAr MDEwMAotKysrIGdjYy90cmVlLWlubGluZS5jCTIwMDctMTEtMDYgMTY6MTk6MTIuMDAwMDAwMDAw ICswMTAwCi1AQCAtMzE1Nyw2ICszMTU3LDEyIEBAIGV4cGFuZF9jYWxsX2lubGluZSAoYmFzaWNf YmxvY2sgYmIsIGdpbXAKLSAJZ290byBlZ3Jlc3M7Ci0gCi0gICAgICAgaWYgKGxvb2t1cF9hdHRy aWJ1dGUgKCJhbHdheXNfaW5saW5lIiwgREVDTF9BVFRSSUJVVEVTIChmbikpCi0rCS8qIEZvciBl eHRlcm4gaW5saW5lIGZ1bmN0aW9ucyB0aGF0IGdldCByZWRlZmluZWQgd2UgYWx3YXlzCi0rCSAg IHNpbGVudGx5IGlnbm9yZWQgYWx3YXlfaW5saW5lIGZsYWcuIEJldHRlciBiZWhhdmlvdXIgd291 bGQKLSsJICAgYmUgdG8gYmUgYWJsZSB0byBrZWVwIGJvdGggYm9kaWVzIGFuZCB1c2UgZXh0ZXJu IGlubGluZSBib2R5Ci0rCSAgIGZvciBpbmxpbmluZywgYnV0IHdlIGNhbid0IGRvIHRoYXQgYmVj YXVzZSBmcm9udGVuZHMgb3ZlcndyaXRlCi0rCSAgIHRoZSBib2R5LiAgKi8KLSsJICAmJiAhY2df ZWRnZS0+Y2FsbGVlLT5sb2NhbC5yZWRlZmluZWRfZXh0ZXJuX2lubGluZQotIAkgIC8qIEF2b2lk IHdhcm5pbmdzIGR1cmluZyBlYXJseSBpbmxpbmUgcGFzcy4gKi8KLSAJICAmJiBjZ3JhcGhfZ2xv YmFsX2luZm9fcmVhZHkpCi0gCXsKLS0tLSBnY2MvdGVzdHN1aXRlL2djYy5kZy9wcjMzNzYzLmMu amoJMjAwNy0xMS0wNiAxNjoxOToxMi4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnY2MvdGVzdHN1aXRl L2djYy5kZy9wcjMzNzYzLmMJMjAwNy0xMS0wNiAxNjoxOToxMi4wMDAwMDAwMDAgKzAxMDAKLUBA IC0wLDAgKzEsNjAgQEAKLSsvKiBQUiB0cmVlLW9wdGltaXphdGlvbi8zMzc2MyAqLwotKy8qIHsg ZGctZG8gY29tcGlsZSB9ICovCi0rLyogeyBkZy1vcHRpb25zICItTzIiIH0gKi8KLSsKLSt0eXBl ZGVmIHN0cnVjdAotK3sKLSsgIHZvaWQgKmE7Ci0rICB2b2lkICpiOwotK30gVDsKLStleHRlcm4g dm9pZCAqZm9vIChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKik7Ci0rZXh0ZXJuIHZvaWQgKmJh ciAodm9pZCAqLCBjb25zdCBjaGFyICosIFQpOwotK2V4dGVybiBpbnQgYmF6IChjb25zdCBjaGFy ICosIGludCk7Ci0rCi0rZXh0ZXJuIGlubGluZSBfX2F0dHJpYnV0ZV9fICgoYWx3YXlzX2lubGlu ZSwgZ251X2lubGluZSkpIGludAotK2JheiAoY29uc3QgY2hhciAqeCwgaW50IHkpCi0rewotKyAg cmV0dXJuIDI7Ci0rfQotKwotK2ludAotK2JheiAoY29uc3QgY2hhciAqeCwgaW50IHkpCi0rewot KyAgcmV0dXJuIDE7Ci0rfQotKwotK2ludCB4YSwgeGI7Ci0rCi0rc3RhdGljIHZvaWQgKgotK2lu bCAoY29uc3QgY2hhciAqeCwgY29uc3QgY2hhciAqeSkKLSt7Ci0rICBUIHQgPSB7ICZ4YSwgJnhi IH07Ci0rICBpbnQgKmYgPSAoaW50ICopIF9fYnVpbHRpbl9tYWxsb2MgKHNpemVvZiAoaW50KSk7 Ci0rICBjb25zdCBjaGFyICp6OwotKyAgaW50IG8gPSAwOwotKyAgdm9pZCAqciA9IDA7Ci0rCi0r ICBmb3IgKHogPSB5OyAqejsgeisrKQotKyAgICB7Ci0rICAgICAgaWYgKCp6ID09ICdyJykKLSsJ byB8PSAxOwotKyAgICAgIGlmICgqeiA9PSAndycpCi0rCW8gfD0gMjsKLSsgICAgfQotKyAgaWYg KG8gPT0gMSkKLSsgICAgKmYgPSBiYXogKHgsIDApOwotKyAgaWYgKG8gPT0gMikKLSsgICAgKmYg PSBiYXogKHgsIDEpOwotKyAgaWYgKG8gPT0gMykKLSsgICAgKmYgPSBiYXogKHgsIDIpOwotKwot KyAgaWYgKG8gJiYgKmYgPiAwKQotKyAgICByID0gYmFyIChmLCAidyIsIHQpOwotKyAgcmV0dXJu IHI7Ci0rfQotKwotK3ZvaWQgKgotK2ZvbyAoY29uc3QgY2hhciAqeCwgY29uc3QgY2hhciAqeSkK LSt7Ci0rICByZXR1cm4gaW5sICh4LCB5KTsKLSt9Ci0tLS0gZ2NjL3Rlc3RzdWl0ZS9nKysuZGcv b3B0L2lubGluZTEzLkMuamoJMjAwNy0xMS0wNiAxNjoyMDoyMC4wMDAwMDAwMDAgKzAxMDAKLSsr KyBnY2MvdGVzdHN1aXRlL2crKy5kZy9vcHQvaW5saW5lMTMuQwkyMDA3LTExLTA2IDE2OjIxOjMw LjAwMDAwMDAwMCArMDEwMAotQEAgLTAsMCArMSw2MCBAQAotKy8vIFBSIHRyZWUtb3B0aW1pemF0 aW9uLzMzNzYzCi0rLy8geyBkZy1kbyBjb21waWxlIH0KLSsvLyB7IGRnLW9wdGlvbnMgIi1PMiIg fQotKwotK3R5cGVkZWYgc3RydWN0Ci0rewotKyAgdm9pZCAqYTsKLSsgIHZvaWQgKmI7Ci0rfSBU OwotK2V4dGVybiB2b2lkICpmb28gKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKLStleHRl cm4gdm9pZCAqYmFyICh2b2lkICosIGNvbnN0IGNoYXIgKiwgVCk7Ci0rZXh0ZXJuIGludCBiYXog KGNvbnN0IGNoYXIgKiwgaW50KTsKLSsKLStleHRlcm4gaW5saW5lIF9fYXR0cmlidXRlX18gKChh bHdheXNfaW5saW5lLCBnbnVfaW5saW5lKSkgaW50Ci0rYmF6IChjb25zdCBjaGFyICp4LCBpbnQg eSkKLSt7Ci0rICByZXR1cm4gMjsKLSt9Ci0rCi0raW50Ci0rYmF6IChjb25zdCBjaGFyICp4LCBp bnQgeSkKLSt7Ci0rICByZXR1cm4gMTsKLSt9Ci0rCi0raW50IHhhLCB4YjsKLSsKLStzdGF0aWMg dm9pZCAqCi0raW5sIChjb25zdCBjaGFyICp4LCBjb25zdCBjaGFyICp5KQotK3sKLSsgIFQgdCA9 IHsgJnhhLCAmeGIgfTsKLSsgIGludCAqZiA9IChpbnQgKikgX19idWlsdGluX21hbGxvYyAoc2l6 ZW9mIChpbnQpKTsKLSsgIGNvbnN0IGNoYXIgKno7Ci0rICBpbnQgbyA9IDA7Ci0rICB2b2lkICpy ID0gMDsKLSsKLSsgIGZvciAoeiA9IHk7ICp6OyB6KyspCi0rICAgIHsKLSsgICAgICBpZiAoKnog PT0gJ3InKQotKwlvIHw9IDE7Ci0rICAgICAgaWYgKCp6ID09ICd3JykKLSsJbyB8PSAyOwotKyAg ICB9Ci0rICBpZiAobyA9PSAxKQotKyAgICAqZiA9IGJheiAoeCwgMCk7Ci0rICBpZiAobyA9PSAy KQotKyAgICAqZiA9IGJheiAoeCwgMSk7Ci0rICBpZiAobyA9PSAzKQotKyAgICAqZiA9IGJheiAo eCwgMik7Ci0rCi0rICBpZiAobyAmJiAqZiA+IDApCi0rICAgIHIgPSBiYXIgKGYsICJ3IiwgdCk7 Ci0rICByZXR1cm4gcjsKLSt9Ci0rCi0rdm9pZCAqCi0rZm9vIChjb25zdCBjaGFyICp4LCBjb25z dCBjaGFyICp5KQotK3sKLSsgIHJldHVybiBpbmwgKHgsIHkpOwotK30KCmRpZmYgLS1naXQgYS9n Y2M0NC1wcjM4NzU3LnBhdGNoIGIvZ2NjNDQtcHIzODc1Ny5wYXRjaApkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggODA1OTk2Zi4uMDAwMDAwMAotLS0gYS9nY2M0NC1wcjM4NzU3LnBhdGNo CisrKyAvZGV2L251bGwKQEAgLTEsMTI1ICswLDAgQEAKLTIwMDktMDMtMTggIEpha3ViIEplbGlu ZWsgIDxqYWt1YkByZWRoYXQuY29tPgotCi0JUFIgZGVidWcvMzg3NTcKLQkqIGxhbmdob29rcy5o IChzdHJ1Y3QgbGFuZ19ob29rcyk6IEFkZCBzb3VyY2VfbGFuZ3VhZ2UgbGFuZ2hvb2suCi0JKiBs YW5naG9va3MtZGVmLmggKExBTkdfSE9PS1NfU09VUkNFX0xBTkdVQUdFKTogRGVmaW5lIHRvIE5V TEwuCi0JKExBTkdfSE9PS1NfSU5JVElBTElaRVIpOiBBZGQgTEFOR19IT09LU19TT1VSQ0VfTEFO R1VBR0UuCi0JKiBjLWxhbmcuYyAoY19zb3VyY2VfbGFuZ3VhZ2UpOiBOZXcgZnVuY3Rpb24uCi0J KExBTkdfSE9PS1NfU09VUkNFX0xBTkdVQUdFKTogRGVmaW5lLgotCSogZHdhcmYyb3V0LmMgKGFk ZF9wcm90b3R5cGVkX2F0dHJpYnV0ZSk6IEFkZCBEV19BVF9wcm90b3R5cGUKLQlhbHNvIGZvciBE V19MQU5HX3tDLEM5OSxPYmpDfS4KLQkoZ2VuX2NvbXBpbGVfdW5pdF9kaWUpOiBVc2UgbGFuZ19o b29rcy5zb3VyY2VfbGFuZ3VhZ2UgKCkgdG8KLQlkZXRlcm1pbmUgaWYgRFdfTEFOR19DOTkgb3Ig RFdfTEFOR19DODkgc2hvdWxkIGJlIHJldHVybmVkLgotCi0tLS0gZ2NjL2xhbmdob29rcy5oLmpq CTIwMDktMDMtMDIgMDk6NDU6NDcuMDAwMDAwMDAwICswMTAwCi0rKysgZ2NjL2xhbmdob29rcy5o CTIwMDktMDMtMTggMTI6NTM6MjQuMDAwMDAwMDAwICswMTAwCi1AQCAtMSw1ICsxLDUgQEAKLSAv KiBUaGUgbGFuZ19ob29rcyBkYXRhIHN0cnVjdHVyZS4KLS0gICBDb3B5cmlnaHQgMjAwMSwgMjAw MiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOAotKyAgIENvcHlyaWdodCAyMDAx LCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5Ci0gICAgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0gCi0gVGhpcyBmaWxlIGlzIHBhcnQgb2YgR0ND LgotQEAgLTQxNCw2ICs0MTQsMTAgQEAgc3RydWN0IGxhbmdfaG9va3MKLSAgICAgIGlmIGluIHRo ZSBwcm9jZXNzIFRSRUVfQ09OU1RBTlQgb3IgVFJFRV9TSURFX0VGRkVDVFMgbmVlZCB1cGRhdGlu Zy4gICovCi0gICB0cmVlICgqZXhwcl90b19kZWNsKSAodHJlZSBleHByLCBib29sICp0YywgYm9v bCAqc2UpOwotIAotKyAgLyogUmV0dXJuIHllYXIgb2YgdGhlIHNvdXJjZSBsYW5ndWFnZSBzdGFu ZGFyZCB2ZXJzaW9uIGlmIHRoZSBGRSBzdXBwb3J0cwotKyAgICAgbXVsdGlwbGUgdmVyc2lvbnMg b2YgdGhlIHN0YW5kYXJkLiAgKi8KLSsgIGludCAoKnNvdXJjZV9sYW5ndWFnZSkgKHZvaWQpOwot KwotICAgLyogV2hlbmV2ZXIgeW91IGFkZCBlbnRyaWVzIGhlcmUsIG1ha2Ugc3VyZSB5b3UgYWRq dXN0IGxhbmdob29rcy1kZWYuaAotICAgICAgYW5kIGxhbmdob29rcy5jIGFjY29yZGluZ2x5LiAg Ki8KLSB9OwotLS0tIGdjYy9sYW5naG9va3MtZGVmLmguamoJMjAwOS0wMy0wMiAwOTo0NTo0Ny4w MDAwMDAwMDAgKzAxMDAKLSsrKyBnY2MvbGFuZ2hvb2tzLWRlZi5oCTIwMDktMDMtMTggMTI6NTM6 NDUuMDAwMDAwMDAwICswMTAwCi1AQCAtMSw1ICsxLDUgQEAKLSAvKiBEZWZhdWx0IG1hY3JvcyB0 byBpbml0aWFsaXplIHRoZSBsYW5nX2hvb2tzIGRhdGEgc3RydWN0dXJlLgotLSAgIENvcHlyaWdo dCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4Ci0rICAgQ29w eXJpZ2h0IDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIw MDkKLSAgICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSAgICBDb250cmlidXRlZCBi eSBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KLSAKLUBAIC0xMTMsNiArMTEz LDcgQEAgZXh0ZXJuIHZvaWQgbGhkX29tcF9maXJzdHByaXZhdGl6ZV90eXBlXwotICNkZWZpbmUg TEFOR19IT09LU19FWFBSX1RPX0RFQ0wJCWxoZF9leHByX3RvX2RlY2wKLSAjZGVmaW5lIExBTkdf SE9PS1NfVE9fVEFSR0VUX0NIQVJTRVQJbGhkX3RvX3RhcmdldF9jaGFyc2V0Ci0gI2RlZmluZSBM QU5HX0hPT0tTX0lOSVRfVFMJCWxoZF9kb19ub3RoaW5nCi0rI2RlZmluZSBMQU5HX0hPT0tTX1NP VVJDRV9MQU5HVUFHRQlOVUxMCi0gCi0gLyogQXR0cmlidXRlIGhvb2tzLiAgKi8KLSAjZGVmaW5l IExBTkdfSE9PS1NfQVRUUklCVVRFX1RBQkxFCQlOVUxMCi1AQCAtMjcwLDYgKzI3MSw3IEBAIGV4 dGVybiB0cmVlIGxoZF9tYWtlX25vZGUgKGVudW0gdHJlZV9jb2QKLSAgIExBTkdfSE9PS1NfQlVJ TFRJTl9GVU5DVElPTl9FWFRfU0NPUEUsIFwKLSAgIExBTkdfSE9PS1NfSU5JVF9UUywgICAgICAg ICAgXAotICAgTEFOR19IT09LU19FWFBSX1RPX0RFQ0wsIFwKLSsgIExBTkdfSE9PS1NfU09VUkNF X0xBTkdVQUdFLCBcCi0gfQotIAotICNlbmRpZiAvKiBHQ0NfTEFOR19IT09LU19ERUZfSCAqLwot LS0tIGdjYy9jLWxhbmcuYy5qagkyMDA5LTAyLTIwIDE1OjA2OjE0LjAwMDAwMDAwMCArMDEwMAot KysrIGdjYy9jLWxhbmcuYwkyMDA5LTAzLTE4IDEzOjMzOjQxLjAwMDAwMDAwMCArMDEwMAotQEAg LTEsNiArMSw2IEBACi0gLyogTGFuZ3VhZ2Utc3BlY2lmaWMgaG9vayBkZWZpbml0aW9ucyBmb3Ig QyBmcm9udCBlbmQuCi0gICAgQ29weXJpZ2h0IChDKSAxOTkxLCAxOTk1LCAxOTk3LCAxOTk4LAot LSAgIDE5OTksIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDcsIDIwMDgKLSsgICAx OTk5LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA3LCAyMDA4LCAyMDA5Ci0gICAg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0gCi0gVGhpcyBmaWxlIGlzIHBhcnQgb2Yg R0NDLgotQEAgLTM3LDYgKzM3LDEyIEBAIGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUgQ09Q WUlORzMuICAKLSAKLSBlbnVtIGNfbGFuZ3VhZ2Vfa2luZCBjX2xhbmd1YWdlID0gY2xrX2M7Ci0g Ci0rc3RhdGljIGludAotK2Nfc291cmNlX2xhbmd1YWdlICh2b2lkKQotK3sKLSsgIHJldHVybiBm bGFnX2lzb2M5OSA/IDE5OTkgOiAxOTg5OwotK30KLSsKLSAvKiBMYW5nIGhvb2tzIGNvbW1vbiB0 byBDIGFuZCBPYmpDIGFyZSBkZWNsYXJlZCBpbiBjLW9iamMtY29tbW9uLmg7Ci0gICAgY29uc2Vx dWVudGx5LCB0aGVyZSBzaG91bGQgYmUgdmVyeSBmZXcgaG9va3MgYmVsb3cuICAqLwotIAotQEAg LTQ0LDYgKzUwLDggQEAgZW51bSBjX2xhbmd1YWdlX2tpbmQgY19sYW5ndWFnZSA9IGNsa19jOwot ICNkZWZpbmUgTEFOR19IT09LU19OQU1FICJHTlUgQyIKLSAjdW5kZWYgTEFOR19IT09LU19JTklU Ci0gI2RlZmluZSBMQU5HX0hPT0tTX0lOSVQgY19vYmpjX2NvbW1vbl9pbml0Ci0rI3VuZGVmIExB TkdfSE9PS1NfU09VUkNFX0xBTkdVQUdFCi0rI2RlZmluZSBMQU5HX0hPT0tTX1NPVVJDRV9MQU5H VUFHRSBjX3NvdXJjZV9sYW5ndWFnZQotIAotIC8qIEVhY2ggZnJvbnQgZW5kIHByb3ZpZGVzIGl0 cyBvd24gbGFuZyBob29rIGluaXRpYWxpemVyLiAgKi8KLSBjb25zdCBzdHJ1Y3QgbGFuZ19ob29r cyBsYW5nX2hvb2tzID0gTEFOR19IT09LU19JTklUSUFMSVpFUjsKLS0tLSBnY2MvZHdhcmYyb3V0 LmMuamoJMjAwOS0wMy0xNyAxMzowNjoyOS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnY2MvZHdhcmYy b3V0LmMJMjAwOS0wMy0xOCAxMjo1NTozNi4wMDAwMDAwMDAgKzAxMDAKLUBAIC0xNDI4Niw5ICsx NDI4NiwxOCBAQCBhZGRfYml0X3NpemVfYXR0cmlidXRlIChkd19kaWVfcmVmIGRpZSwgCi0gc3Rh dGljIGlubGluZSB2b2lkCi0gYWRkX3Byb3RvdHlwZWRfYXR0cmlidXRlIChkd19kaWVfcmVmIGRp ZSwgdHJlZSBmdW5jX3R5cGUpCi0gewotLSAgaWYgKGdldF9BVF91bnNpZ25lZCAoY29tcF91bml0 X2RpZSwgRFdfQVRfbGFuZ3VhZ2UpID09IERXX0xBTkdfQzg5Ci0tICAgICAgJiYgVFlQRV9BUkdf VFlQRVMgKGZ1bmNfdHlwZSkgIT0gTlVMTCkKLS0gICAgYWRkX0FUX2ZsYWcgKGRpZSwgRFdfQVRf cHJvdG90eXBlZCwgMSk7Ci0rICBzd2l0Y2ggKGdldF9BVF91bnNpZ25lZCAoY29tcF91bml0X2Rp ZSwgRFdfQVRfbGFuZ3VhZ2UpKQotKyAgICB7Ci0rICAgIGNhc2UgRFdfTEFOR19DOgotKyAgICBj YXNlIERXX0xBTkdfQzg5OgotKyAgICBjYXNlIERXX0xBTkdfQzk5OgotKyAgICBjYXNlIERXX0xB TkdfT2JqQzoKLSsgICAgICBpZiAoVFlQRV9BUkdfVFlQRVMgKGZ1bmNfdHlwZSkgIT0gTlVMTCkK LSsJYWRkX0FUX2ZsYWcgKGRpZSwgRFdfQVRfcHJvdG90eXBlZCwgMSk7Ci0rICAgICAgYnJlYWs7 Ci0rICAgIGRlZmF1bHQ6Ci0rICAgICAgYnJlYWs7Ci0rICAgIH0KLSB9Ci0gCi0gLyogQWRkIGFu ICdhYnN0cmFjdF9vcmlnaW4nIGF0dHJpYnV0ZSBiZWxvdyBhIGdpdmVuIERJRS4gIFRoZSBESUUg aXMgZm91bmQKLUBAIC0xNjI5MCw2ICsxNjI5OSwxMCBAQCBnZW5fY29tcGlsZV91bml0X2RpZSAo Y29uc3QgY2hhciAqZmlsZW5hCi0gCWxhbmd1YWdlID0gRFdfTEFOR19PYmpDOwotICAgICAgIGVs c2UgaWYgKHN0cmNtcCAobGFuZ3VhZ2Vfc3RyaW5nLCAiR05VIE9iamVjdGl2ZS1DKysiKSA9PSAw KQotIAlsYW5ndWFnZSA9IERXX0xBTkdfT2JqQ19wbHVzX3BsdXM7Ci0rICAgICAgZWxzZSBpZiAo c3RyY21wIChsYW5ndWFnZV9zdHJpbmcsICJHTlUgQyIpID09IDAKLSsJICAgICAgICYmIGxhbmdf aG9va3Muc291cmNlX2xhbmd1YWdlCi0rCSAgICAgICAmJiBsYW5nX2hvb2tzLnNvdXJjZV9sYW5n dWFnZSAoKSA+PSAxOTk5KQotKwlsYW5ndWFnZSA9IERXX0xBTkdfQzk5OwotICAgICB9Ci0gCi0g ICBhZGRfQVRfdW5zaWduZWQgKGRpZSwgRFdfQVRfbGFuZ3VhZ2UsIGxhbmd1YWdlKTsKCmRpZmYg LS1naXQgYS9nY2M0NC1wcjQ0NTQyLnBhdGNoIGIvZ2NjNDQtcHI0NDU0Mi5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDkyNmU0MC4uMDAwMDAwMAotLS0gYS9nY2M0NC1wcjQ0 NTQyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotMjAxMC0wNi0xNyAgSmFr dWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+Ci0KLQlQUiB0YXJnZXQvNDQ1NDIKLQkqIGNm Z2V4cGFuZC5jIChleHBhbmRfb25lX3N0YWNrX3Zhcl9hdCk6IExpbWl0IGFsaWduIHRvIG1heGlt dW0KLQlvZiBtYXhfdXNlZF9zdGFja19zbG90X2FsaWdubWVudCBhbmQgUFJFRkVSUkVEX1NUQUNL X0JPVU5EQVJZCi0JaW5zdGVhZCBvZiBNQVhfU1VQUE9SVEVEX1NUQUNLX0FMSUdOTUVOVC4KLQko ZXhwYW5kX29uZV92YXIpOiBEb24ndCBjb25zaWRlciBERUNMX0FMSUdOIGZvciB2YXJpYWJsZXMg Zm9yCi0Jd2hpY2ggZXhwYW5kX29uZV9zdGFja192YXJfYXQgaGFzIGJlZW4gYWxyZWFkeSBjYWxs ZWQuCi0KLS0tLSBnY2MvY2ZnZXhwYW5kLmMuamoJMjAxMC0wNi0xNyAxNzowMToxMS45NjQxOTg0 NTggKzAyMDAKLSsrKyBnY2MvY2ZnZXhwYW5kLmMJMjAxMC0wNi0xNyAxODoyNToxOC45NDAzMzU3 NTcgKzAyMDAKLUBAIC04MzksNyArODM5LDcgQEAgc3RhdGljIHZvaWQKLSBleHBhbmRfb25lX3N0 YWNrX3Zhcl9hdCAodHJlZSBkZWNsLCBIT1NUX1dJREVfSU5UIG9mZnNldCkKLSB7Ci0gICAvKiBB bGlnbm1lbnQgaXMgdW5zaWduZWQuICAgKi8KLS0gIHVuc2lnbmVkIEhPU1RfV0lERV9JTlQgYWxp Z247Ci0rICB1bnNpZ25lZCBIT1NUX1dJREVfSU5UIGFsaWduLCBtYXhfYWxpZ247Ci0gICBydHgg eDsKLSAKLSAgIC8qIElmIHRoaXMgZmFpbHMsIHdlJ3ZlIG92ZXJmbG93ZWQgdGhlIHN0YWNrIGZy YW1lLiAgRXJyb3IgbmljZWx5PyAgKi8KLUBAIC04NTIsMTAgKzg1MiwxMCBAQCBleHBhbmRfb25l X3N0YWNrX3Zhcl9hdCAodHJlZSBkZWNsLCBIT1NUCi0gICBvZmZzZXQgLT0gZnJhbWVfcGhhc2U7 Ci0gICBhbGlnbiA9IG9mZnNldCAmIC1vZmZzZXQ7Ci0gICBhbGlnbiAqPSBCSVRTX1BFUl9VTklU OwotLSAgaWYgKGFsaWduID09IDApCi0tICAgIGFsaWduID0gU1RBQ0tfQk9VTkRBUlk7Ci0tICBl bHNlIGlmIChhbGlnbiA+IE1BWF9TVVBQT1JURURfU1RBQ0tfQUxJR05NRU5UKQotLSAgICBhbGln biA9IE1BWF9TVVBQT1JURURfU1RBQ0tfQUxJR05NRU5UOwotKyAgbWF4X2FsaWduID0gTUFYIChj cnRsLT5tYXhfdXNlZF9zdGFja19zbG90X2FsaWdubWVudCwKLSsJCSAgIFBSRUZFUlJFRF9TVEFD S19CT1VOREFSWSk7Ci0rICBpZiAoYWxpZ24gPT0gMCB8fCBhbGlnbiA+IG1heF9hbGlnbikKLSsg ICAgYWxpZ24gPSBtYXhfYWxpZ247Ci0gICBERUNMX0FMSUdOIChkZWNsKSA9IGFsaWduOwotICAg REVDTF9VU0VSX0FMSUdOIChkZWNsKSA9IDA7Ci0gCi1AQCAtMTA1NCw2ICsxMDU0LDEzIEBAIGV4 cGFuZF9vbmVfdmFyICh0cmVlIHZhciwgYm9vbCB0b3BsZXZlbCwKLSAJYWxpZ24gPSBNSU5JTVVN X0FMSUdOTUVOVCAoVFJFRV9UWVBFICh2YXIpLAotIAkJCQkgICBUWVBFX01PREUgKFRSRUVfVFlQ RSAodmFyKSksCi0gCQkJCSAgIFRZUEVfQUxJR04gKFRSRUVfVFlQRSAodmFyKSkpOwotKyAgICAg IGVsc2UgaWYgKERFQ0xfSEFTX1ZBTFVFX0VYUFJfUCAodmFyKQotKwkgICAgICAgfHwgKERFQ0xf UlRMX1NFVF9QICh2YXIpICYmIE1FTV9QIChERUNMX1JUTCAodmFyKSkpKQotKwkvKiBEb24ndCBj b25zaWRlciBkZWJ1ZyBvbmx5IHZhcmlhYmxlcyB3aXRoIERFQ0xfSEFTX1ZBTFVFX0VYUFJfUCBz ZXQKLSsJICAgb3IgdmFyaWFibGVzIHdoaWNoIHdlcmUgYXNzaWduZWQgYSBzdGFjayBzbG90IGFs cmVhZHkgYnkKLSsJICAgZXhwYW5kX29uZV9zdGFja192YXJfYXQgLSBpbiB0aGUgbGF0dGVyIGNh c2UgREVDTF9BTElHTiBoYXMgYmVlbgotKwkgICBjaGFuZ2VkIGZyb20gdGhlIG9mZnNldCBjaG9z ZW4gdG8gaXQuICAqLwotKwlhbGlnbiA9IGNydGwtPnN0YWNrX2FsaWdubWVudF9lc3RpbWF0ZWQ7 Ci0gICAgICAgZWxzZQotIAlhbGlnbiA9IE1JTklNVU1fQUxJR05NRU5UICh2YXIsIERFQ0xfTU9E RSAodmFyKSwgREVDTF9BTElHTiAodmFyKSk7Ci0gCgpkaWZmIC0tZ2l0IGEvZ2NjNDQtcmgzMzA3 NzEucGF0Y2ggYi9nY2M0NC1yaDMzMDc3MS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggZjdjMzY1ZC4uMDAwMDAwMAotLS0gYS9nY2M0NC1yaDMzMDc3MS5wYXRjaAorKysgL2Rl di9udWxsCkBAIC0xLDM0ICswLDAgQEAKLTIwMDctMTAtMTYgIEpha3ViIEplbGluZWsgIDxqYWt1 YkByZWRoYXQuY29tPgotCi0JKiBNYWtlZmlsZS5hbSAobGliZ2NqX3Rvb2xzX2xhX0xJQkFERCk6 IEFkZC4KLQkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlZC4KLQotLS0tIGxpYmphdmEvTWFrZWZp bGUuYW0uamoJMjAwOS0wNS0wNiAwODoxNDo1MC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBsaWJqYXZh L01ha2VmaWxlLmFtCTIwMDktMDUtMDYgMTA6MjY6NDMuMDAwMDAwMDAwICswMjAwCi1AQCAtMzE0 LDYgKzMxNCw4IEBAIGxpYmdjal90b29sc19sYV9TT1VSQ0VTID0gY2xhc3NwYXRoL3Rvb2wKLSBs aWJnY2pfdG9vbHNfbGFfR0NKRkxBR1MgPSAkKEFNX0dDSkZMQUdTKSAtZmluZGlyZWN0LWRpc3Bh dGNoIFwKLSAgLWZuby1ib290c3RyYXAtY2xhc3NlcyAtZm5vLWluZGlyZWN0LWNsYXNzZXMgXAot ICAtZnNvdXJjZS1maWxlbmFtZT0kKGhlcmUpL2NsYXNzcGF0aC90b29scy9hbGwtY2xhc3Nlcy5s c3QKLSsjIyBTZWUganZfY29udmVydF9MREFERC4KLStsaWJnY2pfdG9vbHNfbGFfTElCQUREID0g LUwkKGhlcmUpLy5saWJzIGxpYmdjai5sYQotIGxpYmdjal90b29sc19sYV9MREZMQUdTID0gLXJw YXRoICQodG9vbGV4ZWNsaWJkaXIpIFwKLSAgLXZlcnNpb24taW5mbyBgZ3JlcCAtdiAnXlwjJyAk KHNyY2RpcikvbGlidG9vbC12ZXJzaW9uYCBcCi0gICQoTElCR0NKX0xEX1NZTUJPTElDX0ZVTkNU SU9OUykKLS0tLSBsaWJqYXZhL01ha2VmaWxlLmluLmpqCTIwMDktMDUtMDYgMDg6MTQ6NDkuMDAw MDAwMDAwICswMjAwCi0rKysgbGliamF2YS9NYWtlZmlsZS5pbgkyMDA5LTA1LTA2IDEwOjI3OjE4 LjAwMDAwMDAwMCArMDIwMAotQEAgLTE2MCw3ICsxNjAsNiBAQCBhbV9fb2JqZWN0c18xID0gZ251 L2djai94bGliL2xpYl9nbnVfYXd0Ci0gYW1fbGliX2dudV9hd3RfeGxpYl9sYV9PQkpFQ1RTID0g JChhbV9fb2JqZWN0c18xKQotIGxpYl9nbnVfYXd0X3hsaWJfbGFfT0JKRUNUUyA9ICQoYW1fbGli X2dudV9hd3RfeGxpYl9sYV9PQkpFQ1RTKQotIEBYTElCX0FXVF9UUlVFQGFtX2xpYl9nbnVfYXd0 X3hsaWJfbGFfcnBhdGggPSAtcnBhdGggJCh0b29sZXhlY2xpYmRpcikKLS1saWJnY2pfdG9vbHNf bGFfTElCQUREID0KLSBhbV9saWJnY2pfdG9vbHNfbGFfT0JKRUNUUyA9IGNsYXNzcGF0aC90b29s cy9saWJnY2pfdG9vbHNfbGEtdG9vbHMubG8KLSBsaWJnY2pfdG9vbHNfbGFfT0JKRUNUUyA9ICQo YW1fbGliZ2NqX3Rvb2xzX2xhX09CSkVDVFMpCi0gQElOVEVSUFJFVEVSX1RSVUVAYW1fX0RFUEVO REVOQ0lFU18xID0gZ251L2NsYXNzcGF0aC9qZHdwLmxvIFwKLUBAIC0xMDQxLDYgKzEwNDAsNyBA QCBsaWJnY2pfdG9vbHNfbGFfR0NKRkxBR1MgPSAkKEFNX0dDSkZMQUdTCi0gIC1mbm8tYm9vdHN0 cmFwLWNsYXNzZXMgLWZuby1pbmRpcmVjdC1jbGFzc2VzIFwKLSAgLWZzb3VyY2UtZmlsZW5hbWU9 JChoZXJlKS9jbGFzc3BhdGgvdG9vbHMvYWxsLWNsYXNzZXMubHN0Ci0gCi0rbGliZ2NqX3Rvb2xz X2xhX0xJQkFERCA9IC1MJChoZXJlKS8ubGlicyBsaWJnY2oubGEKLSBsaWJnY2pfdG9vbHNfbGFf TERGTEFHUyA9IC1ycGF0aCAkKHRvb2xleGVjbGliZGlyKSBcCi0gIC12ZXJzaW9uLWluZm8gYGdy ZXAgLXYgJ15cIycgJChzcmNkaXIpL2xpYnRvb2wtdmVyc2lvbmAgXAotICAkKExJQkdDSl9MRF9T WU1CT0xJQ19GVU5DVElPTlMpCgpkaWZmIC0tZ2l0IGEvZ2NjNDQtc3BhcmMtY29uZmlnLWRldGVj dGlvbi5wYXRjaCBiL2djYzQ0LXNwYXJjLWNvbmZpZy1kZXRlY3Rpb24ucGF0Y2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDljNmI1N2UuLjAwMDAwMDAKLS0tIGEvZ2NjNDQtc3BhcmMt Y29uZmlnLWRldGVjdGlvbi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAgQEAKLS0t LSBnY2MvY29uZmlnLmdjYy5qagkyMDA4LTA0LTI0IDE1OjQyOjQ2LjAwMDAwMDAwMCAtMDUwMAot KysrIGdjYy9jb25maWcuZ2NjCTIwMDgtMDQtMjQgMTU6NDQ6NTEuMDAwMDAwMDAwIC0wNTAwCi1A QCAtMjE3NSw3ICsyMTc1LDcgQEAgc3BhcmMtKi1lbGYqKQotIAl0bWFrZV9maWxlPSJzcGFyYy90 LWVsZiBzcGFyYy90LWNydGZtIgotIAlleHRyYV9wYXJ0cz0iY3J0aS5vIGNydG4ubyBjcnRiZWdp bi5vIGNydGVuZC5vIgotIAk7OwotLXNwYXJjLSotbGludXgqKQkJIyBTUEFSQydzIHJ1bm5pbmcg R05VL0xpbnV4LCBsaWJjNgotK3NwYXJjLSotbGludXgqIHwgc3BhcmN2OSotKi1saW51eCopCQkj IFNQQVJDJ3MgcnVubmluZyBHTlUvTGludXgsIGxpYmM2Ci0gCXRtX2ZpbGU9IiR7dG1fZmlsZX0g ZGJ4ZWxmLmggZWxmb3MuaCBzdnI0Lmggc3BhcmMvc3lzdjQuaCBzcGFyYy9nYXMuaCBsaW51eC5o IgotIAlleHRyYV9vcHRpb25zPSIke2V4dHJhX29wdGlvbnN9IHNwYXJjL2xvbmctZG91YmxlLXN3 aXRjaC5vcHQiCi0gCXRtYWtlX2ZpbGU9IiR7dG1ha2VfZmlsZX0gc3BhcmMvdC1saW51eCIKLUBA IC0yMjg3LDcgKzIyODcsNyBAQCBzcGFyYzY0LSotZnJlZWJzZCp8dWx0cmFzcGFyYy0qLWZyZWVi c2QqCi0gCQkqKSBlY2hvICIkd2l0aF9jcHUgbm90IHN1cHBvcnRlZCBmb3IgZnJlZWJzZCB0YXJn ZXQiOyBleGl0IDEgOzsKLSAJZXNhYwotIAk7OwotLXNwYXJjNjQtKi1saW51eCopCQkjIDY0LWJp dCBTUEFSQydzIHJ1bm5pbmcgR05VL0xpbnV4Ci0rc3BhcmM2NCotKi1saW51eCopCQkjIDY0LWJp dCBTUEFSQydzIHJ1bm5pbmcgR05VL0xpbnV4Ci0gCXRtX2ZpbGU9InNwYXJjL2JpYXJjaDY0Lmgg JHt0bV9maWxlfSBkYnhlbGYuaCBlbGZvcy5oIHN2cjQuaCBzcGFyYy9zeXN2NC5oIHNwYXJjL2dh cy5oIGxpbnV4Lmggc3BhcmMvbGludXg2NC5oIgotIAlleHRyYV9vcHRpb25zPSIke2V4dHJhX29w dGlvbnN9IHNwYXJjL2xvbmctZG91YmxlLXN3aXRjaC5vcHQiCi0gCXRtYWtlX2ZpbGU9IiR7dG1h a2VfZmlsZX0gc3BhcmMvdC1saW51eCBzcGFyYy90LWxpbnV4NjQgc3BhcmMvdC1jcnRmbSIKLS0t LSBsaWJnY2MvY29uZmlnLmhvc3QuamoJMjAwOC0wNC0yNCAxNTo0NjoxOS4wMDAwMDAwMDAgLTA1 MDAKLSsrKyBsaWJnY2MvY29uZmlnLmhvc3QJMjAwOC0wNC0yNCAxNTo0Njo0OS4wMDAwMDAwMDAg LTA1MDAKLUBAIC01NzIsNyArNTcyLDcgQEAgc3BhcmM2NC0qLW9wZW5ic2QqKQotIAk7OwotIHNw YXJjLSotZWxmKikKLSAJOzsKLS1zcGFyYy0qLWxpbnV4KikJCSMgU1BBUkMncyBydW5uaW5nIEdO VS9MaW51eCwgbGliYzYKLStzcGFyYy0qLWxpbnV4KiB8IHNwYXJjdjkqLSotbGludXgqKQkJIyBT UEFSQydzIHJ1bm5pbmcgR05VL0xpbnV4LCBsaWJjNgotIAlleHRyYV9wYXJ0cz0iJGV4dHJhX3Bh cnRzIGNydGZhc3RtYXRoLm8iCi0gCXRtYWtlX2ZpbGU9IiR7dG1ha2VfZmlsZX0gc3BhcmMvdC1j cnRmbSIKLSAJOzsKLUBAIC01OTAsNyArNTkwLDcgQEAgc3BhcmMtd3JzLXZ4d29ya3MpCi0gCTs7 Ci0gc3BhcmM2NC0qLWZyZWVic2QqfHVsdHJhc3BhcmMtKi1mcmVlYnNkKikKLSAJOzsKLS1zcGFy YzY0LSotbGludXgqKQkJIyA2NC1iaXQgU1BBUkMncyBydW5uaW5nIEdOVS9MaW51eAotK3NwYXJj NjQqLSotbGludXgqKQkJIyA2NC1iaXQgU1BBUkMncyBydW5uaW5nIEdOVS9MaW51eAotIAlleHRy YV9wYXJ0cz0iJGV4dHJhX3BhcnRzIGNydGZhc3RtYXRoLm8iCi0gCXRtYWtlX2ZpbGU9IiR7dG1h a2VfZmlsZX0gc3BhcmMvdC1jcnRmbSIKLSAJOzsKCmRpZmYgLS1naXQgYS9nY2M0NC11bndpbmQt ZGVidWctaG9vay5wYXRjaCBiL2djYzQ0LXVud2luZC1kZWJ1Zy1ob29rLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YjdjNTllLi4wMDAwMDAwCi0tLSBhL2djYzQ0LXVud2lu ZC1kZWJ1Zy1ob29rLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotMjAxMC0w NC0yNyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+Ci0KLQkqIHVud2luZC1kdzIu YyAoX1Vud2luZF9EZWJ1Z0hvb2spOiBBZGQgdXNlZCBhdHRyaWJ1dGUuCi0KLTIwMDktMDUtMjcg IFRvbSBUcm9tZXkgIDx0cm9tZXlAcmVkaGF0LmNvbT4KLQotCSogdW53aW5kLWR3Mi5jIChfVW53 aW5kX0RlYnVnSG9vayk6IE5ldyBmdW5jdGlvbi4KLQkodXdfaW5zdGFsbF9jb250ZXh0KTogQ2Fs bCBfVW53aW5kX0RlYnVnSG9vay4KLQotLS0tIGdjYy91bndpbmQtZHcyLmMJKHJldmlzaW9uIDE0 NzkzMykKLSsrKyBnY2MvdW53aW5kLWR3Mi5jCShyZXZpc2lvbiAxNDc5MzQpCi1AQCAtMTQ3Mywx OCArMTQ3MywzMiBAQCB1d19pbml0X2NvbnRleHRfMSAoc3RydWN0IF9VbndpbmRfQ29udGV4Ci0g ICBjb250ZXh0LT5yYSA9IF9fYnVpbHRpbl9leHRyYWN0X3JldHVybl9hZGRyIChvdXRlcl9yYSk7 Ci0gfQotIAotK3N0YXRpYyB2b2lkIF9VbndpbmRfRGVidWdIb29rICh2b2lkICosIHZvaWQgKikK LSsgIF9fYXR0cmlidXRlX18gKChfX25vaW5saW5lX18sIF9fdXNlZF9fKSk7Ci0rCi0rLyogVGhp cyBmdW5jdGlvbiBpcyBjYWxsZWQgZHVyaW5nIHVud2luZGluZy4gIEl0IGlzIGludGVuZGVkIGFz IGEgaG9vawotKyAgIGZvciBhIGRlYnVnZ2VyIHRvIGludGVyY2VwdCBleGNlcHRpb25zLiAgQ0ZB IGlzIHRoZSBDRkEgb2YgdGhlCi0rICAgdGFyZ2V0IGZyYW1lLiAgSEFORExFUiBpcyB0aGUgUEMg dG8gd2hpY2ggY29udHJvbCB3aWxsIGJlCi0rICAgdHJhbnNmZXJyZWQuICAqLwotK3N0YXRpYyB2 b2lkCi0rX1Vud2luZF9EZWJ1Z0hvb2sgKHZvaWQgKmNmYSBfX2F0dHJpYnV0ZV9fICgoX191bnVz ZWRfXykpLAotKwkJICAgdm9pZCAqaGFuZGxlciBfX2F0dHJpYnV0ZV9fICgoX191bnVzZWRfXykp KQotK3sKLSsgIGFzbSAoIiIpOwotK30KLSAKLSAvKiBJbnN0YWxsIFRBUkdFVCBpbnRvIENVUlJF TlQgc28gdGhhdCB3ZSBjYW4gcmV0dXJuIHRvIGl0LiAgVGhpcyBpcyBhCi0gICAgbWFjcm8gYmVj YXVzZSBfX2J1aWx0aW5fZWhfcmV0dXJuIG11c3QgYmUgaW52b2tlZCBpbiB0aGUgY29udGV4dCBv ZgotICAgIG91ciBjYWxsZXIuICAqLwotIAotLSNkZWZpbmUgdXdfaW5zdGFsbF9jb250ZXh0KENV UlJFTlQsIFRBUkdFVCkJCQkJIFwKLS0gIGRvCQkJCQkJCQkJIFwKLS0gICAgewkJCQkJCQkJCSBc Ci0tICAgICAgbG9uZyBvZmZzZXQgPSB1d19pbnN0YWxsX2NvbnRleHRfMSAoKENVUlJFTlQpLCAo VEFSR0VUKSk7CQkgXAotLSAgICAgIHZvaWQgKmhhbmRsZXIgPSBfX2J1aWx0aW5fZnJvYl9yZXR1 cm5fYWRkciAoKFRBUkdFVCktPnJhKTsJIFwKLS0gICAgICBfX2J1aWx0aW5fZWhfcmV0dXJuIChv ZmZzZXQsIGhhbmRsZXIpOwkJCQkgXAotLSAgICB9CQkJCQkJCQkJIFwKLSsjZGVmaW5lIHV3X2lu c3RhbGxfY29udGV4dChDVVJSRU5ULCBUQVJHRVQpCQkJCVwKLSsgIGRvCQkJCQkJCQkJXAotKyAg ICB7CQkJCQkJCQkJXAotKyAgICAgIGxvbmcgb2Zmc2V0ID0gdXdfaW5zdGFsbF9jb250ZXh0XzEg KChDVVJSRU5UKSwgKFRBUkdFVCkpOwkJXAotKyAgICAgIHZvaWQgKmhhbmRsZXIgPSBfX2J1aWx0 aW5fZnJvYl9yZXR1cm5fYWRkciAoKFRBUkdFVCktPnJhKTsJXAotKyAgICAgIF9VbndpbmRfRGVi dWdIb29rICgoVEFSR0VUKS0+Y2ZhLCBoYW5kbGVyKTsJCQlcCi0rICAgICAgX19idWlsdGluX2Vo X3JldHVybiAob2Zmc2V0LCBoYW5kbGVyKTsJCQkJXAotKyAgICB9CQkJCQkJCQkJXAotICAgd2hp bGUgKDApCi0gCi0gc3RhdGljIGxvbmcKCmRpZmYgLS1naXQgYS9nY2M0NS1idWlsZC1pZC5wYXRj aCBiL2djYzQ1LWJ1aWxkLWlkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLmY3NmY5MzkKLS0tIC9kZXYvbnVsbAorKysgYi9nY2M0NS1idWlsZC1pZC5wYXRjaApAQCAt MCwwICsxLDUyIEBACisyMDA3LTA3LTIyICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQu Y29tPgorCisJKiBjb25maWcvcnM2MDAwL3N5c3Y0LmggKExJTktfRUhfU1BFQyk6IEFkZCAtLWJ1 aWxkLWlkIGZvcgorCW5vbi1yZWxvY2F0YWJsZSBsaW5rLgorCSogY29uZmlnL2xpbnV4LmggKExJ TktfRUhfU1BFQyk6IExpa2V3aXNlLgorCSogY29uZmlnL2FscGhhL2VsZi5oIChMSU5LX0VIX1NQ RUMpOiBMaWtld2lzZS4KKwkqIGNvbmZpZy9pYTY0L2xpbnV4LmggKExJTktfRUhfU1BFQyk6IExp a2V3aXNlLgorCistLS0gZ2NjL2NvbmZpZy9yczYwMDAvc3lzdjQuaC5+MX4KKysrKyBnY2MvY29u ZmlnL3JzNjAwMC9zeXN2NC5oCitAQCAtOTA2LDcgKzkwNiw3IEBAIGV4dGVybiBpbnQgZml4dXBs YWJlbG5vOworICAgJXshZHluYW1pYy1saW5rZXI6LWR5bmFtaWMtbGlua2VyICIgTElOVVhfRFlO QU1JQ19MSU5LRVIgIn19fSIKKyAKKyAjaWYgZGVmaW5lZChIQVZFX0xEX0VIX0ZSQU1FX0hEUikK Ky0jIGRlZmluZSBMSU5LX0VIX1NQRUMgIiV7IXN0YXRpYzotLWVoLWZyYW1lLWhkcn0gIgorKyMg ZGVmaW5lIExJTktfRUhfU1BFQyAiJXshc3RhdGljOi0tZWgtZnJhbWUtaGRyfSAleyFyOi0tYnVp bGQtaWR9ICIKKyAjZW5kaWYKKyAKKyAjZGVmaW5lIENQUF9PU19MSU5VWF9TUEVDICItRF9fdW5p eF9fIC1EX19nbnVfbGludXhfXyAtRF9fbGludXhfXyBcCistLS0gZ2NjL2NvbmZpZy9saW51eC5o Ln4xfgorKysrIGdjYy9jb25maWcvbGludXguaAorQEAgLTg1LDcgKzg1LDcgQEAgQm9zdG9uLCBN QSAwMjExMC0xMzAxLCBVU0EuICAqLworICAgICB9IHdoaWxlICgwKQorIAorICNpZiBkZWZpbmVk KEhBVkVfTERfRUhfRlJBTUVfSERSKQorLSNkZWZpbmUgTElOS19FSF9TUEVDICIleyFzdGF0aWM6 LS1laC1mcmFtZS1oZHJ9ICIKKysjZGVmaW5lIExJTktfRUhfU1BFQyAiJXshc3RhdGljOi0tZWgt ZnJhbWUtaGRyfSAleyFyOi0tYnVpbGQtaWR9ICIKKyAjZW5kaWYKKyAKKyAvKiBEZWZpbmUgdGhp cyBzbyB3ZSBjYW4gY29tcGlsZSBNUyBjb2RlIGZvciB1c2Ugd2l0aCBXSU5FLiAgKi8KKy0tLSBn Y2MvY29uZmlnL2FscGhhL2VsZi5oLn4xfgorKysrIGdjYy9jb25maWcvYWxwaGEvZWxmLmgKK0BA IC00MjEsNyArNDIxLDcgQEAgZXh0ZXJuIGludCBhbHBoYV90aGlzX2dwZGlzcF9zZXF1ZW5jZV9u dQorICAgIEkgaW1hZ2luZSB0aGF0IG90aGVyIHN5c3RlbXMgd2lsbCBjYXRjaCB1cC4gIEluIHRo ZSBtZWFudGltZSwgaXQKKyAgICBkb2Vzbid0IGhhcm0gdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGRh dGEgZXhpc3RzIHRvIGJlIHVzZWQgbGF0ZXIuICAqLworICNpZiBkZWZpbmVkKEhBVkVfTERfRUhf RlJBTUVfSERSKQorLSNkZWZpbmUgTElOS19FSF9TUEVDICIleyFzdGF0aWM6LS1laC1mcmFtZS1o ZHJ9ICIKKysjZGVmaW5lIExJTktfRUhfU1BFQyAiJXshc3RhdGljOi0tZWgtZnJhbWUtaGRyfSAl eyFyOi0tYnVpbGQtaWR9ICIKKyAjZW5kaWYKKyAKKyAvKiBBIEMgc3RhdGVtZW50IChzYW5zIHNl bWljb2xvbikgdG8gb3V0cHV0IHRvIHRoZSBzdGRpbyBzdHJlYW0gU1RSRUFNCistLS0gZ2NjL2Nv bmZpZy9pYTY0L2xpbnV4LmgufjF+CisrKysgZ2NjL2NvbmZpZy9pYTY0L2xpbnV4LmgKK0BAIC01 Niw3ICs1Niw3IEBAIGRvIHsJCQkJCQlcCisgICAgU2lnbmFsaXplIHRoYXQgYmVjYXVzZSB3ZSBo YXZlIGZkZS1nbGliYywgd2UgZG9uJ3QgbmVlZCBhbGwgQyBzaGFyZWQgbGlicworICAgIGxpbmtl ZCBhZ2FpbnN0IC1sZ2NjX3MuICAqLworICN1bmRlZiBMSU5LX0VIX1NQRUMKKy0jZGVmaW5lIExJ TktfRUhfU1BFQyAiIgorKyNkZWZpbmUgTElOS19FSF9TUEVDICIleyFyOi0tYnVpbGQtaWR9ICIK KyAKKyAjZGVmaW5lIE1EX1VOV0lORF9TVVBQT1JUICJjb25maWcvaWE2NC9saW51eC11bndpbmQu aCIKKyAKCmRpZmYgLS1naXQgYS9nY2M0NS1jKystYnVpbHRpbi1yZWRlY2wucGF0Y2ggYi9nY2M0 NS1jKystYnVpbHRpbi1yZWRlY2wucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uMWYzNmYxZgotLS0gL2Rldi9udWxsCisrKyBiL2djYzQ1LWMrKy1idWlsdGluLXJlZGVj bC5wYXRjaApAQCAtMCwwICsxLDEwMiBAQAorMjAwNy0xMC0wMiAgSmFrdWIgSmVsaW5layAgPGph a3ViQHJlZGhhdC5jb20+CisKKwkqIGRlY2wuYyAoZHVwbGljYXRlX2RlY2xzKTogV2hlbiByZWRl Y2xhcmluZyBhIGJ1aWx0aW4gZnVuY3Rpb24sCisJa2VlcCB0aGUgbWVyZ2VkIGRlY2wgYnVpbHRp biB3aGVuZXZlciB0eXBlcyBtYXRjaCwgZXZlbiBpZiBuZXcKKwlkZWNsIGRlZmluZXMgYSBmdW5j dGlvbi4KKworCSogZ2NjLmRnL2J1aWx0aW5zLTY1LmM6IE5ldyB0ZXN0LgorCSogZysrLmRnL2V4 dC9idWlsdGluMTAuQzogTmV3IHRlc3QuCisKKy0tLSBnY2MvY3AvZGVjbC5jLmpqCTIwMDctMTAt MDEgMjI6MTE6MDkuMDAwMDAwMDAwICswMjAwCisrKysgZ2NjL2NwL2RlY2wuYwkyMDA3LTEwLTAy IDExOjM5OjQ2LjAwMDAwMDAwMCArMDIwMAorQEAgLTIwMDEsMjMgKzIwMDEsMjEgQEAgZHVwbGlj YXRlX2RlY2xzICh0cmVlIG5ld2RlY2wsIHRyZWUgb2xkZAorIAkgIERFQ0xfQVJHVU1FTlRTIChv bGRkZWNsKSA9IERFQ0xfQVJHVU1FTlRTIChuZXdkZWNsKTsKKyAJICBERUNMX1JFU1VMVCAob2xk ZGVjbCkgPSBERUNMX1JFU1VMVCAobmV3ZGVjbCk7CisgCX0KKysgICAgICAvKiBJZiByZWRlY2xh cmluZyBhIGJ1aWx0aW4gZnVuY3Rpb24sIGl0IHN0YXlzIGJ1aWx0IGluLiAgKi8KKysgICAgICBp ZiAodHlwZXNfbWF0Y2ggJiYgREVDTF9CVUlMVF9JTiAob2xkZGVjbCkpCisrCXsKKysJICBERUNM X0JVSUxUX0lOX0NMQVNTIChuZXdkZWNsKSA9IERFQ0xfQlVJTFRfSU5fQ0xBU1MgKG9sZGRlY2wp OworKwkgIERFQ0xfRlVOQ1RJT05fQ09ERSAobmV3ZGVjbCkgPSBERUNMX0ZVTkNUSU9OX0NPREUg KG9sZGRlY2wpOworKwkgIC8qIElmIHdlJ3JlIGtlZXBpbmcgdGhlIGJ1aWx0LWluIGRlZmluaXRp b24sIGtlZXAgdGhlIHJ0bCwKKysJICAgICByZWdhcmRsZXNzIG9mIGRlY2xhcmF0aW9uIG1hdGNo ZXMuICAqLworKwkgIENPUFlfREVDTF9SVEwgKG9sZGRlY2wsIG5ld2RlY2wpOworKwl9CisgICAg ICAgaWYgKG5ld19kZWZpbmVzX2Z1bmN0aW9uKQorIAkvKiBJZiBkZWZpbmluZyBhIGZ1bmN0aW9u IGRlY2xhcmVkIHdpdGggb3RoZXIgbGFuZ3VhZ2UKKyAJICAgbGlua2FnZSwgdXNlIHRoZSBwcmV2 aW91c2x5IGRlY2xhcmVkIGxhbmd1YWdlIGxpbmthZ2UuICAqLworIAlTRVRfREVDTF9MQU5HVUFH RSAobmV3ZGVjbCwgREVDTF9MQU5HVUFHRSAob2xkZGVjbCkpOworICAgICAgIGVsc2UgaWYgKHR5 cGVzX21hdGNoKQorIAl7CistCSAgLyogSWYgcmVkZWNsYXJpbmcgYSBidWlsdGluIGZ1bmN0aW9u LCBhbmQgbm90IGEgZGVmaW5pdGlvbiwKKy0JICAgICBpdCBzdGF5cyBidWlsdCBpbi4gICovCist CSAgaWYgKERFQ0xfQlVJTFRfSU4gKG9sZGRlY2wpKQorLQkgICAgeworLQkgICAgICBERUNMX0JV SUxUX0lOX0NMQVNTIChuZXdkZWNsKSA9IERFQ0xfQlVJTFRfSU5fQ0xBU1MgKG9sZGRlY2wpOwor LQkgICAgICBERUNMX0ZVTkNUSU9OX0NPREUgKG5ld2RlY2wpID0gREVDTF9GVU5DVElPTl9DT0RF IChvbGRkZWNsKTsKKy0JICAgICAgLyogSWYgd2UncmUga2VlcGluZyB0aGUgYnVpbHQtaW4gZGVm aW5pdGlvbiwga2VlcCB0aGUgcnRsLAorLQkJIHJlZ2FyZGxlc3Mgb2YgZGVjbGFyYXRpb24gbWF0 Y2hlcy4gICovCistCSAgICAgIENPUFlfREVDTF9SVEwgKG9sZGRlY2wsIG5ld2RlY2wpOworLQkg ICAgfQorLQorIAkgIERFQ0xfUkVTVUxUIChuZXdkZWNsKSA9IERFQ0xfUkVTVUxUIChvbGRkZWNs KTsKKyAJICAvKiBEb24ndCBjbGVhciBvdXQgdGhlIGFyZ3VtZW50cyBpZiB3ZSdyZSBqdXN0IHJl ZGVjbGFyaW5nIGEKKyAJICAgICBmdW5jdGlvbi4gICovCistLS0gZ2NjL3Rlc3RzdWl0ZS9nY2Mu ZGcvYnVpbHRpbnMtNjUuYy5qagkyMDA3LTEwLTAyIDExOjIzOjUxLjAwMDAwMDAwMCArMDIwMAor KysrIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL2J1aWx0aW5zLTY1LmMJMjAwNy0xMC0wMiAxMToyNDox Mi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMjUgQEAKKysvKiB7IGRnLWRvIGNvbXBpbGUg fSAqLworKy8qIHsgZGctb3B0aW9ucyAiLU8yIiB9ICovCisrCisrdHlwZWRlZiBfX1NJWkVfVFlQ RV9fIHNpemVfdDsKKytleHRlcm4gdm9pZCBfX2Noa19mYWlsICh2b2lkKTsKKytleHRlcm4gaW50 IHNucHJpbnRmIChjaGFyICosIHNpemVfdCwgY29uc3QgY2hhciAqLCAuLi4pOworK2V4dGVybiBp bmxpbmUgX19hdHRyaWJ1dGVfXygoZ251X2lubGluZSwgYWx3YXlzX2lubGluZSkpIGludCBzbnBy aW50ZiAoY2hhciAqYSwgc2l6ZV90IGIsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQorK3sKKysgIGlm IChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKGEsIDApICE9IC0xVUwgJiYgX19idWlsdGluX29iamVj dF9zaXplIChhLCAwKSA8IGIpCisrICAgIF9fY2hrX2ZhaWwgKCk7CisrICByZXR1cm4gX19idWls dGluX3NucHJpbnRmIChhLCBiLCBmbXQsIF9fYnVpbHRpbl92YV9hcmdfcGFjayAoKSk7CisrfQor K2V4dGVybiBpbnQgc25wcmludGYgKGNoYXIgKiwgc2l6ZV90LCBjb25zdCBjaGFyICosIC4uLikg X19hc20gKCJteXNucHJpbnRmIik7CisrCisrY2hhciBidWZbMTBdOworKworK2ludAorK21haW4g KHZvaWQpCisreworKyAgc25wcmludGYgKGJ1ZiwgMTAsICIlZCVkXG4iLCAxMCwgMTApOworKyAg cmV0dXJuIDA7CisrfQorKworKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAibXlzbnBy aW50ZiIgfSB9ICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCAiX19jaGtf ZmFpbCIgfSB9ICovCistLS0gZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvZXh0L2J1aWx0aW4xMC5DLmpq CTIwMDctMTAtMDIgMTE6MTk6NDUuMDAwMDAwMDAwICswMjAwCisrKysgZ2NjL3Rlc3RzdWl0ZS9n KysuZGcvZXh0L2J1aWx0aW4xMC5DCTIwMDctMTAtMDIgMTE6MjM6MjYuMDAwMDAwMDAwICswMjAw CitAQCAtMCwwICsxLDI3IEBACisrLy8geyBkZy1kbyBjb21waWxlIH0KKysvLyB7IGRnLW9wdGlv bnMgIi1PMiIgfQorKworK3R5cGVkZWYgX19TSVpFX1RZUEVfXyBzaXplX3Q7CisrZXh0ZXJuICJD IiB7CisrZXh0ZXJuIHZvaWQgX19jaGtfZmFpbCAodm9pZCk7CisrZXh0ZXJuIGludCBzbnByaW50 ZiAoY2hhciAqLCBzaXplX3QsIGNvbnN0IGNoYXIgKiwgLi4uKTsKKytleHRlcm4gaW5saW5lIF9f YXR0cmlidXRlX18oKGdudV9pbmxpbmUsIGFsd2F5c19pbmxpbmUpKSBpbnQgc25wcmludGYgKGNo YXIgKmEsIHNpemVfdCBiLCBjb25zdCBjaGFyICpmbXQsIC4uLikKKyt7CisrICBpZiAoX19idWls dGluX29iamVjdF9zaXplIChhLCAwKSAhPSAtMVVMICYmIF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAo YSwgMCkgPCBiKQorKyAgICBfX2Noa19mYWlsICgpOworKyAgcmV0dXJuIF9fYnVpbHRpbl9zbnBy aW50ZiAoYSwgYiwgZm10LCBfX2J1aWx0aW5fdmFfYXJnX3BhY2sgKCkpOworK30KKytleHRlcm4g aW50IHNucHJpbnRmIChjaGFyICosIHNpemVfdCwgY29uc3QgY2hhciAqLCAuLi4pIF9fYXNtICgi bXlzbnByaW50ZiIpOworK30KKysKKytjaGFyIGJ1ZlsxMF07CisrCisraW50CisrbWFpbiAodm9p ZCkKKyt7CisrICBzbnByaW50ZiAoYnVmLCAxMCwgIiVkJWRcbiIsIDEwLCAxMCk7CisrICByZXR1 cm4gMDsKKyt9CisrCisrLy8geyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJteXNucHJpbnRm IiB9IH0KKysvLyB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90ICJfX2Noa19mYWlsIiB9 IH0KCmRpZmYgLS1naXQgYS9nY2M0NS1jbG9vZy1kbC5wYXRjaCBiL2djYzQ1LWNsb29nLWRsLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzZWExZWEKLS0tIC9kZXYv bnVsbAorKysgYi9nY2M0NS1jbG9vZy1kbC5wYXRjaApAQCAtMCwwICsxLDM1MCBAQAorMjAxMC0w Ny0wMSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CisKKwkqIE1ha2VmaWxlLmlu IChCQUNLRU5ETElCUyk6IExpbmsgYWdhaW5zdCAtbGRsIGluc3RlYWQgb2YgLWxjbG9vZyAtbHBw bC4KKwkoZ3JhcGhpdGUubywgZ3JhcGhpdGUlLm8pOiBGb3JjZSAtTywgcmVtb3ZlIC1ma2VlcC1p bmxpbmUtZnVuY3Rpb25zLgorCShncmFwaGl0ZS1wcGwubyk6IERlcGVuZCBvbiBncmFwaGl0ZS5o LgorCSogZ3JhcGhpdGUuaDogSW5jbHVkZSA8ZGxmY24uaD4uICBSZWZlcmVuY2UgbGliY2xvb2cg YW5kIGxpYnBwbCBzeW1ib2xzCisJdGhyb3VnaCBwb2ludGVycyBpbiBjbG9vZ19wb2ludGVyc19f IHZhcmlhYmxlLgorCSogZ3JhcGhpdGUuYyAoaW5pdF9jbG9vZ19wb2ludGVycyk6IE5ldyBmdW5j dGlvbi4KKwkoZ3JhcGhpdGVfdHJhbnNmb3JtX2xvb3BzKTogQ2FsbCBpbml0X2Nsb29nX3BvaW50 ZXJzLgorCSogZ3JhcGhpdGUtY2xhc3QtdG8tZ2ltcGxlLmMgKGdjY190eXBlX2Zvcl9pdl9vZl9j bGFzdF9sb29wKTogUmVuYW1lIHN0bXRfZm9yCisJYXJndW1lbnQgdG8gc3RtdF9mb3JhLgorCSog Z3JhcGhpdGUtcHBsLmM6IEluY2x1ZGUgZ3JhcGhpdGUuaC4KKworLS0tIGdjYy9ncmFwaGl0ZS5j LmpqCTIwMTAtMDYtMzAgMDk6NDg6MzAuMDAwMDAwMDAwICswMjAwCisrKysgZ2NjL2dyYXBoaXRl LmMJMjAxMC0wNy0wMSAxNjo1Nzo0OC4yNDg1MjMyMzcgKzAyMDAKK0BAIC02Nyw2ICs2NywzNSBA QCBhbG9uZyB3aXRoIEdDQzsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAgCisgI2luY2x1ZGUgImdy YXBoaXRlLWNsYXN0LXRvLWdpbXBsZS5oIgorICNpbmNsdWRlICJncmFwaGl0ZS1zZXNlLXRvLXBv bHkuaCIKKyAKKytfX3R5cGVvZiAoY2xvb2dfcG9pbnRlcnNfXykgY2xvb2dfcG9pbnRlcnNfXzsK KysKKytzdGF0aWMgYm9vbAorK2luaXRfY2xvb2dfcG9pbnRlcnMgKHZvaWQpCisreworKyAgdm9p ZCAqaDsKKysKKysgIGlmIChjbG9vZ19wb2ludGVyc19fLmluaXRlZCkKKysgICAgcmV0dXJuIGNs b29nX3BvaW50ZXJzX18uaCAhPSBOVUxMOworKyAgaCA9IGRsb3BlbiAoImxpYmNsb29nLnNvLjAi LCBSVExEX0xBWlkpOworKyAgY2xvb2dfcG9pbnRlcnNfXy5oID0gaDsKKysgIGlmIChoID09IE5V TEwpCisrICAgIHJldHVybiBmYWxzZTsKKysjZGVmaW5lIERZTlNZTSh4KSBcCisrICBkbyBcCisr ICAgIHsgXAorKyAgICAgIHVuaW9uIHsgX190eXBlb2YgKGNsb29nX3BvaW50ZXJzX18ucF8jI3gp IHA7IHZvaWQgKnE7IH0gdTsgXAorKyAgICAgIHUucSA9IGRsc3ltIChoLCAjeCk7IFwKKysgICAg ICBpZiAodS5xID09IE5VTEwpIFwKKysJcmV0dXJuIGZhbHNlOyBcCisrICAgICAgY2xvb2dfcG9p bnRlcnNfXy5wXyMjeCA9IHUucDsgXAorKyAgICB9IFwKKysgIHdoaWxlICgwKQorKyAgRFlOU1lN UworKyN1bmRlZiBEWU5TWU0KKysgIHJldHVybiB0cnVlOworK30KKysKKysKKyAvKiBQcmludCBn bG9iYWwgc3RhdGlzdGljcyB0byBGSUxFLiAgKi8KKyAKKyBzdGF0aWMgdm9pZAorQEAgLTIxMCw2 ICsyMzksMTIgQEAgZ3JhcGhpdGVfaW5pdGlhbGl6ZSAodm9pZCkKKyAgICAgICByZXR1cm4gZmFs c2U7CisgICAgIH0KKyAKKysgIGlmICghaW5pdF9jbG9vZ19wb2ludGVycyAoKSkKKysgICAgewor KyAgICAgIHNvcnJ5ICgiR3JhcGhpdGUgbG9vcCBvcHRpbWl6YXRpb25zIGNhbm5vdCBiZSB1c2Vk Iik7CisrICAgICAgcmV0dXJuIGZhbHNlOworKyAgICB9CisrCisgICByZWNvbXB1dGVfYWxsX2Rv bWluYXRvcnMgKCk7CisgICBpbml0aWFsaXplX29yaWdpbmFsX2NvcHlfdGFibGVzICgpOworICAg Y2xvb2dfaW5pdGlhbGl6ZSAoKTsKKy0tLSBnY2MvZ3JhcGhpdGUuaC5qagkyMDEwLTA2LTMwIDA5 OjQ4OjMwLjAwMDAwMDAwMCArMDIwMAorKysrIGdjYy9ncmFwaGl0ZS5oCTIwMTAtMDctMDEgMTc6 Mjk6MzcuMjI1NDkxODUwICswMjAwCitAQCAtMjEsNCArMjEsMjI0IEBAIGFsb25nIHdpdGggR0ND OyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuICAKKyAjaWZuZGVmIEdDQ19HUkFQSElURV9ICisgI2Rl ZmluZSBHQ0NfR1JBUEhJVEVfSAorIAorKyNpbmNsdWRlIDxkbGZjbi5oPgorKyNkZWZpbmUgRFlO U1lNUyBcCisrICBEWU5TWU0gKGNsb29nX2Jsb2NrX2FsbG9jKTsgXAorKyAgRFlOU1lNIChjbG9v Z19ibG9ja19saXN0X2ZyZWUpOyBcCisrICBEWU5TWU0gKGNsb29nX2Jsb2NrX2xpc3RfbWFsbG9j KTsgXAorKyAgRFlOU1lNIChjbG9vZ19jbGFzdF9jcmVhdGUpOyBcCisrICBEWU5TWU0gKGNsb29n X2NsYXN0X2ZyZWUpOyBcCisrICBEWU5TWU0gKGNsb29nX2RvbWFpbl9mcmVlKTsgXAorKyAgRFlO U1lNIChjbG9vZ19kb21haW5fbWF0cml4MmRvbWFpbik7IFwKKysgIERZTlNZTSAoY2xvb2dfaW5p dGlhbGl6ZSk7IFwKKysgIERZTlNZTSAoY2xvb2dfbG9vcF9tYWxsb2MpOyBcCisrICBEWU5TWU0g KGNsb29nX21hdHJpeF9hbGxvYyk7IFwKKysgIERZTlNZTSAoY2xvb2dfbWF0cml4X2NvcHkpOyBc CisrICBEWU5TWU0gKGNsb29nX21hdHJpeF9mcmVlKTsgXAorKyAgRFlOU1lNIChjbG9vZ19tYXRy aXhfcHJpbnQpOyBcCisrICBEWU5TWU0gKGNsb29nX25hbWVzX21hbGxvYyk7IFwKKysgIERZTlNZ TSAoY2xvb2dfbmFtZXNfc2NhbGFyaXplKTsgXAorKyAgRFlOU1lNIChjbG9vZ19vcHRpb25zX2Zy ZWUpOyBcCisrICBEWU5TWU0gKGNsb29nX29wdGlvbnNfbWFsbG9jKTsgXAorKyAgRFlOU1lNIChj bG9vZ19wcm9ncmFtX2R1bXBfY2xvb2cpOyBcCisrICBEWU5TWU0gKGNsb29nX3Byb2dyYW1fZXh0 cmFjdF9zY2FsYXJzKTsgXAorKyAgRFlOU1lNIChjbG9vZ19wcm9ncmFtX2ZyZWUpOyBcCisrICBE WU5TWU0gKGNsb29nX3Byb2dyYW1fZ2VuZXJhdGUpOyBcCisrICBEWU5TWU0gKGNsb29nX3Byb2dy YW1fbWFsbG9jKTsgXAorKyAgRFlOU1lNIChjbG9vZ19wcm9ncmFtX3ByaW50KTsgXAorKyAgRFlO U1lNIChjbG9vZ19wcm9ncmFtX3NjYXR0ZXIpOyBcCisrICBEWU5TWU0gKGNsb29nX3N0YXRlbWVu dF9hbGxvYyk7IFwKKysgIERZTlNZTSAoY2xvb2dfZG9tYWluX3VuaW9uKTsgXAorKyAgRFlOU1lN IChjbG9vZ19tYXRyaXhfcmVhZCk7IFwKKysgIERZTlNZTSAoY2xvb2dfbmV3X3BvbCk7IFwKKysg IERZTlNZTSAoY2xvb2dfdmVjdG9yX2djZCk7IFwKKysgIERZTlNZTSAocHBsX2ZpbmFsaXplKTsg XAorKyAgRFlOU1lNIChwcGxfYXNzaWduX0NvZWZmaWNpZW50X2Zyb21fbXB6X3QpOyBcCisrICBE WU5TWU0gKHBwbF9hc3NpZ25fTGluZWFyX0V4cHJlc3Npb25fZnJvbV9MaW5lYXJfRXhwcmVzc2lv bik7IFwKKysgIERZTlNZTSAocHBsX0NvZWZmaWNpZW50X3RvX21wel90KTsgXAorKyAgRFlOU1lN IChwcGxfQ29uc3RyYWludF9jb2VmZmljaWVudCk7IFwKKysgIERZTlNZTSAocHBsX0NvbnN0cmFp bnRfaW5ob21vZ2VuZW91c190ZXJtKTsgXAorKyAgRFlOU1lNIChwcGxfQ29uc3RyYWludF9zcGFj ZV9kaW1lbnNpb24pOyBcCisrICBEWU5TWU0gKHBwbF9Db25zdHJhaW50X1N5c3RlbV9iZWdpbik7 IFwKKysgIERZTlNZTSAocHBsX0NvbnN0cmFpbnRfU3lzdGVtX2NvbnN0X2l0ZXJhdG9yX2RlcmVm ZXJlbmNlKTsgXAorKyAgRFlOU1lNIChwcGxfQ29uc3RyYWludF9TeXN0ZW1fY29uc3RfaXRlcmF0 b3JfZXF1YWxfdGVzdCk7IFwKKysgIERZTlNZTSAocHBsX0NvbnN0cmFpbnRfU3lzdGVtX2NvbnN0 X2l0ZXJhdG9yX2luY3JlbWVudCk7IFwKKysgIERZTlNZTSAocHBsX0NvbnN0cmFpbnRfU3lzdGVt X2VuZCk7IFwKKysgIERZTlNZTSAocHBsX0NvbnN0cmFpbnRfU3lzdGVtX2luc2VydF9Db25zdHJh aW50KTsgXAorKyAgRFlOU1lNIChwcGxfQ29uc3RyYWludF9TeXN0ZW1fc3BhY2VfZGltZW5zaW9u KTsgXAorKyAgRFlOU1lNIChwcGxfQ29uc3RyYWludF90eXBlKTsgXAorKyAgRFlOU1lNIChwcGxf ZGVsZXRlX0NvZWZmaWNpZW50KTsgXAorKyAgRFlOU1lNIChwcGxfZGVsZXRlX0NvbnN0cmFpbnQp OyBcCisrICBEWU5TWU0gKHBwbF9kZWxldGVfQ29uc3RyYWludF9TeXN0ZW1fY29uc3RfaXRlcmF0 b3IpOyBcCisrICBEWU5TWU0gKHBwbF9kZWxldGVfTGluZWFyX0V4cHJlc3Npb24pOyBcCisrICBE WU5TWU0gKHBwbF9kZWxldGVfUG9pbnRzZXRfUG93ZXJzZXRfQ19Qb2x5aGVkcm9uKTsgXAorKyAg RFlOU1lNIChwcGxfZGVsZXRlX1BvaW50c2V0X1Bvd2Vyc2V0X0NfUG9seWhlZHJvbl9pdGVyYXRv cik7IFwKKysgIERZTlNZTSAocHBsX2RlbGV0ZV9Qb2x5aGVkcm9uKTsgXAorKyAgRFlOU1lNIChw cGxfTGluZWFyX0V4cHJlc3Npb25fYWRkX3RvX2NvZWZmaWNpZW50KTsgXAorKyAgRFlOU1lNIChw cGxfTGluZWFyX0V4cHJlc3Npb25fYWRkX3RvX2luaG9tb2dlbmVvdXMpOyBcCisrICBEWU5TWU0g KHBwbF9MaW5lYXJfRXhwcmVzc2lvbl9jb2VmZmljaWVudCk7IFwKKysgIERZTlNZTSAocHBsX0xp bmVhcl9FeHByZXNzaW9uX2luaG9tb2dlbmVvdXNfdGVybSk7IFwKKysgIERZTlNZTSAocHBsX0xp bmVhcl9FeHByZXNzaW9uX3NwYWNlX2RpbWVuc2lvbik7IFwKKysgIERZTlNZTSAocHBsX25ld19D b2VmZmljaWVudCk7IFwKKysgIERZTlNZTSAocHBsX25ld19Db2VmZmljaWVudF9mcm9tX21wel90 KTsgXAorKyAgRFlOU1lNIChwcGxfbmV3X0NvbnN0cmFpbnQpOyBcCisrICBEWU5TWU0gKHBwbF9u ZXdfQ29uc3RyYWludF9TeXN0ZW0pOyBcCisrICBEWU5TWU0gKHBwbF9uZXdfQ29uc3RyYWludF9T eXN0ZW1fY29uc3RfaXRlcmF0b3IpOyBcCisrICBEWU5TWU0gKHBwbF9uZXdfQ19Qb2x5aGVkcm9u X2Zyb21fQ19Qb2x5aGVkcm9uKTsgXAorKyAgRFlOU1lNIChwcGxfbmV3X0NfUG9seWhlZHJvbl9m cm9tX3NwYWNlX2RpbWVuc2lvbik7IFwKKysgIERZTlNZTSAocHBsX25ld19DX1BvbHloZWRyb25f cmVjeWNsZV9Db25zdHJhaW50X1N5c3RlbSk7IFwKKysgIERZTlNZTSAocHBsX25ld19MaW5lYXJf RXhwcmVzc2lvbik7IFwKKysgIERZTlNZTSAocHBsX25ld19MaW5lYXJfRXhwcmVzc2lvbl9mcm9t X0NvbnN0cmFpbnQpOyBcCisrICBEWU5TWU0gKHBwbF9uZXdfTGluZWFyX0V4cHJlc3Npb25fZnJv bV9MaW5lYXJfRXhwcmVzc2lvbik7IFwKKysgIERZTlNZTSAocHBsX25ld19MaW5lYXJfRXhwcmVz c2lvbl93aXRoX2RpbWVuc2lvbik7IFwKKysgIERZTlNZTSAocHBsX25ld19Qb2ludHNldF9Qb3dl cnNldF9DX1BvbHloZWRyb25fZnJvbV9DX1BvbHloZWRyb24pOyBcCisrICBEWU5TWU0gKHBwbF9u ZXdfUG9pbnRzZXRfUG93ZXJzZXRfQ19Qb2x5aGVkcm9uX2Zyb21fUG9pbnRzZXRfUG93ZXJzZXRf Q19Qb2x5aGVkcm9uKTsgXAorKyAgRFlOU1lNIChwcGxfbmV3X1BvaW50c2V0X1Bvd2Vyc2V0X0Nf UG9seWhlZHJvbl9mcm9tX3NwYWNlX2RpbWVuc2lvbik7IFwKKysgIERZTlNZTSAocHBsX25ld19Q b2ludHNldF9Qb3dlcnNldF9DX1BvbHloZWRyb25faXRlcmF0b3IpOyBcCisrICBEWU5TWU0gKHBw bF9Qb2ludHNldF9Qb3dlcnNldF9DX1BvbHloZWRyb25fYWRkX2NvbnN0cmFpbnQpOyBcCisrICBE WU5TWU0gKHBwbF9Qb2ludHNldF9Qb3dlcnNldF9DX1BvbHloZWRyb25fYWRkX3NwYWNlX2RpbWVu c2lvbnNfYW5kX2VtYmVkKTsgXAorKyAgRFlOU1lNIChwcGxfUG9pbnRzZXRfUG93ZXJzZXRfQ19Q b2x5aGVkcm9uX2RpZmZlcmVuY2VfYXNzaWduKTsgXAorKyAgRFlOU1lNIChwcGxfUG9pbnRzZXRf UG93ZXJzZXRfQ19Qb2x5aGVkcm9uX2ludGVyc2VjdGlvbl9hc3NpZ24pOyBcCisrICBEWU5TWU0g KHBwbF9Qb2ludHNldF9Qb3dlcnNldF9DX1BvbHloZWRyb25faXNfZW1wdHkpOyBcCisrICBEWU5T WU0gKHBwbF9Qb2ludHNldF9Qb3dlcnNldF9DX1BvbHloZWRyb25faXRlcmF0b3JfYmVnaW4pOyBc CisrICBEWU5TWU0gKHBwbF9Qb2ludHNldF9Qb3dlcnNldF9DX1BvbHloZWRyb25faXRlcmF0b3Jf ZGVyZWZlcmVuY2UpOyBcCisrICBEWU5TWU0gKHBwbF9Qb2ludHNldF9Qb3dlcnNldF9DX1BvbHlo ZWRyb25faXRlcmF0b3JfZW5kKTsgXAorKyAgRFlOU1lNIChwcGxfUG9pbnRzZXRfUG93ZXJzZXRf Q19Qb2x5aGVkcm9uX2l0ZXJhdG9yX2VxdWFsX3Rlc3QpOyBcCisrICBEWU5TWU0gKHBwbF9Qb2lu dHNldF9Qb3dlcnNldF9DX1BvbHloZWRyb25faXRlcmF0b3JfaW5jcmVtZW50KTsgXAorKyAgRFlO U1lNIChwcGxfUG9pbnRzZXRfUG93ZXJzZXRfQ19Qb2x5aGVkcm9uX21hcF9zcGFjZV9kaW1lbnNp b25zKTsgXAorKyAgRFlOU1lNIChwcGxfUG9pbnRzZXRfUG93ZXJzZXRfQ19Qb2x5aGVkcm9uX21h eGltaXplKTsgXAorKyAgRFlOU1lNIChwcGxfUG9pbnRzZXRfUG93ZXJzZXRfQ19Qb2x5aGVkcm9u X21pbmltaXplKTsgXAorKyAgRFlOU1lNIChwcGxfUG9pbnRzZXRfUG93ZXJzZXRfQ19Qb2x5aGVk cm9uX3JlbW92ZV9zcGFjZV9kaW1lbnNpb25zKTsgXAorKyAgRFlOU1lNIChwcGxfUG9pbnRzZXRf UG93ZXJzZXRfQ19Qb2x5aGVkcm9uX3NpemUpOyBcCisrICBEWU5TWU0gKHBwbF9Qb2ludHNldF9Q b3dlcnNldF9DX1BvbHloZWRyb25fc3BhY2VfZGltZW5zaW9uKTsgXAorKyAgRFlOU1lNIChwcGxf UG9pbnRzZXRfUG93ZXJzZXRfQ19Qb2x5aGVkcm9uX3VwcGVyX2JvdW5kX2Fzc2lnbik7IFwKKysg IERZTlNZTSAocHBsX1BvbHloZWRyb25fYWRkX2NvbnN0cmFpbnQpOyBcCisrICBEWU5TWU0gKHBw bF9Qb2x5aGVkcm9uX2FkZF9jb25zdHJhaW50cyk7IFwKKysgIERZTlNZTSAocHBsX1BvbHloZWRy b25fYWRkX3NwYWNlX2RpbWVuc2lvbnNfYW5kX2VtYmVkKTsgXAorKyAgRFlOU1lNIChwcGxfUG9s eWhlZHJvbl9nZXRfY29uc3RyYWludHMpOyBcCisrICBEWU5TWU0gKHBwbF9Qb2x5aGVkcm9uX21h cF9zcGFjZV9kaW1lbnNpb25zKTsgXAorKyAgRFlOU1lNIChwcGxfUG9seWhlZHJvbl9yZW1vdmVf c3BhY2VfZGltZW5zaW9ucyk7IFwKKysgIERZTlNZTSAocHBsX1BvbHloZWRyb25fc3BhY2VfZGlt ZW5zaW9uKTsgXAorKyAgRFlOU1lNIChwcGxfc3VidHJhY3RfTGluZWFyX0V4cHJlc3Npb25fZnJv bV9MaW5lYXJfRXhwcmVzc2lvbik7IFwKKysgIERZTlNZTSAocHByaW50KTsgXAorKyAgRFlOU1lN IChzdG10X2Jsb2NrKTsgXAorKyAgRFlOU1lNIChzdG10X2Zvcik7IFwKKysgIERZTlNZTSAoc3Rt dF9ndWFyZCk7IFwKKysgIERZTlNZTSAoc3RtdF9yb290KTsgXAorKyAgRFlOU1lNIChzdG10X3Vz ZXIpOworK2V4dGVybiBzdHJ1Y3QKKyt7CisrICBib29sIGluaXRlZDsKKysgIHZvaWQgKmg7Cisr I2RlZmluZSBEWU5TWU0oeCkgX190eXBlb2YgKHgpICpwXyMjeAorKyAgRFlOU1lNUworKyN1bmRl ZiBEWU5TWU0KKyt9IGNsb29nX3BvaW50ZXJzX187CisrCisrI2RlZmluZSBjbG9vZ19ibG9ja19h bGxvYyAoKmNsb29nX3BvaW50ZXJzX18ucF9jbG9vZ19ibG9ja19hbGxvYykKKysjZGVmaW5lIGNs b29nX2Jsb2NrX2xpc3RfZnJlZSAoKmNsb29nX3BvaW50ZXJzX18ucF9jbG9vZ19ibG9ja19saXN0 X2ZyZWUpCisrI2RlZmluZSBjbG9vZ19ibG9ja19saXN0X21hbGxvYyAoKmNsb29nX3BvaW50ZXJz X18ucF9jbG9vZ19ibG9ja19saXN0X21hbGxvYykKKysjZGVmaW5lIGNsb29nX2NsYXN0X2NyZWF0 ZSAoKmNsb29nX3BvaW50ZXJzX18ucF9jbG9vZ19jbGFzdF9jcmVhdGUpCisrI2RlZmluZSBjbG9v Z19jbGFzdF9mcmVlICgqY2xvb2dfcG9pbnRlcnNfXy5wX2Nsb29nX2NsYXN0X2ZyZWUpCisrI2Rl ZmluZSBjbG9vZ19kb21haW5fZnJlZSAoKmNsb29nX3BvaW50ZXJzX18ucF9jbG9vZ19kb21haW5f ZnJlZSkKKysjZGVmaW5lIGNsb29nX2RvbWFpbl9tYXRyaXgyZG9tYWluICgqY2xvb2dfcG9pbnRl cnNfXy5wX2Nsb29nX2RvbWFpbl9tYXRyaXgyZG9tYWluKQorKyNkZWZpbmUgY2xvb2dfaW5pdGlh bGl6ZSAoKmNsb29nX3BvaW50ZXJzX18ucF9jbG9vZ19pbml0aWFsaXplKQorKyNkZWZpbmUgY2xv b2dfbG9vcF9tYWxsb2MgKCpjbG9vZ19wb2ludGVyc19fLnBfY2xvb2dfbG9vcF9tYWxsb2MpCisr I2RlZmluZSBjbG9vZ19tYXRyaXhfYWxsb2MgKCpjbG9vZ19wb2ludGVyc19fLnBfY2xvb2dfbWF0 cml4X2FsbG9jKQorKyNkZWZpbmUgY2xvb2dfbWF0cml4X2NvcHkgKCpjbG9vZ19wb2ludGVyc19f LnBfY2xvb2dfbWF0cml4X2NvcHkpCisrI2RlZmluZSBjbG9vZ19tYXRyaXhfZnJlZSAoKmNsb29n X3BvaW50ZXJzX18ucF9jbG9vZ19tYXRyaXhfZnJlZSkKKysjZGVmaW5lIGNsb29nX21hdHJpeF9w cmludCAoKmNsb29nX3BvaW50ZXJzX18ucF9jbG9vZ19tYXRyaXhfcHJpbnQpCisrI2RlZmluZSBj bG9vZ19uYW1lc19tYWxsb2MgKCpjbG9vZ19wb2ludGVyc19fLnBfY2xvb2dfbmFtZXNfbWFsbG9j KQorKyNkZWZpbmUgY2xvb2dfbmFtZXNfc2NhbGFyaXplICgqY2xvb2dfcG9pbnRlcnNfXy5wX2Ns b29nX25hbWVzX3NjYWxhcml6ZSkKKysjZGVmaW5lIGNsb29nX29wdGlvbnNfZnJlZSAoKmNsb29n X3BvaW50ZXJzX18ucF9jbG9vZ19vcHRpb25zX2ZyZWUpCisrI2RlZmluZSBjbG9vZ19vcHRpb25z X21hbGxvYyAoKmNsb29nX3BvaW50ZXJzX18ucF9jbG9vZ19vcHRpb25zX21hbGxvYykKKysjZGVm aW5lIGNsb29nX3Byb2dyYW1fZHVtcF9jbG9vZyAoKmNsb29nX3BvaW50ZXJzX18ucF9jbG9vZ19w cm9ncmFtX2R1bXBfY2xvb2cpCisrI2RlZmluZSBjbG9vZ19wcm9ncmFtX2V4dHJhY3Rfc2NhbGFy cyAoKmNsb29nX3BvaW50ZXJzX18ucF9jbG9vZ19wcm9ncmFtX2V4dHJhY3Rfc2NhbGFycykKKysj ZGVmaW5lIGNsb29nX3Byb2dyYW1fZnJlZSAoKmNsb29nX3BvaW50ZXJzX18ucF9jbG9vZ19wcm9n cmFtX2ZyZWUpCisrI2RlZmluZSBjbG9vZ19wcm9ncmFtX2dlbmVyYXRlICgqY2xvb2dfcG9pbnRl cnNfXy5wX2Nsb29nX3Byb2dyYW1fZ2VuZXJhdGUpCisrI2RlZmluZSBjbG9vZ19wcm9ncmFtX21h bGxvYyAoKmNsb29nX3BvaW50ZXJzX18ucF9jbG9vZ19wcm9ncmFtX21hbGxvYykKKysjZGVmaW5l IGNsb29nX3Byb2dyYW1fcHJpbnQgKCpjbG9vZ19wb2ludGVyc19fLnBfY2xvb2dfcHJvZ3JhbV9w cmludCkKKysjZGVmaW5lIGNsb29nX3Byb2dyYW1fc2NhdHRlciAoKmNsb29nX3BvaW50ZXJzX18u cF9jbG9vZ19wcm9ncmFtX3NjYXR0ZXIpCisrI2RlZmluZSBjbG9vZ19zdGF0ZW1lbnRfYWxsb2Mg KCpjbG9vZ19wb2ludGVyc19fLnBfY2xvb2dfc3RhdGVtZW50X2FsbG9jKQorKyNkZWZpbmUgY2xv b2dfZG9tYWluX3VuaW9uICgqY2xvb2dfcG9pbnRlcnNfXy5wX2Nsb29nX2RvbWFpbl91bmlvbikK KysjZGVmaW5lIGNsb29nX21hdHJpeF9yZWFkICgqY2xvb2dfcG9pbnRlcnNfXy5wX2Nsb29nX21h dHJpeF9yZWFkKQorKyNkZWZpbmUgY2xvb2dfbmV3X3BvbCAoKmNsb29nX3BvaW50ZXJzX18ucF9j bG9vZ19uZXdfcG9sKQorKyNkZWZpbmUgY2xvb2dfdmVjdG9yX2djZCAoKmNsb29nX3BvaW50ZXJz X18ucF9jbG9vZ192ZWN0b3JfZ2NkKQorKyNkZWZpbmUgcHBsX2ZpbmFsaXplICgqY2xvb2dfcG9p bnRlcnNfXy5wX3BwbF9maW5hbGl6ZSkKKysjZGVmaW5lIHBwbF9hc3NpZ25fQ29lZmZpY2llbnRf ZnJvbV9tcHpfdCAoKmNsb29nX3BvaW50ZXJzX18ucF9wcGxfYXNzaWduX0NvZWZmaWNpZW50X2Zy b21fbXB6X3QpCisrI2RlZmluZSBwcGxfYXNzaWduX0xpbmVhcl9FeHByZXNzaW9uX2Zyb21fTGlu ZWFyX0V4cHJlc3Npb24gKCpjbG9vZ19wb2ludGVyc19fLnBfcHBsX2Fzc2lnbl9MaW5lYXJfRXhw cmVzc2lvbl9mcm9tX0xpbmVhcl9FeHByZXNzaW9uKQorKyNkZWZpbmUgcHBsX0NvZWZmaWNpZW50 X3RvX21wel90ICgqY2xvb2dfcG9pbnRlcnNfXy5wX3BwbF9Db2VmZmljaWVudF90b19tcHpfdCkK KysjZGVmaW5lIHBwbF9Db25zdHJhaW50X2NvZWZmaWNpZW50ICgqY2xvb2dfcG9pbnRlcnNfXy5w X3BwbF9Db25zdHJhaW50X2NvZWZmaWNpZW50KQorKyNkZWZpbmUgcHBsX0NvbnN0cmFpbnRfaW5o b21vZ2VuZW91c190ZXJtICgqY2xvb2dfcG9pbnRlcnNfXy5wX3BwbF9Db25zdHJhaW50X2luaG9t b2dlbmVvdXNfdGVybSkKKysjZGVmaW5lIHBwbF9Db25zdHJhaW50X3NwYWNlX2RpbWVuc2lvbiAo KmNsb29nX3BvaW50ZXJzX18ucF9wcGxfQ29uc3RyYWludF9zcGFjZV9kaW1lbnNpb24pCisrI2Rl ZmluZSBwcGxfQ29uc3RyYWludF9TeXN0ZW1fYmVnaW4gKCpjbG9vZ19wb2ludGVyc19fLnBfcHBs X0NvbnN0cmFpbnRfU3lzdGVtX2JlZ2luKQorKyNkZWZpbmUgcHBsX0NvbnN0cmFpbnRfU3lzdGVt X2NvbnN0X2l0ZXJhdG9yX2RlcmVmZXJlbmNlICgqY2xvb2dfcG9pbnRlcnNfXy5wX3BwbF9Db25z dHJhaW50X1N5c3RlbV9jb25zdF9pdGVyYXRvcl9kZXJlZmVyZW5jZSkKKysjZGVmaW5lIHBwbF9D b25zdHJhaW50X1N5c3RlbV9jb25zdF9pdGVyYXRvcl9lcXVhbF90ZXN0ICgqY2xvb2dfcG9pbnRl cnNfXy5wX3BwbF9Db25zdHJhaW50X1N5c3RlbV9jb25zdF9pdGVyYXRvcl9lcXVhbF90ZXN0KQor KyNkZWZpbmUgcHBsX0NvbnN0cmFpbnRfU3lzdGVtX2NvbnN0X2l0ZXJhdG9yX2luY3JlbWVudCAo KmNsb29nX3BvaW50ZXJzX18ucF9wcGxfQ29uc3RyYWludF9TeXN0ZW1fY29uc3RfaXRlcmF0b3Jf aW5jcmVtZW50KQorKyNkZWZpbmUgcHBsX0NvbnN0cmFpbnRfU3lzdGVtX2VuZCAoKmNsb29nX3Bv aW50ZXJzX18ucF9wcGxfQ29uc3RyYWludF9TeXN0ZW1fZW5kKQorKyNkZWZpbmUgcHBsX0NvbnN0 cmFpbnRfU3lzdGVtX2luc2VydF9Db25zdHJhaW50ICgqY2xvb2dfcG9pbnRlcnNfXy5wX3BwbF9D b25zdHJhaW50X1N5c3RlbV9pbnNlcnRfQ29uc3RyYWludCkKKysjZGVmaW5lIHBwbF9Db25zdHJh aW50X1N5c3RlbV9zcGFjZV9kaW1lbnNpb24gKCpjbG9vZ19wb2ludGVyc19fLnBfcHBsX0NvbnN0 cmFpbnRfU3lzdGVtX3NwYWNlX2RpbWVuc2lvbikKKysjZGVmaW5lIHBwbF9Db25zdHJhaW50X3R5 cGUgKCpjbG9vZ19wb2ludGVyc19fLnBfcHBsX0NvbnN0cmFpbnRfdHlwZSkKKysjZGVmaW5lIHBw bF9kZWxldGVfQ29lZmZpY2llbnQgKCpjbG9vZ19wb2ludGVyc19fLnBfcHBsX2RlbGV0ZV9Db2Vm ZmljaWVudCkKKysjZGVmaW5lIHBwbF9kZWxldGVfQ29uc3RyYWludCAoKmNsb29nX3BvaW50ZXJz X18ucF9wcGxfZGVsZXRlX0NvbnN0cmFpbnQpCisrI2RlZmluZSBwcGxfZGVsZXRlX0NvbnN0cmFp bnRfU3lzdGVtX2NvbnN0X2l0ZXJhdG9yICgqY2xvb2dfcG9pbnRlcnNfXy5wX3BwbF9kZWxldGVf Q29uc3RyYWludF9TeXN0ZW1fY29uc3RfaXRlcmF0b3IpCisrI2RlZmluZSBwcGxfZGVsZXRlX0xp bmVhcl9FeHByZXNzaW9uICgqY2xvb2dfcG9pbnRlcnNfXy5wX3BwbF9kZWxldGVfTGluZWFyX0V4 cHJlc3Npb24pCisrI2RlZmluZSBwcGxfZGVsZXRlX1BvaW50c2V0X1Bvd2Vyc2V0X0NfUG9seWhl ZHJvbiAoKmNsb29nX3BvaW50ZXJzX18ucF9wcGxfZGVsZXRlX1BvaW50c2V0X1Bvd2Vyc2V0X0Nf UG9seWhlZHJvbikKKysjZGVmaW5lIHBwbF9kZWxldGVfUG9pbnRzZXRfUG93ZXJzZXRfQ19Qb2x5 aGVkcm9uX2l0ZXJhdG9yICgqY2xvb2dfcG9pbnRlcnNfXy5wX3BwbF9kZWxldGVfUG9pbnRzZXRf UG93ZXJzZXRfQ19Qb2x5aGVkcm9uX2l0ZXJhdG9yKQorKyNkZWZpbmUgcHBsX2RlbGV0ZV9Qb2x5 aGVkcm9uICgqY2xvb2dfcG9pbnRlcnNfXy5wX3BwbF9kZWxldGVfUG9seWhlZHJvbikKKysjZGVm aW5lIHBwbF9MaW5lYXJfRXhwcmVzc2lvbl9hZGRfdG9fY29lZmZpY2llbnQgKCpjbG9vZ19wb2lu dGVyc19fLnBfcHBsX0xpbmVhcl9FeHByZXNzaW9uX2FkZF90b19jb2VmZmljaWVudCkKKysjZGVm aW5lIHBwbF9MaW5lYXJfRXhwcmVzc2lvbl9hZGRfdG9faW5ob21vZ2VuZW91cyAoKmNsb29nX3Bv aW50ZXJzX18ucF9wcGxfTGluZWFyX0V4cHJlc3Npb25fYWRkX3RvX2luaG9tb2dlbmVvdXMpCisr I2RlZmluZSBwcGxfTGluZWFyX0V4cHJlc3Npb25fY29lZmZpY2llbnQgKCpjbG9vZ19wb2ludGVy c19fLnBfcHBsX0xpbmVhcl9FeHByZXNzaW9uX2NvZWZmaWNpZW50KQorKyNkZWZpbmUgcHBsX0xp bmVhcl9FeHByZXNzaW9uX2luaG9tb2dlbmVvdXNfdGVybSAoKmNsb29nX3BvaW50ZXJzX18ucF9w cGxfTGluZWFyX0V4cHJlc3Npb25faW5ob21vZ2VuZW91c190ZXJtKQorKyNkZWZpbmUgcHBsX0xp bmVhcl9FeHByZXNzaW9uX3NwYWNlX2RpbWVuc2lvbiAoKmNsb29nX3BvaW50ZXJzX18ucF9wcGxf TGluZWFyX0V4cHJlc3Npb25fc3BhY2VfZGltZW5zaW9uKQorKyNkZWZpbmUgcHBsX25ld19Db2Vm ZmljaWVudCAoKmNsb29nX3BvaW50ZXJzX18ucF9wcGxfbmV3X0NvZWZmaWNpZW50KQorKyNkZWZp bmUgcHBsX25ld19Db2VmZmljaWVudF9mcm9tX21wel90ICgqY2xvb2dfcG9pbnRlcnNfXy5wX3Bw bF9uZXdfQ29lZmZpY2llbnRfZnJvbV9tcHpfdCkKKysjZGVmaW5lIHBwbF9uZXdfQ29uc3RyYWlu dCAoKmNsb29nX3BvaW50ZXJzX18ucF9wcGxfbmV3X0NvbnN0cmFpbnQpCisrI2RlZmluZSBwcGxf bmV3X0NvbnN0cmFpbnRfU3lzdGVtICgqY2xvb2dfcG9pbnRlcnNfXy5wX3BwbF9uZXdfQ29uc3Ry YWludF9TeXN0ZW0pCisrI2RlZmluZSBwcGxfbmV3X0NvbnN0cmFpbnRfU3lzdGVtX2NvbnN0X2l0 ZXJhdG9yICgqY2xvb2dfcG9pbnRlcnNfXy5wX3BwbF9uZXdfQ29uc3RyYWludF9TeXN0ZW1fY29u c3RfaXRlcmF0b3IpCisrI2RlZmluZSBwcGxfbmV3X0NfUG9seWhlZHJvbl9mcm9tX0NfUG9seWhl ZHJvbiAoKmNsb29nX3BvaW50ZXJzX18ucF9wcGxfbmV3X0NfUG9seWhlZHJvbl9mcm9tX0NfUG9s eWhlZHJvbikKKysjZGVmaW5lIHBwbF9uZXdfQ19Qb2x5aGVkcm9uX2Zyb21fc3BhY2VfZGltZW5z aW9uICgqY2xvb2dfcG9pbnRlcnNfXy5wX3BwbF9uZXdfQ19Qb2x5aGVkcm9uX2Zyb21fc3BhY2Vf ZGltZW5zaW9uKQorKyNkZWZpbmUgcHBsX25ld19DX1BvbHloZWRyb25fcmVjeWNsZV9Db25zdHJh aW50X1N5c3RlbSAoKmNsb29nX3BvaW50ZXJzX18ucF9wcGxfbmV3X0NfUG9seWhlZHJvbl9yZWN5 Y2xlX0NvbnN0cmFpbnRfU3lzdGVtKQorKyNkZWZpbmUgcHBsX25ld19MaW5lYXJfRXhwcmVzc2lv biAoKmNsb29nX3BvaW50ZXJzX18ucF9wcGxfbmV3X0xpbmVhcl9FeHByZXNzaW9uKQorKyNkZWZp bmUgcHBsX25ld19MaW5lYXJfRXhwcmVzc2lvbl9mcm9tX0NvbnN0cmFpbnQgKCpjbG9vZ19wb2lu dGVyc19fLnBfcHBsX25ld19MaW5lYXJfRXhwcmVzc2lvbl9mcm9tX0NvbnN0cmFpbnQpCisrI2Rl ZmluZSBwcGxfbmV3X0xpbmVhcl9FeHByZXNzaW9uX2Zyb21fTGluZWFyX0V4cHJlc3Npb24gKCpj bG9vZ19wb2ludGVyc19fLnBfcHBsX25ld19MaW5lYXJfRXhwcmVzc2lvbl9mcm9tX0xpbmVhcl9F eHByZXNzaW9uKQorKyNkZWZpbmUgcHBsX25ld19MaW5lYXJfRXhwcmVzc2lvbl93aXRoX2RpbWVu c2lvbiAoKmNsb29nX3BvaW50ZXJzX18ucF9wcGxfbmV3X0xpbmVhcl9FeHByZXNzaW9uX3dpdGhf ZGltZW5zaW9uKQorKyNkZWZpbmUgcHBsX25ld19Qb2ludHNldF9Qb3dlcnNldF9DX1BvbHloZWRy b25fZnJvbV9DX1BvbHloZWRyb24gKCpjbG9vZ19wb2ludGVyc19fLnBfcHBsX25ld19Qb2ludHNl dF9Qb3dlcnNldF9DX1BvbHloZWRyb25fZnJvbV9DX1BvbHloZWRyb24pCisrI2RlZmluZSBwcGxf bmV3X1BvaW50c2V0X1Bvd2Vyc2V0X0NfUG9seWhlZHJvbl9mcm9tX1BvaW50c2V0X1Bvd2Vyc2V0 X0NfUG9seWhlZHJvbiAoKmNsb29nX3BvaW50ZXJzX18ucF9wcGxfbmV3X1BvaW50c2V0X1Bvd2Vy c2V0X0NfUG9seWhlZHJvbl9mcm9tX1BvaW50c2V0X1Bvd2Vyc2V0X0NfUG9seWhlZHJvbikKKysj ZGVmaW5lIHBwbF9uZXdfUG9pbnRzZXRfUG93ZXJzZXRfQ19Qb2x5aGVkcm9uX2Zyb21fc3BhY2Vf ZGltZW5zaW9uICgqY2xvb2dfcG9pbnRlcnNfXy5wX3BwbF9uZXdfUG9pbnRzZXRfUG93ZXJzZXRf Q19Qb2x5aGVkcm9uX2Zyb21fc3BhY2VfZGltZW5zaW9uKQorKyNkZWZpbmUgcHBsX25ld19Qb2lu dHNldF9Qb3dlcnNldF9DX1BvbHloZWRyb25faXRlcmF0b3IgKCpjbG9vZ19wb2ludGVyc19fLnBf cHBsX25ld19Qb2ludHNldF9Qb3dlcnNldF9DX1BvbHloZWRyb25faXRlcmF0b3IpCisrI2RlZmlu ZSBwcGxfUG9pbnRzZXRfUG93ZXJzZXRfQ19Qb2x5aGVkcm9uX2FkZF9jb25zdHJhaW50ICgqY2xv b2dfcG9pbnRlcnNfXy5wX3BwbF9Qb2ludHNldF9Qb3dlcnNldF9DX1BvbHloZWRyb25fYWRkX2Nv bnN0cmFpbnQpCisrI2RlZmluZSBwcGxfUG9pbnRzZXRfUG93ZXJzZXRfQ19Qb2x5aGVkcm9uX2Fk ZF9zcGFjZV9kaW1lbnNpb25zX2FuZF9lbWJlZCAoKmNsb29nX3BvaW50ZXJzX18ucF9wcGxfUG9p bnRzZXRfUG93ZXJzZXRfQ19Qb2x5aGVkcm9uX2FkZF9zcGFjZV9kaW1lbnNpb25zX2FuZF9lbWJl ZCkKKysjZGVmaW5lIHBwbF9Qb2ludHNldF9Qb3dlcnNldF9DX1BvbHloZWRyb25fZGlmZmVyZW5j ZV9hc3NpZ24gKCpjbG9vZ19wb2ludGVyc19fLnBfcHBsX1BvaW50c2V0X1Bvd2Vyc2V0X0NfUG9s eWhlZHJvbl9kaWZmZXJlbmNlX2Fzc2lnbikKKysjZGVmaW5lIHBwbF9Qb2ludHNldF9Qb3dlcnNl dF9DX1BvbHloZWRyb25faW50ZXJzZWN0aW9uX2Fzc2lnbiAoKmNsb29nX3BvaW50ZXJzX18ucF9w cGxfUG9pbnRzZXRfUG93ZXJzZXRfQ19Qb2x5aGVkcm9uX2ludGVyc2VjdGlvbl9hc3NpZ24pCisr I2RlZmluZSBwcGxfUG9pbnRzZXRfUG93ZXJzZXRfQ19Qb2x5aGVkcm9uX2lzX2VtcHR5ICgqY2xv b2dfcG9pbnRlcnNfXy5wX3BwbF9Qb2ludHNldF9Qb3dlcnNldF9DX1BvbHloZWRyb25faXNfZW1w dHkpCisrI2RlZmluZSBwcGxfUG9pbnRzZXRfUG93ZXJzZXRfQ19Qb2x5aGVkcm9uX2l0ZXJhdG9y X2JlZ2luICgqY2xvb2dfcG9pbnRlcnNfXy5wX3BwbF9Qb2ludHNldF9Qb3dlcnNldF9DX1BvbHlo ZWRyb25faXRlcmF0b3JfYmVnaW4pCisrI2RlZmluZSBwcGxfUG9pbnRzZXRfUG93ZXJzZXRfQ19Q b2x5aGVkcm9uX2l0ZXJhdG9yX2RlcmVmZXJlbmNlICgqY2xvb2dfcG9pbnRlcnNfXy5wX3BwbF9Q b2ludHNldF9Qb3dlcnNldF9DX1BvbHloZWRyb25faXRlcmF0b3JfZGVyZWZlcmVuY2UpCisrI2Rl ZmluZSBwcGxfUG9pbnRzZXRfUG93ZXJzZXRfQ19Qb2x5aGVkcm9uX2l0ZXJhdG9yX2VuZCAoKmNs b29nX3BvaW50ZXJzX18ucF9wcGxfUG9pbnRzZXRfUG93ZXJzZXRfQ19Qb2x5aGVkcm9uX2l0ZXJh dG9yX2VuZCkKKysjZGVmaW5lIHBwbF9Qb2ludHNldF9Qb3dlcnNldF9DX1BvbHloZWRyb25faXRl cmF0b3JfZXF1YWxfdGVzdCAoKmNsb29nX3BvaW50ZXJzX18ucF9wcGxfUG9pbnRzZXRfUG93ZXJz ZXRfQ19Qb2x5aGVkcm9uX2l0ZXJhdG9yX2VxdWFsX3Rlc3QpCisrI2RlZmluZSBwcGxfUG9pbnRz ZXRfUG93ZXJzZXRfQ19Qb2x5aGVkcm9uX2l0ZXJhdG9yX2luY3JlbWVudCAoKmNsb29nX3BvaW50 ZXJzX18ucF9wcGxfUG9pbnRzZXRfUG93ZXJzZXRfQ19Qb2x5aGVkcm9uX2l0ZXJhdG9yX2luY3Jl bWVudCkKKysjZGVmaW5lIHBwbF9Qb2ludHNldF9Qb3dlcnNldF9DX1BvbHloZWRyb25fbWFwX3Nw YWNlX2RpbWVuc2lvbnMgKCpjbG9vZ19wb2ludGVyc19fLnBfcHBsX1BvaW50c2V0X1Bvd2Vyc2V0 X0NfUG9seWhlZHJvbl9tYXBfc3BhY2VfZGltZW5zaW9ucykKKysjZGVmaW5lIHBwbF9Qb2ludHNl dF9Qb3dlcnNldF9DX1BvbHloZWRyb25fbWF4aW1pemUgKCpjbG9vZ19wb2ludGVyc19fLnBfcHBs X1BvaW50c2V0X1Bvd2Vyc2V0X0NfUG9seWhlZHJvbl9tYXhpbWl6ZSkKKysjZGVmaW5lIHBwbF9Q b2ludHNldF9Qb3dlcnNldF9DX1BvbHloZWRyb25fbWluaW1pemUgKCpjbG9vZ19wb2ludGVyc19f LnBfcHBsX1BvaW50c2V0X1Bvd2Vyc2V0X0NfUG9seWhlZHJvbl9taW5pbWl6ZSkKKysjZGVmaW5l IHBwbF9Qb2ludHNldF9Qb3dlcnNldF9DX1BvbHloZWRyb25fcmVtb3ZlX3NwYWNlX2RpbWVuc2lv bnMgKCpjbG9vZ19wb2ludGVyc19fLnBfcHBsX1BvaW50c2V0X1Bvd2Vyc2V0X0NfUG9seWhlZHJv bl9yZW1vdmVfc3BhY2VfZGltZW5zaW9ucykKKysjZGVmaW5lIHBwbF9Qb2ludHNldF9Qb3dlcnNl dF9DX1BvbHloZWRyb25fc2l6ZSAoKmNsb29nX3BvaW50ZXJzX18ucF9wcGxfUG9pbnRzZXRfUG93 ZXJzZXRfQ19Qb2x5aGVkcm9uX3NpemUpCisrI2RlZmluZSBwcGxfUG9pbnRzZXRfUG93ZXJzZXRf Q19Qb2x5aGVkcm9uX3NwYWNlX2RpbWVuc2lvbiAoKmNsb29nX3BvaW50ZXJzX18ucF9wcGxfUG9p bnRzZXRfUG93ZXJzZXRfQ19Qb2x5aGVkcm9uX3NwYWNlX2RpbWVuc2lvbikKKysjZGVmaW5lIHBw bF9Qb2ludHNldF9Qb3dlcnNldF9DX1BvbHloZWRyb25fdXBwZXJfYm91bmRfYXNzaWduICgqY2xv b2dfcG9pbnRlcnNfXy5wX3BwbF9Qb2ludHNldF9Qb3dlcnNldF9DX1BvbHloZWRyb25fdXBwZXJf Ym91bmRfYXNzaWduKQorKyNkZWZpbmUgcHBsX1BvbHloZWRyb25fYWRkX2NvbnN0cmFpbnQgKCpj bG9vZ19wb2ludGVyc19fLnBfcHBsX1BvbHloZWRyb25fYWRkX2NvbnN0cmFpbnQpCisrI2RlZmlu ZSBwcGxfUG9seWhlZHJvbl9hZGRfY29uc3RyYWludHMgKCpjbG9vZ19wb2ludGVyc19fLnBfcHBs X1BvbHloZWRyb25fYWRkX2NvbnN0cmFpbnRzKQorKyNkZWZpbmUgcHBsX1BvbHloZWRyb25fYWRk X3NwYWNlX2RpbWVuc2lvbnNfYW5kX2VtYmVkICgqY2xvb2dfcG9pbnRlcnNfXy5wX3BwbF9Qb2x5 aGVkcm9uX2FkZF9zcGFjZV9kaW1lbnNpb25zX2FuZF9lbWJlZCkKKysjZGVmaW5lIHBwbF9Qb2x5 aGVkcm9uX2dldF9jb25zdHJhaW50cyAoKmNsb29nX3BvaW50ZXJzX18ucF9wcGxfUG9seWhlZHJv bl9nZXRfY29uc3RyYWludHMpCisrI2RlZmluZSBwcGxfUG9seWhlZHJvbl9tYXBfc3BhY2VfZGlt ZW5zaW9ucyAoKmNsb29nX3BvaW50ZXJzX18ucF9wcGxfUG9seWhlZHJvbl9tYXBfc3BhY2VfZGlt ZW5zaW9ucykKKysjZGVmaW5lIHBwbF9Qb2x5aGVkcm9uX3JlbW92ZV9zcGFjZV9kaW1lbnNpb25z ICgqY2xvb2dfcG9pbnRlcnNfXy5wX3BwbF9Qb2x5aGVkcm9uX3JlbW92ZV9zcGFjZV9kaW1lbnNp b25zKQorKyNkZWZpbmUgcHBsX1BvbHloZWRyb25fc3BhY2VfZGltZW5zaW9uICgqY2xvb2dfcG9p bnRlcnNfXy5wX3BwbF9Qb2x5aGVkcm9uX3NwYWNlX2RpbWVuc2lvbikKKysjZGVmaW5lIHBwbF9z dWJ0cmFjdF9MaW5lYXJfRXhwcmVzc2lvbl9mcm9tX0xpbmVhcl9FeHByZXNzaW9uICgqY2xvb2df cG9pbnRlcnNfXy5wX3BwbF9zdWJ0cmFjdF9MaW5lYXJfRXhwcmVzc2lvbl9mcm9tX0xpbmVhcl9F eHByZXNzaW9uKQorKyNkZWZpbmUgcHByaW50ICgqY2xvb2dfcG9pbnRlcnNfXy5wX3BwcmludCkK KysjZGVmaW5lIHN0bXRfYmxvY2sgKCpjbG9vZ19wb2ludGVyc19fLnBfc3RtdF9ibG9jaykKKysj ZGVmaW5lIHN0bXRfZm9yICgqY2xvb2dfcG9pbnRlcnNfXy5wX3N0bXRfZm9yKQorKyNkZWZpbmUg c3RtdF9ndWFyZCAoKmNsb29nX3BvaW50ZXJzX18ucF9zdG10X2d1YXJkKQorKyNkZWZpbmUgc3Rt dF9yb290ICgqY2xvb2dfcG9pbnRlcnNfXy5wX3N0bXRfcm9vdCkKKysjZGVmaW5lIHN0bXRfdXNl ciAoKmNsb29nX3BvaW50ZXJzX18ucF9zdG10X3VzZXIpCisrCisrI2RlZmluZSBjbG9vZ19maW5h bGl6ZSAoKmNsb29nX3BvaW50ZXJzX18ucF9wcGxfZmluYWxpemUpCisrCisgI2VuZGlmICAvKiBH Q0NfR1JBUEhJVEVfSCAgKi8KKy0tLSBnY2MvTWFrZWZpbGUuaW4uamoJMjAxMC0wNi0zMCAyMToy MzoyOS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnY2MvTWFrZWZpbGUuaW4JMjAxMC0wNy0wMSAxNzoz MzoxMS4wMTY0Nzk5NjMgKzAyMDAKK0BAIC0xMDExLDcgKzEwMTEsNyBAQCBCVUlMRF9MSUJERVBT PSAkKEJVSUxEX0xJQklCRVJUWSkKKyAjIGFuZCB0aGUgc3lzdGVtJ3MgaW5zdGFsbGVkIGxpYnJh cmllcy4KKyBMSUJTID0gQExJQlNAICQoQ1BQTElCKSAkKExJQklOVEwpICQoTElCSUNPTlYpICQo TElCSUJFUlRZKSAkKExJQkRFQ05VTUJFUikgXAorIAkkKEhPU1RfTElCUykKKy1CQUNLRU5ETElC UyA9ICQoQ0xPT0dMSUJTKSAkKFBQTExJQlMpICQoR01QTElCUykgJChQTFVHSU5MSUJTKSAkKEhP U1RfTElCUykgXAorK0JBQ0tFTkRMSUJTID0gJChHTVBMSUJTKSAkKGlmICQoQ0xPT0dMSUJTKSwt bGRsKSAkKFBMVUdJTkxJQlMpICQoSE9TVF9MSUJTKSBcCisgCSQoWkxJQikgJChMSUJFTEZMSUJT KQorICMgQW55IHN5c3RlbSBsaWJyYXJpZXMgbmVlZGVkIGp1c3QgZm9yIEdOQVQuCisgU1lTTElC UyA9IEBHTkFUX0xJQkVYQ0AKK0BAIC0yNjA3LDcgKzI2MDcsNyBAQCBncmFwaGl0ZS1wb2x5Lm86 IGdyYXBoaXRlLXBvbHkuYyAkKENPTkZJCisgICAgJChUUkVFX0RBVEFfUkVGX0gpIHRyZWUtcGFz cy5oIGRvbXdhbGsuaCBncmFwaGl0ZS5oIGdyYXBoaXRlLWRlcGVuZGVuY2VzLmggXAorICAgIHBv aW50ZXItc2V0LmggdmFsdWUtcHJvZi5oIGdyYXBoaXRlLXBwbC5oIHNlc2UuaCBvdXRwdXQuaCBn cmFwaGl0ZS1wb2x5LmgKKyBncmFwaGl0ZS1wcGwubzogZ3JhcGhpdGUtcHBsLmMgJChDT05GSUdf SCkgJChTWVNURU1fSCkgY29yZXR5cGVzLmggJChUTV9IKSBcCistICAgJChHR0NfSCkgZ3JhcGhp dGUtcHBsLmgKKysgICAkKEdHQ19IKSBncmFwaGl0ZS1wcGwuaCBncmFwaGl0ZS5oCisgZ3JhcGhp dGUtc2NvcC1kZXRlY3Rpb24ubzogZ3JhcGhpdGUtc2NvcC1kZXRlY3Rpb24uYyAkKENPTkZJR19I KSAkKFNZU1RFTV9IKSBcCisgICAgJChHR0NfSCkgJChUUkVFX0gpICQoUlRMX0gpICQoQkFTSUNf QkxPQ0tfSCkgJChESUFHTk9TVElDX0gpICQoVE9QTEVWX0gpIFwKKyAgICAkKFRSRUVfRkxPV19I KSAkKFRSRUVfRFVNUF9IKSAkKFRJTUVWQVJfSCkgJChDRkdMT09QX0gpICQoR0lNUExFX0gpIFwK K0BAIC0zMzU5LDYgKzMzNTksMTEgQEAgJChvdXRfb2JqZWN0X2ZpbGUpOiAkKG91dF9maWxlKSAk KENPTkZJRworIAkkKENPTVBJTEVSKSAtYyAkKEFMTF9DT01QSUxFUkZMQUdTKSAkKEFMTF9DUFBG TEFHUykgXAorIAkJJChvdXRfZmlsZSkgJChPVVRQVVRfT1BUSU9OKQorIAorK2dyYXBoaXRlJS5v IDogXAorKyAgQUxMX0NGTEFHUyA6PSAtTyAkKGZpbHRlci1vdXQgLWZrZWVwLWlubGluZS1mdW5j dGlvbnMsICQoQUxMX0NGTEFHUykpCisrZ3JhcGhpdGUubyA6IFwKKysgIEFMTF9DRkxBR1MgOj0g LU8gJChmaWx0ZXItb3V0IC1ma2VlcC1pbmxpbmUtZnVuY3Rpb25zLCAkKEFMTF9DRkxBR1MpKQor KworICMgQnVpbGQgYXV4aWxpYXJ5IGZpbGVzIHRoYXQgc3VwcG9ydCBlY29mZiBmb3JtYXQuCisg bWlwcy10ZmlsZTogbWlwcy10ZmlsZS5vIHZlcnNpb24ubyAkKExJQkRFUFMpCisgCSQoTElOS0VS KSAkKExJTktFUkZMQUdTKSAkKExERkxBR1MpIC1vICRAIFwKKy0tLSBnY2MvZ3JhcGhpdGUtcHBs LmMuamoJMjAxMC0wNi0zMCAwOTo0ODozMC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnY2MvZ3JhcGhp dGUtcHBsLmMJMjAxMC0wNy0wMSAxNzowODoxNC4xNjEzMzU2NDIgKzAyMDAKK0BAIC0yOSw2ICsy OSw3IEBAIGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuICAKKyAjaW5jbHVk ZSAicHBsX2MuaCIKKyAjaW5jbHVkZSAiY2xvb2cvY2xvb2cuaCIKKyAjaW5jbHVkZSAiZ3JhcGhp dGUtcHBsLmgiCisrI2luY2x1ZGUgImdyYXBoaXRlLmgiCisgCisgLyogVHJhbnNsYXRlcyByb3cg Uk9XIG9mIHRoZSBDbG9vZ01hdHJpeCBNQVRSSVggdG8gYSBQUEwgQ29uc3RyYWludC4gICovCisg CistLS0gZ2NjL2dyYXBoaXRlLWNsYXN0LXRvLWdpbXBsZS5jLmpqCTIwMTAtMDYtMzAgMDk6NDg6 MzAuMDAwMDAwMDAwICswMjAwCisrKysgZ2NjL2dyYXBoaXRlLWNsYXN0LXRvLWdpbXBsZS5jCTIw MTAtMDctMDEgMTY6NTA6MTUuODEyNDg1NjcxICswMjAwCitAQCAtNjEzLDExICs2MTMsMTEgQEAg Z2NjX3R5cGVfZm9yX2Nsb29nX2l2IChjb25zdCBjaGFyICpjbG9vZworICAgIFNUTVQuICAqLwor IAorIHN0YXRpYyB0cmVlCistZ2NjX3R5cGVfZm9yX2l2X29mX2NsYXN0X2xvb3AgKHN0cnVjdCBj bGFzdF9mb3IgKnN0bXRfZm9yKQorK2djY190eXBlX2Zvcl9pdl9vZl9jbGFzdF9sb29wIChzdHJ1 Y3QgY2xhc3RfZm9yICpzdG10X2ZvcmEpCisgeworLSAgc3RydWN0IGNsYXN0X3N0bXQgKnN0bXQg PSAoc3RydWN0IGNsYXN0X3N0bXQgKikgc3RtdF9mb3I7CisrICBzdHJ1Y3QgY2xhc3Rfc3RtdCAq c3RtdCA9IChzdHJ1Y3QgY2xhc3Rfc3RtdCAqKSBzdG10X2ZvcmE7CisgICBzdHJ1Y3QgY2xhc3Rf dXNlcl9zdG10ICpib2R5ID0gY2xhc3RfZ2V0X2JvZHlfb2ZfbG9vcCAoc3RtdCk7CistICBjb25z dCBjaGFyICpjbG9vZ19pdiA9IHN0bXRfZm9yLT5pdGVyYXRvcjsKKysgIGNvbnN0IGNoYXIgKmNs b29nX2l2ID0gc3RtdF9mb3JhLT5pdGVyYXRvcjsKKyAgIENsb29nU3RhdGVtZW50ICpjcyA9IGJv ZHktPnN0YXRlbWVudDsKKyAgIHBvbHlfYmJfcCBwYmIgPSAocG9seV9iYl9wKSBjbG9vZ19zdGF0 ZW1lbnRfdXNyIChjcyk7CisgCgpkaWZmIC0tZ2l0IGEvZ2NjNDUtaGFjay5wYXRjaCBiL2djYzQ1 LWhhY2sucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjQyNzI2NAot LS0gL2Rldi9udWxsCisrKyBiL2djYzQ1LWhhY2sucGF0Y2gKQEAgLTAsMCArMSw5OSBAQAorLS0t IGxpYmFkYS9NYWtlZmlsZS5pbi5qagkyMDA5LTAxLTE0IDEyOjA3OjM1LjAwMDAwMDAwMCArMDEw MAorKysrIGxpYmFkYS9NYWtlZmlsZS5pbgkyMDA5LTAxLTE1IDE0OjI1OjMzLjAwMDAwMDAwMCAr MDEwMAorQEAgLTY5LDE4ICs2OSw0MCBAQCB2ZXJzaW9uIDo9ICQoc2hlbGwgY2F0ICQoc3JjZGly KS8uLi9nY2MvCisgbGlic3ViZGlyIDo9ICQobGliZGlyKS9nY2MvJCh0YXJnZXRfbm9uY2Fub25p Y2FsKS8kKHZlcnNpb24pJChNVUxUSVNVQkRJUikKKyBBREFfUlRTX0RJUj0kKEdDQ19ESVIpL2Fk YS9ydHMkKHN1YnN0IC8sXywkKE1VTFRJU1VCRElSKSkKKyAKKytERUZBVUxUTVVMVElGTEFHUyA6 PQorK2lmZXEgKCQoTVVMVElTVUJESVIpLCkKKyt0YXJnOj0kKHN1YnN0IC0sICwkKHRhcmdldCkp CisrYXJjaDo9JCh3b3JkIDEsJCh0YXJnKSkKKytpZmVxICgkKHdvcmRzICQodGFyZykpLDIpCisr b3N5czo9JCh3b3JkIDIsJCh0YXJnKSkKKytlbHNlCisrb3N5czo9JCh3b3JkIDMsJCh0YXJnKSkK KytlbmRpZgorK2lmZXEgKCQoc3RyaXAgJChmaWx0ZXItb3V0IGklODYgeDg2XzY0IHBvd2VycGMl IHBwYyUgczM5MCUgc3BhcmMlIGxpbnV4JSwgJChhcmNoKSAkKG9zeXMpKSksKQorK2lmZXEgKCQo c2hlbGwgJChDQykgJChDRkxBR1MpIC1wcmludC1tdWx0aS1vcy1kaXJlY3RvcnkpLC4uL2xpYjY0 KQorK0RFRkFVTFRNVUxUSUZMQUdTIDo9IC1tNjQKKytlbHNlCisraWZlcSAoJChzdHJpcCAkKGZp bHRlci1vdXQgczM5MCUsICQoYXJjaCkpKSwpCisrREVGQVVMVE1VTFRJRkxBR1MgOj0gLW0zMQor K2Vsc2UKKytERUZBVUxUTVVMVElGTEFHUyA6PSAtbTMyCisrZW5kaWYKKytlbmRpZgorK2VuZGlm CisrZW5kaWYKKysKKyAjIGV4ZWV4dCBzaG91bGQgbm90IGJlIHVzZWQgYmVjYXVzZSBpdCdzIHRo ZSAqaG9zdCogZXhlZXh0LiAgV2UncmUgYnVpbGRpbmcKKyAjIGEgKnRhcmdldCogbGlicmFyeSwg YXJlbid0IHdlPyE/ICBMaWtld2lzZSBmb3IgQ0MuICBTdGlsbCwgcHJvdmlkZSBib2d1cworICMg ZGVmaW5pdGlvbnMganVzdCBpbiBjYXNlIHNvbWV0aGluZyBzbGlwcyB0aHJvdWdoIHRoZSBzYWZl dHkgbmV0IHByb3ZpZGVkCisgIyBieSByZWN1cnNpdmUgbWFrZSBpbnZvY2F0aW9ucyBpbiBnY2Mv YWRhL01ha2VmaWxlLmluCisgTElCQURBX0ZMQUdTX1RPX1BBU1MgPSBcCisgICAgICAgICAiTUFL RU9WRVJSSURFUz0iIFwKKy0gICAgICAgICJMREZMQUdTPSQoTERGTEFHUykiIFwKKysgICAgICAg ICJMREZMQUdTPSQoc3RyaXAgJChMREZMQUdTKSAkKERFRkFVTFRNVUxUSUZMQUdTKSkiIFwKKyAg ICAgICAgICJMTl9TPSQoTE5fUykiIFwKKyAgICAgICAgICJTSEVMTD0kKFNIRUxMKSIgXAorLSAg ICAgICAgIkdOQVRMSUJGTEFHUz0kKEdOQVRMSUJGTEFHUykgJChNVUxUSUZMQUdTKSIgXAorLSAg ICAgICAgIkdOQVRMSUJDRkxBR1M9JChHTkFUTElCQ0ZMQUdTKSAkKE1VTFRJRkxBR1MpIiBcCist ICAgICAgICAiR05BVExJQkNGTEFHU19GT1JfQz0kKEdOQVRMSUJDRkxBR1NfRk9SX0MpICQoTVVM VElGTEFHUykiIFwKKysgICAgICAgICJHTkFUTElCRkxBR1M9JChzdHJpcCAkKEdOQVRMSUJGTEFH UykgJChNVUxUSUZMQUdTKSAkKERFRkFVTFRNVUxUSUZMQUdTKSkiIFwKKysgICAgICAgICJHTkFU TElCQ0ZMQUdTPSQoc3RyaXAgJChHTkFUTElCQ0ZMQUdTKSAkKE1VTFRJRkxBR1MpICQoREVGQVVM VE1VTFRJRkxBR1MpKSIgXAorKyAgICAgICAgIkdOQVRMSUJDRkxBR1NfRk9SX0M9JChzdHJpcCAk KEdOQVRMSUJDRkxBR1NfRk9SX0MpICQoTVVMVElGTEFHUykgJChERUZBVUxUTVVMVElGTEFHUykp IiBcCisgICAgICAgICAiVEFSR0VUX0xJQkdDQzJfQ0ZMQUdTPSQoVEFSR0VUX0xJQkdDQzJfQ0ZM QUdTKSIgXAorICAgICAgICAgIlRIUkVBRF9LSU5EPSQoVEhSRUFEX0tJTkQpIiBcCisgICAgICAg ICAiVFJBQ0U9JChUUkFDRSkiIFwKK0BAIC05MSw3ICsxMTMsNyBAQCBMSUJBREFfRkxBR1NfVE9f UEFTUyA9IFwKKyAgICAgICAgICJleGVleHQ9LmV4ZWV4dC5zaG91bGQubm90LmJlLnVzZWQgIiBc CisgCSdDQz10aGUuaG9zdC5jb21waWxlci5zaG91bGQubm90LmJlLm5lZWRlZCcgXAorIAkiR0ND X0ZPUl9UQVJHRVQ9JChDQykiIFwKKy0gICAgICAgICJDRkxBR1M9JChDRkxBR1MpICQoV0FSTl9D RkxBR1MpIgorKyAgICAgICAgIkNGTEFHUz0kKHN0cmlwICQoQ0ZMQUdTKSAkKERFRkFVTFRNVUxU SUZMQUdTKSAkKFdBUk5fQ0ZMQUdTKSkiCisgCisgIyBSdWxlcyB0byBidWlsZCBnbmF0bGliLgor IC5QSE9OWTogZ25hdGxpYiBnbmF0bGliLXBsYWluIGduYXRsaWItc2psaiBnbmF0bGliLXpjeCBn bmF0bGliLXNoYXJlZCBvc2NvbnMKKy0tLSBnY2MvYWRhL21ha2UuYWRiCTIwMDgtMTEtMDcgMjM6 MDA6MzIuMDAwMDAwMDAwICswMTAwCisrKysgZ2NjL2FkYS9tYWtlLmFkYgkyMDA5LTAxLTE2IDE3 OjU1OjAyLjAwMDAwMDAwMCArMDEwMAorQEAgLTgwMDcsNiArODAwNyw3IEBAIHBhY2thZ2UgYm9k eSBNYWtlIGlzCisgICAgICAgICAgICAgIG9yIGVsc2UgQXJndiAoMiAuLiBBcmd2J0xhc3QpID0g InBnIgorICAgICAgICAgICAgICBvciBlbHNlIChBcmd2ICgyKSA9ICdtJyBhbmQgdGhlbiBBcmd2 J0xhc3QgPiAyKQorICAgICAgICAgICAgICBvciBlbHNlIChBcmd2ICgyKSA9ICdmJyBhbmQgdGhl biBBcmd2J0xhc3QgPiAyKQorKyAgICAgICAgICAgICBvciBlbHNlIChBcmd2J0xhc3QgPj0gOCBh bmQgdGhlbiBBcmd2ICgyIC4uIDgpID0gIi1wYXJhbT0iKQorICAgICAgICAgIHRoZW4KKyAgICAg ICAgICAgICBBZGRfU3dpdGNoIChBcmd2LCBDb21waWxlciwgQW5kX1NhdmUgPT4gQW5kX1NhdmUp OworICAgICAgICAgICAgIEFkZF9Td2l0Y2ggKEFyZ3YsIExpbmtlciwgICBBbmRfU2F2ZSA9PiBB bmRfU2F2ZSk7CistLS0gZ2NjL2FkYS9zZW1fdXRpbC5hZGIJKHJldmlzaW9uIDE2MTY3NykKKysr KyBnY2MvYWRhL3NlbV91dGlsLmFkYgkod29ya2luZyBjb3B5KQorQEAgLTIyNDYsNyArMjI0Niwx MSBAQAorICAgICAgICAgIGVuZCBpZjsKKyAKKyAgICAgICBlbHNpZiBJc19FbnRpdHlfTmFtZSAo QTIpIHRoZW4KKysKKysgICAgICAgICAtLSAgVHJpZ2dlcmVkIGJ5IC1XYWxsCisrICAgICAgICAg cHJhZ21hIFdhcm5pbmdzIChPZmYpOworICAgICAgICAgIHJldHVybiBEZW5vdGVzX1NhbWVfUHJl Zml4IChBMiwgQTEpOworKyAgICAgICAgIHByYWdtYSBXYXJuaW5ncyAoT24pOworIAorICAgICAg IGVsc2lmIE5raW5kX0luIChBMSwgTl9TZWxlY3RlZF9Db21wb25lbnQsIE5fSW5kZXhlZF9Db21w b25lbnQsIE5fU2xpY2UpCisgICAgICAgICAgICAgICBhbmQgdGhlbgorQEAgLTQ2OTQsNyArNDY5 OCw3IEBACisgICAgICAgICAgICAgRXhwICAgICAgICAgICA6IE5vZGVfSWQ7CisgICAgICAgICAg ICAgQXNzbiAgICAgICAgICA6IE5vZGVfSWQ7CisgICAgICAgICAgICAgQ2hvaWNlICAgICAgICA6 IE5vZGVfSWQ7CistICAgICAgICAgICAgQ29tcF9UeXBlICAgICA6IEVudGl0eV9JZDsKKysgICAg ICAgICAgICBDb21wX1R5cGUgICAgIDogRW50aXR5X0lkIDo9IEVtcHR5OworICAgICAgICAgICAg IElzX0FycmF5X0FnZ3IgOiBCb29sZWFuOworIAorICAgICAgICAgIGJlZ2luCistLS0gY29uZmln LW1sLmluLmpqCTIwMTAtMDYtMzAgMDk6NTA6NDQuMDAwMDAwMDAwICswMjAwCisrKysgY29uZmln LW1sLmluCTIwMTAtMDctMDIgMjE6MjQ6MTcuOTk0MjExMTUxICswMjAwCitAQCAtNTE2LDYgKzUx Niw3IEBAIG11bHRpLWRvOgorIAkJCQlBREFGTEFHUz0iJChBREFGTEFHUykgJCR7ZmxhZ3N9IiBc CisgCQkJCXByZWZpeD0iJChwcmVmaXgpIiBcCisgCQkJCWV4ZWNfcHJlZml4PSIkKGV4ZWNfcHJl Zml4KSIgXAorKwkJCQltYW5kaXI9IiQobWFuZGlyKSIgXAorIAkJCQlHQ0pGTEFHUz0iJChHQ0pG TEFHUykgJCR7ZmxhZ3N9IiBcCisgCQkJCUNYWEZMQUdTPSIkKENYWEZMQUdTKSAkJHtmbGFnc30i IFwKKyAJCQkJTElCQ0ZMQUdTPSIkKExJQkNGTEFHUykgJCR7ZmxhZ3N9IiBcCgpkaWZmIC0tZ2l0 IGEvZ2NjNDUtaTM4Ni1saWJnb21wLnBhdGNoIGIvZ2NjNDUtaTM4Ni1saWJnb21wLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVkMWVlYTgKLS0tIC9kZXYvbnVsbAor KysgYi9nY2M0NS1pMzg2LWxpYmdvbXAucGF0Y2gKQEAgLTAsMCArMSw2MSBAQAorQnVpbGQgaTM4 Ni5ycG0gbGliZ29tcCBhbmQgbGlic3VwYysrLmEoZ3VhcmQubykgYXMgaTQ4NissIHByZS1pNDg2 CitoYXJkd2FyZSBpc24ndCBzdXBwb3J0ZWQgYmVjYXVzZSBOUFRMIGRvZXNuJ3Qgc3VwcG9ydCBp dCBhbnl3YXkuCisKKy0tLSBsaWJnb21wL2NvbmZpZ3VyZS50Z3QuamoJMjAwOC0wMS0xMCAyMDo1 Mzo0OC4wMDAwMDAwMDAgKzAxMDAKKysrKyBsaWJnb21wL2NvbmZpZ3VyZS50Z3QJMjAwOC0wMy0y NyAxMjo0NDo1MS4wMDAwMDAwMDAgKzAxMDAKK0BAIC00NCwxNCArNDQsMTQgQEAgaWYgdGVzdCAk ZW5hYmxlX2xpbnV4X2Z1dGV4ID0geWVzOyB0aGVuCisgCTs7CisgCisgICAgICMgTm90ZSB0aGF0 IGJhcmUgaTM4NiBpcyBub3QgaW5jbHVkZWQgaGVyZS4gIFdlIG5lZWQgY21weGNoZy4KKy0gICAg aVs0NTZdODYtKi1saW51eCopCisrICAgIGlbMzQ1Nl04Ni0qLWxpbnV4KikKKyAJY29uZmlnX3Bh dGg9ImxpbnV4L3g4NiBsaW51eCBwb3NpeCIKKyAJY2FzZSAiICR7Q0N9ICR7Q0ZMQUdTfSAiIGlu CisgCSAgKiIgLW02NCAiKikKKyAJICAgIDs7CisgCSAgKikKKyAJICAgIGlmIHRlc3QgLXogIiR3 aXRoX2FyY2giOyB0aGVuCistCSAgICAgIFhDRkxBR1M9IiR7WENGTEFHU30gLW1hcmNoPWk0ODYg LW10dW5lPSR7dGFyZ2V0X2NwdX0iCisrCSAgICAgIFhDRkxBR1M9IiR7WENGTEFHU30gLW1hcmNo PWk0ODYgLW10dW5lPWdlbmVyaWMiCisgCSAgICBmaQorIAllc2FjCisgCTs7CitAQCAtNjMsNyAr NjMsNyBAQCBpZiB0ZXN0ICRlbmFibGVfbGludXhfZnV0ZXggPSB5ZXM7IHRoZW4KKyAJY29uZmln X3BhdGg9ImxpbnV4L3g4NiBsaW51eCBwb3NpeCIKKyAJY2FzZSAiICR7Q0N9ICR7Q0ZMQUdTfSAi IGluCisgCSAgKiIgLW0zMiAiKikKKy0JICAgIFhDRkxBR1M9IiR7WENGTEFHU30gLW1hcmNoPWk0 ODYgLW10dW5lPWk2ODYiCisrCSAgICBYQ0ZMQUdTPSIke1hDRkxBR1N9IC1tYXJjaD1pNDg2IC1t dHVuZT1nZW5lcmljIgorIAkgICAgOzsKKyAJZXNhYworIAk7OworLS0tIGxpYnN0ZGMrKy12My9s aWJzdXBjKysvZ3VhcmQuY2MuamoJMjAwOC0wMy0wMSAwMDo1ODoyNC4wMDAwMDAwMDAgKzAxMDAK KysrKyBsaWJzdGRjKystdjMvbGlic3VwYysrL2d1YXJkLmNjCTIwMDgtMDMtMjcgMTQ6MDg6NDQu MDAwMDAwMDAwICswMTAwCitAQCAtMzUsNiArMzUsMjcgQEAKKyAjaW5jbHVkZSA8bmV3PgorICNp bmNsdWRlIDxleHQvYXRvbWljaXR5Lmg+CisgI2luY2x1ZGUgPGV4dC9jb25jdXJyZW5jZS5oPgor KyNpZiBkZWZpbmVkIF9faTM4Nl9fICYmICFkZWZpbmVkIF9HTElCQ1hYX0FUT01JQ19CVUlMVElO U180CisrIyBkZWZpbmUgX0dMSUJDWFhfQVRPTUlDX0JVSUxUSU5TXzQgMQorKyMgZGVmaW5lIF9f c3luY192YWxfY29tcGFyZV9hbmRfc3dhcChhLCBiLCBjKSBcCisrICAoewkJCQkJCQkJXAorKyAg ICAgdHlwZWRlZiBjaGFyIHNsdGFzdFtzaXplb2YgKCphKSA9PSBzaXplb2YgKGludCkgPyAxIDog LTFdOwlcCisrICAgICBpbnQgc2x0YXM7CQkJCQkJCVwKKysgICAgIF9fYXNtIF9fdm9sYXRpbGUg KCJsb2NrOyBjbXB4Y2hnbCAlMywgKCUxKSIJCVwKKysJCSAgICAgICA6ICI9YSIgKHNsdGFzKQkJ CQlcCisrCQkgICAgICAgOiAiciIgKGEpLCAiMCIgKGIpLCAiciIgKGMpIDogIm1lbW9yeSIpOwlc CisrICAgICBzbHRhczsJCQkJCQkJXAorKyAgIH0pCisrIyBkZWZpbmUgX19zeW5jX2xvY2tfdGVz dF9hbmRfc2V0KGEsIGIpIFwKKysgICh7CQkJCQkJCQlcCisrICAgICB0eXBlZGVmIGNoYXIgc2x0 YXN0W3NpemVvZiAoKmEpID09IHNpemVvZiAoaW50KSA/IDEgOiAtMV07CVwKKysgICAgIGludCBz bHRhczsJCQkJCQkJXAorKyAgICAgX19hc20gX192b2xhdGlsZSAoInhjaGdsICglMSksICUwIgkJ CQlcCisrCQkgICAgICAgOiAiPXIiIChzbHRhcykJCQkJXAorKwkJICAgICAgIDogInIiIChhKSwg IjAiIChiKSA6ICJtZW1vcnkiKTsJCVwKKysgICAgIHNsdGFzOwkJCQkJCQlcCisrICAgfSkKKysj ZW5kaWYKKyAjaWYgZGVmaW5lZChfX0dUSFJFQURTKSAmJiBkZWZpbmVkKF9fR1RIUkVBRF9IQVNf Q09ORCkgXAorICAgICAmJiBkZWZpbmVkKF9HTElCQ1hYX0FUT01JQ19CVUlMVElOU180KSAmJiBk ZWZpbmVkKF9HTElCQ1hYX0hBVkVfTElOVVhfRlVURVgpCisgIyBpbmNsdWRlIDxjbGltaXRzPgoK ZGlmZiAtLWdpdCBhL2djYzQ1LWphdmEtbm9tdWx0aS5wYXRjaCBiL2djYzQ1LWphdmEtbm9tdWx0 aS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNzMzNGFhCi0tLSAv ZGV2L251bGwKKysrIGIvZ2NjNDUtamF2YS1ub211bHRpLnBhdGNoCkBAIC0wLDAgKzEsNDQgQEAK Ky0tLSBsaWJqYXZhL2NvbmZpZ3VyZS5hYy5qagkyMDA3LTEyLTA3IDE3OjU1OjUwLjAwMDAwMDAw MCArMDEwMAorKysrIGxpYmphdmEvY29uZmlndXJlLmFjCTIwMDctMTItMDcgMTg6MzY6NTYuMDAw MDAwMDAwICswMTAwCitAQCAtODIsNiArODIsMTMgQEAgQUNfQVJHX0VOQUJMRShqYXZhLW1haW50 YWluZXItbW9kZSwKKyAJW2FsbG93IHJlYnVpbGRpbmcgb2YgLmNsYXNzIGFuZCAuaCBmaWxlc10p KQorIEFNX0NPTkRJVElPTkFMKEpBVkFfTUFJTlRBSU5FUl9NT0RFLCB0ZXN0ICIkZW5hYmxlX2ph dmFfbWFpbnRhaW5lcl9tb2RlIiA9IHllcykKKyAKKytBQ19BUkdfRU5BQkxFKGxpYmphdmEtbXVs dGlsaWIsCisrCUFTX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1saWJqYXZhLW11bHRpbGliXSwgW2J1 aWxkIGxpYmphdmEgYXMgbXVsdGlsaWJdKSkKKytpZiB0ZXN0ICIkZW5hYmxlX2xpYmphdmFfbXVs dGlsaWIiID0gbm87IHRoZW4KKysgIG11bHRpbGliPW5vCisrICBhY19jb25maWd1cmVfYXJncz0i JGFjX2NvbmZpZ3VyZV9hcmdzIC0tZGlzYWJsZS1tdWx0aWxpYiIKKytmaQorKworICMgSXQgbWF5 IG5vdCBiZSBzYWZlIHRvIHJ1biBsaW5raW5nIHRlc3RzIGluIEFDX1BST0dfQ0MvQUNfUFJPR19D WFguCisgR0NDX05PX0VYRUNVVEFCTEVTCisgCistLS0gbGliamF2YS9jb25maWd1cmUuamoJMjAw Ny0xMi0wNyAxNzo1NTo1MC4wMDAwMDAwMDAgKzAxMDAKKysrKyBsaWJqYXZhL2NvbmZpZ3VyZQky MDA3LTEyLTA3IDE4OjM5OjU4LjAwMDAwMDAwMCArMDEwMAorQEAgLTEwMjEsNiArMTAyMSw4IEBA IE9wdGlvbmFsIEZlYXR1cmVzOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD15 ZXMKKyAgIC0tZW5hYmxlLWphdmEtbWFpbnRhaW5lci1tb2RlCisgICAgICAgICAgICAgICAgICAg ICAgICAgICBhbGxvdyByZWJ1aWxkaW5nIG9mIC5jbGFzcyBhbmQgLmggZmlsZXMKKysgIC0tZW5h YmxlLWxpYmphdmEtbXVsdGlsaWIKKysgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkIGxp YmphdmEgYXMgbXVsdGlsaWIKKyAgIC0tZGlzYWJsZS1kZXBlbmRlbmN5LXRyYWNraW5nICBzcGVl ZHMgdXAgb25lLXRpbWUgYnVpbGQKKyAgIC0tZW5hYmxlLWRlcGVuZGVuY3ktdHJhY2tpbmcgICBk byBub3QgcmVqZWN0IHNsb3cgZGVwZW5kZW5jeSBleHRyYWN0b3JzCisgICAtLWVuYWJsZS1tYWlu dGFpbmVyLW1vZGUgIGVuYWJsZSBtYWtlIHJ1bGVzIGFuZCBkZXBlbmRlbmNpZXMgbm90IHVzZWZ1 bAorQEAgLTE5NzMsNiArMTk3NSwxNiBAQCBlbHNlCisgZmkKKyAKKyAKKysjIENoZWNrIHdoZXRo ZXIgLS1lbmFibGUtbGliamF2YS1tdWx0aWxpYiB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHtlbmFi bGVfbGliamF2YV9tdWx0aWxpYitzZXR9IiA9IHNldDsgdGhlbgorKyAgZW5hYmxldmFsPSRlbmFi bGVfbGliamF2YV9tdWx0aWxpYjsKKytmaQorKworK2lmIHRlc3QgIiRlbmFibGVfbGliamF2YV9t dWx0aWxpYiIgPSBubzsgdGhlbgorKyAgbXVsdGlsaWI9bm8KKysgIGFjX2NvbmZpZ3VyZV9hcmdz PSIkYWNfY29uZmlndXJlX2FyZ3MgLS1kaXNhYmxlLW11bHRpbGliIgorK2ZpCisrCisgIyBJdCBt YXkgbm90IGJlIHNhZmUgdG8gcnVuIGxpbmtpbmcgdGVzdHMgaW4gQUNfUFJPR19DQy9BQ19QUk9H X0NYWC4KKyAKKyAKCmRpZmYgLS1naXQgYS9nY2M0NS1saWJnb21wLW9tcF9oLW11bHRpbGliLnBh dGNoIGIvZ2NjNDUtbGliZ29tcC1vbXBfaC1tdWx0aWxpYi5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi5kMGU5OGQxCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjNDUtbGli Z29tcC1vbXBfaC1tdWx0aWxpYi5wYXRjaApAQCAtMCwwICsxLDE3IEBACisyMDA4LTA2LTA5ICBK YWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KKworCSogb21wLmguaW4gKG9tcF9uZXN0 X2xvY2tfdCk6IEZpeCB1cCBmb3IgTGludXggbXVsdGlsaWJzLgorCistLS0gbGliZ29tcC9vbXAu aC5pbi5qagkyMDA4LTA2LTA5IDEzOjM0OjA1LjAwMDAwMDAwMCArMDIwMAorKysrIGxpYmdvbXAv b21wLmguaW4JMjAwOC0wNi0wOSAxMzozNDo0OC4wMDAwMDAwMDAgKzAyMDAKK0BAIC00Miw4ICs0 Miw4IEBAIHR5cGVkZWYgc3RydWN0CisgCisgdHlwZWRlZiBzdHJ1Y3QKKyB7CistICB1bnNpZ25l ZCBjaGFyIF94W0BPTVBfTkVTVF9MT0NLX1NJWkVAXSAKKy0gICAgX19hdHRyaWJ1dGVfXygoX19h bGlnbmVkX18oQE9NUF9ORVNUX0xPQ0tfQUxJR05AKSkpOworKyAgdW5zaWduZWQgY2hhciBfeFs4 ICsgc2l6ZW9mICh2b2lkICopXSAKKysgICAgX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oc2l6 ZW9mICh2b2lkICopKSkpOworIH0gb21wX25lc3RfbG9ja190OworICNlbmRpZgorIAoKZGlmZiAt LWdpdCBhL2djYzQ1LWxpYnN0ZGMrKy1kb2NzLnBhdGNoIGIvZ2NjNDUtbGlic3RkYysrLWRvY3Mu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmQxOGY0NAotLS0gL2Rl di9udWxsCisrKyBiL2djYzQ1LWxpYnN0ZGMrKy1kb2NzLnBhdGNoCkBAIC0wLDAgKzEsNDcgQEAK Ky0tLSBsaWJzdGRjKystdjMvZG9jL2h0bWwvaW5kZXguaHRtbC5qagkyMDEwLTA2LTMwIDA5OjQ4 OjM4LjAwMDAwMDAwMCArMDIwMAorKysrIGxpYnN0ZGMrKy12My9kb2MvaHRtbC9pbmRleC5odG1s CTIwMTAtMDctMDEgMTY6MjI6MjUuMDY2NDkxODc4ICswMjAwCitAQCAtMTIsNyArMTIsOCBAQAor IDxkaXY+CisgPGgxPlRoZSBHTlUgQysrIExpYnJhcnkgRG9jdW1lbnRhdGlvbjwvaDE+CisgCist PHA+Q29weXJpZ2h0IDIwMDgsIDIwMDkgRlNGPC9wPgorKzxwPlJlbGVhc2UgNC41LjA8L3A+Cisr PHA+Q29weXJpZ2h0IDIwMDgsIDIwMDksIDIwMTAgRlNGPC9wPgorIAorIDxwPgorICAgUGVybWlz c2lvbiBpcyBncmFudGVkIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSB0aGlzCist LS0gbGlic3RkYysrLXYzL2RvYy9odG1sL2FwaS5odG1sLmpqCTIwMTAtMDYtMzAgMDk6NDg6Mzgu MDAwMDAwMDAwICswMjAwCisrKysgbGlic3RkYysrLXYzL2RvYy9odG1sL2FwaS5odG1sCTIwMTAt MDctMDEgMTY6MjQ6MzkuMTU4NDI5NDEwICswMjAwCitAQCAtMTcsMjcgKzE3LDEyIEBAIHVzZWZ1 bCBmb3IgZXhhbWluaW5nIHRoZSBzaWduYXR1cmVzIG9mIHAKKyB0aGUgbGlicmFyeSBjbGFzc2Vz LCBmaW5kaW5nIG91dCB3aGF0IGlzIGluIGEgcGFydGljdWxhciBpbmNsdWRlCisgZmlsZSwgbG9v a2luZyBhdCBpbmhlcml0YW5jZSBkaWFncmFtcywgZXRjLgorIDwvcD48cD4KKy1UaGUgc291cmNl LWxldmVsIGRvY3VtZW50YXRpb24gZm9yIHRoZSBtb3N0IHJlY2VudCByZWxlYXNlcyBjYW4gYmUK Ky12aWV3ZWQgb25saW5lOgorLTwvcD48ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCBjbGFz cz0iaXRlbWl6ZWRsaXN0IiB0eXBlPSJkaXNjIj48bGkgY2xhc3M9Imxpc3RpdGVtIj48cD4KKy0g ICAgICA8YSBjbGFzcz0idWxpbmsiIGhyZWY9Imh0dHA6Ly9nY2MuZ251Lm9yZy9vbmxpbmVkb2Nz L2xpYnN0ZGMrKy9saWJzdGRjKystaHRtbC1VU0VSUy0zLjQvaW5kZXguaHRtbCIgdGFyZ2V0PSJf dG9wIj5mb3IgdGhlIDMuNCByZWxlYXNlCisrVGhlIHNvdXJjZS1sZXZlbCBkb2N1bWVudGF0aW9u IGNhbiBiZSB2aWV3ZWQgaGVyZToKKys8L3A+CisrPGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48 dWwgdHlwZT0iZGlzYyI+CisrICAgIDxsaT48cD4KKysgICAgICA8YSBjbGFzcz0idWxpbmsiIGhy ZWY9ImFwaS9pbmRleC5odG1sIiB0YXJnZXQ9Il90b3AiPmZvciB0aGUgNC41IHJlbGVhc2UKKyAg ICAgICA8L2E+CistICAgIDwvcD48L2xpPjxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorLSAgICAg IDxhIGNsYXNzPSJ1bGluayIgaHJlZj0iaHR0cDovL2djYy5nbnUub3JnL29ubGluZWRvY3MvbGli c3RkYysrL2xpYnN0ZGMrKy1odG1sLVVTRVJTLTQuMS9pbmRleC5odG1sIiB0YXJnZXQ9Il90b3Ai PmZvciB0aGUgNC4xIHJlbGVhc2UKKy0gICAgICA8L2E+CistICAgIDwvcD48L2xpPjxsaSBjbGFz cz0ibGlzdGl0ZW0iPjxwPgorLSAgICAgIDxhIGNsYXNzPSJ1bGluayIgaHJlZj0iaHR0cDovL2dj Yy5nbnUub3JnL29ubGluZWRvY3MvbGlic3RkYysrL2xpYnN0ZGMrKy1odG1sLVVTRVJTLTQuMi9p bmRleC5odG1sIiB0YXJnZXQ9Il90b3AiPmZvciB0aGUgNC4yIHJlbGVhc2UKKy0gICAgICA8L2E+ CistICAgIDwvcD48L2xpPjxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorLSAgICAgIDxhIGNsYXNz PSJ1bGluayIgaHJlZj0iaHR0cDovL2djYy5nbnUub3JnL29ubGluZWRvY3MvbGlic3RkYysrL2xp YnN0ZGMrKy1odG1sLVVTRVJTLTQuMy9pbmRleC5odG1sIiB0YXJnZXQ9Il90b3AiPmZvciB0aGUg NC4zIHJlbGVhc2UKKy0gICAgICA8L2E+CistICAgIDwvcD48L2xpPjxsaSBjbGFzcz0ibGlzdGl0 ZW0iPjxwPgorLSAgICAgIDxhIGNsYXNzPSJ1bGluayIgaHJlZj0iaHR0cDovL2djYy5nbnUub3Jn L29ubGluZWRvY3MvbGlic3RkYysrL2xpYnN0ZGMrKy1odG1sLVVTRVJTLTQuNC9pbmRleC5odG1s IiB0YXJnZXQ9Il90b3AiPmZvciB0aGUgNC40IHJlbGVhc2UKKy0gICAgICA8L2E+CistICAgIDwv cD48L2xpPjxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgorLSAgICAgIDxhIGNsYXNzPSJ1bGluayIg aHJlZj0iaHR0cDovL2djYy5nbnUub3JnL29ubGluZWRvY3MvbGlic3RkYysrL2xhdGVzdC1kb3h5 Z2VuL2luZGV4Lmh0bWwiIHRhcmdldD0iX3RvcCI+InRoZSBsYXRlc3QgY29sbGVjdGlvbiIKKy0g ICAgICA8L2E+CistICAgICAgKEZvciB0aGUgbWFpbiBkZXZlbG9wbWVudCB0cmVlOyBzZWUgdGhl IGRhdGUgb24gdGhlIGZpcnN0IHBhZ2UuKQorICAgICA8L3A+PC9saT48L3VsPjwvZGl2PjxwPgor IFRoaXMgZ2VuZXJhdGVkIEhUTUwgY29sbGVjdGlvbiwgYXMgYWJvdmUsIGlzIGFsc28gYXZhaWxh YmxlIGZvciBkb3dubG9hZCBpbiB0aGUgbGlic3RkYysrIHNuYXBzaG90cyBkaXJlY3RvcnkgYXQK KyAgICA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+Jmx0O1VSTDpmdHA6Ly9nY2MuZ251Lm9yZy9wdWIv Z2NjL2xpYnN0ZGMrKy9kb3h5Z2VuLyZndDs8L2NvZGU+LgoKZGlmZiAtLWdpdCBhL2djYzQ1LWxp YnRvb2wtbm8tcnBhdGgucGF0Y2ggYi9nY2M0NS1saWJ0b29sLW5vLXJwYXRoLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ2NmM2NjEKLS0tIC9kZXYvbnVsbAorKysg Yi9nY2M0NS1saWJ0b29sLW5vLXJwYXRoLnBhdGNoCkBAIC0wLDAgKzEsMjcgQEAKK2xpYnRvb2wg c3Vja3MuCistLS0gbHRtYWluLnNoLmpqCTIwMDctMTItMDcgMTQ6NTM6MjEuMDAwMDAwMDAwICsw MTAwCisrKysgbHRtYWluLnNoCTIwMDgtMDktMDUgMjE6NTE6NDguMDAwMDAwMDAwICswMjAwCitA QCAtNTM5NCw2ICs1Mzk0LDcgQEAgRU9GCisgCSAgcnBhdGg9IiRmaW5hbGl6ZV9ycGF0aCIKKyAJ ICB0ZXN0ICIkbW9kZSIgIT0gcmVsaW5rICYmIHJwYXRoPSIkY29tcGlsZV9ycGF0aCRycGF0aCIK KyAJICBmb3IgbGliZGlyIGluICRycGF0aDsgZG8KKysJICAgIGNhc2UgIiRsaWJkaXIiIGluIC91 c3IvbGlifC91c3IvbGliNjR8L3Vzci9saWIvLi4vbGlifC91c3IvbGliLy4uL2xpYjY0KSBjb250 aW51ZTs7IGVzYWMKKyAJICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj IjsgdGhlbgorIAkgICAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciI7 IHRoZW4KKyAJCWlmIHRlc3QgLXogIiRoYXJkY29kZV9saWJkaXJzIjsgdGhlbgorQEAgLTYwNzEs NiArNjA3Miw3IEBAIEVPRgorICAgICAgIHJwYXRoPQorICAgICAgIGhhcmRjb2RlX2xpYmRpcnM9 CisgICAgICAgZm9yIGxpYmRpciBpbiAkY29tcGlsZV9ycGF0aCAkZmluYWxpemVfcnBhdGg7IGRv CisrCWNhc2UgIiRsaWJkaXIiIGluIC91c3IvbGlifC91c3IvbGliNjR8L3Vzci9saWIvLi4vbGli fC91c3IvbGliLy4uL2xpYjY0KSBjb250aW51ZTs7IGVzYWMKKyAJaWYgdGVzdCAtbiAiJGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWMiOyB0aGVuCisgCSAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xp YmRpcl9zZXBhcmF0b3IiOyB0aGVuCisgCSAgICBpZiB0ZXN0IC16ICIkaGFyZGNvZGVfbGliZGly cyI7IHRoZW4KK0BAIC02MTIwLDYgKzYxMjIsNyBAQCBFT0YKKyAgICAgICBycGF0aD0KKyAgICAg ICBoYXJkY29kZV9saWJkaXJzPQorICAgICAgIGZvciBsaWJkaXIgaW4gJGZpbmFsaXplX3JwYXRo OyBkbworKwljYXNlICIkbGliZGlyIiBpbiAvdXNyL2xpYnwvdXNyL2xpYjY0fC91c3IvbGliLy4u L2xpYnwvdXNyL2xpYi8uLi9saWI2NCkgY29udGludWU7OyBlc2FjCisgCWlmIHRlc3QgLW4gIiRo YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIjsgdGhlbgorIAkgIGlmIHRlc3QgLW4gIiRoYXJkY29k ZV9saWJkaXJfc2VwYXJhdG9yIjsgdGhlbgorIAkgICAgaWYgdGVzdCAteiAiJGhhcmRjb2RlX2xp YmRpcnMiOyB0aGVuCgpkaWZmIC0tZ2l0IGEvZ2NjNDUtbm8tYWRkLW5lZWRlZC5wYXRjaCBiL2dj YzQ1LW5vLWFkZC1uZWVkZWQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uNDU3MGMwYwotLS0gL2Rldi9udWxsCisrKyBiL2djYzQ1LW5vLWFkZC1uZWVkZWQucGF0Y2gK QEAgLTAsMCArMSw1MiBAQAorMjAxMC0wMi0wOCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVk aGF0LmNvbT4KKworCSogY29uZmlnL3JzNjAwMC9zeXN2NC5oIChMSU5LX0VIX1NQRUMpOiBQYXNz IC0tbm8tYWRkLW5lZWRlZCB0byB0aGUKKwlsaW5rZXIuCisJKiBjb25maWcvbGludXguaCAoTElO S19FSF9TUEVDKTogTGlrZXdpc2UuCisJKiBjb25maWcvYWxwaGEvZWxmLmggKExJTktfRUhfU1BF Qyk6IExpa2V3aXNlLgorCSogY29uZmlnL2lhNjQvbGludXguaCAoTElOS19FSF9TUEVDKTogTGlr ZXdpc2UuCisKKy0tLSBnY2MvY29uZmlnL2FscGhhL2VsZi5oLn4xfgorKysrIGdjYy9jb25maWcv YWxwaGEvZWxmLmgKK0BAIC00MjEsNyArNDIxLDcgQEAgZXh0ZXJuIGludCBhbHBoYV90aGlzX2dw ZGlzcF9zZXF1ZW5jZV9udQorICAgIEkgaW1hZ2luZSB0aGF0IG90aGVyIHN5c3RlbXMgd2lsbCBj YXRjaCB1cC4gIEluIHRoZSBtZWFudGltZSwgaXQKKyAgICBkb2Vzbid0IGhhcm0gdG8gbWFrZSBz dXJlIHRoYXQgdGhlIGRhdGEgZXhpc3RzIHRvIGJlIHVzZWQgbGF0ZXIuICAqLworICNpZiBkZWZp bmVkKEhBVkVfTERfRUhfRlJBTUVfSERSKQorLSNkZWZpbmUgTElOS19FSF9TUEVDICIleyFzdGF0 aWM6LS1laC1mcmFtZS1oZHJ9ICV7IXI6LS1idWlsZC1pZH0gIgorKyNkZWZpbmUgTElOS19FSF9T UEVDICItLW5vLWFkZC1uZWVkZWQgJXshc3RhdGljOi0tZWgtZnJhbWUtaGRyfSAleyFyOi0tYnVp bGQtaWR9ICIKKyAjZW5kaWYKKyAKKyAvKiBBIEMgc3RhdGVtZW50IChzYW5zIHNlbWljb2xvbikg dG8gb3V0cHV0IHRvIHRoZSBzdGRpbyBzdHJlYW0gU1RSRUFNCistLS0gZ2NjL2NvbmZpZy9pYTY0 L2xpbnV4LmgufjF+CisrKysgZ2NjL2NvbmZpZy9pYTY0L2xpbnV4LmgKK0BAIC01OCw3ICs1OCw3 IEBAIGRvIHsJCQkJCQlcCisgICAgU2lnbmFsaXplIHRoYXQgYmVjYXVzZSB3ZSBoYXZlIGZkZS1n bGliYywgd2UgZG9uJ3QgbmVlZCBhbGwgQyBzaGFyZWQgbGlicworICAgIGxpbmtlZCBhZ2FpbnN0 IC1sZ2NjX3MuICAqLworICN1bmRlZiBMSU5LX0VIX1NQRUMKKy0jZGVmaW5lIExJTktfRUhfU1BF QyAiJXshcjotLWJ1aWxkLWlkfSAiCisrI2RlZmluZSBMSU5LX0VIX1NQRUMgIi0tbm8tYWRkLW5l ZWRlZCAleyFyOi0tYnVpbGQtaWR9ICIKKyAKKyAjZGVmaW5lIE1EX1VOV0lORF9TVVBQT1JUICJj b25maWcvaWE2NC9saW51eC11bndpbmQuaCIKKyAKKy0tLSBnY2MvY29uZmlnL2xpbnV4LmgufjF+ CisrKysgZ2NjL2NvbmZpZy9saW51eC5oCitAQCAtODksNyArODksNyBAQCBzZWUgdGhlIGZpbGVz IENPUFlJTkczIGFuZCBDT1BZSU5HLlJVTlRJCisgICAgIH0gd2hpbGUgKDApCisgCisgI2lmIGRl ZmluZWQoSEFWRV9MRF9FSF9GUkFNRV9IRFIpCistI2RlZmluZSBMSU5LX0VIX1NQRUMgIiV7IXN0 YXRpYzotLWVoLWZyYW1lLWhkcn0gJXshcjotLWJ1aWxkLWlkfSAiCisrI2RlZmluZSBMSU5LX0VI X1NQRUMgIi0tbm8tYWRkLW5lZWRlZCAleyFzdGF0aWM6LS1laC1mcmFtZS1oZHJ9ICV7IXI6LS1i dWlsZC1pZH0gIgorICNlbmRpZgorIAorIC8qIERlZmluZSB0aGlzIHNvIHdlIGNhbiBjb21waWxl IE1TIGNvZGUgZm9yIHVzZSB3aXRoIFdJTkUuICAqLworLS0tIGdjYy9jb25maWcvcnM2MDAwL3N5 c3Y0LmgufjF+CisrKysgZ2NjL2NvbmZpZy9yczYwMDAvc3lzdjQuaAorQEAgLTkxNyw3ICs5MTcs NyBAQCBTVlI0X0FTTV9TUEVDIFwKKyAgICV7IWR5bmFtaWMtbGlua2VyOi1keW5hbWljLWxpbmtl ciAiIExJTlVYX0RZTkFNSUNfTElOS0VSICJ9fX0iCisgCisgI2lmIGRlZmluZWQoSEFWRV9MRF9F SF9GUkFNRV9IRFIpCistIyBkZWZpbmUgTElOS19FSF9TUEVDICIleyFzdGF0aWM6LS1laC1mcmFt ZS1oZHJ9ICV7IXI6LS1idWlsZC1pZH0gIgorKyMgZGVmaW5lIExJTktfRUhfU1BFQyAiLS1uby1h ZGQtbmVlZGVkICV7IXN0YXRpYzotLWVoLWZyYW1lLWhkcn0gJXshcjotLWJ1aWxkLWlkfSAiCisg I2VuZGlmCisgCisgI2RlZmluZSBDUFBfT1NfTElOVVhfU1BFQyAiLURfX3VuaXhfXyAtRF9fZ251 X2xpbnV4X18gLURfX2xpbnV4X18gXAoKZGlmZiAtLWdpdCBhL2djYzQ1LXBwYzMyLXJldGFkZHIu cGF0Y2ggYi9nY2M0NS1wcGMzMi1yZXRhZGRyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmU5YWUxYmMKLS0tIC9kZXYvbnVsbAorKysgYi9nY2M0NS1wcGMzMi1yZXRh ZGRyLnBhdGNoCkBAIC0wLDAgKzEsODYgQEAKKzIwMDUtMTEtMjggIEpha3ViIEplbGluZWsgIDxq YWt1YkByZWRoYXQuY29tPgorCisJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChyczYwMDBfcmV0 dXJuX2FkZHIpOiBJZiBDT1VOVCA9PSAwLAorCXJlYWQgd29yZCBSRVRVUk5fQUREUkVTU19PRkZT RVQgYnl0ZXMgYWJvdmUgYXJnX3BvaW50ZXJfcnR4CisJaW5zdGVhZCBvZiBkb2luZyBhbiBleHRy YW4gaW5kaXJlY3Rpb24gZnJvbSBmcmFtZV9wb2ludGVyX3J0eC4KKworCSogZ2NjLmRnLzIwMDUx MTI4LTEuYzogTmV3IHRlc3QuCisKKy0tLSBnY2MvY29uZmlnL3JzNjAwMC9yczYwMDAuYy5qagky MDA1LTExLTI2IDE0OjM4OjAxLjAwMDAwMDAwMCArMDEwMAorKysrIGdjYy9jb25maWcvcnM2MDAw L3JzNjAwMC5jCTIwMDUtMTEtMjggMjA6MzI6MTguMDAwMDAwMDAwICswMTAwCitAQCAtMTMxNjYs MTcgKzEzMTY2LDIyIEBAIHJzNjAwMF9yZXR1cm5fYWRkciAoaW50IGNvdW50LCBydHggZnJhbWUK KyAgICAgIGRvbid0IHRyeSB0byBiZSB0b28gY2xldmVyIGhlcmUuICAqLworICAgaWYgKGNvdW50 ICE9IDAgfHwgKERFRkFVTFRfQUJJICE9IEFCSV9BSVggJiYgZmxhZ19waWMpKQorICAgICB7Cisr ICAgICAgcnR4IHg7CisgICAgICAgY2Z1bi0+bWFjaGluZS0+cmFfbmVlZHNfZnVsbF9mcmFtZSA9 IDE7CisgCistICAgICAgcmV0dXJuCistCWdlbl9ydHhfTUVNCistCSAgKFBtb2RlLAorLQkgICBt ZW1vcnlfYWRkcmVzcworLQkgICAoUG1vZGUsCistCSAgICBwbHVzX2NvbnN0YW50IChjb3B5X3Rv X3JlZworLQkJCSAgIChnZW5fcnR4X01FTSAoUG1vZGUsCistCQkJCQkgbWVtb3J5X2FkZHJlc3Mg KFBtb2RlLCBmcmFtZSkpKSwKKy0JCQkgICBSRVRVUk5fQUREUkVTU19PRkZTRVQpKSk7CisrICAg ICAgaWYgKGNvdW50ID09IDApCisrCXsKKysJICBnY2NfYXNzZXJ0IChmcmFtZSA9PSBmcmFtZV9w b2ludGVyX3J0eCk7CisrCSAgeCA9IGFyZ19wb2ludGVyX3J0eDsKKysJfQorKyAgICAgIGVsc2UK KysJeworKwkgIHggPSBtZW1vcnlfYWRkcmVzcyAoUG1vZGUsIGZyYW1lKTsKKysJICB4ID0gY29w eV90b19yZWcgKGdlbl9ydHhfTUVNIChQbW9kZSwgeCkpOworKwl9CisrCisrICAgICAgeCA9IHBs dXNfY29uc3RhbnQgKHgsIFJFVFVSTl9BRERSRVNTX09GRlNFVCk7CisrICAgICAgcmV0dXJuIGdl bl9ydHhfTUVNIChQbW9kZSwgbWVtb3J5X2FkZHJlc3MgKFBtb2RlLCB4KSk7CisgICAgIH0KKyAK KyAgIGNmdW4tPm1hY2hpbmUtPnJhX25lZWRfbHIgPSAxOworLS0tIGdjYy90ZXN0c3VpdGUvZ2Nj LmRnLzIwMDUxMTI4LTEuYy5qagkyMDA1LTEwLTEwIDExOjIxOjQxLjA5Njk5OTAwMCArMDIwMAor KysrIGdjYy90ZXN0c3VpdGUvZ2NjLmRnLzIwMDUxMTI4LTEuYwkyMDA1LTExLTI4IDEyOjMwOjU3 LjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSw0MSBAQAorKy8qIHsgZGctZG8gcnVuIH0gKi8K KysvKiB7IGRnLW9wdGlvbnMgIi1PMiAtZnBpYyIgfSAqLworKworK2V4dGVybiB2b2lkIGV4aXQg KGludCk7CisrZXh0ZXJuIHZvaWQgYWJvcnQgKHZvaWQpOworKworK2ludCBiOworKworK3N0cnVj dCBBCisreworKyAgdm9pZCAqcGFkWzE0N107CisrICB2b2lkICpyYSwgKmg7CisrICBsb25nIG87 CisrfTsKKysKKyt2b2lkCisrX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorK2ZvbyAoc3RydWN0 IEEgKmEsIHZvaWQgKngpCisreworKyAgX19idWlsdGluX21lbXNldCAoYSwgMCwgc2l6ZW9mIChh KSk7CisrICBpZiAoIWIpCisrICAgIGV4aXQgKDApOworK30KKysKKyt2b2lkCisrX19hdHRyaWJ1 dGVfXygobm9pbmxpbmUpKQorK2JhciAodm9pZCkKKyt7CisrICBzdHJ1Y3QgQSBhOworKworKyAg X19idWlsdGluX3Vud2luZF9pbml0ICgpOworKyAgZm9vICgmYSwgX19idWlsdGluX3JldHVybl9h ZGRyZXNzICgwKSk7CisrfQorKworK2ludAorK21haW4gKHZvaWQpCisreworKyAgYmFyICgpOwor KyAgYWJvcnQgKCk7CisrICByZXR1cm4gMDsKKyt9CgpkaWZmIC0tZ2l0IGEvZ2NjNDUtcHIzMzc2 My5wYXRjaCBiL2djYzQ1LXByMzM3NjMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uODZjOGFjNwotLS0gL2Rldi9udWxsCisrKyBiL2djYzQ1LXByMzM3NjMucGF0Y2gK QEAgLTAsMCArMSwxNTMgQEAKKzIwMDctMTEtMDYgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRo YXQuY29tPgorCisJUFIgdHJlZS1vcHRpbWl6YXRpb24vMzM3NjMKKwkqIGdjYy5kZy9wcjMzNzYz LmM6IE5ldyB0ZXN0LgorCSogZysrLmRnL29wdC9pbmxpbmUxMy5DOiBOZXcgdGVzdC4KKworMjAw Ny0xMS0wNiAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgorCisJUFIgdHJlZS1vcHRpbWl6YXRp b24vMzM3NjMKKwkqIHRyZWUtaW5saW5lLmMgKGV4cGFuZF9jYWxsX2lubGluZSk6IFNpbGVudGx5 IGlnbm9yZSBhbHdheXNfaW5saW5lCisJYXR0cmlidXRlIGZvciByZWRlZmluZWQgZXh0ZXJuIGlu bGluZSBmdW5jdGlvbnMuCisKKy0tLSBnY2MvdHJlZS1pbmxpbmUuYy5qagkyMDA3LTExLTA2IDA5 OjI5OjA0LjAwMDAwMDAwMCArMDEwMAorKysrIGdjYy90cmVlLWlubGluZS5jCTIwMDctMTEtMDYg MTY6MTk6MTIuMDAwMDAwMDAwICswMTAwCitAQCAtMzE1Nyw2ICszMTU3LDEyIEBAIGV4cGFuZF9j YWxsX2lubGluZSAoYmFzaWNfYmxvY2sgYmIsIGdpbXAKKyAJZ290byBlZ3Jlc3M7CisgCisgICAg ICAgaWYgKGxvb2t1cF9hdHRyaWJ1dGUgKCJhbHdheXNfaW5saW5lIiwgREVDTF9BVFRSSUJVVEVT IChmbikpCisrCS8qIEZvciBleHRlcm4gaW5saW5lIGZ1bmN0aW9ucyB0aGF0IGdldCByZWRlZmlu ZWQgd2UgYWx3YXlzCisrCSAgIHNpbGVudGx5IGlnbm9yZWQgYWx3YXlfaW5saW5lIGZsYWcuIEJl dHRlciBiZWhhdmlvdXIgd291bGQKKysJICAgYmUgdG8gYmUgYWJsZSB0byBrZWVwIGJvdGggYm9k aWVzIGFuZCB1c2UgZXh0ZXJuIGlubGluZSBib2R5CisrCSAgIGZvciBpbmxpbmluZywgYnV0IHdl IGNhbid0IGRvIHRoYXQgYmVjYXVzZSBmcm9udGVuZHMgb3ZlcndyaXRlCisrCSAgIHRoZSBib2R5 LiAgKi8KKysJICAmJiAhY2dfZWRnZS0+Y2FsbGVlLT5sb2NhbC5yZWRlZmluZWRfZXh0ZXJuX2lu bGluZQorIAkgIC8qIEF2b2lkIHdhcm5pbmdzIGR1cmluZyBlYXJseSBpbmxpbmUgcGFzcy4gKi8K KyAJICAmJiBjZ3JhcGhfZ2xvYmFsX2luZm9fcmVhZHkpCisgCXsKKy0tLSBnY2MvdGVzdHN1aXRl L2djYy5kZy9wcjMzNzYzLmMuamoJMjAwNy0xMS0wNiAxNjoxOToxMi4wMDAwMDAwMDAgKzAxMDAK KysrKyBnY2MvdGVzdHN1aXRlL2djYy5kZy9wcjMzNzYzLmMJMjAwNy0xMS0wNiAxNjoxOToxMi4w MDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEsNjAgQEAKKysvKiBQUiB0cmVlLW9wdGltaXphdGlv bi8zMzc2MyAqLworKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisrLyogeyBkZy1vcHRpb25zICIt TzIiIH0gKi8KKysKKyt0eXBlZGVmIHN0cnVjdAorK3sKKysgIHZvaWQgKmE7CisrICB2b2lkICpi OworK30gVDsKKytleHRlcm4gdm9pZCAqZm9vIChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKik7 CisrZXh0ZXJuIHZvaWQgKmJhciAodm9pZCAqLCBjb25zdCBjaGFyICosIFQpOworK2V4dGVybiBp bnQgYmF6IChjb25zdCBjaGFyICosIGludCk7CisrCisrZXh0ZXJuIGlubGluZSBfX2F0dHJpYnV0 ZV9fICgoYWx3YXlzX2lubGluZSwgZ251X2lubGluZSkpIGludAorK2JheiAoY29uc3QgY2hhciAq eCwgaW50IHkpCisreworKyAgcmV0dXJuIDI7CisrfQorKworK2ludAorK2JheiAoY29uc3QgY2hh ciAqeCwgaW50IHkpCisreworKyAgcmV0dXJuIDE7CisrfQorKworK2ludCB4YSwgeGI7CisrCisr c3RhdGljIHZvaWQgKgorK2lubCAoY29uc3QgY2hhciAqeCwgY29uc3QgY2hhciAqeSkKKyt7Cisr ICBUIHQgPSB7ICZ4YSwgJnhiIH07CisrICBpbnQgKmYgPSAoaW50ICopIF9fYnVpbHRpbl9tYWxs b2MgKHNpemVvZiAoaW50KSk7CisrICBjb25zdCBjaGFyICp6OworKyAgaW50IG8gPSAwOworKyAg dm9pZCAqciA9IDA7CisrCisrICBmb3IgKHogPSB5OyAqejsgeisrKQorKyAgICB7CisrICAgICAg aWYgKCp6ID09ICdyJykKKysJbyB8PSAxOworKyAgICAgIGlmICgqeiA9PSAndycpCisrCW8gfD0g MjsKKysgICAgfQorKyAgaWYgKG8gPT0gMSkKKysgICAgKmYgPSBiYXogKHgsIDApOworKyAgaWYg KG8gPT0gMikKKysgICAgKmYgPSBiYXogKHgsIDEpOworKyAgaWYgKG8gPT0gMykKKysgICAgKmYg PSBiYXogKHgsIDIpOworKworKyAgaWYgKG8gJiYgKmYgPiAwKQorKyAgICByID0gYmFyIChmLCAi dyIsIHQpOworKyAgcmV0dXJuIHI7CisrfQorKworK3ZvaWQgKgorK2ZvbyAoY29uc3QgY2hhciAq eCwgY29uc3QgY2hhciAqeSkKKyt7CisrICByZXR1cm4gaW5sICh4LCB5KTsKKyt9CistLS0gZ2Nj L3Rlc3RzdWl0ZS9nKysuZGcvb3B0L2lubGluZTEzLkMuamoJMjAwNy0xMS0wNiAxNjoyMDoyMC4w MDAwMDAwMDAgKzAxMDAKKysrKyBnY2MvdGVzdHN1aXRlL2crKy5kZy9vcHQvaW5saW5lMTMuQwky MDA3LTExLTA2IDE2OjIxOjMwLjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSw2MCBAQAorKy8v IFBSIHRyZWUtb3B0aW1pemF0aW9uLzMzNzYzCisrLy8geyBkZy1kbyBjb21waWxlIH0KKysvLyB7 IGRnLW9wdGlvbnMgIi1PMiIgfQorKworK3R5cGVkZWYgc3RydWN0CisreworKyAgdm9pZCAqYTsK KysgIHZvaWQgKmI7CisrfSBUOworK2V4dGVybiB2b2lkICpmb28gKGNvbnN0IGNoYXIgKiwgY29u c3QgY2hhciAqKTsKKytleHRlcm4gdm9pZCAqYmFyICh2b2lkICosIGNvbnN0IGNoYXIgKiwgVCk7 CisrZXh0ZXJuIGludCBiYXogKGNvbnN0IGNoYXIgKiwgaW50KTsKKysKKytleHRlcm4gaW5saW5l IF9fYXR0cmlidXRlX18gKChhbHdheXNfaW5saW5lLCBnbnVfaW5saW5lKSkgaW50CisrYmF6IChj b25zdCBjaGFyICp4LCBpbnQgeSkKKyt7CisrICByZXR1cm4gMjsKKyt9CisrCisraW50CisrYmF6 IChjb25zdCBjaGFyICp4LCBpbnQgeSkKKyt7CisrICByZXR1cm4gMTsKKyt9CisrCisraW50IHhh LCB4YjsKKysKKytzdGF0aWMgdm9pZCAqCisraW5sIChjb25zdCBjaGFyICp4LCBjb25zdCBjaGFy ICp5KQorK3sKKysgIFQgdCA9IHsgJnhhLCAmeGIgfTsKKysgIGludCAqZiA9IChpbnQgKikgX19i dWlsdGluX21hbGxvYyAoc2l6ZW9mIChpbnQpKTsKKysgIGNvbnN0IGNoYXIgKno7CisrICBpbnQg byA9IDA7CisrICB2b2lkICpyID0gMDsKKysKKysgIGZvciAoeiA9IHk7ICp6OyB6KyspCisrICAg IHsKKysgICAgICBpZiAoKnogPT0gJ3InKQorKwlvIHw9IDE7CisrICAgICAgaWYgKCp6ID09ICd3 JykKKysJbyB8PSAyOworKyAgICB9CisrICBpZiAobyA9PSAxKQorKyAgICAqZiA9IGJheiAoeCwg MCk7CisrICBpZiAobyA9PSAyKQorKyAgICAqZiA9IGJheiAoeCwgMSk7CisrICBpZiAobyA9PSAz KQorKyAgICAqZiA9IGJheiAoeCwgMik7CisrCisrICBpZiAobyAmJiAqZiA+IDApCisrICAgIHIg PSBiYXIgKGYsICJ3IiwgdCk7CisrICByZXR1cm4gcjsKKyt9CisrCisrdm9pZCAqCisrZm9vIChj b25zdCBjaGFyICp4LCBjb25zdCBjaGFyICp5KQorK3sKKysgIHJldHVybiBpbmwgKHgsIHkpOwor K30KCmRpZmYgLS1naXQgYS9nY2M0NS1wcjM4NzU3LnBhdGNoIGIvZ2NjNDUtcHIzODc1Ny5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNTUwOTg4Ci0tLSAvZGV2L251 bGwKKysrIGIvZ2NjNDUtcHIzODc1Ny5wYXRjaApAQCAtMCwwICsxLDExOCBAQAorMjAwOS0wMy0x OCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CisKKwlQUiBkZWJ1Zy8zODc1Nwor CSogbGFuZ2hvb2tzLmggKHN0cnVjdCBsYW5nX2hvb2tzKTogQWRkIHNvdXJjZV9sYW5ndWFnZSBs YW5naG9vay4KKwkqIGxhbmdob29rcy1kZWYuaCAoTEFOR19IT09LU19TT1VSQ0VfTEFOR1VBR0Up OiBEZWZpbmUgdG8gTlVMTC4KKwkoTEFOR19IT09LU19JTklUSUFMSVpFUik6IEFkZCBMQU5HX0hP T0tTX1NPVVJDRV9MQU5HVUFHRS4KKwkqIGMtbGFuZy5jIChjX3NvdXJjZV9sYW5ndWFnZSk6IE5l dyBmdW5jdGlvbi4KKwkoTEFOR19IT09LU19TT1VSQ0VfTEFOR1VBR0UpOiBEZWZpbmUuCisJKiBk d2FyZjJvdXQuYyAoYWRkX3Byb3RvdHlwZWRfYXR0cmlidXRlKTogQWRkIERXX0FUX3Byb3RvdHlw ZQorCWFsc28gZm9yIERXX0xBTkdfe0MsQzk5LE9iakN9LgorCShnZW5fY29tcGlsZV91bml0X2Rp ZSk6IFVzZSBsYW5nX2hvb2tzLnNvdXJjZV9sYW5ndWFnZSAoKSB0bworCWRldGVybWluZSBpZiBE V19MQU5HX0M5OSBvciBEV19MQU5HX0M4OSBzaG91bGQgYmUgcmV0dXJuZWQuCisKKy0tLSBnY2Mv bGFuZ2hvb2tzLmguamoJMjAxMC0wNi0zMCAwOTo0ODozMC4wMDAwMDAwMDAgKzAyMDAKKysrKyBn Y2MvbGFuZ2hvb2tzLmgJMjAxMC0wNy0wMSAxNjoxNToyMi40MzI2MTY4NzEgKzAyMDAKK0BAIC00 NTQsNiArNDU0LDEwIEBAIHN0cnVjdCBsYW5nX2hvb2tzCisgICAgICBpcyBlbmFibGVkLiAgKi8K KyAgIGJvb2wgZWhfdXNlX2N4YV9lbmRfY2xlYW51cDsKKyAKKysgIC8qIFJldHVybiB5ZWFyIG9m IHRoZSBzb3VyY2UgbGFuZ3VhZ2Ugc3RhbmRhcmQgdmVyc2lvbiBpZiB0aGUgRkUgc3VwcG9ydHMK KysgICAgIG11bHRpcGxlIHZlcnNpb25zIG9mIHRoZSBzdGFuZGFyZC4gICovCisrICBpbnQgKCpz b3VyY2VfbGFuZ3VhZ2UpICh2b2lkKTsKKysKKyAgIC8qIFdoZW5ldmVyIHlvdSBhZGQgZW50cmll cyBoZXJlLCBtYWtlIHN1cmUgeW91IGFkanVzdCBsYW5naG9va3MtZGVmLmgKKyAgICAgIGFuZCBs YW5naG9va3MuYyBhY2NvcmRpbmdseS4gICovCisgfTsKKy0tLSBnY2MvbGFuZ2hvb2tzLWRlZi5o LmpqCTIwMTAtMDYtMzAgMDk6NDg6MzAuMDAwMDAwMDAwICswMjAwCisrKysgZ2NjL2xhbmdob29r cy1kZWYuaAkyMDEwLTA3LTAxIDE2OjE2OjA3LjQyNzQ2MDc2MSArMDIwMAorQEAgLTEsNSArMSw1 IEBACisgLyogRGVmYXVsdCBtYWNyb3MgdG8gaW5pdGlhbGl6ZSB0aGUgbGFuZ19ob29rcyBkYXRh IHN0cnVjdHVyZS4KKy0gICBDb3B5cmlnaHQgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwg MjAwNiwgMjAwNywgMjAwOAorKyAgIENvcHlyaWdodCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAy MDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5CisgICAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCisgICAgQ29udHJpYnV0ZWQgYnkgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhh dC5jb20+CisgCitAQCAtMTExLDYgKzExMSw3IEBAIGV4dGVybiB2b2lkIGxoZF9vbXBfZmlyc3Rw cml2YXRpemVfdHlwZV8KKyAjZGVmaW5lIExBTkdfSE9PS1NfRUhfUEVSU09OQUxJVFkJbGhkX2dj Y19wZXJzb25hbGl0eQorICNkZWZpbmUgTEFOR19IT09LU19FSF9SVU5USU1FX1RZUEUJbGhkX3Bh c3NfdGhyb3VnaF90CisgI2RlZmluZSBMQU5HX0hPT0tTX0VIX1VTRV9DWEFfRU5EX0NMRUFOVVAJ ZmFsc2UKKysjZGVmaW5lIExBTkdfSE9PS1NfU09VUkNFX0xBTkdVQUdFCU5VTEwKKyAKKyAvKiBB dHRyaWJ1dGUgaG9va3MuICAqLworICNkZWZpbmUgTEFOR19IT09LU19BVFRSSUJVVEVfVEFCTEUJ CU5VTEwKK0BAIC0zMDEsNiArMzAyLDcgQEAgZXh0ZXJuIHZvaWQgbGhkX2VuZF9zZWN0aW9uICh2 b2lkKTsKKyAgIExBTkdfSE9PS1NfRUhfUEVSU09OQUxJVFksIFwKKyAgIExBTkdfSE9PS1NfRUhf UlVOVElNRV9UWVBFLCBcCisgICBMQU5HX0hPT0tTX0VIX1VTRV9DWEFfRU5EX0NMRUFOVVAsIFwK KysgIExBTkdfSE9PS1NfU09VUkNFX0xBTkdVQUdFLCBcCisgfQorIAorICNlbmRpZiAvKiBHQ0Nf TEFOR19IT09LU19ERUZfSCAqLworLS0tIGdjYy9jLWxhbmcuYy5qagkyMDEwLTA2LTMwIDA5OjQ4 OjMwLjAwMDAwMDAwMCArMDIwMAorKysrIGdjYy9jLWxhbmcuYwkyMDEwLTA3LTAxIDE2OjE0OjI1 LjM5NjE5NzgwNCArMDIwMAorQEAgLTEsNiArMSw2IEBACisgLyogTGFuZ3VhZ2Utc3BlY2lmaWMg aG9vayBkZWZpbml0aW9ucyBmb3IgQyBmcm9udCBlbmQuCisgICAgQ29weXJpZ2h0IChDKSAxOTkx LCAxOTk1LCAxOTk3LCAxOTk4LAorLSAgIDE5OTksIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQsIDIw MDUsIDIwMDcsIDIwMDgKKysgICAxOTk5LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA0LCAyMDA1LCAy MDA3LCAyMDA4LCAyMDA5CisgICAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgCisg VGhpcyBmaWxlIGlzIHBhcnQgb2YgR0NDLgorQEAgLTM3LDYgKzM3LDEyIEBAIGFsb25nIHdpdGgg R0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuICAKKyAKKyBlbnVtIGNfbGFuZ3VhZ2Vfa2luZCBj X2xhbmd1YWdlID0gY2xrX2M7CisgCisrc3RhdGljIGludAorK2Nfc291cmNlX2xhbmd1YWdlICh2 b2lkKQorK3sKKysgIHJldHVybiBmbGFnX2lzb2M5OSA/IDE5OTkgOiAxOTg5OworK30KKysKKyAv KiBMYW5nIGhvb2tzIGNvbW1vbiB0byBDIGFuZCBPYmpDIGFyZSBkZWNsYXJlZCBpbiBjLW9iamMt Y29tbW9uLmg7CisgICAgY29uc2VxdWVudGx5LCB0aGVyZSBzaG91bGQgYmUgdmVyeSBmZXcgaG9v a3MgYmVsb3cuICAqLworIAorQEAgLTQ0LDYgKzUwLDggQEAgZW51bSBjX2xhbmd1YWdlX2tpbmQg Y19sYW5ndWFnZSA9IGNsa19jOworICNkZWZpbmUgTEFOR19IT09LU19OQU1FICJHTlUgQyIKKyAj dW5kZWYgTEFOR19IT09LU19JTklUCisgI2RlZmluZSBMQU5HX0hPT0tTX0lOSVQgY19vYmpjX2Nv bW1vbl9pbml0CisrI3VuZGVmIExBTkdfSE9PS1NfU09VUkNFX0xBTkdVQUdFCisrI2RlZmluZSBM QU5HX0hPT0tTX1NPVVJDRV9MQU5HVUFHRSBjX3NvdXJjZV9sYW5ndWFnZQorIAorIC8qIEVhY2gg ZnJvbnQgZW5kIHByb3ZpZGVzIGl0cyBvd24gbGFuZyBob29rIGluaXRpYWxpemVyLiAgKi8KKyBz dHJ1Y3QgbGFuZ19ob29rcyBsYW5nX2hvb2tzID0gTEFOR19IT09LU19JTklUSUFMSVpFUjsKKy0t LSBnY2MvZHdhcmYyb3V0LmMuamoJMjAxMC0wNy0wMSAxNDowNzo0MS4wMDAwMDAwMDAgKzAyMDAK KysrKyBnY2MvZHdhcmYyb3V0LmMJMjAxMC0wNy0wMSAxNjoxMzoyNC41OTczNTQ3MTcgKzAyMDAK K0BAIC0xNzE1MCw5ICsxNzE1MCwxOCBAQCBhZGRfYml0X3NpemVfYXR0cmlidXRlIChkd19kaWVf cmVmIGRpZSwgCisgc3RhdGljIGlubGluZSB2b2lkCisgYWRkX3Byb3RvdHlwZWRfYXR0cmlidXRl IChkd19kaWVfcmVmIGRpZSwgdHJlZSBmdW5jX3R5cGUpCisgeworLSAgaWYgKGdldF9BVF91bnNp Z25lZCAoY29tcF91bml0X2RpZSwgRFdfQVRfbGFuZ3VhZ2UpID09IERXX0xBTkdfQzg5CistICAg ICAgJiYgVFlQRV9BUkdfVFlQRVMgKGZ1bmNfdHlwZSkgIT0gTlVMTCkKKy0gICAgYWRkX0FUX2Zs YWcgKGRpZSwgRFdfQVRfcHJvdG90eXBlZCwgMSk7CisrICBzd2l0Y2ggKGdldF9BVF91bnNpZ25l ZCAoY29tcF91bml0X2RpZSwgRFdfQVRfbGFuZ3VhZ2UpKQorKyAgICB7CisrICAgIGNhc2UgRFdf TEFOR19DOgorKyAgICBjYXNlIERXX0xBTkdfQzg5OgorKyAgICBjYXNlIERXX0xBTkdfQzk5Ogor KyAgICBjYXNlIERXX0xBTkdfT2JqQzoKKysgICAgICBpZiAoVFlQRV9BUkdfVFlQRVMgKGZ1bmNf dHlwZSkgIT0gTlVMTCkKKysJYWRkX0FUX2ZsYWcgKGRpZSwgRFdfQVRfcHJvdG90eXBlZCwgMSk7 CisrICAgICAgYnJlYWs7CisrICAgIGRlZmF1bHQ6CisrICAgICAgYnJlYWs7CisrICAgIH0KKyB9 CisgCisgLyogQWRkIGFuICdhYnN0cmFjdF9vcmlnaW4nIGF0dHJpYnV0ZSBiZWxvdyBhIGdpdmVu IERJRS4gIFRoZSBESUUgaXMgZm91bmQKK0BAIC0xOTI0Niw2ICsxOTI1NSwxMCBAQCBnZW5fY29t cGlsZV91bml0X2RpZSAoY29uc3QgY2hhciAqZmlsZW5hCisgCWxhbmd1YWdlID0gRFdfTEFOR19P YmpDOworICAgICAgIGVsc2UgaWYgKHN0cmNtcCAobGFuZ3VhZ2Vfc3RyaW5nLCAiR05VIE9iamVj dGl2ZS1DKysiKSA9PSAwKQorIAlsYW5ndWFnZSA9IERXX0xBTkdfT2JqQ19wbHVzX3BsdXM7Cisr ICAgICAgZWxzZSBpZiAoc3RyY21wIChsYW5ndWFnZV9zdHJpbmcsICJHTlUgQyIpID09IDAKKysJ ICAgICAgICYmIGxhbmdfaG9va3Muc291cmNlX2xhbmd1YWdlCisrCSAgICAgICAmJiBsYW5nX2hv b2tzLnNvdXJjZV9sYW5ndWFnZSAoKSA+PSAxOTk5KQorKwlsYW5ndWFnZSA9IERXX0xBTkdfQzk5 OworICAgICB9CisgCisgICBhZGRfQVRfdW5zaWduZWQgKGRpZSwgRFdfQVRfbGFuZ3VhZ2UsIGxh bmd1YWdlKTsKCmRpZmYgLS1naXQgYS9nY2M0NS1wcjQ0NTQyLnBhdGNoIGIvZ2NjNDUtcHI0NDU0 Mi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNDBmYjQ0Ci0tLSAv ZGV2L251bGwKKysrIGIvZ2NjNDUtcHI0NDU0Mi5wYXRjaApAQCAtMCwwICsxLDQ5IEBACisyMDEw LTA2LTE3ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KKworCVBSIHRhcmdldC80 NDU0MgorCSogY2ZnZXhwYW5kLmMgKGV4cGFuZF9vbmVfc3RhY2tfdmFyX2F0KTogTGltaXQgYWxp Z24gdG8gbWF4aW11bQorCW9mIG1heF91c2VkX3N0YWNrX3Nsb3RfYWxpZ25tZW50IGFuZCBQUkVG RVJSRURfU1RBQ0tfQk9VTkRBUlkKKwlpbnN0ZWFkIG9mIE1BWF9TVVBQT1JURURfU1RBQ0tfQUxJ R05NRU5ULgorCShleHBhbmRfb25lX3Zhcik6IERvbid0IGNvbnNpZGVyIERFQ0xfQUxJR04gZm9y IHZhcmlhYmxlcyBmb3IKKwl3aGljaCBleHBhbmRfb25lX3N0YWNrX3Zhcl9hdCBoYXMgYmVlbiBh bHJlYWR5IGNhbGxlZC4KKworLS0tIGdjYy9jZmdleHBhbmQuYy5qagkyMDEwLTA2LTE3IDE3OjAx OjExLjk2NDE5ODQ1OCArMDIwMAorKysrIGdjYy9jZmdleHBhbmQuYwkyMDEwLTA2LTE3IDE4OjI1 OjE4Ljk0MDMzNTc1NyArMDIwMAorQEAgLTcwNSw3ICs3MDUsNyBAQCBzdGF0aWMgdm9pZAorIGV4 cGFuZF9vbmVfc3RhY2tfdmFyX2F0ICh0cmVlIGRlY2wsIEhPU1RfV0lERV9JTlQgb2Zmc2V0KQor IHsKKyAgIC8qIEFsaWdubWVudCBpcyB1bnNpZ25lZC4gICAqLworLSAgdW5zaWduZWQgSE9TVF9X SURFX0lOVCBhbGlnbjsKKysgIHVuc2lnbmVkIEhPU1RfV0lERV9JTlQgYWxpZ24sIG1heF9hbGln bjsKKyAgIHJ0eCB4OworIAorICAgLyogSWYgdGhpcyBmYWlscywgd2UndmUgb3ZlcmZsb3dlZCB0 aGUgc3RhY2sgZnJhbWUuICBFcnJvciBuaWNlbHk/ICAqLworQEAgLTcyMiwxMCArNzIyLDEwIEBA IGV4cGFuZF9vbmVfc3RhY2tfdmFyX2F0ICh0cmVlIGRlY2wsIEhPU1QKKyAgICAgICBvZmZzZXQg LT0gZnJhbWVfcGhhc2U7CisgICAgICAgYWxpZ24gPSBvZmZzZXQgJiAtb2Zmc2V0OworICAgICAg IGFsaWduICo9IEJJVFNfUEVSX1VOSVQ7CistICAgICAgaWYgKGFsaWduID09IDApCistCWFsaWdu ID0gU1RBQ0tfQk9VTkRBUlk7CistICAgICAgZWxzZSBpZiAoYWxpZ24gPiBNQVhfU1VQUE9SVEVE X1NUQUNLX0FMSUdOTUVOVCkKKy0JYWxpZ24gPSBNQVhfU1VQUE9SVEVEX1NUQUNLX0FMSUdOTUVO VDsKKysgICAgICBtYXhfYWxpZ24gPSBNQVggKGNydGwtPm1heF91c2VkX3N0YWNrX3Nsb3RfYWxp Z25tZW50LAorKwkJICAgICAgIFBSRUZFUlJFRF9TVEFDS19CT1VOREFSWSk7CisrICAgICAgaWYg KGFsaWduID09IDAgfHwgYWxpZ24gPiBtYXhfYWxpZ24pCisrCWFsaWduID0gbWF4X2FsaWduOwor IAorICAgICAgIERFQ0xfQUxJR04gKGRlY2wpID0gYWxpZ247CisgICAgICAgREVDTF9VU0VSX0FM SUdOIChkZWNsKSA9IDA7CitAQCAtOTMwLDYgKzkzMCwxMyBAQCBleHBhbmRfb25lX3ZhciAodHJl ZSB2YXIsIGJvb2wgdG9wbGV2ZWwsCisgCWFsaWduID0gTUlOSU1VTV9BTElHTk1FTlQgKFRSRUVf VFlQRSAodmFyKSwKKyAJCQkJICAgVFlQRV9NT0RFIChUUkVFX1RZUEUgKHZhcikpLAorIAkJCQkg ICBUWVBFX0FMSUdOIChUUkVFX1RZUEUgKHZhcikpKTsKKysgICAgICBlbHNlIGlmIChERUNMX0hB U19WQUxVRV9FWFBSX1AgKHZhcikKKysJICAgICAgIHx8IChERUNMX1JUTF9TRVRfUCAodmFyKSAm JiBNRU1fUCAoREVDTF9SVEwgKHZhcikpKSkKKysJLyogRG9uJ3QgY29uc2lkZXIgZGVidWcgb25s eSB2YXJpYWJsZXMgd2l0aCBERUNMX0hBU19WQUxVRV9FWFBSX1Agc2V0CisrCSAgIG9yIHZhcmlh YmxlcyB3aGljaCB3ZXJlIGFzc2lnbmVkIGEgc3RhY2sgc2xvdCBhbHJlYWR5IGJ5CisrCSAgIGV4 cGFuZF9vbmVfc3RhY2tfdmFyX2F0IC0gaW4gdGhlIGxhdHRlciBjYXNlIERFQ0xfQUxJR04gaGFz IGJlZW4KKysJICAgY2hhbmdlZCBmcm9tIHRoZSBvZmZzZXQgY2hvc2VuIHRvIGl0LiAgKi8KKysJ YWxpZ24gPSBjcnRsLT5zdGFja19hbGlnbm1lbnRfZXN0aW1hdGVkOworICAgICAgIGVsc2UKKyAJ YWxpZ24gPSBNSU5JTVVNX0FMSUdOTUVOVCAodmFyLCBERUNMX01PREUgKHZhciksIERFQ0xfQUxJ R04gKHZhcikpOworIAoKZGlmZiAtLWdpdCBhL2djYzQ1LXJoMzMwNzcxLnBhdGNoIGIvZ2NjNDUt cmgzMzA3NzEucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQ5MWNj OAotLS0gL2Rldi9udWxsCisrKyBiL2djYzQ1LXJoMzMwNzcxLnBhdGNoCkBAIC0wLDAgKzEsMjcg QEAKKzIwMDctMTAtMTYgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgorCisJKiBN YWtlZmlsZS5hbSAobGliZ2NqX3Rvb2xzX2xhX0xJQkFERCk6IEFkZC4KKwkqIE1ha2VmaWxlLmlu OiBSZWdlbmVyYXRlZC4KKworLS0tIGxpYmphdmEvTWFrZWZpbGUuYW0uamoJMjAwOS0wNS0wNiAw ODoxNDo1MC4wMDAwMDAwMDAgKzAyMDAKKysrKyBsaWJqYXZhL01ha2VmaWxlLmFtCTIwMDktMDUt MDYgMTA6MjY6NDMuMDAwMDAwMDAwICswMjAwCitAQCAtNTEwLDcgKzUxMCw3IEBAIGxpYmdjal90 b29sc19sYV9HQ0pGTEFHUyA9ICQoQU1fR0NKRkxBR1MKKyBsaWJnY2pfdG9vbHNfbGFfTERGTEFH UyA9IC1ycGF0aCAkKHRvb2xleGVjbGliZGlyKSBcCisgIC12ZXJzaW9uLWluZm8gYGdyZXAgLXYg J15cIycgJChzcmNkaXIpL2xpYnRvb2wtdmVyc2lvbmAgXAorICAkKExJQkdDSl9MRF9TWU1CT0xJ Q19GVU5DVElPTlMpICQoTElCSkFWQV9MREZMQUdTX05PVU5ERUYpCistbGliZ2NqX3Rvb2xzX2xh X0xJQkFERCA9IGxpYmdjai5sYSAtbG0KKytsaWJnY2pfdG9vbHNfbGFfTElCQUREID0gLUwkKGhl cmUpLy5saWJzIGxpYmdjai5sYSAtbG0KKyBsaWJnY2pfdG9vbHNfbGFfREVQRU5ERU5DSUVTID0g bGliZ2NqLmxhIGxpYmdjai5zcGVjCisgaWYgQlVJTERfU1VCTElCUworIGxpYmdjal90b29sc19s YV9ERVBFTkRFTkNJRVMgKz0gbGliZ2NqLW5vbmNvcmUubGEKKy0tLSBsaWJqYXZhL01ha2VmaWxl LmluLmpqCTIwMDktMDUtMDYgMDg6MTQ6NDkuMDAwMDAwMDAwICswMjAwCisrKysgbGliamF2YS9N YWtlZmlsZS5pbgkyMDA5LTA1LTA2IDEwOjI3OjE4LjAwMDAwMDAwMCArMDIwMAorQEAgLTExOTAs NyArMTE5MCw3IEBAIGxpYmdjal90b29sc19sYV9MREZMQUdTID0gLXJwYXRoICQodG9vbGUKKyAg LXZlcnNpb24taW5mbyBgZ3JlcCAtdiAnXlwjJyAkKHNyY2RpcikvbGlidG9vbC12ZXJzaW9uYCBc CisgICQoTElCR0NKX0xEX1NZTUJPTElDX0ZVTkNUSU9OUykgJChMSUJKQVZBX0xERkxBR1NfTk9V TkRFRikKKyAKKy1saWJnY2pfdG9vbHNfbGFfTElCQUREID0gbGliZ2NqLmxhIC1sbQorK2xpYmdj al90b29sc19sYV9MSUJBREQgPSAtTCQoaGVyZSkvLmxpYnMgbGliZ2NqLmxhIC1sbQorIGxpYmdj al90b29sc19sYV9ERVBFTkRFTkNJRVMgPSBsaWJnY2oubGEgbGliZ2NqLnNwZWMgJChhbV9fYXBw ZW5kXzIyKQorIGxpYmdjal90b29sc19sYV9MSU5LID0gJChMSUJMSU5LKSAkKGxpYmdjal90b29s c19sYV9MREZMQUdTKQorIGxpYmp2bV9sYV9TT1VSQ0VTID0gam5pLWxpYmp2bS5jYwoKZGlmZiAt LWdpdCBhL2djYzQ1LXNwYXJjLWNvbmZpZy1kZXRlY3Rpb24ucGF0Y2ggYi9nY2M0NS1zcGFyYy1j b25maWctZGV0ZWN0aW9uLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmQ5NGIxN2QKLS0tIC9kZXYvbnVsbAorKysgYi9nY2M0NS1zcGFyYy1jb25maWctZGV0ZWN0aW9u LnBhdGNoCkBAIC0wLDAgKzEsNDAgQEAKKy0tLSBnY2MvY29uZmlnLmdjYy5qagkyMDA4LTA0LTI0 IDE1OjQyOjQ2LjAwMDAwMDAwMCAtMDUwMAorKysrIGdjYy9jb25maWcuZ2NjCTIwMDgtMDQtMjQg MTU6NDQ6NTEuMDAwMDAwMDAwIC0wNTAwCitAQCAtMjM5Myw3ICsyMzkzLDcgQEAgc3BhcmMtKi1l bGYqKQorIAl0bWFrZV9maWxlPSJzcGFyYy90LWVsZiBzcGFyYy90LWNydGZtIgorIAlleHRyYV9w YXJ0cz0iY3J0aS5vIGNydG4ubyBjcnRiZWdpbi5vIGNydGVuZC5vIgorIAk7OworLXNwYXJjLSot bGludXgqKQkJIyBTUEFSQydzIHJ1bm5pbmcgR05VL0xpbnV4LCBsaWJjNgorK3NwYXJjLSotbGlu dXgqIHwgc3BhcmN2OSotKi1saW51eCopCQkjIFNQQVJDJ3MgcnVubmluZyBHTlUvTGludXgsIGxp YmM2CisgCXRtX2ZpbGU9IiR7dG1fZmlsZX0gZGJ4ZWxmLmggZWxmb3MuaCBzdnI0Lmggc3BhcmMv c3lzdjQuaCBsaW51eC5oIGdsaWJjLXN0ZGludC5oIgorIAlleHRyYV9vcHRpb25zPSIke2V4dHJh X29wdGlvbnN9IHNwYXJjL2xvbmctZG91YmxlLXN3aXRjaC5vcHQiCisgCXRtYWtlX2ZpbGU9IiR7 dG1ha2VfZmlsZX0gc3BhcmMvdC1saW51eCIKK0BAIC0yNDgxLDcgKzI0ODEsNyBAQCBzcGFyYzY0 LSotZnJlZWJzZCp8dWx0cmFzcGFyYy0qLWZyZWVic2QqCisgCQkqKSBlY2hvICIkd2l0aF9jcHUg bm90IHN1cHBvcnRlZCBmb3IgZnJlZWJzZCB0YXJnZXQiOyBleGl0IDEgOzsKKyAJZXNhYworIAk7 OworLXNwYXJjNjQtKi1saW51eCopCQkjIDY0LWJpdCBTUEFSQydzIHJ1bm5pbmcgR05VL0xpbnV4 Cisrc3BhcmM2NCotKi1saW51eCopCQkjIDY0LWJpdCBTUEFSQydzIHJ1bm5pbmcgR05VL0xpbnV4 CisgCXRtX2ZpbGU9InNwYXJjL2JpYXJjaDY0LmggJHt0bV9maWxlfSBkYnhlbGYuaCBlbGZvcy5o IHN2cjQuaCBzcGFyYy9zeXN2NC5oIGxpbnV4LmggZ2xpYmMtc3RkaW50Lmggc3BhcmMvbGludXg2 NC5oIgorIAlleHRyYV9vcHRpb25zPSIke2V4dHJhX29wdGlvbnN9IHNwYXJjL2xvbmctZG91Ymxl LXN3aXRjaC5vcHQiCisgCXRtYWtlX2ZpbGU9IiR7dG1ha2VfZmlsZX0gc3BhcmMvdC1saW51eCBz cGFyYy90LWxpbnV4NjQgc3BhcmMvdC1jcnRmbSIKKy0tLSBsaWJnY2MvY29uZmlnLmhvc3QuamoJ MjAwOC0wNC0yNCAxNTo0NjoxOS4wMDAwMDAwMDAgLTA1MDAKKysrKyBsaWJnY2MvY29uZmlnLmhv c3QJMjAwOC0wNC0yNCAxNTo0Njo0OS4wMDAwMDAwMDAgLTA1MDAKK0BAIC01NzIsNyArNTcyLDcg QEAgc3BhcmM2NC0qLW9wZW5ic2QqKQorIAk7OworIHNwYXJjLSotZWxmKikKKyAJOzsKKy1zcGFy Yy0qLWxpbnV4KikJCSMgU1BBUkMncyBydW5uaW5nIEdOVS9MaW51eCwgbGliYzYKKytzcGFyYy0q LWxpbnV4KiB8IHNwYXJjdjkqLSotbGludXgqKQkJIyBTUEFSQydzIHJ1bm5pbmcgR05VL0xpbnV4 LCBsaWJjNgorIAlleHRyYV9wYXJ0cz0iJGV4dHJhX3BhcnRzIGNydGZhc3RtYXRoLm8iCisgCXRt YWtlX2ZpbGU9IiR7dG1ha2VfZmlsZX0gc3BhcmMvdC1jcnRmbSIKKyAJOzsKK0BAIC01OTAsNyAr NTkwLDcgQEAgc3BhcmMtd3JzLXZ4d29ya3MpCisgCTs7Cisgc3BhcmM2NC0qLWZyZWVic2QqfHVs dHJhc3BhcmMtKi1mcmVlYnNkKikKKyAJOzsKKy1zcGFyYzY0LSotbGludXgqKQkJIyA2NC1iaXQg U1BBUkMncyBydW5uaW5nIEdOVS9MaW51eAorK3NwYXJjNjQqLSotbGludXgqKQkJIyA2NC1iaXQg U1BBUkMncyBydW5uaW5nIEdOVS9MaW51eAorIAlleHRyYV9wYXJ0cz0iJGV4dHJhX3BhcnRzIGNy dGZhc3RtYXRoLm8iCisgCXRtYWtlX2ZpbGU9IiR7dG1ha2VfZmlsZX0gc3BhcmMvdC1jcnRmbSIK KyAJOzsKCmRpZmYgLS1naXQgYS9pbXBvcnQubG9nIGIvaW1wb3J0LmxvZwppbmRleCAxNjE1Y2Q4 Li40YTNiMmEyIDEwMDY0NAotLS0gYS9pbXBvcnQubG9nCisrKyBiL2ltcG9ydC5sb2cKQEAgLTIy LDMgKzIyLDQgQEAgZ2NjLTRfNF80LTdfZmMxNDpIRUFEOmdjYy00LjQuNC03LmZjMTQuc3JjLnJw bToxMjc1OTkxMjU2CiBnY2MtNF80XzQtOF9mYzE0OkhFQUQ6Z2NjLTQuNC40LTguZmMxNC5zcmMu cnBtOjEyNzYyNDQ1MTcKIGdjYy00XzRfNC05X2ZjMTQ6SEVBRDpnY2MtNC40LjQtOS5mYzE0LnNy Yy5ycG06MTI3NzQxMDY4OAogZ2NjLTRfNF80LTEwX2ZjMTQ6SEVBRDpnY2MtNC40LjQtMTAuZmMx NC5zcmMucnBtOjEyNzc4ODI5NTgKK2djYy00XzVfMC0xX2ZjMTQ6SEVBRDpnY2MtNC41LjAtMS5m YzE0LnNyYy5ycG06MTI3ODUyNDA2MQoKZGlmZiAtLWdpdCBhL3Byb3RvaXplLjEgYi9wcm90b2l6 ZS4xCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZGRlNzNkLi4wMDAwMDAwCi0tLSBh L3Byb3RvaXplLjEKKysrIC9kZXYvbnVsbApAQCAtMSwyOTEgKzAsMCBAQAotLlwiIENvcHlyaWdo dCAoYykgMTk5MSwgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5 OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24KLS5cIiBTZWUgc2VjdGlvbiBDT1BZSU5HIGZvciBjb25kaXRpb25zIGZvciBy ZWRpc3RyaWJ1dGlvbgotLlwiCi0uVEggcHJvdG9pemUgMSAiOCBEZWNlbWJlciAyMDA2IiAiR0ND IiAiR05VIgotLlNIIE5BTUUKLXByb3RvaXplLCB1bnByb3RvaXplIFwtIGF1dG9tYXRpY2FsbHkg YWRkIG9yIHJlbW92ZSBmdW5jdGlvbiBwcm90b3R5cGVzCi0uU0ggU1lOT1BTSVMKLS5IUCA3Ci1c ZkJwcm90b2l6ZVxmUiBbXC1DZmdrbE5ucXZdIFtcLUIgXGZJRElSRUNUT1JZXGZSXSBbXC1jIFxm SUNPTVBJTEFUSU9OLU9QVElPTlNcZlJdIFtcLWQgXGZJRElSRUNUT1JZXGZSXSBbXC1pIFxmSVNU UklOR1xmUl0gW1wtcCBcZklQUk9HUkFNXGZSXSBbXC14IFxmSUZJTEVcZlJdIFtcZklGSUxFXGZS Li4uXQotLkhQIDcKLVxmQnVucHJvdG9pemVcZlIgW1wtZmtObnF2XSBbXC1jIFxmSUNPTVBJTEFU SU9OLU9QVElPTlNcZlJdIFtcLWQgXGZJRElSRUNUT1JZXGZSXSBbXC1pIFxmSVNUUklOR1xmUl0g W1wtcCBcZklQUk9HUkFNXGZSXSBbXC14IFxmSUZJTEVcZlJdIFtcZklGSUxFXGZSLi4uXQotLlNI IERFU0NSSVBUSU9OCi0uUFAKLVxmQnByb3RvaXplXGZSIGlzIGFuIG9wdGlvbmFsIHBhcnQgb2Yg R0NDLgotWW91IGNhbiB1c2UgaXQgdG8gYWRkIHByb3RvdHlwZXMgdG8gYSBwcm9ncmFtLAotdGh1 cyBjb252ZXJ0aW5nIHRoZSBwcm9ncmFtIHRvIEFOU0kgQyBpbiBvbmUgcmVzcGVjdC4KLVRoZSBj b21wYW5pb24gcHJvZ3JhbQotXGZCdW5wcm90b2l6ZVxmUiBkb2VzIHRoZSByZXZlcnNlOiBpdCBy ZW1vdmVzIGFyZ3VtZW50IHR5cGVzIGZyb20gYW55IHByb3RvdHlwZXMgdGhhdCBhcmUgZm91bmQu Ci0uUFAKLVdoZW4geW91IHJ1biB0aGVzZSBwcm9ncmFtcywgeW91IG11c3Qgc3BlY2lmeSBhIHNl dCBvZiBzb3VyY2UgZmlsZXMKLWFzIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuCi1UaGUgY29udmVy c2lvbiBwcm9ncmFtcyBzdGFydCBvdXQgYnkgY29tcGlsaW5nIHRoZXNlIGZpbGVzCi10byBzZWUg d2hhdCBmdW5jdGlvbnMgdGhleSBkZWZpbmUuCi1UaGUgaW5mb3JtYXRpb24gZ2F0aGVyZWQgYWJv dXQgYSBmaWxlCi1cZklGT09cZlIgaXMgc2F2ZWQgaW4gYSBmaWxlIG5hbWVkIFxmSUZPTy5YXGZS LgotLlBQCi1BZnRlciBzY2FubmluZyBjb21lcyB0aGUgYWN0dWFsIGNvbnZlcnNpb24uCi1UaGUg c3BlY2lmaWVkIGZpbGVzIGFyZSBhbGwgZWxpZ2libGUgdG8gYmUgY29udmVydGVkOwotYW55IGZp bGVzIHRoZXkgaW5jbHVkZSAod2hldGhlciBzb3VyY2VzIG9yIGp1c3QgaGVhZGVycykgYXJlIGVs aWdpYmxlIGFzIHdlbGwuCi0uUFAKLUJ1dCBub3QgYWxsIHRoZSBlbGlnaWJsZSBmaWxlcyBhcmUg Y29udmVydGVkLgotQnkgZGVmYXVsdCwKLVxmQnByb3RvaXplXGZSIGFuZCBcZkJ1bnByb3RvaXpl XGZSCi1jb252ZXJ0IG9ubHkgc291cmNlIGFuZCBoZWFkZXIgZmlsZXMgaW4gdGhlIGN1cnJlbnQg ZGlyZWN0b3J5LgotWW91IGNhbiBzcGVjaWZ5IGFkZGl0aW9uYWwgZGlyZWN0b3JpZXMgd2hvc2Ug ZmlsZXMKLXNob3VsZCBiZSBjb252ZXJ0ZWQgd2l0aCB0aGUKLVxmQlwtZFxmUiBcZklESVJFQ1RP UllcZlIgb3B0aW9uLgotWW91IGNhbiBhbHNvIHNwZWNpZnkgcGFydGljdWxhciBmaWxlcyB0byBl eGNsdWRlIHdpdGggdGhlCi1cZkJcLXhcZlIgXGZJRklMRVxmUiBvcHRpb24uCi1BIGZpbGUgaXMg Y29udmVydGVkIGlmIGl0IGlzIGVsaWdpYmxlLCBpdHMgZGlyZWN0b3J5IG5hbWUgbWF0Y2hlcyBv bmUgb2YgdGhlCi1zcGVjaWZpZWQgZGlyZWN0b3J5IG5hbWVzLCBhbmQgaXRzIG5hbWUgd2l0aGlu IHRoZSBkaXJlY3RvcnkgaGFzIG5vdAotYmVlbiBleGNsdWRlZC4KLS5QUAotQmFzaWMgY29udmVy c2lvbiB3aXRoCi1cZkJwcm90b2l6ZVxmUiBjb25zaXN0cyBvZiByZXdyaXRpbmcgbW9zdCBmdW5j dGlvbiBkZWZpbml0aW9ucyBhbmQgZnVuY3Rpb24gZGVjbGFyYXRpb25zCi10byBzcGVjaWZ5IHRo ZSB0eXBlcyBvZiB0aGUgYXJndW1lbnRzLgotVGhlIG9ubHkgb25lcyBub3QgcmV3cml0dGVuIGFy ZSB0aG9zZSBmb3IgdmFyYXJncyBmdW5jdGlvbnMuCi0uUFAKLVxmQnByb3RvaXplXGZSIG9wdGlv bmFsbHkgaW5zZXJ0cyBwcm90b3R5cGUgZGVjbGFyYXRpb25zIGF0IHRoZSBiZWdpbm5pbmcgb2Yg dGhlIHNvdXJjZSBmaWxlLAotdG8gbWFrZSB0aGVtIGF2YWlsYWJsZSBmb3IgYW55IGNhbGxzIHRo YXQgcHJlY2VkZSB0aGUgZnVuY3Rpb24ncyBkZWZpbml0aW9uLgotT3IgaXQgY2FuIGluc2VydCBw cm90b3R5cGUgZGVjbGFyYXRpb25zIHdpdGggYmxvY2sgc2NvcGUKLWluIHRoZSBibG9ja3Mgd2hl cmUgdW5kZWNsYXJlZCBmdW5jdGlvbnMgYXJlIGNhbGxlZC4KLS5QUAotQmFzaWMgY29udmVyc2lv biB3aXRoCi1cZkJ1bnByb3RvaXplXGZSCi1jb25zaXN0cyBvZiByZXdyaXRpbmcgbW9zdCBmdW5j dGlvbiBkZWNsYXJhdGlvbnMgdG8gcmVtb3ZlIGFueSBhcmd1bWVudCB0eXBlcywKLWFuZCByZXdy aXRpbmcgZnVuY3Rpb24gZGVmaW5pdGlvbnMgdG8gdGhlIG9sZC1zdHlsZSBwcmUtQU5TSSBmb3Jt LgotLlBQCi1Cb3RoIGNvbnZlcnNpb24gcHJvZ3JhbXMgcHJpbnQgYSB3YXJuaW5nIGZvciBhbnkg ZnVuY3Rpb24KLWRlY2xhcmF0aW9uIG9yIGRlZmluaXRpb24gdGhhdCB0aGV5IGNhbid0IGNvbnZl cnQuCi1Zb3UgY2FuIHN1cHByZXNzIHRoZXNlIHdhcm5pbmdzIHdpdGggdGhlCi1cZkJcLXFcZlIg b3B0aW9uLgotLlBQCi1UaGUgb3V0cHV0IGZyb20KLVxmQnByb3RvaXplXGZSIG9yIFxmQnVucHJv dG9pemVcZlIKLXJlcGxhY2VzIHRoZSBvcmlnaW5hbCBzb3VyY2UgZmlsZS4KLVRoZSBvcmlnaW5h bCBmaWxlIGlzIHJlbmFtZWQgdG8gYSBuYW1lIGVuZGluZyB3aXRoCi1cZkkuc2F2ZVxmUi4KLUlm IHRoZSBcZkkuc2F2ZVxmUiBmaWxlIGFscmVhZHkgZXhpc3RzLCB0aGVuIHRoZSBzb3VyY2UgZmls ZSBpcyBzaW1wbHkgZGlzY2FyZGVkLgotLlBQCi1cZkJwcm90b2l6ZVxmUiBhbmQgXGZCdW5wcm90 b2l6ZVxmUiBib3RoIGRlcGVuZCBvbgotXGZCZ2NjXGZSXHwoMSkgdG8gc2NhbiB0aGUgcHJvZ3Jh bSBhbmQgY29sbGVjdCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZnVuY3Rpb25zIGl0IHVzZXMuCi0u UFAKLVRoZSBvcHRpb25zIGFyZSBhcyBmb2xsb3dzOgotLlRQCi1cZkJcLUJcZlIgXGZJRElSRUNU T1JZXGZSCi1Mb29rIGZvciB0aGUgZmlsZQotXGZJU1lTQ0FMTFMuYy5YXGZSIGluIFxmSWRpcmVj dG9yeVxmUiwKLWluc3RlYWQgb2YgdGhlIHVzdWFsIGRpcmVjdG9yeSAobm9ybWFsbHkgXGZJL3Vz ci9sb2NhbC9saWJcZlIpLgotVGhpcyBmaWxlIGNvbnRhaW5zIHByb3RvdHlwZSBpbmZvcm1hdGlv biBhYm91dCBzdGFuZGFyZCBzeXN0ZW0gZnVuY3Rpb25zLgotVGhpcyBvcHRpb24gYXBwbGllcyBv bmx5IHRvIFxmQnByb3RvaXplXGZSLgotLlRQCi1cZkJcLUNcZlIKLVJlbmFtZSBmaWxlcyB0byBl bmQgaW4KLVxmSS5DXGZSIGluc3RlYWQgb2YgXGZJLmNcZlIuCi1UaGlzIGlzIGNvbnZlbmllbnQg aWYgeW91IGFyZSBjb252ZXJ0aW5nIGEgQyBwcm9ncmFtIHRvIEMrKy4KLVRoaXMgb3B0aW9uIGFw cGxpZXMgb25seSB0bwotXGZCcHJvdG9pemVcZlIuCi0uVFAKLVxmQlwtY1xmUiBcZklDT01QSUxB VElPTi1PUFRJT05TXGZSCi1Vc2UgXGZJQ09NUElMQVRJT04tT1BUSU9OU1xmUiBhcyB0aGUgb3B0 aW9ucyB3aGVuIHJ1bm5pbmcgXGZCZ2NjXGZSXHwoMSkgdG8gcHJvZHVjZSB0aGUKLVxmSS5YXGZS IGZpbGVzLgotVGhlIHNwZWNpYWwgb3B0aW9uIFxmQlwtYXV4LWluZm9cZlIgaXMgYWx3YXlzIHBh c3NlZCBpbiBhZGRpdGlvbiwgdG8gdGVsbCBnY2MgdG8gd3JpdGUgYQotXGZJLlhcZlIgZmlsZS4K LU5vdGUgdGhhdCB0aGUgY29tcGlsYXRpb24gb3B0aW9ucyBtdXN0IGJlIGdpdmVuIGFzIGEgc2lu Z2xlIGFyZ3VtZW50IHRvCi1cZkJwcm90b2l6ZVxmUiBvciBcZkJ1bnByb3RvaXplXGZSLgotSWYg eW91IHdhbnQgdG8gc3BlY2lmeSBzZXZlcmFsIGdjYyBvcHRpb25zLCB5b3UgbXVzdCBxdW90ZSB0 aGUgZW50aXJlIHNldCBvZgotY29tcGlsYXRpb24gb3B0aW9ucyB0byBtYWtlIHRoZW0gYSBzaW5n bGUgd29yZCBpbiB0aGUgc2hlbGwuCi1UaGVyZSBhcmUgY2VydGFpbiBnY2MgYXJndW1lbnRzIHRo YXQgeW91IGNhbm5vdCB1c2UsIGJlY2F1c2UgdGhleQotd291bGQgcHJvZHVjZSB0aGUgd3Jvbmcg a2luZCBvZiBvdXRwdXQuCi1UaGVzZSBpbmNsdWRlCi1cZkJcLWdcZlIsIFxmQlwtT1xmUiwgXGZC XC1jXGZSLCBcZkJcLVNcZlIsXGZCXC1vXGZSLgotSWYgeW91IGluY2x1ZGUgdGhlc2UgaW4gdGhl IFxmSUNPTVBJTEFUSU9OLU9QVElPTlNcZlIsIHRoZXkgYXJlIGlnbm9yZWQuCi0uVFAKLVxmQlwt ZFxmUiBcZklESVJFQ1RPUllcZlIKLVNwZWNpZnkgYWRkaXRpb25hbCBkaXJlY3RvcmllcyB3aG9z ZSBmaWxlcyBzaG91bGQgYmUgY29udmVydGVkLgotLlRQCi1cZkJcLWdcZlIKLUFkZCBleHBsaWNp dCBnbG9iYWwgZGVjbGFyYXRpb25zLgotVGhpcyBtZWFucyBpbnNlcnRpbmcgZXhwbGljaXQgZGVj bGFyYXRpb25zIGF0IHRoZSBiZWdpbm5pbmcgb2YgZWFjaAotc291cmNlIGZpbGUgZm9yIGVhY2gg ZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgaW4gdGhlIGZpbGUgYW5kIHdhcyBub3QgZGVjbGFyZWQu Ci1UaGVzZSBkZWNsYXJhdGlvbnMgcHJlY2VkZSB0aGUgZmlyc3QgZnVuY3Rpb24gZGVmaW5pdGlv biB0aGF0IGNvbnRhaW5zIGEKLWNhbGwgdG8gYW4gdW5kZWNsYXJlZCBmdW5jdGlvbi4KLVRoaXMg b3B0aW9uIGFwcGxpZXMgb25seSB0bwotLlxmQnByb3RvaXplXGZSLgotLlRQCi1cZkJcLWlcZlIg XGZJU1RSSU5HXGZSCi1JbmRlbnQgb2xkLXN0eWxlIHBhcmFtZXRlciBkZWNsYXJhdGlvbnMgd2l0 aCB0aGUgc3RyaW5nCi1cZklTVFJJTkdcZlIuCi1UaGlzIG9wdGlvbiBhcHBsaWVzIG9ubHkgdG8K LVxmQnByb3RvaXplXGZSLgotXGZCdW5wcm90b2l6ZVxmUiBjb252ZXJ0cyBwcm90b3R5cGVkIGZ1 bmN0aW9uIGRlZmluaXRpb25zIHRvIG9sZC1zdHlsZQotZnVuY3Rpb24gZGVmaW5pdGlvbnMsIHdo ZXJlIHRoZSBhcmd1bWVudHMgYXJlIGRlY2xhcmVkIGJldHdlZW4gdGhlCi1hcmd1bWVudCBsaXN0 IGFuZCB0aGUgaW5pdGlhbAotXGZCe1xmUi4KLUJ5IGRlZmF1bHQsCi1cZkJ1bnByb3RvaXplXGZS IHVzZXMgZml2ZSBzcGFjZXMgYXMgdGhlIGluZGVudGF0aW9uLgotSWYgeW91IHdhbnQgdG8gaW5k ZW50IHdpdGgganVzdCBvbmUgc3BhY2UgaW5zdGVhZCwgdXNlCi1cZkJcLWkgIiAiXGZSLgotLlRQ Ci1cZkJcLWtcZlIKLUtlZXAgdGhlCi1cZkkuWFxmUiBmaWxlcy4KLU5vcm1hbGx5LCB0aGV5IGFy ZSBkZWxldGVkIGFmdGVyIGNvbnZlcnNpb24gaXMgZmluaXNoZWQuCi0uVFAKLVxmQlwtbFxmUgot QWRkIGV4cGxpY2l0IGxvY2FsIGRlY2xhcmF0aW9ucy4KLVxmQnByb3RvaXplXGZSIHdpdGgKLVxm QlwtbFxmUiBpbnNlcnRzIGEgcHJvdG90eXBlIGRlY2xhcmF0aW9uIGZvciBlYWNoIGZ1bmN0aW9u IGluIGVhY2ggYmxvY2sgd2hpY2ggY2FsbHMKLXRoZSBmdW5jdGlvbiB3aXRob3V0IGFueSBkZWNs YXJhdGlvbi4KLVRoaXMgb3B0aW9uIGFwcGxpZXMgb25seSB0bwotXGZCcHJvdG9pemVcZlIuCi0u VFAKLVxmQlwtTlxmUgotTWFrZSBubyBcZkkuc2F2ZVxmUiBmaWxlcy4KLVRoZSBvcmlnaW5hbCBm aWxlcyBhcmUgc2ltcGx5IGRlbGV0ZWQuCi1Vc2UgdGhpcyBvcHRpb24gd2l0aCBjYXV0aW9uLgot LlRQCi1cZkJcLW5cZlIKLU1ha2Ugbm8gcmVhbCBjaGFuZ2VzLgotVGhpcyBtb2RlIGp1c3QgcHJp bnRzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb252ZXJzaW9ucwotdGhhdCB3b3VsZCBoYXZlIGJl ZW4gZG9uZSB3aXRob3V0Ci1cZkJcLW5cZlIuCi0uVFAKLVxmQlwtcFxmUiBcZklQUk9HUkFNXGZS Ci1Vc2UgdGhlIHByb2dyYW0KLVxmQlBST0dSQU1cZlIgYXMgdGhlIGNvbXBpbGVyLgotTm9ybWFs bHksIHRoZSBuYW1lCi1cZkJnY2NcZlIgaXMgdXNlZC4KLS5UUAotXGZCXC1xXGZSCi1Xb3JrIHF1 aWV0bHkuCi1Nb3N0IHdhcm5pbmdzIGFyZSBzdXBwcmVzc2VkLgotLlRQCi1cZkJcLXZcZlIKLVBy aW50IHRoZSB2ZXJzaW9uIG51bWJlciwganVzdCBsaWtlCi1cZkJcLXZcZlIgZm9yIGdjYy4KLS5U UAotXGZCXC14XGZSIFxmQkZJTEVcZlIKLUxpc3Qgb2YgZmlsZXMgdG8gZXhjbHVkZSBmcm9tIHRo ZSBjb252ZXJzaW9uIHByb2Nlc3MuCi0uUFAKLUlmIHlvdSBuZWVkIHNwZWNpYWwgY29tcGlsZXIg b3B0aW9ucyB0byBjb21waWxlIG9uZSBvZiB5b3VyIHByb2dyYW0ncwotc291cmNlIGZpbGVzLCB0 aGVuIHlvdSBzaG91bGQgZ2VuZXJhdGUgdGhhdCBmaWxlJ3MKLVxmSS5YXGZSIGZpbGUgc3BlY2lh bGx5LCBieSBydW5uaW5nIGdjYyBvbiB0aGF0IHNvdXJjZSBmaWxlIHdpdGgKLXRoZSBhcHByb3By aWF0ZSBvcHRpb25zIGFuZCB0aGUgb3B0aW9uCi1cZkJcLWF1eC1pbmZvXGZSLgotVGhlbiBydW4K LVxmQnByb3RvaXplXGZSIG9uIHRoZSBlbnRpcmUgc2V0IG9mIGZpbGVzLgotXGZCcHJvdG9pemVc ZlIgd2lsbCB1c2UgdGhlIGV4aXN0aW5nCi1cZkkuWFxmUiBmaWxlIGJlY2F1c2UgaXQgaXMgbmV3 ZXIgdGhhbiB0aGUgc291cmNlIGZpbGUuCi1Gb3IgZXhhbXBsZToKLS5QUAotLkRMICQgZ2NjIC1E Zm9vPWJhciBmaWxlMS5jIC1hdXgtaW5mbwotLkRMICQgcHJvdG9pemUgKi5jCi0uUFAKLVlvdSBu ZWVkIHRvIGluY2x1ZGUgdGhlIHNwZWNpYWwgZmlsZXMgYWxvbmcgd2l0aCB0aGUgcmVzdCBpbiB0 aGUKLVxmQnByb3RvaXplXGZSIGNvbW1hbmQsIGV2ZW4gdGhvdWdoIHRoZWlyCi1cZkkuWFxmUiBm aWxlcyBhbHJlYWR5IGV4aXN0LCBiZWNhdXNlIG90aGVyd2lzZSB0aGV5IHdvbid0IGdldCBjb252 ZXJ0ZWQuCi0uUFAKLS5TSCBTRUUgQUxTTwotXGZCZ2NjXGZSXHwoMSksIGFuZCB0aGUgSW5mbyBl bnRyeSBmb3IgXGZCZ2NjXGZSLCBwYXJ0aWN1bGFybHkKLVxmQlJ1bm5pbmcgcHJvdG9pemVcZlIg c2VjdGlvbi4KLS5TSCBISVNUT1JZCi1Sb24gR3VpbG1ldHRlIGltcGxlbWVudGVkIHRoZQotXGZC cHJvdG9pemVcZlIgYW5kIFxmQnVucHJvdG9pemVcZlIgdG9vbHMuCi0uU0ggQVVUSE9SUwotU2Vl IHRoZSBHQ0MgbWFudWFsIGZvciB0aGUgY29udHJpYnV0b3JzIHRvIEdDQy4KLS5TSCBDQVZFQVRT Ci1UaGUgY29udmVyc2lvbiBwcm9ncmFtcyBcZkJwcm90b2l6ZVxmUiBhbmQgXGZCdW5wcm90b2l6 ZVxmUgotY2FuIHNvbWV0aW1lcyBjaGFuZ2UgYSBzb3VyY2UgZmlsZSBpbiBhIHdheSB0aGF0IHdv bid0IHdvcmsKLXVubGVzcyB5b3UgcmVhcnJhbmdlIGl0LgotLlBQCi1cZkJwcm90b2l6ZVxmUiBj YW4gaW5zZXJ0IHJlZmVyZW5jZXMgdG8gYSB0eXBlIG5hbWUgb3IgdHlwZSB0YWcgYmVmb3JlCi10 aGUgZGVmaW5pdGlvbiwgb3IgaW4gYSBmaWxlIHdoZXJlIHRoZXkgYXJlIG5vdCBkZWZpbmVkLgot LlBQCi1JZiB0aGlzIGhhcHBlbnMsIGNvbXBpbGVyIGVycm9yIG1lc3NhZ2VzIHNob3VsZCBpbmRp Y2F0ZSB3aGVyZSB0aGUKLW5ldyByZWZlcmVuY2VzIGFyZSwgc28gZml4aW5nIHRoZSBmaWxlIGJ5 IGhhbmQgaXMgc3RyYWlnaHRmb3J3YXJkLgotLlBQCi1UaGVyZSBhcmUgc29tZSBDIGNvbnN0cnVj dHMgd2hpY2ggXGZCcHJvdG9pemVcZlIKLWNhbm5vdCBmaWd1cmUgb3V0LgotRm9yIGV4YW1wbGUs IGl0IGNhbid0IGRldGVybWluZSBhcmd1bWVudCB0eXBlcyBmb3IgZGVjbGFyaW5nIGEKLXBvaW50 ZXItdG8tZnVuY3Rpb24gdmFyaWFibGU7IHRoaXMgbXVzdCBiZSBkb25lIGJ5IGhhbmQuICBcZkJw cm90b2l6ZVxmUgotaW5zZXJ0cyBhIGNvbW1lbnQgY29udGFpbmluZyBcZkI/Pz9cZlIgZWFjaCB0 aW1lIGl0IGZpbmRzIHN1Y2ggYSB2YXJpYWJsZTsKLWFsbCBzdWNoIHZhcmlhYmxlcyBjYW4gYmUg Zm91bmQgYnkgc2VhcmNoaW5nIGZvciB0aGlzIHN0cmluZy4KLUFOU0kgQyBkb2VzIG5vdCByZXF1 aXJlIGRlY2xhcmluZyB0aGUgYXJndW1lbnQgdHlwZXMgb2YKLXBvaW50ZXItdG8tZnVuY3Rpb24g dHlwZXMuCi0uUFAKLVVzaW5nIFxmQnVucHJvdG9pemVcZlIgY2FuIGVhc2lseSBpbnRyb2R1Y2Ug YnVncy4KLUlmIHRoZSBwcm9ncmFtIHJlbGllZCBvbiBwcm90b3R5cGVzIHRvIGJyaW5nIGFib3V0 IGNvbnZlcnNpb24gb2YgYXJndW1lbnRzLAotdGhlc2UgY29udmVyc2lvbnMgd2lsbCBub3QgdGFr ZSBwbGFjZSBpbiB0aGUgcHJvZ3JhbSB3aXRob3V0IHByb3RvdHlwZXMuCi1PbmUgY2FzZSBpbiB3 aGljaCB5b3UgY2FuIGJlIHN1cmUgXGZCdW5wcm90b2l6ZVxmUgotaXMgc2FmZSBpcyB3aGVuIHlv dSBhcmUgcmVtb3ZpbmcgcHJvdG90eXBlcyB0aGF0IHdlcmUgbWFkZSB3aXRoCi1cZkJwcm90b2l6 ZVxmUjsgaWYgdGhlIHByb2dyYW0gd29ya2VkIGJlZm9yZSB3aXRob3V0IGFueSBwcm90b3R5cGVz LAotaXQgd2lsbCB3b3JrIGFnYWluIHdpdGhvdXQgdGhlbS4KLS5QUAotWW91IGNhbiBmaW5kIGFs bCB0aGUgcGxhY2VzIHdoZXJlIHRoaXMgcHJvYmxlbSBtaWdodCBvY2N1ciBieQotY29tcGlsaW5n IHRoZSBwcm9ncmFtIHdpdGggdGhlIFxmQlwtV2NvbnZlcnNpb25cZlIgb3B0aW9uLgotSXQgcHJp bnRzIGEgd2FybmluZyB3aGVuZXZlciBhbiBhcmd1bWVudCBpcyBjb252ZXJ0ZWQuCi0uUFAKLUJv dGggY29udmVyc2lvbiBwcm9ncmFtcyBjYW4gYmUgY29uZnVzZWQgaWYgdGhlcmUgYXJlIG1hY3Jv IGNhbGxzCi1pbiBhbmQgYXJvdW5kIHRoZSB0ZXh0IHRvIGJlIGNvbnZlcnRlZC4KLUluIG90aGVy IHdvcmRzLCB0aGUgc3RhbmRhcmQgc3ludGF4IGZvciBhIGRlY2xhcmF0aW9uIG9yIGRlZmluaXRp b24KLW11c3Qgbm90IHJlc3VsdCBmcm9tIGV4cGFuZGluZyBhIG1hY3JvLgotVGhpcyBwcm9ibGVt IGlzIGluaGVyZW50IGluIHRoZSBkZXNpZ24gb2YgQyBhbmQgY2Fubm90IGJlIGZpeGVkLgotSWYg b25seSBhIGZldyBmdW5jdGlvbnMgaGF2ZSBjb25mdXNpbmcgbWFjcm8gY2FsbHMsCi15b3UgY2Fu IGVhc2lseSBjb252ZXJ0IHRoZW0gbWFudWFsbHkuCi0uUFAKLVxmQnByb3RvaXplXGZSIGNhbm5v dCBnZXQgdGhlIGFyZ3VtZW50IHR5cGVzIGZvciBhIGZ1bmN0aW9uIHdob3NlIGRlZmluaXRpb24g d2FzIG5vdAotYWN0dWFsbHkgY29tcGlsZWQgZHVlIHRvIHByZXByb2Nlc3NpbmcgY29uZGl0aW9u YWxzLgotV2hlbiB0aGlzIGhhcHBlbnMsIFxmQnByb3RvaXplXGZSIGNoYW5nZXMgbm90aGluZyBp biByZWdhcmQgdG8gc3VjaCBhIGZ1bmN0aW9uLgotXGZCcHJvdG9pemVcZlIgdHJpZXMgdG8gZGV0 ZWN0IHN1Y2ggaW5zdGFuY2VzIGFuZCB3YXJuIGFib3V0IHRoZW0uCi0uUFAKLVlvdSBjYW4gZ2Vu ZXJhbGx5IHdvcmsgYXJvdW5kIHRoaXMgcHJvYmxlbSBieSB1c2luZwotXGZCcHJvdG9pemVcZlIg c3RlcCBieSBzdGVwLCBlYWNoIHRpbWUgc3BlY2lmeWluZyBhIGRpZmZlcmVudCBzZXQgb2YKLVxm QlwtRFxmUiBvcHRpb25zIGZvciBjb21waWxhdGlvbiwgdW50aWwgYWxsIG9mIHRoZSBmdW5jdGlv bnMgaGF2ZSBiZWVuIGNvbnZlcnRlZC4KLVRoZXJlIGlzIG5vIGF1dG9tYXRpYyB3YXkgdG8gdmVy aWZ5IHRoYXQgeW91IGhhdmUgZ290IHRoZW0gYWxsLCBob3dldmVyLgotLlBQCi1Db25mdXNpb24g bWF5IHJlc3VsdCBpZiB0aGVyZSBpcyBhbiBvY2Nhc2lvbiB0byBjb252ZXJ0IGEgZnVuY3Rpb24K LWRlY2xhcmF0aW9uIG9yIGRlZmluaXRpb24gaW4gYSByZWdpb24gb2Ygc291cmNlIGNvZGUgd2hl cmUgdGhlcmUKLWlzIG1vcmUgdGhhbiBvbmUgZm9ybWFsIHBhcmFtZXRlciBsaXN0IHByZXNlbnQu Ci1UaHVzLCBhdHRlbXB0cyB0byBjb252ZXJ0IGNvZGUgY29udGFpbmluZyBtdWx0aXBsZSAoY29u ZGl0aW9uYWxseSBjb21waWxlZCkKLXZlcnNpb25zIG9mIGEgc2luZ2xlIGZ1bmN0aW9uIGhlYWRl ciAoaW4gdGhlIHNhbWUgdmljaW5pdHkpCi1tYXkgbm90IHByb2R1Y2UgdGhlIGRlc2lyZWQgKG9y IGV4cGVjdGVkKSByZXN1bHRzLgotLlBQCi1JZiB5b3UgcGxhbiBvbiBjb252ZXJ0aW5nIHNvdXJj ZSBmaWxlcyB3aGljaCBjb250YWluIHN1Y2ggY29kZSwKLWl0IGlzIHJlY29tbWVuZGVkIHRoYXQg eW91IGZpcnN0IG1ha2Ugc3VyZSB0aGF0IGVhY2ggY29uZGl0aW9uYWxseQotY29tcGlsZWQgcmVn aW9uIG9mIHNvdXJjZSBjb2RlIHdoaWNoIGNvbnRhaW5zIGFuIGFsdGVybmF0aXZlCi1mdW5jdGlv biBoZWFkZXIgYWxzbyBjb250YWlucyBhdCBsZWFzdCBvbmUgYWRkaXRpb25hbCBmb2xsb3dlcgot dG9rZW4gKHBhc3QgdGhlIGZpbmFsIHJpZ2h0IHBhcmVudGhlc2lzIG9mIHRoZSBmdW5jdGlvbiBo ZWFkZXIpLgotVGhpcyBzaG91bGQgY2lyY3VtdmVudCB0aGUgcHJvYmxlbS4KLS5QUAotXGZCdW5w cm90b2l6ZVxmUiBjYW4gYmVjb21lIGNvbmZ1c2VkIHdoZW4gdHJ5aW5nIHRvIGNvbnZlcnQgYSBm dW5jdGlvbgotZGVmaW5pdGlvbiBvciBkZWNsYXJhdGlvbiB3aGljaCBjb250YWlucyBhIGRlY2xh cmF0aW9uIGZvciBhCi1wb2ludGVyLXRvLWZ1bmN0aW9uIGZvcm1hbCBhcmd1bWVudCB3aGljaCBo YXMgdGhlIHNhbWUgbmFtZSBhcyB0aGUKLWZ1bmN0aW9uIGJlaW5nIGRlZmluZWQgb3IgZGVjbGFy ZWQuCi1XZSByZWNvbW1hbmQgeW91IGF2b2lkIHN1Y2ggY2hvaWNlcyBvZiBmb3JtYWwgcGFyYW1l dGVyIG5hbWVzLgotLlBQCi1JdCBtaWdodCBiZSBuZWNlc3NhcnkgdG8gY29ycmVjdCBzb21lIG9m IHRoZSBpbmRlbnRhdGlvbiBieSBoYW5kIGFuZAotYnJlYWsgbG9uZyBsaW5lcy4KLShUaGUgY29u dmVyc2lvbiBwcm9ncmFtcyBkb24ndCB3cml0ZSBsaW5lcyBsb25nZXIgdGhhbiBlaWdodHkgY2hh cmFjdGVycwotaW4gYW55IGNhc2UuKQotLlNIIEJVR1MKLUZvciBpbnN0cnVjdGlvbnMgb24gcmVw b3J0aW5nIGJ1Z3MsIHNlZSB0aGUgR0NDIG1hbnVhbC4KLS5TSCBDT1BZSU5HCi1Db3B5cmlnaHQg MTk5MSwgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwKLTIw MDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCi0uUFAKLVBlcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBtYWtlIGFuZCBkaXN0 cmlidXRlIHZlcmJhdGltIGNvcGllcyBvZgotdGhpcyBtYW51YWwgcHJvdmlkZWQgdGhlIGNvcHly aWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UKLWFyZSBwcmVzZXJ2ZWQgb24g YWxsIGNvcGllcy4KLS5QUAotUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGNvcHkgYW5kIGRpc3Ry aWJ1dGUgbW9kaWZpZWQgdmVyc2lvbnMgb2YgdGhpcwotbWFudWFsIHVuZGVyIHRoZSBjb25kaXRp b25zIGZvciB2ZXJiYXRpbSBjb3B5aW5nLCBwcm92aWRlZCB0aGF0IHRoZQotZW50aXJlIHJlc3Vs dGluZyBkZXJpdmVkIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIGEKLXBl cm1pc3Npb24gbm90aWNlIGlkZW50aWNhbCB0byB0aGlzIG9uZS4KLS5QUAotUGVybWlzc2lvbiBp cyBncmFudGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdHJhbnNsYXRpb25zIG9mIHRoaXMKLW1h bnVhbCBpbnRvIGFub3RoZXIgbGFuZ3VhZ2UsIHVuZGVyIHRoZSBhYm92ZSBjb25kaXRpb25zIGZv ciBtb2RpZmllZAotdmVyc2lvbnMsIGV4Y2VwdCB0aGF0IHRoaXMgcGVybWlzc2lvbiBub3RpY2Ug bWF5IGJlIGluY2x1ZGVkIGluCi10cmFuc2xhdGlvbnMgYXBwcm92ZWQgYnkgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiBpbnN0ZWFkIG9mIGluCi10aGUgb3JpZ2luYWwgRW5nbGlzaC4KCmRp ZmYgLS1naXQgYS9zb3VyY2VzIGIvc291cmNlcwppbmRleCA5ZWNiZTZlLi5iZDdhNzM0IDEwMDY0 NAotLS0gYS9zb3VyY2VzCisrKyBiL3NvdXJjZXMKQEAgLTEsMiArMSwyIEBACiAyNjU5ZjA5YzJl NDNlZjhiN2Q0NDA2MzIxNzUzZjFiMiAgZmFzdGphci0wLjk3LnRhci5negotMWU1YTNkYzgwNjNl YTE3ZWQ5MjkzOWNkMDFkMjQ0ZDAgIGdjYy00LjQuNC0yMDEwMDYzMC50YXIuYnoyCitjYmE0ZWVj OTg1Mzg0MTcwNjc0Nzk4N2ZiMWJjNThjNSAgZ2NjLTQuNS4wLTIwMTAwNzA3LnRhci5iejIK