From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 25259 invoked from network); 16 May 2022 21:43:54 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 16 May 2022 21:43:54 -0000 Content-Type: multipart/mixed; boundary="===============3133399171657505579==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_poppler=3A_update_to_22=2E04=2E0?= To: ml@inbox.vuxu.org From: oreo639 Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Mon, 16 May 2022 23:43:54 +0200 List-Id: Message-ID: <20220516214354.FrqER3sx43Kex67o-WxOFvJnimuY2Oa-wpLvteKyvJ4@z> GitHub notification mails are now in MIME to allow UTF8. --===============3133399171657505579== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgb3JlbzYzOSBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vb3Jl bzYzOS92b2lkLXBhY2thZ2VzIHBvcHBsZXIKaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgv dm9pZC1wYWNrYWdlcy9wdWxsLzM2MzUxCgpwb3BwbGVyOiB1cGRhdGUgdG8gMjIuMDQuMAo8IS0t IFVuY29tbWVudCByZWxldmFudCBzZWN0aW9ucyBhbmQgZGVsZXRlIG9wdGlvbnMgd2hpY2ggYXJl IG5vdCBhcHBsaWNhYmxlIC0tPg0KDQojIyMjIFRlc3RpbmcgdGhlIGNoYW5nZXMNCi0gSSB0ZXN0 ZWQgdGhlIGNoYW5nZXMgaW4gdGhpcyBQUjogKipicmllZmx5KioNCg0KPCEtLQ0KIyMjIyBOZXcg cGFja2FnZQ0KLSBUaGlzIG5ldyBwYWNrYWdlIGNvbmZvcm1zIHRvIHRoZSBbcXVhbGl0eSByZXF1 aXJlbWVudHNdKGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvYmxv Yi9tYXN0ZXIvTWFudWFsLm1kI3F1YWxpdHktcmVxdWlyZW1lbnRzKTogKipZRVMqKnwqKk5PKioN Ci0tPg0KDQo8IS0tIE5vdGU6IElmIHRoZSBidWlsZCBpcyBsaWtlbHkgdG8gdGFrZSBtb3JlIHRo YW4gMiBob3VycywgcGxlYXNlIFtza2lwIENJXShodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51 eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVyL0NPTlRSSUJVVElORy5tZCNjb250aW51b3VzLWlu dGVncmF0aW9uKQ0KYW5kIHRlc3QgYXQgbGVhc3Qgb25lIG5hdGl2ZSBidWlsZCBhbmQsIGlmIHN1 cHBvcnRlZCwgYXQgbGVhc3Qgb25lIGNyb3NzIGJ1aWxkLg0KSWdub3JlIHRoaXMgc2VjdGlvbiBp ZiB0aGlzIFBSIGlzIG5vdCBza2lwcGluZyBDSS4NCi0tPg0KPCEtLSANCiMjIyMgTG9jYWwgYnVp bGQgdGVzdGluZw0KLSBJIGJ1aWx0IHRoaXMgUFIgbG9jYWxseSBmb3IgbXkgbmF0aXZlIGFyY2hp dGVjdHVyZSwgKEFSQ0gtTElCQykNCi0gSSBidWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIHRoZXNl IGFyY2hpdGVjdHVyZXMgKGlmIHN1cHBvcnRlZC4gbWFyayBjcm9zc2J1aWxkcyk6DQogIC0gYWFy Y2g2NC1tdXNsDQogIC0gYXJtdjdsDQogIC0gYXJtdjZsLW11c2wNCi0tPg0KCgpBIHBhdGNoIGZp bGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwv MzYzNTEucGF0Y2ggaXMgYXR0YWNoZWQ= --===============3133399171657505579== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-poppler-36351.patch" RnJvbSBmZTVlMzA2Njg1MzMzZmQxMDViZjk5MTMwMjdmNzA3YjM3MzI0NDllIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDwzMTkxNjM3OStPcmVvNjM5QHVzZXJzLm5vcmVw bHkuZ2l0aHViLmNvbT4KRGF0ZTogRnJpLCAyNSBNYXIgMjAyMiAxODoyODowOCAtMDcwMApTdWJq ZWN0OiBbUEFUQ0ggMS84XSBwb3BwbGVyOiB1cGRhdGUgdG8gMjIuMDQuMAoKLS0tCiBjb21tb24v c2hsaWJzICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyY3BrZ3MvcG9wcGxl ci9wYXRjaGVzL2ZpeC1jZmxhZ3MucGF0Y2ggfCAyMSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHNy Y3BrZ3MvcG9wcGxlci90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgfCAxMyArKysrKysrKystLS0t CiAzIGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDI2IGRlbGV0aW9ucygtKQogZGVs ZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcG9wcGxlci9wYXRjaGVzL2ZpeC1jZmxhZ3MucGF0Y2gK CmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCA4ZjU2NzBl MjE0ODQuLjU3ODg5ZjMyZGE1OCAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21t b24vc2hsaWJzCkBAIC0zNDcsNyArMzQ3LDcgQEAgbGliTWFnaWNrQ29yZS02LlExNi5zby43IGxp Ym1hZ2ljazYtNi45LjExLjYxXzEKIGxpYk1hZ2lja1dhbmQtNi5RMTYuc28uNyBsaWJtYWdpY2s2 LTYuOS4xMS42MV8xCiBsaWJNYWdpY2srKy02LlExNi5zby45IGxpYm1hZ2ljazYtNi45LjEyLjFf MQogbGlibHRkbC5zby43IGxpYmx0ZGwtMi4yLjZfMQotbGlicG9wcGxlci5zby4xMTEgbGlicG9w cGxlci0yMS4wNy4wXzEKK2xpYnBvcHBsZXIuc28uMTIwIGxpYnBvcHBsZXItMjIuMDQuMF8xCiBs aWJwb3BwbGVyLWdsaWIuc28uOCBwb3BwbGVyLWdsaWItMC4xOC4yXzEKIGxpYnBvcHBsZXItY3Bw LnNvLjAgcG9wcGxlci1jcHAtMC4xOC4yXzEKIGxpYnBvcHBsZXItcXQ1LnNvLjEgcG9wcGxlci1x dDUtMC4zMS4wXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcG9wcGxlci9wYXRjaGVzL2ZpeC1jZmxh Z3MucGF0Y2ggYi9zcmNwa2dzL3BvcHBsZXIvcGF0Y2hlcy9maXgtY2ZsYWdzLnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMWE0MDhkMDNjY2UuLjAwMDAwMDAwMDAwMAotLS0g YS9zcmNwa2dzL3BvcHBsZXIvcGF0Y2hlcy9maXgtY2ZsYWdzLnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsMjEgKzAsMCBAQAotZGlmZiAtLWdpdCBhL2NtYWtlL21vZHVsZXMvUG9wcGxlck1hY3Jv cy5jbWFrZSBiL2NtYWtlL21vZHVsZXMvUG9wcGxlck1hY3Jvcy5jbWFrZQotaW5kZXggZmUxMTgy ZC4uNjAxM2JkMiAxMDA2NDQKLS0tLSBhL2NtYWtlL21vZHVsZXMvUG9wcGxlck1hY3Jvcy5jbWFr ZQotKysrIGIvY21ha2UvbW9kdWxlcy9Qb3BwbGVyTWFjcm9zLmNtYWtlCi1AQCAtMTA0LDE0ICsx MDQsMTQgQEAgaWYoQ01BS0VfQ09NUElMRVJfSVNfR05VQ1hYKQotICAgc2V0KERFRkFVTFRfQ09N UElMRV9XQVJOSU5HU19FWFRSQSAiJHtfd2Fybn0gJHtfd2Fybnh9IikKLSAKLSAgIHNldChfc2F2 ZV9jeHhmbGFncyAiJHtDTUFLRV9DWFhfRkxBR1N9IikKLS0gIHNldChDTUFLRV9DWFhfRkxBR1Mg ICAgICAgICAgICAgICAgIi1mbm8tZXhjZXB0aW9ucyAtZm5vLWNoZWNrLW5ldyAtZm5vLWNvbW1v biAtZm5vLW9wZXJhdG9yLW5hbWVzIC1EX0RFRkFVTFRfU09VUkNFIikKLSsgIHNldChDTUFLRV9D WFhfRkxBR1MgICAgICAgICAgICAgICAgIi1mbm8tZXhjZXB0aW9ucyAtZm5vLWNoZWNrLW5ldyAt Zm5vLWNvbW1vbiAtZm5vLW9wZXJhdG9yLW5hbWVzIC1EX0RFRkFVTFRfU09VUkNFICR7X3NhdmVf Y3h4ZmxhZ3N9IikKLSAgIHNldChDTUFLRV9DWFhfRkxBR1NfUkVMV0lUSERFQklORk8gIi1PMiAt ZyAke19zYXZlX2N4eGZsYWdzfSIpCi0gICBzZXQoQ01BS0VfQ1hYX0ZMQUdTX1JFTEVBU0UgICAg ICAgICItTzIgLUROREVCVUcgJHtfc2F2ZV9jeHhmbGFnc30iKQotICAgc2V0KENNQUtFX0NYWF9G TEFHU19ERUJVRyAgICAgICAgICAiLWcgLU8yIC1mbm8tcmVvcmRlci1ibG9ja3MgLWZuby1zY2hl ZHVsZS1pbnNucyAtZm5vLWlubGluZSAke19zYXZlX2N4eGZsYWdzfSIpCi0gICBzZXQoQ01BS0Vf Q1hYX0ZMQUdTX0RFQlVHRlVMTCAgICAgICItZzMgLWZuby1pbmxpbmUgJHtfc2F2ZV9jeHhmbGFn c30iKQotICAgc2V0KENNQUtFX0NYWF9GTEFHU19QUk9GSUxFICAgICAgICAiLWczIC1mbm8taW5s aW5lIC1mdGVzdC1jb3ZlcmFnZSAtZnByb2ZpbGUtYXJjcyAke19zYXZlX2N4eGZsYWdzfSIpCi0g ICBzZXQoX3NhdmVfY2ZsYWdzICIke0NNQUtFX0NfRkxBR1N9IikKLS0gIHNldChDTUFLRV9DX0ZM QUdTICAgICAgICAgICAgICAgICAgIi1zdGQ9Yzk5IC1EX0RFRkFVTFRfU09VUkNFIikKLSsgIHNl dChDTUFLRV9DX0ZMQUdTICAgICAgICAgICAgICAgICAgIi1zdGQ9Yzk5IC1EX0RFRkFVTFRfU09V UkNFICR7X3NhdmVfY2ZsYWdzfSIpCi0gICBzZXQoQ01BS0VfQ19GTEFHU19SRUxXSVRIREVCSU5G TyAgICItTzIgLWcgJHtfc2F2ZV9jZmxhZ3N9IikKLSAgIHNldChDTUFLRV9DX0ZMQUdTX1JFTEVB U0UgICAgICAgICAgIi1PMiAtRE5ERUJVRyAke19zYXZlX2NmbGFnc30iKQotICAgc2V0KENNQUtF X0NfRkxBR1NfREVCVUcgICAgICAgICAgICAiLWcgLU8yIC1mbm8tcmVvcmRlci1ibG9ja3MgLWZu by1zY2hlZHVsZS1pbnNucyAtZm5vLWlubGluZSAke19zYXZlX2NmbGFnc30iKQpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9wb3BwbGVyL3RlbXBsYXRlIGIvc3JjcGtncy9wb3BwbGVyL3RlbXBsYXRlCmlu ZGV4IDBhYTRlZGYyMGI1Ny4uNTRiMDNmMDRlOGJjIDEwMDY0NAotLS0gYS9zcmNwa2dzL3BvcHBs ZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9wb3BwbGVyL3RlbXBsYXRlCkBAIC0zLDEzICszLDE1 IEBACiAjIFRISVMgUEtHIE1VU1QgQkUgU1lOQ0hST05JWkVEIFdJVEggInNyY3BrZ3MvcG9wcGxl ci1xdDUiLgogIwogcGtnbmFtZT1wb3BwbGVyCi12ZXJzaW9uPTIxLjA3LjAKK3ZlcnNpb249MjIu MDQuMAogcmV2aXNpb249MQorX3Rlc3RWZXJzaW9uPTA3NjJlMDE0NDE0M2U2ODBlMjRlYzhkNGMz NGM0NmMzNzE2Yjg3MTMKIGJ1aWxkX3N0eWxlPWNtYWtlCiBidWlsZF9oZWxwZXI9ImdpciIKIGNv bmZpZ3VyZV9hcmdzPSItREVOQUJMRV9VTlNUQUJMRV9BUElfQUJJX0hFQURFUlM9T04gLURFTkFC TEVfQ1BQPU9OCiAgLURFTkFCTEVfR0xJQj1PTiAtREVOQUJMRV9HT0JKRUNUX0lOVFJPU1BFQ1RJ T049JCh2b3B0X2lmIGdpciBPTiBPRkYpCi0gLURFTkFCTEVfUVQ1PU9GRiAtREVOQUJMRV9VVElM Uz1PTiAtREVOQUJMRV9CT09TVD0kKHZvcHRfaWYgYm9vc3QgT04gT0ZGKSIKKyAtREVOQUJMRV9R VDU9T0ZGIC1ERU5BQkxFX1VUSUxTPU9OIC1ERU5BQkxFX0JPT1NUPSQodm9wdF9pZiBib29zdCBP TiBPRkYpCisgLURDTUFLRV9CVUlMRF9UWVBFPVJFTEVBU0UgLURURVNUREFUQURJUj0nJHtYQlBT X0JVSUxERElSfS90ZXN0LSR7X3Rlc3RWZXJzaW9ufSciCiBob3N0bWFrZWRlcGVuZHM9InBrZy1j b25maWcgZ2xpYi1kZXZlbCIKIG1ha2VkZXBlbmRzPSJsaWJwbmctZGV2ZWwgbGliZ2xpYi1kZXZl bCBjYWlyby1kZXZlbCB0aWZmLWRldmVsIGxjbXMyLWRldmVsCiBsaWJjdXJsLWRldmVsIGxpYm9w ZW5qcGVnMi1kZXZlbCAkKHZvcHRfaWYgYm9vc3QgYm9vc3QtZGV2ZWwpIgpAQCAtMTcsOCArMTks MTEgQEAgc2hvcnRfZGVzYz0iUERGIHJlbmRlcmluZyBsaWJyYXJ5IgogbWFpbnRhaW5lcj0iT3Jw aGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIs IEdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9wb3BwbGVyLmZyZWVkZXNrdG9w Lm9yZyIKLWRpc3RmaWxlcz0iJHtob21lcGFnZX0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54 eiIKLWNoZWNrc3VtPWUyNmFiMjlmNjgwNjVkZTRkNjU2MmYwYTNlMmI1NDM1YTgzY2E5MmJlNTcz Yjk5YTFjODE5OThmYTI4NmE0ZDQKK2NoYW5nZWxvZz0iaHR0cHM6Ly9naXRsYWIuZnJlZWRlc2t0 b3Aub3JnL3BvcHBsZXIvcG9wcGxlci8tL3Jhdy9tYXN0ZXIvTkVXUyIKK2Rpc3RmaWxlcz0iJHto b21lcGFnZX0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54egorIGh0dHBzOi8vZ2l0bGFiLmZy ZWVkZXNrdG9wLm9yZy9wb3BwbGVyL3Rlc3QvLS9hcmNoaXZlLyR7X3Rlc3RWZXJzaW9ufS90ZXN0 LSR7X3Rlc3RWZXJzaW9ufS50YXIuZ3oiCitjaGVja3N1bT0iODEzZmI0YjkwZTdiZGE2M2RmNTMy MDVjNTQ4NjAyYmFlNzI4ODg3YTYwZjQwNDhhYWU0ZGJkOWIxOTI3ZGVmZgorIDIxNDAxMDQwZDVj Y2YwNWU5ZWQ4NWMwOWE1ZGUyMjVkMDViMjcwZjhiYTc1OTIxYWY4ZmY2NzExNGYyMzEzYTYiCiAK IGJ1aWxkX29wdGlvbnM9ImdpciBib29zdCIKIGJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIGJv b3N0IgoKRnJvbSAzMDMzMDMyNTU2ZjZhNDlhMzg1ODBkZWYyMjM1NzA5M2ViMmZlZWU3IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDwzMTkxNjM3OStPcmVvNjM5QHVzZXJz Lm5vcmVwbHkuZ2l0aHViLmNvbT4KRGF0ZTogRnJpLCAyNSBNYXIgMjAyMiAxODoyOTowMiAtMDcw MApTdWJqZWN0OiBbUEFUQ0ggMi84XSBwb3BwbGVyLXF0NTogdXBkYXRlIHRvIDIyLjA0LjAKCi0t LQogc3JjcGtncy9wb3BwbGVyLXF0NS9wYXRjaGVzICB8IDEgLQogc3JjcGtncy9wb3BwbGVyLXF0 NS90ZW1wbGF0ZSB8IDggKysrKystLS0KIDIgZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCsp LCA0IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3MvcG9wcGxlci1xdDUv cGF0Y2hlcwoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcG9wcGxlci1xdDUvcGF0Y2hlcyBiL3NyY3Br Z3MvcG9wcGxlci1xdDUvcGF0Y2hlcwpkZWxldGVkIGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggNjM2 ZTRhYzJjYmQ5Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9wb3BwbGVyLXF0NS9wYXRjaGVz CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotLi4vcG9wcGxlci9wYXRjaGVzClwgTm8gbmV3 bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9wb3BwbGVyLXF0NS90ZW1w bGF0ZSBiL3NyY3BrZ3MvcG9wcGxlci1xdDUvdGVtcGxhdGUKaW5kZXggMmExNWY1NjEyOGMxLi45 NzA3Y2Q3YmViMTIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcG9wcGxlci1xdDUvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9wb3BwbGVyLXF0NS90ZW1wbGF0ZQpAQCAtNCwxMiArNCwxMyBAQAogIyBJVCBJ UyBTUExJVCBUTyBBVk9JRCBBIENZQ0xJQyBERVBFTkRFTkNZOiBxdDUgLT4gY3VwcyAtPiBwb3Bw bGVyIC0+IHF0NS4KICMKIHBrZ25hbWU9cG9wcGxlci1xdDUKLXZlcnNpb249MjEuMDcuMAordmVy c2lvbj0yMi4wNC4wCiByZXZpc2lvbj0xCiB3cmtzcmM9InBvcHBsZXItJHt2ZXJzaW9ufSIKIGJ1 aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURFTkFCTEVfVU5TVEFCTEVfQVBJX0FC SV9IRUFERVJTPU9OIC1ERU5BQkxFX0dMSUI9T0ZGCi0gLURFTkFCTEVfUVQ1PU9OIC1ERU5BQkxF X1VUSUxTPU9GRiAtREVOQUJMRV9DUFA9T0ZGIC1ERU5BQkxFX0JPT1NUPU9GRiIKKyAtREVOQUJM RV9RVDU9T04gLURFTkFCTEVfVVRJTFM9T0ZGIC1ERU5BQkxFX0NQUD1PRkYgLURFTkFCTEVfQk9P U1Q9T0ZGCisgLURDTUFLRV9CVUlMRF9UWVBFPVJFTEVBU0UiCiBob3N0bWFrZWRlcGVuZHM9InBr Zy1jb25maWcgcXQ1LWRldmVsIgogbWFrZWRlcGVuZHM9ImxpYnBuZy1kZXZlbCB0aWZmLWRldmVs IGxjbXMyLWRldmVsIGxpYmN1cmwtZGV2ZWwKICBmb250Y29uZmlnLWRldmVsIGNhaXJvLWRldmVs IGxpYm9wZW5qcGVnMi1kZXZlbCBxdDUtZGV2ZWwiCkBAIC0xNyw4ICsxOCw5IEBAIHNob3J0X2Rl c2M9IlBERiByZW5kZXJpbmcgbGlicmFyeSAtIFF0NSBiaW5kaW5ncyIKIG1haW50YWluZXI9Ik9y cGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVy LCBHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vcG9wcGxlci5mcmVlZGVza3Rv cC5vcmciCitjaGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0bGFiLmZyZWVkZXNrdG9wLm9yZy9wb3BwbGVy L3BvcHBsZXIvLS9yYXcvbWFzdGVyL05FV1MiCiBkaXN0ZmlsZXM9IiR7aG9tZXBhZ2V9L3BvcHBs ZXItJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1lMjZhYjI5ZjY4MDY1ZGU0ZDY1NjJmMGEz ZTJiNTQzNWE4M2NhOTJiZTU3M2I5OWExYzgxOTk4ZmEyODZhNGQ0CitjaGVja3N1bT04MTNmYjRi OTBlN2JkYTYzZGY1MzIwNWM1NDg2MDJiYWU3Mjg4ODdhNjBmNDA0OGFhZTRkYmQ5YjE5MjdkZWZm CiAjIGZhaWxzIHRvIGZpbmQgYSBidW5jaCBvZiBmaWxlcwogbWFrZV9jaGVjaz1ubwogCgpGcm9t IGU2NTIzNWEwMDEwYzcwNWJmNDNjYWZiMTQwZDAyZmFmZTQwYTdiMmIgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IG9yZW82MzkgPDMxOTE2Mzc5K09yZW82MzlAdXNlcnMubm9yZXBseS5n aXRodWIuY29tPgpEYXRlOiBGcmksIDI1IE1hciAyMDIyIDE4OjI5OjMyIC0wNzAwClN1YmplY3Q6 IFtQQVRDSCAzLzhdIHBvcHBsZXItZGF0YTogdXBkYXRlIHRvIDAuNC4xMQoKLS0tCiBzcmNwa2dz L3BvcHBsZXItZGF0YS90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0 aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3BvcHBsZXItZGF0 YS90ZW1wbGF0ZSBiL3NyY3BrZ3MvcG9wcGxlci1kYXRhL3RlbXBsYXRlCmluZGV4IDQ4ZGJhMjQ5 N2ZiNi4uNGI2ZTk1NmI3YjcyIDEwMDY0NAotLS0gYS9zcmNwa2dzL3BvcHBsZXItZGF0YS90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL3BvcHBsZXItZGF0YS90ZW1wbGF0ZQpAQCAtMSwxMyArMSwxMyBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncG9wcGxlci1kYXRhJwogcGtnbmFtZT1wb3BwbGVyLWRh dGEKLXZlcnNpb249MC40LjEwCit2ZXJzaW9uPTAuNC4xMQogcmV2aXNpb249MQogc2hvcnRfZGVz Yz0iRW5jb2RpbmcgZGF0YSBmb3IgdGhlIHBvcHBsZXIgUERGIHJlbmRlcmluZyBsaWJyYXJ5Igog bWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9Ik1J VCwgR1BMLTIuMC1vci1sYXRlciwgQlNELTMtQ2xhdXNlIgogaG9tZXBhZ2U9Imh0dHBzOi8vcG9w cGxlci5mcmVlZGVza3RvcC5vcmcvIgogZGlzdGZpbGVzPSJodHRwczovL3BvcHBsZXIuZnJlZWRl c2t0b3Aub3JnLyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIuZ3oiCi1jaGVja3N1bT02ZTJmY2Vm NjZlYzhjNDQ2MjVmOTQyOTJjY2Y4YWY5ZjFkOTE4YjQxMGQ1YWE2OWMyNzRjZTY3Mzg3OTY3YjMw CitjaGVja3N1bT0yY2VjMDVjZDFiYjAzYWY5OGE4YjA2YTFlMjJmNmU2ZTFhNjViMWUyZjM4MTZj YjMwNjliYjA4NzQ4MjVmMDhjCiAKIGRvX2luc3RhbGwoKSB7CiAJbWFrZSBwcmVmaXg9L3VzciBE RVNURElSPSR7REVTVERJUn0gaW5zdGFsbAoKRnJvbSAwYWJiYmIzN2Y2ODVkMmViZGZmNGRhZjkz MWNjYmE4MWI5Nzc3ZDg1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDwz MTkxNjM3OStPcmVvNjM5QHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT4KRGF0ZTogRnJpLCAyNSBN YXIgMjAyMiAxODozMzozMiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggNC84XSBjYWxsaWdyYTogcmVi dWlsZCBhZ2FpbnN0IGxpYnBvcHBsZXIgMjIuMDQuMAoKLS0tCiAuLi4vcGF0Y2hlcy8wMDAxLUZp eC1zb21lLW1vcmUtd2FybmluZ3MucGF0Y2ggfCA0NDAgKysrKysrKysrKysrKysrKysrCiAuLi4v MDAwMi1NYWtlLXNob3ctaGlkZGVuLXJvdy1zLXdvcmsucGF0Y2ggICAgfCAgMjkgKysKIHNyY3Br Z3MvY2FsbGlncmEvcGF0Y2hlcy9jKysxNy5wYXRjaCAgICAgICAgICB8ICAxNiArCiAuLi4vcGF0 Y2hlcy9wb3BwbGVyLTIyLjAzLjAtZml4LnBhdGNoICAgICAgICAgfCAgNzAgKysrCiAuLi4vcGF0 Y2hlcy9wb3BwbGVyLTIyLjA0LjAtZml4LnBhdGNoICAgICAgICAgfCAgOTEgKysrKwogNSBmaWxl cyBjaGFuZ2VkLCA2NDYgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv Y2FsbGlncmEvcGF0Y2hlcy8wMDAxLUZpeC1zb21lLW1vcmUtd2FybmluZ3MucGF0Y2gKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2NhbGxpZ3JhL3BhdGNoZXMvMDAwMi1NYWtlLXNob3ctaGlk ZGVuLXJvdy1zLXdvcmsucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2NhbGxpZ3Jh L3BhdGNoZXMvYysrMTcucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2NhbGxpZ3Jh L3BhdGNoZXMvcG9wcGxlci0yMi4wMy4wLWZpeC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvY2FsbGlncmEvcGF0Y2hlcy9wb3BwbGVyLTIyLjA0LjAtZml4LnBhdGNoCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9jYWxsaWdyYS9wYXRjaGVzLzAwMDEtRml4LXNvbWUtbW9yZS13YXJuaW5n cy5wYXRjaCBiL3NyY3BrZ3MvY2FsbGlncmEvcGF0Y2hlcy8wMDAxLUZpeC1zb21lLW1vcmUtd2Fy bmluZ3MucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi42Y2Mx MzI5MjViMTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2NhbGxpZ3JhL3BhdGNoZXMvMDAw MS1GaXgtc29tZS1tb3JlLXdhcm5pbmdzLnBhdGNoCkBAIC0wLDAgKzEsNDQwIEBACitGcm9tIDA2 OGNkOWFlYzExMDUyNzMzZTM5Mzk3NjE0MjUxNmQyMTkwZTQ1NjQgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCitGcm9tOiBQaWVycmUgRHVjcm9xdWV0IDxwaW5hcmFmQHBpbmFyYWYuaW5mbz4KK0Rh dGU6IFN1biwgMjggRmViIDIwMjEgMjM6MjM6MDIgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gRml4 IHNvbWUgbW9yZSB3YXJuaW5ncworCistLS0KKyBmaWx0ZXJzL2xpYm1zb294bWwvTXNvb1htbERp YWdyYW1SZWFkZXJfcC5jcHAgICAgICAgIHwgIDEgKworIGZpbHRlcnMvc2hlZXRzL2Nzdi9jc3Zp bXBvcnQuY2MgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQorIGZpbHRlcnMvc2hlZXRzL2V4 Y2VsL3NpZGV3aW5kZXIvZXhjZWwuY3BwICAgICAgICAgICAgfCAgMSArCisgZmlsdGVycy9zaGVl dHMvZXhjZWwvc2lkZXdpbmRlci9mb3JtdWxhcy5jcHAgICAgICAgICB8ICAyICstCisgZmlsdGVy cy9zaGVldHMvZ251bWVyaWMvZ251bWVyaWNleHBvcnQuY2MgICAgICAgICAgICB8ICA1ICsrLS0t CisgZmlsdGVycy9zaGVldHMvaHRtbC9odG1sZXhwb3J0LmNjICAgICAgICAgICAgICAgICAgICB8 ICAyIC0tCisgZmlsdGVycy9zaGVldHMvbGF0ZXgvZXhwb3J0L2xhdGV4ZXhwb3J0LmNjICAgICAg ICAgICB8ICAxIC0KKyBmaWx0ZXJzL3NoZWV0cy9sYXRleC9leHBvcnQvdGFibGUuY2MgICAgICAg ICAgICAgICAgIHwgIDEgKworIGZpbHRlcnMvc2hlZXRzL3hsc3gvWGxzeFhtbFdvcmtzaGVldFJl YWRlci5jcHAgICAgICAgfCAgMSAtCisgZmlsdGVycy9zdGFnZS9wcHR4L1BwdHhYbWxEb2N1bWVu dFJlYWRlci5jcHAgICAgICAgICB8ICAyICstCisgZmlsdGVycy93b3Jkcy9tc3dvcmQtb2RmL3Rl eHRoYW5kbGVyLmNwcCAgICAgICAgICAgICB8ICAyICsrCisgZmlsdGVycy93b3Jkcy9tc3dvcmQt b2RmL3d2Mi9zcmMvcGFyc2VyOXguY3BwICAgICAgICB8ICA0ICsrKy0KKyBmaWx0ZXJzL3dvcmRz L21zd29yZC1vZGYvd3YyL3NyYy9zdHlsZXMuY3BwICAgICAgICAgIHwgIDQgKy0tLQorIGZpbHRl cnMvd29yZHMvbXN3b3JkLW9kZi93djIvc3JjL3N0eWxlcy5oICAgICAgICAgICAgfCAxMSArKysr KysrKy0tLQorIGdlbWluaS9saWIvR2VtaW5pTWFpbldpbmRvdy5jcHAgICAgICAgICAgICAgICAg ICAgICAgfCAgMiArKworIGxpYnMvcGFnZWFwcC9Lb1BBT2RmUGFnZVNhdmVIZWxwZXIuY3BwICAg ICAgICAgICAgICAgfCAgMiArLQorIHBsdWdpbnMvc3BhY2VuYXZpZ2F0b3IvU3BhY2VOYXZpZ2F0 b3JEZXZpY2UuaCAgICAgICAgfCAgNiArKy0tLS0KKyBwbHVnaW5zL3NwYWNlbmF2aWdhdG9yL1Nw YWNlTmF2aWdhdG9yRXZlbnQuaCAgICAgICAgIHwgIDIgKy0KKyBwbHVnaW5zL3NwYWNlbmF2aWdh dG9yL1NwYWNlTmF2aWdhdG9yUG9sbGluZ1RocmVhZC5oIHwgIDMgKy0tCisgcGx1Z2lucy92ZWN0 b3JzaGFwZS9WZWN0b3JTaGFwZS5jcHAgICAgICAgICAgICAgICAgICB8ICAxICsKKyBzaGVldHMv ZnVuY3Rpb25zL2RhdGV0aW1lLmNwcCAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKworIHNo ZWV0cy9wYXJ0L0RpZ2VzdC5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgOCAr KysrLS0tLQorIHNoZWV0cy9zaGFwZS9UYWJsZVRvb2xGYWN0b3J5LmggICAgICAgICAgICAgICAg ICAgICAgfCAgMiArLQorIHNoZWV0cy90ZXN0cy9UZXN0U29ydC5jcHAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgNCArKy0tCisgMjQgZmlsZXMgY2hhbmdlZCwgMzggaW5zZXJ0aW9ucygr KSwgMzIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9maWx0ZXJzL2xpYm1zb294bWwvTXNv b1htbERpYWdyYW1SZWFkZXJfcC5jcHAgYi9maWx0ZXJzL2xpYm1zb294bWwvTXNvb1htbERpYWdy YW1SZWFkZXJfcC5jcHAKK2luZGV4IDE0YjA4NTMxMjYyLi4xNGZjNmFiOWE3MSAxMDA2NDQKKy0t LSBhL2ZpbHRlcnMvbGlibXNvb3htbC9Nc29vWG1sRGlhZ3JhbVJlYWRlcl9wLmNwcAorKysrIGIv ZmlsdGVycy9saWJtc29veG1sL01zb29YbWxEaWFncmFtUmVhZGVyX3AuY3BwCitAQCAtODcyLDYg Kzg3Miw3IEBAIHZvaWQgTGF5b3V0Tm9kZUF0b206OmZpbmlzaEJ1aWxkKENvbnRleHQqIGNvbnRl eHQpIHsKKyAgICAgICAgIGNhc2UgQWxnb3JpdGhtQXRvbTo6VW5rbm93bkFsZzoKKyAgICAgICAg ICAgICB3YXJuTXNvb1htbCA8PCAiTGF5b3V0IHdpdGggbmFtZT0iIDw8IG1fbmFtZSA8PCAiZGVm aW5lcyBhbiB1bmtub3duIGFsZ29yaXRobS4iOworICAgICAgICAgICAgIC8vIGZhbGwgdGhyb3Vn aCBhbmQgdXNlIHRoZSBjb21wb3NpdGUtYWxnb3JpdGhtCisrICAgICAgICAvLyBmYWxsIHRocm91 Z2gKKyAgICAgICAgIGNhc2UgQWxnb3JpdGhtQXRvbTo6Q29tcG9zaXRlQWxnOiBtX2FsZ29yaXRo bUltcGwgPSBuZXcgQ29tcG9zaXRlQWxnb3JpdGhtOyBicmVhazsKKyAgICAgICAgIGNhc2UgQWxn b3JpdGhtQXRvbTo6Q29ubmVjdG9yQWxnOiBtX2FsZ29yaXRobUltcGwgPSBuZXcgQ29ubmVjdG9y QWxnb3JpdGhtOyBicmVhazsKKyAgICAgICAgIGNhc2UgQWxnb3JpdGhtQXRvbTo6Q3ljbGVBbGc6 IG1fYWxnb3JpdGhtSW1wbCA9IG5ldyBDeWNsZUFsZ29yaXRobTsgYnJlYWs7CitkaWZmIC0tZ2l0 IGEvZmlsdGVycy9zaGVldHMvY3N2L2NzdmltcG9ydC5jYyBiL2ZpbHRlcnMvc2hlZXRzL2Nzdi9j c3ZpbXBvcnQuY2MKK2luZGV4IDg5ZmI3MTYyZTAwLi4xMDA4ZDE4NmYxOCAxMDA2NDQKKy0tLSBh L2ZpbHRlcnMvc2hlZXRzL2Nzdi9jc3ZpbXBvcnQuY2MKKysrKyBiL2ZpbHRlcnMvc2hlZXRzL2Nz di9jc3ZpbXBvcnQuY2MKK0BAIC05Nyw4ICs5Nyw4IEBAIEtvRmlsdGVyOjpDb252ZXJzaW9uU3Rh dHVzIENTVkZpbHRlcjo6Y29udmVydChjb25zdCBRQnl0ZUFycmF5JiBmcm9tLCBjb25zdCBRQnl0 CisgICAgICAgICByZXR1cm4gS29GaWx0ZXI6OkZpbGVOb3RGb3VuZDsKKyAgICAgfQorIAorLSAg ICBRU3RyaW5nIGNzdl9kZWxpbWl0ZXI7CisgICAgIC8vICMjIyMjIyBGSVhNRTogZGlzYWJsZWQg Zm9yIG5vdworKyAgICAvL1FTdHJpbmcgY3N2X2RlbGltaXRlcjsKKyAgICAgLy9pZiAoIWNvbmZp Zy5pc051bGwoKSkKKyAgICAgLy8gICAgY3N2X2RlbGltaXRlciA9IGNvbmZpZ1swXTsKKyAKK2Rp ZmYgLS1naXQgYS9maWx0ZXJzL3NoZWV0cy9leGNlbC9zaWRld2luZGVyL2V4Y2VsLmNwcCBiL2Zp bHRlcnMvc2hlZXRzL2V4Y2VsL3NpZGV3aW5kZXIvZXhjZWwuY3BwCitpbmRleCBhYjU5MjIyNWNh Ni4uN2ZhNTYzM2Q0MzMgMTAwNjQ0CistLS0gYS9maWx0ZXJzL3NoZWV0cy9leGNlbC9zaWRld2lu ZGVyL2V4Y2VsLmNwcAorKysrIGIvZmlsdGVycy9zaGVldHMvZXhjZWwvc2lkZXdpbmRlci9leGNl bC5jcHAKK0BAIC0yNDQ5LDYgKzI0NDksNyBAQCBib29sIEV4Y2VsUmVhZGVyOjpsb2FkKFdvcmti b29rKiB3b3JrYm9vaywgY29uc3QgY2hhciogZmlsZW5hbWUpCisgICAgICAgICAgICAgICB9IGVs c2UgeworICAgICAgICAgICAgICAgICBieXRlc19yZWFkID0gY29tYk9ialN0cmVhbS0+cmVhZCgg YnVmZmVyLCBtYXJrZXJPckxlbmd0aCApOworICAgICAgICAgICAgICAgICBRU3RyaW5nIGFuc2lT dHJpbmcgPSByZWFkQnl0ZVN0cmluZyhidWZmZXIsIG1hcmtlck9yTGVuZ3RoKTsKKysgICAgICAg ICAgICAgICAgUV9VTlVTRUQoYW5zaVN0cmluZyk7CisgICAgICAgICAgICAgICAgIC8vVE9ETy4u LgorICAgICAgICAgICAgICAgICAvL3ByaW50ZiggIm1hcmtlck9yTGVuZ3RoPSVpIGFuc2lTdHJp bmc9JXNcbiIsbWFya2VyT3JMZW5ndGgsYW5zaVN0cmluZy5hc2NpaSgpICk7CisgICAgICAgICAg ICAgICB9CitkaWZmIC0tZ2l0IGEvZmlsdGVycy9zaGVldHMvZXhjZWwvc2lkZXdpbmRlci9mb3Jt dWxhcy5jcHAgYi9maWx0ZXJzL3NoZWV0cy9leGNlbC9zaWRld2luZGVyL2Zvcm11bGFzLmNwcAor aW5kZXggNjI3NDc0NjlhNDkuLjAxMzJkMzllMDI0IDEwMDY0NAorLS0tIGEvZmlsdGVycy9zaGVl dHMvZXhjZWwvc2lkZXdpbmRlci9mb3JtdWxhcy5jcHAKKysrKyBiL2ZpbHRlcnMvc2hlZXRzL2V4 Y2VsL3NpZGV3aW5kZXIvZm9ybXVsYXMuY3BwCitAQCAtMTUxMyw3ICsxNTEzLDcgQEAgc3RhdGlj IHZvaWQgbWVyZ2VUb2tlbnMoVVN0cmluZ1N0YWNrKiBzdGFjaywgdW5zaWduZWQgY291bnQsIGNv bnN0IFFTdHJpbmcgJm1lcmcKKyAgICAgaWYgKCFzdGFjaykgcmV0dXJuOworICAgICBpZiAoc3Rh Y2stPnNpemUoKSA8IGNvdW50KSByZXR1cm47CisgCistICAgIFFTdHJpbmcgczEsIHMyOworKyAg ICBRU3RyaW5nIHMxOworIAorICAgICB3aGlsZSAoY291bnQpIHsKKyAgICAgICAgIGNvdW50LS07 CitkaWZmIC0tZ2l0IGEvZmlsdGVycy9zaGVldHMvZ251bWVyaWMvZ251bWVyaWNleHBvcnQuY2Mg Yi9maWx0ZXJzL3NoZWV0cy9nbnVtZXJpYy9nbnVtZXJpY2V4cG9ydC5jYworaW5kZXggMTI1NmM2 OGJjNzQuLjI0Njg1NDhlZGIzIDEwMDY0NAorLS0tIGEvZmlsdGVycy9zaGVldHMvZ251bWVyaWMv Z251bWVyaWNleHBvcnQuY2MKKysrKyBiL2ZpbHRlcnMvc2hlZXRzL2dudW1lcmljL2dudW1lcmlj ZXhwb3J0LmNjCitAQCAtMTI5MywxNSArMTI5MywxMyBAQCBLb0ZpbHRlcjo6Q29udmVyc2lvblN0 YXR1cyBHTlVNRVJJQ0V4cG9ydDo6Y29udmVydChjb25zdCBRQnl0ZUFycmF5JiBmcm9tLCBjb25z dAorICAgICAgICAgICAgICAgICBpID0gMDsKKyAgICAgICAgICAgICB9CisgCistICAgICAgICAg ICAgUVN0cmluZyBsaW5lOworICAgICAgICAgICAgIGZvciAoaW50IGN1cnJlbnRjb2x1bW4gPSAx OyBjdXJyZW50Y29sdW1uIDw9IGlNYXhDb2x1bW47IGN1cnJlbnRjb2x1bW4rKykgeworICAgICAg ICAgICAgICAgICBRRG9tRWxlbWVudCBjZWxsX2NvbnRlbnRzOworICAgICAgICAgICAgICAgICBD ZWxsIGNlbGwodGFibGUsIGN1cnJlbnRjb2x1bW4sIGN1cnJlbnRyb3cpOworIAorLSAgICAgICAg ICAgICAgICBRU3RyaW5nIHRleHQsIHN0eWxlOworKyAgICAgICAgICAgICAgICBRU3RyaW5nIHRl eHQ7CisgICAgICAgICAgICAgICAgIFFEb21Eb2N1bWVudCBkb21MaW5rOworICAgICAgICAgICAg ICAgICBRRG9tRWxlbWVudCBkb21Sb290OworLSAgICAgICAgICAgICAgICBRRG9tTm9kZSBkb21O b2RlOworICAgICAgICAgICAgICAgICBRRG9tTm9kZUxpc3QgY2hpbGROb2RlczsKKyAKKyAgICAg ICAgICAgICAgICAgaWYgKCFjZWxsLmlzRGVmYXVsdCgpICYmICFjZWxsLmlzRW1wdHkoKSkgewor QEAgLTEzNDIsNiArMTM0MCw3IEBAIEtvRmlsdGVyOjpDb252ZXJzaW9uU3RhdHVzIEdOVU1FUklD RXhwb3J0Ojpjb252ZXJ0KGNvbnN0IFFCeXRlQXJyYXkmIGZyb20sIGNvbnN0CisgICAgICAgICAg ICAgICAgICAgICAgICAgdGV4dCA9IGRvbU5vZGUudG9FbGVtZW50KCkudGV4dCgpOworIAorICAg ICAgICAgICAgICAgICAgICAgICAgIHdoaWxlICghZG9tTm9kZS5pc051bGwoKSkgeworKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBRU3RyaW5nIHN0eWxlOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHlsZSA9IGRvbU5vZGUudG9FbGVtZW50KCkudGFnTmFtZSgpOworIAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3R5bGUgPT0gImIiKQorZGlmZiAtLWdpdCBh L2ZpbHRlcnMvc2hlZXRzL2h0bWwvaHRtbGV4cG9ydC5jYyBiL2ZpbHRlcnMvc2hlZXRzL2h0bWwv aHRtbGV4cG9ydC5jYworaW5kZXggMmQxMTZlMDYwOGMuLmJmNDFhNmY3NDNlIDEwMDY0NAorLS0t IGEvZmlsdGVycy9zaGVldHMvaHRtbC9odG1sZXhwb3J0LmNjCisrKysgYi9maWx0ZXJzL3NoZWV0 cy9odG1sL2h0bWxleHBvcnQuY2MKK0BAIC0yNDIsNyArMjQyLDYgQEAgdm9pZCBIVE1MRXhwb3J0 Ojpjb252ZXJ0U2hlZXQoU2hlZXQgKnNoZWV0LCBRU3RyaW5nICZzdHIsIGludCBpTWF4VXNlZFJv dywgaW50IGkKKyAgICAgICAgICAgICBpID0gMDsKKyAgICAgICAgIH0KKyAKKy0gICAgICAgIFFT dHJpbmcgc2VwYXJhdG9yczsKKyAgICAgICAgIFFTdHJpbmcgbGluZTsKKyAgICAgICAgIHVuc2ln bmVkIGludCBub25lbXB0eV9jZWxscyA9IDA7CisgCitAQCAtNDM1LDcgKzQzNCw2IEBAIHZvaWQg SFRNTEV4cG9ydDo6ZGV0ZWN0RmlsbGVkQ2VsbHMoU2hlZXQgKnNoZWV0LCBpbnQgJnJvd3MsIGlu dCAmY29sdW1ucykKKyAgICAgICAgIGludCBpVXNlZENvbHVtbiA9IDA7CisgICAgICAgICBmb3Ig KGludCBjdXJyZW50Y29sdW1uID0gMSA7IGN1cnJlbnRjb2x1bW4gPD0gaU1heENvbHVtbiA7IGN1 cnJlbnRjb2x1bW4rKykgeworICAgICAgICAgICAgIGNlbGwgPSBDZWxsKHNoZWV0LCBjdXJyZW50 Y29sdW1uLCBjdXJyZW50cm93KTsKKy0gICAgICAgICAgICBRU3RyaW5nIHRleHQ7CisgICAgICAg ICAgICAgaWYgKCFjZWxsLmlzRGVmYXVsdCgpICYmICFjZWxsLmlzRW1wdHkoKSkgeworICAgICAg ICAgICAgICAgICBpVXNlZENvbHVtbiA9IGN1cnJlbnRjb2x1bW47CisgICAgICAgICAgICAgfQor ZGlmZiAtLWdpdCBhL2ZpbHRlcnMvc2hlZXRzL2xhdGV4L2V4cG9ydC9sYXRleGV4cG9ydC5jYyBi L2ZpbHRlcnMvc2hlZXRzL2xhdGV4L2V4cG9ydC9sYXRleGV4cG9ydC5jYworaW5kZXggOGQwNjk4 YTM0MjAuLjRmOGNhZjIzNWQ5IDEwMDY0NAorLS0tIGEvZmlsdGVycy9zaGVldHMvbGF0ZXgvZXhw b3J0L2xhdGV4ZXhwb3J0LmNjCisrKysgYi9maWx0ZXJzL3NoZWV0cy9sYXRleC9leHBvcnQvbGF0 ZXhleHBvcnQuY2MKK0BAIC0zOCw3ICszOCw2IEBAIExBVEVYRXhwb3J0OjpMQVRFWEV4cG9ydChR T2JqZWN0KiBwYXJlbnQsIGNvbnN0IFFWYXJpYW50TGlzdCYpIDoKKyAKKyBLb0ZpbHRlcjo6Q29u dmVyc2lvblN0YXR1cyBMQVRFWEV4cG9ydDo6Y29udmVydChjb25zdCBRQnl0ZUFycmF5JiBmcm9t LCBjb25zdCBRQnl0ZUFycmF5JiB0bykKKyB7CistICAgIFFTdHJpbmcgY29uZmlnOworIAorICAg ICBpZiAodG8gIT0gInRleHQveC10ZXgiIHx8IGZyb20gIT0gImFwcGxpY2F0aW9uL3gta3NwcmVh ZCIpCisgICAgICAgICByZXR1cm4gS29GaWx0ZXI6Ok5vdEltcGxlbWVudGVkOworZGlmZiAtLWdp dCBhL2ZpbHRlcnMvc2hlZXRzL2xhdGV4L2V4cG9ydC90YWJsZS5jYyBiL2ZpbHRlcnMvc2hlZXRz L2xhdGV4L2V4cG9ydC90YWJsZS5jYworaW5kZXggOGQ4YjY3MDFhMzkuLmU1ODgyN2RmYmM3IDEw MDY0NAorLS0tIGEvZmlsdGVycy9zaGVldHMvbGF0ZXgvZXhwb3J0L3RhYmxlLmNjCisrKysgYi9m aWx0ZXJzL3NoZWV0cy9sYXRleC9leHBvcnQvdGFibGUuY2MKK0BAIC0xMTgsNiArMTE4LDcgQEAg dm9pZCBUYWJsZTo6YW5hbHl6ZVBhcGVyKGNvbnN0IFFEb21Ob2RlIG5vZGUpCisgCisgICAgIC8q IGJvcmRlcnMgKi8KKyAgICAgUURvbU5vZGUgYm9yZGVyID0gZ2V0Q2hpbGQobm9kZSwgImJvcmRl cnMiKTsKKysgICAgUV9VTlVTRUQoYm9yZGVyKTsKKyAgICAgc2V0Qm9yZGVyUmlnaHQoZ2V0QXR0 cihub2RlLCAicmlnaHQiKS50b0xvbmcoKSk7CisgICAgIHNldEJvcmRlckxlZnQoZ2V0QXR0cihu b2RlLCAibGVmdCIpLnRvTG9uZygpKTsKKyAgICAgc2V0Qm9yZGVyQm90dG9tKGdldEF0dHIobm9k ZSwgImJvdHRvbSIpLnRvTG9uZygpKTsKK2RpZmYgLS1naXQgYS9maWx0ZXJzL3NoZWV0cy94bHN4 L1hsc3hYbWxXb3Jrc2hlZXRSZWFkZXIuY3BwIGIvZmlsdGVycy9zaGVldHMveGxzeC9YbHN4WG1s V29ya3NoZWV0UmVhZGVyLmNwcAoraW5kZXggNzgyYTU5MTQ3MjkuLmVkYThmZmM2YjQ3IDEwMDY0 NAorLS0tIGEvZmlsdGVycy9zaGVldHMveGxzeC9YbHN4WG1sV29ya3NoZWV0UmVhZGVyLmNwcAor KysrIGIvZmlsdGVycy9zaGVldHMveGxzeC9YbHN4WG1sV29ya3NoZWV0UmVhZGVyLmNwcAorQEAg LTg3Miw3ICs4NzIsNiBAQCBLb0ZpbHRlcjo6Q29udmVyc2lvblN0YXR1cyBYbHN4WG1sV29ya3No ZWV0UmVhZGVyOjpyZWFkX2NvbmRpdGlvbmFsRm9ybWF0dGluZygpCisgICAgIHdoaWxlIChpbmRl eCA8IG1fY29uZGl0aW9uYWxJbmRpY2VzLnNpemUoKSkgeworICAgICAgICAgUVN0cmluZyBjb25k aXRpb25hbEFyZWE7CisgICAgICAgICBDb25kaXRpb24gZXhhbWluZWRDb25kaXRpb24gPSBtX2Nv bmRpdGlvbmFsSW5kaWNlcy5hdChpbmRleCk7CistICAgICAgICBRU3RyaW5nIHNxcmVmT3JpZ2lu YWwgPSBzcXJlZjsKKyAgICAgICAgIGludCBhcmVhSW5kZXggPSAwOworICAgICAgICAgQ29uZGl0 aW9uIHByZXZpb3VzQ29uZDsKKyAKK2RpZmYgLS1naXQgYS9maWx0ZXJzL3N0YWdlL3BwdHgvUHB0 eFhtbERvY3VtZW50UmVhZGVyLmNwcCBiL2ZpbHRlcnMvc3RhZ2UvcHB0eC9QcHR4WG1sRG9jdW1l bnRSZWFkZXIuY3BwCitpbmRleCA0Y2Y4NmFlYThjOC4uMTFiNWFkMjY2YjkgMTAwNjQ0CistLS0g YS9maWx0ZXJzL3N0YWdlL3BwdHgvUHB0eFhtbERvY3VtZW50UmVhZGVyLmNwcAorKysrIGIvZmls dGVycy9zdGFnZS9wcHR4L1BwdHhYbWxEb2N1bWVudFJlYWRlci5jcHAKK0BAIC0zMTYsNyArMzE2 LDcgQEAgS29GaWx0ZXI6OkNvbnZlcnNpb25TdGF0dXMgUHB0eFhtbERvY3VtZW50UmVhZGVyOjpy ZWFkX3NsZElkKCkKKyAKKyAgICAgUVN0cmluZyBzbGlkZU1hc3RlclBhdGgsIHNsaWRlTWFzdGVy RmlsZTsKKyAgICAgTVNPT1hNTDo6VXRpbHM6OnNwbGl0UGF0aEFuZEZpbGUobV9jb250ZXh0LT5y ZWxhdGlvbnNoaXBzLT50YXJnZXRGb3JUeXBlKHNsaWRlUGF0aCwgc2xpZGVGaWxlLCBRTGF0aW4x U3RyaW5nKE1TT09YTUw6OlNjaGVtYXM6Om9mZmljZURvY3VtZW50OjpyZWxhdGlvbnNoaXBzKSAr ICIvc2xpZGVMYXlvdXQiKSwgJnNsaWRlTWFzdGVyUGF0aCwgJnNsaWRlTWFzdGVyRmlsZSk7Cist ICAgIGNvbnN0IFFTdHJpbmcgc2xpZGVNYXN0ZXJQYXRoQW5kRmlsZSA9IG1fY29udGV4dC0+cmVs YXRpb25zaGlwcy0+dGFyZ2V0Rm9yVHlwZShzbGlkZU1hc3RlclBhdGgsIHNsaWRlTWFzdGVyRmls ZSwgUUxhdGluMVN0cmluZyhNU09PWE1MOjpTY2hlbWFzOjpvZmZpY2VEb2N1bWVudDo6cmVsYXRp b25zaGlwcykgKyAiL3NsaWRlTWFzdGVyIik7CisrICAgIC8vIGNvbnN0IFFTdHJpbmcgc2xpZGVN YXN0ZXJQYXRoQW5kRmlsZSA9IG1fY29udGV4dC0+cmVsYXRpb25zaGlwcy0+dGFyZ2V0Rm9yVHlw ZShzbGlkZU1hc3RlclBhdGgsIHNsaWRlTWFzdGVyRmlsZSwgUUxhdGluMVN0cmluZyhNU09PWE1M OjpTY2hlbWFzOjpvZmZpY2VEb2N1bWVudDo6cmVsYXRpb25zaGlwcykgKyAiL3NsaWRlTWFzdGVy Iik7CisgCisgICAgIC8vIERlbGF5IHRoZSByZWFkaW5nIG9mIGEgdGFibGVTdHlsZSB1bnRpbCB3 ZSBmaW5kIGEgdGFibGUgYXMgd2UgbmVlZCB0aGUKKyAgICAgLy8gY2xyTWFwIGZyb20gdGhlIG1h c3RlciBzbGlkZQorZGlmZiAtLWdpdCBhL2ZpbHRlcnMvd29yZHMvbXN3b3JkLW9kZi90ZXh0aGFu ZGxlci5jcHAgYi9maWx0ZXJzL3dvcmRzL21zd29yZC1vZGYvdGV4dGhhbmRsZXIuY3BwCitpbmRl eCBlMTY3ZDg2ZTAyOC4uODllZjY3ODk2MWEgMTAwNjQ0CistLS0gYS9maWx0ZXJzL3dvcmRzL21z d29yZC1vZGYvdGV4dGhhbmRsZXIuY3BwCisrKysgYi9maWx0ZXJzL3dvcmRzL21zd29yZC1vZGYv dGV4dGhhbmRsZXIuY3BwCitAQCAtNDA4LDYgKzQwOCw3IEBAIHZvaWQgV29yZHNUZXh0SGFuZGxl cjo6Zm9vdG5vdGVGb3VuZCh3dldhcmU6OkZvb3Rub3RlRGF0YSBkYXRhLAorICAgICAgICAgfQor ICAgICAgICAgY2FzZSBtc29uZmNVQ0xldHRlcjoKKyAgICAgICAgICAgICBsZXR0ZXIgPSAnQSc7 CisrICAgICAgICAgICAgLy8gZmFsbCB0aHJvdWdoCisgICAgICAgICBjYXNlIG1zb25mY0xDTGV0 dGVyOgorICAgICAgICAgeworICAgICAgICAgICAgIHdoaWxlIChub3RlTnVtYmVyIC8gMjUgPiAw KSB7CitAQCAtMTA2NCw2ICsxMDY1LDcgQEAgdm9pZCBXb3Jkc1RleHRIYW5kbGVyOjpmaWVsZFN0 YXJ0KGNvbnN0IHd2V2FyZTo6RkxEKiBmbGQsIHd2V2FyZTo6U2hhcmVkUHRyPGNvbnMKKyAgICAg ICAgIGJyZWFrOworICAgICBjYXNlIFVOU1VQUE9SVEVEOgorICAgICAgICAgd2Fybk1zRG9jIDw8 ICJXYXJuaW5nOiBGbGQgZGF0YSBtaXNzaW5nLCBpZ25vcmluZyEiOworKyAgICAgICAgLy8gZmFs bCB0aHJvdWdoCisgICAgIGRlZmF1bHQ6CisgICAgICAgICB3YXJuTXNEb2MgPDwgIldhcm5pbmc6 IHVucmVjb2duaXplZCBmaWVsZCB0eXBlLCBpZ25vcmluZyEiOworICAgICAgICAgbV9mbGQtPm1f dHlwZSA9IFVOU1VQUE9SVEVEOworZGlmZiAtLWdpdCBhL2ZpbHRlcnMvd29yZHMvbXN3b3JkLW9k Zi93djIvc3JjL3BhcnNlcjl4LmNwcCBiL2ZpbHRlcnMvd29yZHMvbXN3b3JkLW9kZi93djIvc3Jj L3BhcnNlcjl4LmNwcAoraW5kZXggOWE2ZDE2MDZjZTkuLmU1ZDdkMTQ2OTFjIDEwMDY0NAorLS0t IGEvZmlsdGVycy93b3Jkcy9tc3dvcmQtb2RmL3d2Mi9zcmMvcGFyc2VyOXguY3BwCisrKysgYi9m aWx0ZXJzL3dvcmRzL21zd29yZC1vZGYvd3YyL3NyYy9wYXJzZXI5eC5jcHAKK0BAIC01ODEsNyAr NTgxLDggQEAgdm9pZCBQYXJzZXI5eDo6cHJvY2Vzc1BpZWNlKCBTdHJpbmcqIHN0cmluZywgVTMy IGZjLCBVMzIgbGltaXQsIGNvbnN0IFBvc2l0aW9uJgorICAgICAgICAgLy8gc2FtZSBBU0NJSSBj b2RlIGFzIFRUUF9NQVJLICgweDAwMDcpLCBOT1RFOiB0YWJsZSBkZXB0aCA9PSAxCisgICAgICAg ICBjYXNlIENFTExfTUFSSzoKKyAgICAgICAgICAgICBtX2NlbGxNYXJrRm91bmQgPSB0cnVlOwor LSAgICAgICAgICAgIC8vIEZhbGwtdGhyb3VnaCBpbnRlbmRlZC4gQSByb3cvY2VsbCBlbmQgaXMg YWxzbyBhIHBhcmFncmFwaCBlbmQuCisrICAgICAgICAgICAgLy8gQSByb3cvY2VsbCBlbmQgaXMg YWxzbyBhIHBhcmFncmFwaCBlbmQuCisrICAgICAgICAgICAgLy8gZmFsbCB0aHJvdWdoCisgICAg ICAgICBjYXNlIFBBUkFHUkFQSF9NQVJLOgorICAgICAgICAgeworICAgICAgICAgICAgIC8vIE5v ICJpbmRleCAtIHN0YXJ0ICsgMSIgaGVyZSwgYXMgd2UgZG9uJ3Qgd2FudCB0byBjb3B5IHRoZQor QEAgLTEwNjQsNiArMTA2NSw3IEBAIHZvaWQgUGFyc2VyOXg6OmVtaXRTcGVjaWFsQ2hhcmFjdGVy KCBVQ2hhciBjaGFyYWN0ZXIsIFUzMiBnbG9iYWxDUCwgU2hhcmVkUHRyPGNvCisgICAgICAgICAg ICAgaWYgKG1fc3ViRG9jdW1lbnQgPT0gTWFpbikgeworICAgICAgICAgICAgICAgICBlbWl0QW5u b3RhdGlvbiggVVN0cmluZyhjaGFyYWN0ZXIpLCBnbG9iYWxDUCwgY2hwICk7CisgICAgICAgICAg ICAgfQorKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgfQorICAgICBjYXNlIFRleHRIYW5k bGVyOjpGaWVsZEVzY2FwZUNoYXI6CisgICAgICAgICB3dmxvZyA8PCAiRm91bmQgYW4gZXNjYXBl IGNoYXJhY3RlciArKysrKysrKysrKysrKysrKysrKz8iIDw8IGVuZGw7CitkaWZmIC0tZ2l0IGEv ZmlsdGVycy93b3Jkcy9tc3dvcmQtb2RmL3d2Mi9zcmMvc3R5bGVzLmNwcCBiL2ZpbHRlcnMvd29y ZHMvbXN3b3JkLW9kZi93djIvc3JjL3N0eWxlcy5jcHAKK2luZGV4IGY0N2MzZGQ4ZDUxLi5kMmM5 NmUzZDkyYiAxMDA2NDQKKy0tLSBhL2ZpbHRlcnMvd29yZHMvbXN3b3JkLW9kZi93djIvc3JjL3N0 eWxlcy5jcHAKKysrKyBiL2ZpbHRlcnMvd29yZHMvbXN3b3JkLW9kZi93djIvc3JjL3N0eWxlcy5j cHAKK0BAIC00Miw3ICs0Miw2IEBAIFNURDo6U1REKCkKKyB9CisgCisgU1REOjpTVEQoIFUxNiBi YXNlU2l6ZSwgVTE2IHRvdGFsU2l6ZSwgT0xFU3RyZWFtUmVhZGVyKiBzdHJlYW0sIGJvb2wgcHJl c2VydmVQb3MgKQorLXRocm93KEludmFsaWRGb3JtYXRFeGNlcHRpb24pCisgeworICAgICBjbGVh ckludGVybmFsKCk7CisgICAgIGlmICghcmVhZCggYmFzZVNpemUsIHRvdGFsU2l6ZSwgc3RyZWFt LCBwcmVzZXJ2ZVBvcyApKSB7CitAQCAtMTEyLDcgKzExMSw2IEBAIFNURCYgU1REOjpvcGVyYXRv cj0oIGNvbnN0IFNURCYgcmhzICkKKyB9CisgCisgYm9vbCBTVEQ6OnJlYWQoIGNvbnN0IFUxNiBj YlN0ZCwgY29uc3QgVTE2IHN0ZGZTaXplLCBPTEVTdHJlYW1SZWFkZXIqIHN0cmVhbSwgYm9vbCBw cmVzZXJ2ZVBvcyApCistdGhyb3coSW52YWxpZEZvcm1hdEV4Y2VwdGlvbikKKyB7CisgICAgIFUx NiBzaGlmdGVyVTE2OworICAgICBTMzIgc3RhcnRPZmZzZXQ9c3RyZWFtLT50ZWxsKCk7ICAvLyBh ZGRyZXNzIHdoZXJlIHRoZSBTVEQgc3RhcnRzCitAQCAtOTM4LDcgKzkzNiw3IEBAIHZvaWQgU3R5 bGU6Om1lcmdlVXBlY2hweCggY29uc3QgU3R5bGUqIHBhcmVudFN0eWxlLCBXb3JkVmVyc2lvbiB2 ZXJzaW9uICkKKyB9CisgCisgCistU3R5bGVTaGVldDo6U3R5bGVTaGVldCggT0xFU3RyZWFtUmVh ZGVyKiB0YWJsZVN0cmVhbSwgVTMyIGZjU3RzaGYsIFUzMiBsY2JTdHNoZiApIHRocm93KEludmFs aWRGb3JtYXRFeGNlcHRpb24pCisrU3R5bGVTaGVldDo6U3R5bGVTaGVldCggT0xFU3RyZWFtUmVh ZGVyKiB0YWJsZVN0cmVhbSwgVTMyIGZjU3RzaGYsIFUzMiBsY2JTdHNoZiApCisgICAgIDogbV91 ZHNOdW0oMCkKKyB7CisgICAgIFdvcmRWZXJzaW9uIHZlcnNpb24gPSBXb3JkODsKK2RpZmYgLS1n aXQgYS9maWx0ZXJzL3dvcmRzL21zd29yZC1vZGYvd3YyL3NyYy9zdHlsZXMuaCBiL2ZpbHRlcnMv d29yZHMvbXN3b3JkLW9kZi93djIvc3JjL3N0eWxlcy5oCitpbmRleCBiYTAyZGVmNjg0NS4uNDFj ODI3OGRkMjEgMTAwNjQ0CistLS0gYS9maWx0ZXJzL3dvcmRzL21zd29yZC1vZGYvd3YyL3NyYy9z dHlsZXMuaAorKysrIGIvZmlsdGVycy93b3Jkcy9tc3dvcmQtb2RmL3d2Mi9zcmMvc3R5bGVzLmgK K0BAIC01OCw4ICs1OCw5IEBAIHN0cnVjdCBTVEQKKyAgICAgU1REKCk7CisgICAgIC8qKgorICAg ICAgKiBTaW1wbHkgY2FsbHMgcmVhZCguLi4pCisrICAgICAqIEB0aHJvdyBJbnZhbGlkRm9ybWF0 RXhjZXB0aW9uCisgICAgICAqLworLSAgICBTVEQoIFUxNiBzdGRmU2l6ZSwgVTE2IHRvdGFsU2l6 ZSwgT0xFU3RyZWFtUmVhZGVyKiBzdHJlYW0sIGJvb2wgcHJlc2VydmVQb3MgPSBmYWxzZSApIHRo cm93KEludmFsaWRGb3JtYXRFeGNlcHRpb24pOworKyAgICBTVEQoIFUxNiBzdGRmU2l6ZSwgVTE2 IHRvdGFsU2l6ZSwgT0xFU3RyZWFtUmVhZGVyKiBzdHJlYW0sIGJvb2wgcHJlc2VydmVQb3MgPSBm YWxzZSApOworICAgICAvKioKKyAgICAgICogQXR0ZW50aW9uOiBUaGlzIHN0cnVjdCBhbGxvY2F0 ZXMgbWVtb3J5IG9uIHRoZSBoZWFwCisgICAgICAqLworQEAgLTc0LDggKzc1LDkgQEAgc3RydWN0 IFNURAorICAgICAgKiBmYWxzZSB0aGUgc3RhdGUgb2Ygc3RyZWFtIHdpbGwgYmUgY2hhbmdlZCEK KyAgICAgICoKKyAgICAgICogQHJldHVybiB0cnVlIC0gc3VjY2VzcywgZmFsc2UgLSBmYWlsZWQK KysgICAgICogQHRocm93IEludmFsaWRGb3JtYXRFeGNlcHRpb24KKyAgICAgICovCistICAgIGJv b2wgcmVhZCggY29uc3QgVTE2IGNiU3RkLCBjb25zdCBVMTYgc3RkZlNpemUsIE9MRVN0cmVhbVJl YWRlciogc3RyZWFtLCBib29sIHByZXNlcnZlUG9zID0gZmFsc2UgKSB0aHJvdyhJbnZhbGlkRm9y bWF0RXhjZXB0aW9uKTsKKysgICAgYm9vbCByZWFkKCBjb25zdCBVMTYgY2JTdGQsIGNvbnN0IFUx NiBzdGRmU2l6ZSwgT0xFU3RyZWFtUmVhZGVyKiBzdHJlYW0sIGJvb2wgcHJlc2VydmVQb3MgPSBm YWxzZSApOworIAorICAgICAvKioKKyAgICAgICogU2FtZSBhcyByZWFkaW5nIDopCitAQCAtMzY1 LDcgKzM2NywxMCBAQCBjbGFzcyBXVjJfRVhQT1JUIFN0eWxlCisgY2xhc3MgV1YyX0VYUE9SVCBT dHlsZVNoZWV0CisgeworIHB1YmxpYzoKKy0gICAgU3R5bGVTaGVldCggT0xFU3RyZWFtUmVhZGVy KiB0YWJsZVN0cmVhbSwgVTMyIGZjU3RzaGYsIFUzMiBsY2JTdHNoZiApIHRocm93KEludmFsaWRG b3JtYXRFeGNlcHRpb24pOworKyAgICAvKioKKysgICAgICogQHRocm93IEludmFsaWRGb3JtYXRF eGNlcHRpb24KKysgICAgICovCisrICAgIFN0eWxlU2hlZXQoIE9MRVN0cmVhbVJlYWRlciogdGFi bGVTdHJlYW0sIFUzMiBmY1N0c2hmLCBVMzIgbGNiU3RzaGYgKTsKKyAgICAgflN0eWxlU2hlZXQo KTsKKyAKKyAgICAgLyoqCitkaWZmIC0tZ2l0IGEvZ2VtaW5pL2xpYi9HZW1pbmlNYWluV2luZG93 LmNwcCBiL2dlbWluaS9saWIvR2VtaW5pTWFpbldpbmRvdy5jcHAKK2luZGV4IDNkMDVmNjQ2MWUw Li5lYjVmMTIwYzBmNyAxMDA2NDQKKy0tLSBhL2dlbWluaS9saWIvR2VtaW5pTWFpbldpbmRvdy5j cHAKKysrKyBiL2dlbWluaS9saWIvR2VtaW5pTWFpbldpbmRvdy5jcHAKK0BAIC0xMzYsOCArMTM2 LDEwIEBAIHZvaWQgR2VtaW5pTWFpbldpbmRvdzo6c2V0RnVsbFNjcmVlbihib29sIG5ld1N0YXRl KQorIH0KKyAKKyAKKysKKyB2b2lkIEdlbWluaU1haW5XaW5kb3c6OmNoYW5nZVN0YXRlKEdlbWlu aU1haW5XaW5kb3c6OkdlbWluaVN0YXRlIG5ld1N0YXRlLCBib29sIGxvY2tOZXdTdGF0ZSkKKyB7 CisrICAgIFFfVU5VU0VEKGxvY2tOZXdTdGF0ZSk7CisgICAgIGQtPnN5bmNPYmplY3QgPSBuZXcg R2VtaW5pTW9kZVN5bmNocm9uaXNhdGlvbk9iamVjdDsKKyAKKyAgICAgaWYoY2VudHJhbFdpZGdl dCgpKSB7CitkaWZmIC0tZ2l0IGEvbGlicy9wYWdlYXBwL0tvUEFPZGZQYWdlU2F2ZUhlbHBlci5j cHAgYi9saWJzL3BhZ2VhcHAvS29QQU9kZlBhZ2VTYXZlSGVscGVyLmNwcAoraW5kZXggOTJjNmRm ZDRjYjQuLjA2ODUwMWM4YWYxIDEwMDY0NAorLS0tIGEvbGlicy9wYWdlYXBwL0tvUEFPZGZQYWdl U2F2ZUhlbHBlci5jcHAKKysrKyBiL2xpYnMvcGFnZWFwcC9Lb1BBT2RmUGFnZVNhdmVIZWxwZXIu Y3BwCitAQCAtNDksNyArNDksNyBAQCBLb1BBT2RmUGFnZVNhdmVIZWxwZXI6OktvUEFPZGZQYWdl U2F2ZUhlbHBlciggS29QQURvY3VtZW50ICogZG9jLCBRTGlzdDxLb1BBUGFnZQorICAgICAgICAg ICAgIEtvUEFQYWdlICogcCA9IHN0YXRpY19jYXN0PEtvUEFQYWdlICo+KCBwYWdlICk7CisgICAg ICAgICAgICAgbWFzdGVyUGFnZXMuaW5zZXJ0KCBwLT5tYXN0ZXJQYWdlKCkgKTsKKyAgICAgICAg IH0KKy0gICAgICAgIG1fbWFzdGVyUGFnZXMgPSBtYXN0ZXJQYWdlcy50b0xpc3QoKTsKKysgICAg ICAgIG1fbWFzdGVyUGFnZXMgPSBtYXN0ZXJQYWdlcy52YWx1ZXMoKTsKKyAgICAgfQorIH0KKyAK K2RpZmYgLS1naXQgYS9wbHVnaW5zL3NwYWNlbmF2aWdhdG9yL1NwYWNlTmF2aWdhdG9yRGV2aWNl LmggYi9wbHVnaW5zL3NwYWNlbmF2aWdhdG9yL1NwYWNlTmF2aWdhdG9yRGV2aWNlLmgKK2luZGV4 IGI5MDU2YWM5OGMxLi5lY2Q2OTZlNDE1ZiAxMDA2NDQKKy0tLSBhL3BsdWdpbnMvc3BhY2VuYXZp Z2F0b3IvU3BhY2VOYXZpZ2F0b3JEZXZpY2UuaAorKysrIGIvcGx1Z2lucy9zcGFjZW5hdmlnYXRv ci9TcGFjZU5hdmlnYXRvckRldmljZS5oCitAQCAtMzEsMTAgKzMxLDggQEAgY2xhc3MgU3BhY2VO YXZpZ2F0b3JEZXZpY2UgOiBwdWJsaWMgS29JbnB1dERldmljZUhhbmRsZXIKKyAgICAgZXhwbGlj aXQgU3BhY2VOYXZpZ2F0b3JEZXZpY2UoUU9iamVjdCAqcGFyZW50KTsKKyAgICAgdmlydHVhbCB+ U3BhY2VOYXZpZ2F0b3JEZXZpY2UoKTsKKyAKKy0gICAgLy8vIHJlaW1wbGVtZW50ZWQgZnJvbSBL b0lucHV0RGV2aWNlSGFuZGxlcgorLSAgICB2aXJ0dWFsIGJvb2wgc3RhcnQoKTsKKy0gICAgLy8v IHJlaW1wbGVtZW50ZWQgZnJvbSBLb0lucHV0RGV2aWNlSGFuZGxlcgorLSAgICB2aXJ0dWFsIGJv b2wgc3RvcCgpOworKyAgICB2aXJ0dWFsIGJvb2wgc3RhcnQoKSBvdmVycmlkZTsKKysgICAgdmly dHVhbCBib29sIHN0b3AoKSBvdmVycmlkZTsKKyBwcml2YXRlIFFfU0xPVFM6CisgICAgIHZvaWQg c2xvdE1vdmVFdmVudCggaW50IHgsIGludCB5LCBpbnQgeiwgaW50IHJ4LCBpbnQgcnksIGludCBy eiwgUXQ6Ok1vdXNlQnV0dG9ucyApOworICAgICB2b2lkIHNsb3RCdXR0b25FdmVudCggaW50IHgs IGludCB5LCBpbnQgeiwgaW50IHJ4LCBpbnQgcnksIGludCByeiwgUXQ6Ok1vdXNlQnV0dG9ucywg UXQ6Ok1vdXNlQnV0dG9uLCBpbnQgdHlwZSApOworZGlmZiAtLWdpdCBhL3BsdWdpbnMvc3BhY2Vu YXZpZ2F0b3IvU3BhY2VOYXZpZ2F0b3JFdmVudC5oIGIvcGx1Z2lucy9zcGFjZW5hdmlnYXRvci9T cGFjZU5hdmlnYXRvckV2ZW50LmgKK2luZGV4IDczNzUxZWM4OGZmLi43NmVlOGUyZjg4MCAxMDA2 NDQKKy0tLSBhL3BsdWdpbnMvc3BhY2VuYXZpZ2F0b3IvU3BhY2VOYXZpZ2F0b3JFdmVudC5oCisr KysgYi9wbHVnaW5zL3NwYWNlbmF2aWdhdG9yL1NwYWNlTmF2aWdhdG9yRXZlbnQuaAorQEAgLTMz LDcgKzMzLDcgQEAgY2xhc3MgU3BhY2VOYXZpZ2F0b3JFdmVudCA6IHB1YmxpYyBLb0lucHV0RGV2 aWNlSGFuZGxlckV2ZW50CisgICAgIHZvaWQgc2V0UG9zaXRpb24oIGludCB4LCBpbnQgeSwgaW50 IHogKTsKKyAgICAgdm9pZCBzZXRSb3RhdGlvbiggaW50IHJ4LCBpbnQgcnksIGludCByeiApOwor IAorLSAgICB2aXJ0dWFsIEtvUG9pbnRlckV2ZW50ICogcG9pbnRlckV2ZW50KCk7CisrICAgIHZp cnR1YWwgS29Qb2ludGVyRXZlbnQgKiBwb2ludGVyRXZlbnQoKSBvdmVycmlkZTsKKyAKKyBwcml2 YXRlOgorICAgICBpbnQgbV94LCBtX3ksIG1fejsKK2RpZmYgLS1naXQgYS9wbHVnaW5zL3NwYWNl bmF2aWdhdG9yL1NwYWNlTmF2aWdhdG9yUG9sbGluZ1RocmVhZC5oIGIvcGx1Z2lucy9zcGFjZW5h dmlnYXRvci9TcGFjZU5hdmlnYXRvclBvbGxpbmdUaHJlYWQuaAoraW5kZXggNjJjNGRlOGFiNzMu LjY3ZDU5MTc3MDIxIDEwMDY0NAorLS0tIGEvcGx1Z2lucy9zcGFjZW5hdmlnYXRvci9TcGFjZU5h dmlnYXRvclBvbGxpbmdUaHJlYWQuaAorKysrIGIvcGx1Z2lucy9zcGFjZW5hdmlnYXRvci9TcGFj ZU5hdmlnYXRvclBvbGxpbmdUaHJlYWQuaAorQEAgLTM5LDggKzM5LDcgQEAgY2xhc3MgU3BhY2VO YXZpZ2F0b3JQb2xsaW5nVGhyZWFkIDogcHVibGljIFFUaHJlYWQKKyAKKyBwcm90ZWN0ZWQ6Cisg CistICAgIC8vLyByZWltcGxlbWVudGVkIGZyb20gUVRocmVhZAorLSAgICB2aXJ0dWFsIHZvaWQg cnVuKCk7CisrICAgIHZpcnR1YWwgdm9pZCBydW4oKSBvdmVycmlkZTsKKyAKKyBwcml2YXRlOgor ICAgICBib29sIG1fc3RvcHBlZDsKK2RpZmYgLS1naXQgYS9wbHVnaW5zL3ZlY3RvcnNoYXBlL1Zl Y3RvclNoYXBlLmNwcCBiL3BsdWdpbnMvdmVjdG9yc2hhcGUvVmVjdG9yU2hhcGUuY3BwCitpbmRl eCBhMjVhYjNmYzU2MS4uOWFjYmQyNTFjOTQgMTAwNjQ0CistLS0gYS9wbHVnaW5zL3ZlY3RvcnNo YXBlL1ZlY3RvclNoYXBlLmNwcAorKysrIGIvcGx1Z2lucy92ZWN0b3JzaGFwZS9WZWN0b3JTaGFw ZS5jcHAKK0BAIC0yOTQsNiArMjk0LDcgQEAgdm9pZCBWZWN0b3JTaGFwZTo6c2F2ZU9kZihLb1No YXBlU2F2aW5nQ29udGV4dCAmIGNvbnRleHQpIGNvbnN0CisgICAgICAgICBicmVhazsKKyAgICAg Y2FzZSBWZWN0b3JUeXBlU3ZnOgorICAgICAgICAgbWltZVR5cGUgPSAiaW1hZ2Uvc3ZnK3htbCI7 CisrICAgICAgICBicmVhazsKKyAgICAgZGVmYXVsdDoKKyAgICAgICAgIC8vIEZJWE1FOiBXaGF0 IGhlcmU/CisgICAgICAgICBtaW1lVHlwZSA9ICJhcHBsaWNhdGlvbi94LXdoYXQiOworZGlmZiAt LWdpdCBhL3NoZWV0cy9mdW5jdGlvbnMvZGF0ZXRpbWUuY3BwIGIvc2hlZXRzL2Z1bmN0aW9ucy9k YXRldGltZS5jcHAKK2luZGV4IDlmNTlmZTJjZjc1Li42MTU3YjA5OTZjMSAxMDA2NDQKKy0tLSBh L3NoZWV0cy9mdW5jdGlvbnMvZGF0ZXRpbWUuY3BwCisrKysgYi9zaGVldHMvZnVuY3Rpb25zL2Rh dGV0aW1lLmNwcAorQEAgLTU5Nyw2ICs1OTcsNyBAQCBWYWx1ZSBmdW5jX2N1cnJlbnREYXRlKHZh bFZlY3RvciwgVmFsdWVDYWxjICogY2FsYywgRnVuY0V4dHJhICopCisgLy8gRnVuY3Rpb246IENV UlJFTlRUSU1FCisgVmFsdWUgZnVuY19jdXJyZW50VGltZSh2YWxWZWN0b3IsIFZhbHVlQ2FsYyAq IGNhbGMsIEZ1bmNFeHRyYSAqKQorIHsKKysgICAgUV9VTlVTRUQoY2FsYyk7CisgICAgIHJldHVy biBWYWx1ZShRVGltZTo6Y3VycmVudFRpbWUoKSk7CisgfQorIAorZGlmZiAtLWdpdCBhL3NoZWV0 cy9wYXJ0L0RpZ2VzdC5jcHAgYi9zaGVldHMvcGFydC9EaWdlc3QuY3BwCitpbmRleCA4Y2Q5NzJk Yjk4OS4uZTkyNDZjZTZlN2QgMTAwNjQ0CistLS0gYS9zaGVldHMvcGFydC9EaWdlc3QuY3BwCisr KysgYi9zaGVldHMvcGFydC9EaWdlc3QuY3BwCitAQCAtNTk2LDEwICs1OTYsMTAgQEAgc3RhdGlj IHZvaWQgX19ydGxfZGlnZXN0X2VuZFNIQShEaWdlc3RDb250ZXh0U0hBICpjdHgpCisgICAgIH0K KyAKKyAgICAgc3dpdGNoIChjdHgtPm1fbkRhdExlbiAmIDB4MDMpIHsKKy0gICAgY2FzZSAwOiBY W2ldICA9ICgoc2FsX3VJbnQzMikoKihwKyspKSkgPDwgIDBMOworLSAgICBjYXNlIDE6IFhbaV0g fD0gKChzYWxfdUludDMyKSgqKHArKykpKSA8PCAgOEw7CistICAgIGNhc2UgMjogWFtpXSB8PSAo KHNhbF91SW50MzIpKCoocCsrKSkpIDw8IDE2TDsKKy0gICAgY2FzZSAzOiBYW2ldIHw9ICgoc2Fs X3VJbnQzMikoKihwKyspKSkgPDwgMjRMOworKyAgICBjYXNlIDA6IFhbaV0gID0gKChzYWxfdUlu dDMyKSgqKHArKykpKSA8PCAgMEw7IC8qIGZhbGwgdGhyb3VnaCAqLworKyAgICBjYXNlIDE6IFhb aV0gfD0gKChzYWxfdUludDMyKSgqKHArKykpKSA8PCAgOEw7IC8qIGZhbGwgdGhyb3VnaCAqLwor KyAgICBjYXNlIDI6IFhbaV0gfD0gKChzYWxfdUludDMyKSgqKHArKykpKSA8PCAxNkw7IC8qIGZh bGwgdGhyb3VnaCAqLworKyAgICBjYXNlIDM6IFhbaV0gfD0gKChzYWxfdUludDMyKSgqKHArKykp KSA8PCAyNEw7IC8qIGZhbGwgdGhyb3VnaCAqLworICAgICB9CisgCisgICAgIF9fcnRsX2RpZ2Vz dF9zd2FwTG9uZyhYLCBpICsgMSk7CitkaWZmIC0tZ2l0IGEvc2hlZXRzL3NoYXBlL1RhYmxlVG9v bEZhY3RvcnkuaCBiL3NoZWV0cy9zaGFwZS9UYWJsZVRvb2xGYWN0b3J5LmgKK2luZGV4IDY3OWJm ZTE0YjhlLi45NDEyZDhmZmRjNSAxMDA2NDQKKy0tLSBhL3NoZWV0cy9zaGFwZS9UYWJsZVRvb2xG YWN0b3J5LmgKKysrKyBiL3NoZWV0cy9zaGFwZS9UYWJsZVRvb2xGYWN0b3J5LmgKK0BAIC0zNCw3 ICszNCw3IEBAIGNsYXNzIFRhYmxlVG9vbEZhY3RvcnkgOiBwdWJsaWMgS29Ub29sRmFjdG9yeUJh c2UKKyAgICAgVGFibGVUb29sRmFjdG9yeSgpOworICAgICB+VGFibGVUb29sRmFjdG9yeSgpOwor IAorLSAgICBLb1Rvb2xCYXNlKiBjcmVhdGVUb29sKEtvQ2FudmFzQmFzZSogY2FudmFzKTsKKysg ICAgS29Ub29sQmFzZSogY3JlYXRlVG9vbChLb0NhbnZhc0Jhc2UqIGNhbnZhcykgb3ZlcnJpZGU7 CisgfTsKKyAKKyB9IC8vIG5hbWVzcGFjZSBTaGVldHMKK2RpZmYgLS1naXQgYS9zaGVldHMvdGVz dHMvVGVzdFNvcnQuY3BwIGIvc2hlZXRzL3Rlc3RzL1Rlc3RTb3J0LmNwcAoraW5kZXggYjNmMWUz NTE2OWQuLjYzNTRkNzlhYmM1IDEwMDY0NAorLS0tIGEvc2hlZXRzL3Rlc3RzL1Rlc3RTb3J0LmNw cAorKysrIGIvc2hlZXRzL3Rlc3RzL1Rlc3RTb3J0LmNwcAorQEAgLTY4LDcgKzY4LDcgQEAgdm9p ZCBUZXN0U29ydDo6QXNjZW5kaW5nT3JkZXIoKQorICAgICBjb21tYW5kLT5zZXRTaGVldChzaGVl dCk7CisgCisgICAgIC8vIFBhcmFtZXRlcnMuCistICAgIGNvbW1hbmQtPnNldFNvcnRSb3dzKFF0 OjpWZXJ0aWNhbCk7CisrICAgIGNvbW1hbmQtPnNldFNvcnRSb3dzKHRydWUpOworICAgICBjb21t YW5kLT5zZXRTa2lwRmlyc3QoZmFsc2UpOworICAgICBjb21tYW5kLT5zZXRDb3B5Rm9ybWF0KGZh bHNlKTsKKyAKK0BAIC0xMjEsNyArMTIxLDcgQEAgdm9pZCBUZXN0U29ydDo6RGVzY2VuZGluZ09y ZGVyKCkKKyAgICAgY29tbWFuZC0+c2V0U2hlZXQoc2hlZXQpOworIAorICAgICAvLyBQYXJhbWV0 ZXJzLgorLSAgICBjb21tYW5kLT5zZXRTb3J0Um93cyhRdDo6VmVydGljYWwpOworKyAgICBjb21t YW5kLT5zZXRTb3J0Um93cyh0cnVlKTsKKyAgICAgY29tbWFuZC0+c2V0U2tpcEZpcnN0KGZhbHNl KTsKKyAgICAgY29tbWFuZC0+c2V0Q29weUZvcm1hdChmYWxzZSk7CisgCmRpZmYgLS1naXQgYS9z cmNwa2dzL2NhbGxpZ3JhL3BhdGNoZXMvMDAwMi1NYWtlLXNob3ctaGlkZGVuLXJvdy1zLXdvcmsu cGF0Y2ggYi9zcmNwa2dzL2NhbGxpZ3JhL3BhdGNoZXMvMDAwMi1NYWtlLXNob3ctaGlkZGVuLXJv dy1zLXdvcmsucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5k NGIwODJiOWEwZjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2NhbGxpZ3JhL3BhdGNoZXMv MDAwMi1NYWtlLXNob3ctaGlkZGVuLXJvdy1zLXdvcmsucGF0Y2gKQEAgLTAsMCArMSwyOSBAQAor RnJvbSAyMmUwMjk5OGRlYzhhZjE1YTI1YjdlOGUzZDUzYzE3NDgxMGNjM2JlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQorRnJvbTogRGFnIEFuZGVyc2VuIDxkYW5kZXJzQGdldDJuZXQuZGs+CitE YXRlOiBUaHUsIDExIEp1biAyMDIwIDEwOjQzOjM4ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIE1h a2Ugc2hvdyBoaWRkZW4gcm93KHMpIHdvcmsKKworQ2hlY2sgZm9yIGhpZGRlbiByb3dzIHdhcyBp bnZlcnRlZCB0byBjaGVjayBmb3Igc2hvd24gcm93cywKK2hlbmNlIGhpZGRlbiByb3dzIHdvdWxk IG5ldmVyIGJlIHVuaGlkZGVuLgorCitCVUc6MzM4ODE2CitCVUc6MzU0MjM2CitGSVhFRC1JTjoz LjIuMgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgMjg5MjBjNTBlNjMwMGQ2NDM0NzdmMjU2 YWJhOTFjOGM1MTgzNjY4MikKKy0tLQorIHNoZWV0cy9jb21tYW5kcy9Sb3dDb2x1bW5NYW5pcHVs YXRvcnMuY3BwIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxl dGlvbigtKQorCitkaWZmIC0tZ2l0IGEvc2hlZXRzL2NvbW1hbmRzL1Jvd0NvbHVtbk1hbmlwdWxh dG9ycy5jcHAgYi9zaGVldHMvY29tbWFuZHMvUm93Q29sdW1uTWFuaXB1bGF0b3JzLmNwcAoraW5k ZXggOTUyODJkNmUzMWIuLjI1ZThjNDU0ZTI3IDEwMDY0NAorLS0tIGEvc2hlZXRzL2NvbW1hbmRz L1Jvd0NvbHVtbk1hbmlwdWxhdG9ycy5jcHAKKysrKyBiL3NoZWV0cy9jb21tYW5kcy9Sb3dDb2x1 bW5NYW5pcHVsYXRvcnMuY3BwCitAQCAtMTkyLDcgKzE5Miw3IEBAIGJvb2wgSGlkZVNob3dNYW5p cHVsYXRvcjo6cHJlUHJvY2Vzc2luZygpCisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgZm9yIChpbnQgcm93ID0gcmFuZ2UudG9wKCk7 IHJvdyA8PSByYW5nZS5ib3R0b20oKTsgKytyb3cpIHsKKy0gICAgICAgICAgICAgICAgICAgIGlm ICghbV9zaGVldC0+cm93Rm9ybWF0cygpLT5pc0hpZGRlbihyb3cpKSB7CisrICAgICAgICAgICAg ICAgICAgICBpZiAobV9zaGVldC0+cm93Rm9ybWF0cygpLT5pc0hpZGRlbihyb3cpKSB7CisgICAg ICAgICAgICAgICAgICAgICAgICAgcmVnaW9uLmFkZChRUmVjdCgxLCByb3csIEtTX2NvbE1heCwg MSkpOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICB9CmRpZmYgLS1n aXQgYS9zcmNwa2dzL2NhbGxpZ3JhL3BhdGNoZXMvYysrMTcucGF0Y2ggYi9zcmNwa2dzL2NhbGxp Z3JhL3BhdGNoZXMvYysrMTcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi4xZGI4Mzg1MTYxYTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2NhbGxpZ3Jh L3BhdGNoZXMvYysrMTcucGF0Y2gKQEAgLTAsMCArMSwxNiBAQAorZGlmZiAtTmF1ciBDTWFrZUxp c3RzLnR4dC5vcmlnIENNYWtlTGlzdHMudHh0CistLS0gYS9DTWFrZUxpc3RzLnR4dC5vcmlnCisr KysgYi9DTWFrZUxpc3RzLnR4dAorQEAgLTEwNiw5ICsxMDYsOSBAQAorIAorICMgdXNlIENQUC0x MQorIGlmIChDTUFLRV9WRVJTSU9OIFZFUlNJT05fTEVTUyAiMy4xIikKKy0gICAgc2V0IChDTUFL RV9DWFhfRkxBR1MgIiR7Q01BS0VfQ1hYX0ZMQUdTfSAtc3RkPWMrKzExIikKKysgICAgc2V0IChD TUFLRV9DWFhfRkxBR1MgIiR7Q01BS0VfQ1hYX0ZMQUdTfSAtc3RkPWMrKzE3IikKKyBlbHNlICgp CistICAgIHNldCAoQ01BS0VfQ1hYX1NUQU5EQVJEIDExKQorKyAgICBzZXQgKENNQUtFX0NYWF9T VEFOREFSRCAxNykKKyBlbmRpZiAoKQorIAorICMjIyMjIyMjIyMjIworCmRpZmYgLS1naXQgYS9z cmNwa2dzL2NhbGxpZ3JhL3BhdGNoZXMvcG9wcGxlci0yMi4wMy4wLWZpeC5wYXRjaCBiL3NyY3Br Z3MvY2FsbGlncmEvcGF0Y2hlcy9wb3BwbGVyLTIyLjAzLjAtZml4LnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uN2RhYjUzYmNmYzdmCi0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9jYWxsaWdyYS9wYXRjaGVzL3BvcHBsZXItMjIuMDMuMC1maXgucGF0Y2gK QEAgLTAsMCArMSw3MCBAQAorRnJvbSAyMzZiYWNiZTEzNzM5NDE0ZTkxOWRlODY4MjgzYjBjYWYy ZGY1ZDhhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQWxiZXJ0IEFzdGFscyBDaWQg PGFhY2lkQGtkZS5vcmc+CitEYXRlOiBXZWQsIDEzIEFwciAyMDIyIDAxOjI1OjQ0ICswMjAwCitT dWJqZWN0OiBbUEFUQ0hdIFBkZkltcG9ydDogRml4IGNvbXBpbGUgd2l0aCBuZXdlciBwb3BwbGVy CisKK0JyaW5ncyBhIGRlcGVuZGVuY3kgb24gcG9wcGxlci1xdDUgdG8gYmUgYWJsZSB0byBpbmNs dWRlIHRoZSB2ZXJzaW9uCitoZWFkZXIsIGhvbmVzdGx5IGl0J3Mgbm90IHN0cmljdGx5IG5lZWRl ZCwgb25lIGNvdWxkIGRvIGEKK2NoZWNrX2N4eF9zb3VyY2VfY29tcGlsZXMsIGJ1dCBJIGRvbid0 IGNhcmUgYWJvdXQgQ2FsbGlncmEgZW5vdWdoIHRvCitzcGVuZCBtb3JlIHRpbWUgbWFraW5nIGl0 IGNvbXBpbGUgd2hpbGUgaXQncyB1c2luZyBwb3BwbGVyIHRoZSB3cm9uZword2F5LgorLS0tCisg Q01ha2VMaXN0cy50eHQgICAgICAgICAgICAgICAgICAgIHwgMSArCisgZmlsdGVycy9rYXJib24v cGRmL0NNYWtlTGlzdHMudHh0IHwgMiArLQorIGZpbHRlcnMva2FyYm9uL3BkZi9QZGZJbXBvcnQu Y3BwICB8IDkgKysrKysrKysrCisgMyBmaWxlcyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCAx IGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9DTWFrZUxpc3RzLnR4dCBiL0NNYWtlTGlzdHMu dHh0CitpbmRleCA1MWYxZDY1YjhlNi4uMDZiYmFkNWMyNGMgMTAwNjQ0CistLS0gYS9DTWFrZUxp c3RzLnR4dAorKysrIGIvQ01ha2VMaXN0cy50eHQKK0BAIC05NTIsNiArOTUyLDcgQEAgY2FsbGln cmFfZHJvcF9wcm9kdWN0X29uX2JhZF9jb25kaXRpb24oIEZJTFRFUl9XUEdfVE9fT0RHCisgY2Fs bGlncmFfZHJvcF9wcm9kdWN0X29uX2JhZF9jb25kaXRpb24oIEZJTFRFUl9QREZfVE9fU1ZHCisg ICAgIE5PVF9XSU4gIm5vdCBzdXBwb3J0ZWQgb24gV2luZG93cyIKKyAgICAgUG9wcGxlclhQREZI ZWFkZXJzX0ZPVU5EICJwb3BwbGVyIHhwZGYgaGVhZGVycyBub3QgZm91bmQiCisrICAgIFBvcHBs ZXJfRk9VTkQgInBvcHBsZXIgcXQ1IGhlYWRlcnMgbm90IGZvdW5kIgorICAgICApCisgCisgY2Fs bGlncmFfZHJvcF9wcm9kdWN0X29uX2JhZF9jb25kaXRpb24oIEZJTFRFUl9IVE1MX1RPX09EUwor ZGlmZiAtLWdpdCBhL2ZpbHRlcnMva2FyYm9uL3BkZi9DTWFrZUxpc3RzLnR4dCBiL2ZpbHRlcnMv a2FyYm9uL3BkZi9DTWFrZUxpc3RzLnR4dAoraW5kZXggOGZkZGYxYWQ3NTcuLmI3MWM5MmNiZjA0 IDEwMDY0NAorLS0tIGEvZmlsdGVycy9rYXJib24vcGRmL0NNYWtlTGlzdHMudHh0CisrKysgYi9m aWx0ZXJzL2thcmJvbi9wZGYvQ01ha2VMaXN0cy50eHQKK0BAIC0zLDcgKzMsNyBAQCBzZXQocGRm MnN2Z19QQVJUX1NSQ1MgUGRmSW1wb3J0RGVidWcuY3BwIFBkZkltcG9ydC5jcHAgU3ZnT3V0cHV0 RGV2LmNwcCApCisgYWRkX2xpYnJhcnkoY2FsbGlncmFfZmlsdGVyX3BkZjJzdmcgTU9EVUxFICR7 cGRmMnN2Z19QQVJUX1NSQ1N9KQorIGNhbGxpZ3JhX2ZpbHRlcl9kZXNrdG9wX3RvX2pzb24oY2Fs bGlncmFfZmlsdGVyX3BkZjJzdmcgY2FsbGlncmFfZmlsdGVyX3BkZjJzdmcuZGVza3RvcCkKKyAK Ky10YXJnZXRfbGlua19saWJyYXJpZXMoY2FsbGlncmFfZmlsdGVyX3BkZjJzdmcga29tYWluIFBv cHBsZXI6OkNvcmUpCisrdGFyZ2V0X2xpbmtfbGlicmFyaWVzKGNhbGxpZ3JhX2ZpbHRlcl9wZGYy c3ZnIGtvbWFpbiBQb3BwbGVyOjpDb3JlIFBvcHBsZXI6OlF0NSkKKyAKKyBpbnN0YWxsKFRBUkdF VFMgY2FsbGlncmFfZmlsdGVyX3BkZjJzdmcgREVTVElOQVRJT04gJHtQTFVHSU5fSU5TVEFMTF9E SVJ9L2NhbGxpZ3JhL2Zvcm1hdGZpbHRlcnMpCisgCitkaWZmIC0tZ2l0IGEvZmlsdGVycy9rYXJi b24vcGRmL1BkZkltcG9ydC5jcHAgYi9maWx0ZXJzL2thcmJvbi9wZGYvUGRmSW1wb3J0LmNwcAor aW5kZXggYWJiZTY4MWI0ZTguLmU5Nzk3NGZjMTMzIDEwMDY0NAorLS0tIGEvZmlsdGVycy9rYXJi b24vcGRmL1BkZkltcG9ydC5jcHAKKysrKyBiL2ZpbHRlcnMva2FyYm9uL3BkZi9QZGZJbXBvcnQu Y3BwCitAQCAtMTcsNiArMTcsMTAgQEAKKyAKKyAjaW5jbHVkZSA8a3BsdWdpbmZhY3RvcnkuaD4K KyAKKysjaW5jbHVkZSA8cG9wcGxlci12ZXJzaW9uLmg+CisrCisrI2RlZmluZSBQT1BQTEVSX1ZF UlNJT05fTUFDUk8gKChQT1BQTEVSX1ZFUlNJT05fTUFKT1IgPDwgMTYpIHwgKFBPUFBMRVJfVkVS U0lPTl9NSU5PUiA8PCA4KSB8IChQT1BQTEVSX1ZFUlNJT05fTUlDUk8pKQorKworIC8vIERvbid0 IHNob3cgdGhpcyB3YXJuaW5nOiBpdCdzIGFuIGlzc3VlIGluIHBvcHBsZXIKKyAjaWZkZWYgX19H TlVDX18KKyAjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51c2VkLXBhcmFtZXRl ciIKK0BAIC01NCw4ICs1OCwxMyBAQCBLb0ZpbHRlcjo6Q29udmVyc2lvblN0YXR1cyBQZGZJbXBv cnQ6OmNvbnZlcnQoY29uc3QgUUJ5dGVBcnJheSYgZnJvbSwgY29uc3QgUUJ5dAorICAgICBpZiAo ISBnbG9iYWxQYXJhbXMpCisgICAgICAgICByZXR1cm4gS29GaWx0ZXI6Ok5vdEltcGxlbWVudGVk OworIAorKyNpZiBQT1BQTEVSX1ZFUlNJT05fTUFDUk8gPCBRVF9WRVJTSU9OX0NIRUNLKDIyLCAw MywgMCkKKyAgICAgR29vU3RyaW5nICogZm5hbWUgPSBuZXcgR29vU3RyaW5nKFFGaWxlOjplbmNv ZGVOYW1lKG1fY2hhaW4tPmlucHV0RmlsZSgpKS5kYXRhKCkpOworICAgICBQREZEb2MgKiBwZGZE b2MgPSBuZXcgUERGRG9jKGZuYW1lLCAwLCAwLCAwKTsKKysjZWxzZQorKyAgICBzdGQ6OnVuaXF1 ZV9wdHI8R29vU3RyaW5nPiBmbmFtZSA9IHN0ZDo6bWFrZV91bmlxdWU8R29vU3RyaW5nPihRRmls ZTo6ZW5jb2RlTmFtZShtX2NoYWluLT5pbnB1dEZpbGUoKSkuZGF0YSgpKTsKKysgICAgUERGRG9j ICogcGRmRG9jID0gbmV3IFBERkRvYyhzdGQ6Om1vdmUoZm5hbWUpKTsKKysjZW5kaWYKKyAgICAg aWYgKCEgcGRmRG9jKSB7CisgICAgICAgICBnbG9iYWxQYXJhbXMucmVzZXQoKTsKKyAgICAgICAg IHJldHVybiBLb0ZpbHRlcjo6U3R1cGlkRXJyb3I7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2NhbGxp Z3JhL3BhdGNoZXMvcG9wcGxlci0yMi4wNC4wLWZpeC5wYXRjaCBiL3NyY3BrZ3MvY2FsbGlncmEv cGF0Y2hlcy9wb3BwbGVyLTIyLjA0LjAtZml4LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uZTQ3MTY5OTUwYjhiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9jYWxsaWdyYS9wYXRjaGVzL3BvcHBsZXItMjIuMDQuMC1maXgucGF0Y2gKQEAgLTAsMCArMSw5 MSBAQAorRnJvbSA2Yjc1YmVjNzg0Yzk4MzVjNzg5OTMzNDk4NDVkOGMyZWYyMmVjM2RlIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRGFnIEFuZGVyc2VuIDxkYWcuYW5kZXJzZW5Aa2Rl bWFpbC5uZXQ+CitEYXRlOiBXZWQsIDEzIEFwciAyMDIyIDE0OjQ1OjMzICswMjAwCitTdWJqZWN0 OiBbUEFUQ0hdIFBkZkltcG9ydDogRml4IGNvbXBpbGUgd2l0aCBuZXdlciBwb3BwbGVyCisKK0Fs c28gZml4ZXMgb2RnMnBkZiBmaWx0ZXIuCisKK1NhbWUgc29sdXRpb24gYXMgY29tbWl0IDIzNmJh Y2JlMTM3Mzk0MTRlOTE5ZGU4NjgyODNiMGNhZjJkZjVkOGEKK2J5IGFjY2lkQGtkZS5vcmcuCist LS0KKyBmaWx0ZXJzL2thcmJvbi9wZGYvQ01ha2VMaXN0cy50eHQgICAgfCAyICstCisgZmlsdGVy cy9rYXJib24vcGRmL1BkZjJPZGdJbXBvcnQuY3BwIHwgOSArKysrKysrKysKKyBmaWx0ZXJzL2th cmJvbi9wZGYvU3ZnT3V0cHV0RGV2LmNwcCAgfCA5ICsrKysrKysrKworIDMgZmlsZXMgY2hhbmdl ZCwgMTkgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvZmlsdGVy cy9rYXJib24vcGRmL0NNYWtlTGlzdHMudHh0IGIvZmlsdGVycy9rYXJib24vcGRmL0NNYWtlTGlz dHMudHh0CitpbmRleCBiNzFjOTJjYmYwNC4uNGNlMTM4Y2NkZDYgMTAwNjQ0CistLS0gYS9maWx0 ZXJzL2thcmJvbi9wZGYvQ01ha2VMaXN0cy50eHQKKysrKyBiL2ZpbHRlcnMva2FyYm9uL3BkZi9D TWFrZUxpc3RzLnR4dAorQEAgLTEzLDYgKzEzLDYgQEAgc2V0KHBkZjJvZGdfUEFSVF9TUkNTIFBk ZkltcG9ydERlYnVnLmNwcCBQZGYyT2RnSW1wb3J0LmNwcCBTdmdPdXRwdXREZXYuY3BwKQorIGFk ZF9saWJyYXJ5KGNhbGxpZ3JhX2ZpbHRlcl9wZGYyb2RnIE1PRFVMRSAke3BkZjJvZGdfUEFSVF9T UkNTfSkKKyBjYWxsaWdyYV9maWx0ZXJfZGVza3RvcF90b19qc29uKGNhbGxpZ3JhX2ZpbHRlcl9w ZGYyb2RnIGNhbGxpZ3JhX2ZpbHRlcl9wZGYyb2RnLmRlc2t0b3ApCisgCistdGFyZ2V0X2xpbmtf bGlicmFyaWVzKGNhbGxpZ3JhX2ZpbHRlcl9wZGYyb2RnIGtvcGFnZWFwcCBrYXJib251aSBQb3Bw bGVyOjpDb3JlKQorK3RhcmdldF9saW5rX2xpYnJhcmllcyhjYWxsaWdyYV9maWx0ZXJfcGRmMm9k ZyBrb3BhZ2VhcHAga2FyYm9udWkgUG9wcGxlcjo6Q29yZSBQb3BwbGVyOjpRdDUpCisgCisgaW5z dGFsbChUQVJHRVRTIGNhbGxpZ3JhX2ZpbHRlcl9wZGYyb2RnIERFU1RJTkFUSU9OICR7UExVR0lO X0lOU1RBTExfRElSfS9jYWxsaWdyYS9mb3JtYXRmaWx0ZXJzKQorZGlmZiAtLWdpdCBhL2ZpbHRl cnMva2FyYm9uL3BkZi9QZGYyT2RnSW1wb3J0LmNwcCBiL2ZpbHRlcnMva2FyYm9uL3BkZi9QZGYy T2RnSW1wb3J0LmNwcAoraW5kZXggOTM0ZTMxZGQ1YWEuLmEyMWVhYzk3YTc3IDEwMDY0NAorLS0t IGEvZmlsdGVycy9rYXJib24vcGRmL1BkZjJPZGdJbXBvcnQuY3BwCisrKysgYi9maWx0ZXJzL2th cmJvbi9wZGYvUGRmMk9kZ0ltcG9ydC5jcHAKK0BAIC0yNyw2ICsyNyw4IEBACisgCisgI2luY2x1 ZGUgPGtwbHVnaW5mYWN0b3J5Lmg+CisgCisrI2luY2x1ZGUgPHBvcHBsZXItdmVyc2lvbi5oPgor KworIC8vIERvbid0IHNob3cgdGhpcyB3YXJuaW5nOiBpdCdzIGFuIGlzc3VlIGluIHBvcHBsZXIK KyAjaWZkZWYgX19HTlVDX18KKyAjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW51 c2VkLXBhcmFtZXRlciIKK0BAIC0zNiw2ICszOCw4IEBACisgI2luY2x1ZGUgPFBERkRvYy5oPgor ICNpbmNsdWRlIDxHbG9iYWxQYXJhbXMuaD4KKyAKKysjZGVmaW5lIFBPUFBMRVJfVkVSU0lPTl9N QUNSTyAoKFBPUFBMRVJfVkVSU0lPTl9NQUpPUiA8PCAxNikgfCAoUE9QUExFUl9WRVJTSU9OX01J Tk9SIDw8IDgpIHwgKFBPUFBMRVJfVkVSU0lPTl9NSUNSTykpCisrCisgS19QTFVHSU5fRkFDVE9S WV9XSVRIX0pTT04oUGRmMk9kZ0ltcG9ydEZhY3RvcnksICJjYWxsaWdyYV9maWx0ZXJfcGRmMm9k Zy5qc29uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdpc3RlclBsdWdpbjxQZGYy T2RnSW1wb3J0PigpOykKKyAKK0BAIC02OSw4ICs3MywxMyBAQCBLb0ZpbHRlcjo6Q29udmVyc2lv blN0YXR1cyBQZGYyT2RnSW1wb3J0Ojpjb252ZXJ0KGNvbnN0IFFCeXRlQXJyYXkmIGZyb20sIGNv bnN0CisgICAgIGlmICghIGdsb2JhbFBhcmFtcykKKyAgICAgICAgIHJldHVybiBLb0ZpbHRlcjo6 Tm90SW1wbGVtZW50ZWQ7CisgCisrI2lmIFBPUFBMRVJfVkVSU0lPTl9NQUNSTyA8IFFUX1ZFUlNJ T05fQ0hFQ0soMjIsIDAzLCAwKQorICAgICBHb29TdHJpbmcgKiBmbmFtZSA9IG5ldyBHb29TdHJp bmcoUUZpbGU6OmVuY29kZU5hbWUobV9jaGFpbi0+aW5wdXRGaWxlKCkpLmRhdGEoKSk7CisgICAg IFBERkRvYyAqIHBkZkRvYyA9IG5ldyBQREZEb2MoZm5hbWUsIDAsIDAsIDApOworKyNlbHNlCisr ICAgIHN0ZDo6dW5pcXVlX3B0cjxHb29TdHJpbmc+IGZuYW1lID0gc3RkOjptYWtlX3VuaXF1ZTxH b29TdHJpbmc+KFFGaWxlOjplbmNvZGVOYW1lKG1fY2hhaW4tPmlucHV0RmlsZSgpKS5kYXRhKCkp OworKyAgICBQREZEb2MgKiBwZGZEb2MgPSBuZXcgUERGRG9jKHN0ZDo6bW92ZShmbmFtZSkpOwor KyNlbmRpZgorICAgICBpZiAoISBwZGZEb2MpIHsKKyAgICAgICAgIGdsb2JhbFBhcmFtcy5yZXNl dCgpOworICAgICAgICAgcmV0dXJuIEtvRmlsdGVyOjpTdHVwaWRFcnJvcjsKK2RpZmYgLS1naXQg YS9maWx0ZXJzL2thcmJvbi9wZGYvU3ZnT3V0cHV0RGV2LmNwcCBiL2ZpbHRlcnMva2FyYm9uL3Bk Zi9TdmdPdXRwdXREZXYuY3BwCitpbmRleCAwZTZlNWE5MzRjYS4uN2NhZWMxNTE3NWEgMTAwNjQ0 CistLS0gYS9maWx0ZXJzL2thcmJvbi9wZGYvU3ZnT3V0cHV0RGV2LmNwcAorKysrIGIvZmlsdGVy cy9rYXJib24vcGRmL1N2Z091dHB1dERldi5jcHAKK0BAIC0yMiw2ICsyMiwxMCBAQAorICNpbmNs dWRlIDxRUGVuPgorICNpbmNsdWRlIDxRSW1hZ2U+CisgCisrI2luY2x1ZGUgPHBvcHBsZXItdmVy c2lvbi5oPgorKworKyNkZWZpbmUgUE9QUExFUl9WRVJTSU9OX01BQ1JPICgoUE9QUExFUl9WRVJT SU9OX01BSk9SIDw8IDE2KSB8IChQT1BQTEVSX1ZFUlNJT05fTUlOT1IgPDwgOCkgfCAoUE9QUExF Ul9WRVJTSU9OX01JQ1JPKSkKKysKKyBjbGFzcyBTdmdPdXRwdXREZXY6OlByaXZhdGUKKyB7Cisg cHVibGljOgorQEAgLTM4Niw3ICszOTAsMTIgQEAgdm9pZCBTdmdPdXRwdXREZXY6OmRyYXdTdHJp bmcoR2Z4U3RhdGUgKiBzdGF0ZSwgY29uc3QgR29vU3RyaW5nICogcykKKyAgICAgaWYgKHMtPmdl dExlbmd0aCgpID09IDApCisgICAgICAgICByZXR1cm47CisgCisrI2lmIFBPUFBMRVJfVkVSU0lP Tl9NQUNSTyA8IFFUX1ZFUlNJT05fQ0hFQ0soMjIsIDAzLCAwKQorICAgICBHZnhGb250ICogZm9u dCA9IHN0YXRlLT5nZXRGb250KCk7CisrI2Vsc2UKKysgICAgc3RkOjpzaGFyZWRfcHRyPEdmeEZv bnQ+IGZvbnQgPSBzdGF0ZS0+Z2V0Rm9udCgpOworKyNlbmRpZgorKworIAorICAgICBRU3RyaW5n IHN0cjsKKyAKCkZyb20gYTliNGM0M2M5YmVlMTdhZDAxOWNjOWQxMDU5ODRhZWE5YTdmMmNiMCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8MzE5MTYzNzkrT3JlbzYzOUB1 c2Vycy5ub3JlcGx5LmdpdGh1Yi5jb20+CkRhdGU6IEZyaSwgMjUgTWFyIDIwMjIgMTg6MzQ6MDcg LTA3MDAKU3ViamVjdDogW1BBVENIIDUvOF0gaW5rc2NhcGU6IHJlYnVpbGQgYWdhaW5zdCBsaWJw b3BwbGVyIDIyLjA0LjAKCi0tLQogLi4uaWJpbGl0eS13aXRoLVBvcHBsZXItMjIuMDMtYW5kLWxh dGVyLnBhdGNoIHwgIDUwICsrKysrKwogLi4uL0ZpeC1idWlsZC13aXRoLXBvcHBsZXItMjEuMTEu MC5wYXRjaCAgICAgIHwgIDI5ICsrKysKIC4uLi9GaXgtYnVpbGQtd2l0aC1wb3BwbGVyLTIyLjA0 LnBhdGNoICAgICAgICB8IDE0MyArKysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvaW5rc2NhcGUv dGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogNCBmaWxlcyBjaGFuZ2VkLCAy MjMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvaW5rc2NhcGUvcGF0Y2hlcy9FbnN1cmUtY29tcGF0aWJpbGl0eS13aXRoLVBvcHBsZXItMjIu MDMtYW5kLWxhdGVyLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9pbmtzY2FwZS9w YXRjaGVzL0ZpeC1idWlsZC13aXRoLXBvcHBsZXItMjEuMTEuMC5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvaW5rc2NhcGUvcGF0Y2hlcy9GaXgtYnVpbGQtd2l0aC1wb3BwbGVyLTIy LjA0LnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9pbmtzY2FwZS9wYXRjaGVzL0Vuc3VyZS1j b21wYXRpYmlsaXR5LXdpdGgtUG9wcGxlci0yMi4wMy1hbmQtbGF0ZXIucGF0Y2ggYi9zcmNwa2dz L2lua3NjYXBlL3BhdGNoZXMvRW5zdXJlLWNvbXBhdGliaWxpdHktd2l0aC1Qb3BwbGVyLTIyLjAz LWFuZC1sYXRlci5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu LjI5N2VmNjc3NjY1ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvaW5rc2NhcGUvcGF0Y2hl cy9FbnN1cmUtY29tcGF0aWJpbGl0eS13aXRoLVBvcHBsZXItMjIuMDMtYW5kLWxhdGVyLnBhdGNo CkBAIC0wLDAgKzEsNTAgQEAKK0Zyb20gYTE4YzU3ZmZmZjMxM2ZkMDhiYzhhNDRmNmI2YmYwYjAx ZDdlOWI3NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEV2YW5nZWxvcyBGb3V0cmFz IDxldmFuZ2Vsb3NAZm91dHJlbGlzLmNvbT4KK0RhdGU6IFN1biwgMjAgTWFyIDIwMjIgMjI6NDE6 NTEgLTAzMDAKK1N1YmplY3Q6IFtQQVRDSF0gRW5zdXJlIGNvbXBhdGliaWxpdHkgd2l0aCBQb3Bw bGVyIDIyLjAzIGFuZCBsYXRlcgorCitUaGlzIGNoYW5nZSBlbnN1cmVzIHRoYXQgSW5rc2NhcGUg d2lsbCBidWlsZCBhZ2FpbnN0IFBvcHBsZXIgMjIuMDMgYWZ0ZXIKK3RoZSBjaGFuZ2VzIHRoYXQg d2VyZSBtYWRlIHRvIHRoZSBjb25zdHJ1Y3RvciBvZiBgUERGRG9jYC4KKworU2VlOiBodHRwczov L2dpdGxhYi5mcmVlZGVza3RvcC5vcmcvcG9wcGxlci9wb3BwbGVyLy0vY29tbWl0LzRmMmFiZDNl ZgorCitDby1hdXRob3JlZC1ieTogUmFmYWVsIFNpZWpha293c2tpIDxyc0Bycy1tYXRoLm5ldD4K Ky0tLQorIHNyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQvcGRmLWlucHV0LmNwcCAgICAg ICAgICAgIHwgMyArLS0KKyBzcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3BvcHBsZXIt dHJhbnNpdGlvbi1hcGkuaCB8IDYgKysrKysrCisgMiBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlv bnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvZXh0ZW5zaW9uL2ludGVy bmFsL3BkZmlucHV0L3BkZi1pbnB1dC5jcHAgYi9zcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlu cHV0L3BkZi1pbnB1dC5jcHAKK2luZGV4IDNkYWJjOTRiYTIuLjA3OWIwZGM3MTMgMTAwNjQ0Cist LS0gYS9zcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3BkZi1pbnB1dC5jcHAKKysrKyBi L3NyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQvcGRmLWlucHV0LmNwcAorQEAgLTY4OCw4 ICs2ODgsNyBAQCBQZGZJbnB1dDo6b3Blbig6Oklua3NjYXBlOjpFeHRlbnNpb246OklucHV0ICog Lyptb2QqLywgY29uc3QgZ2NoYXIgKiB1cmkpIHsKKyAKKyAgICAgLy8gcG9wcGxlciBkb2VzIG5v dCB1c2UgZ2xpYiBnX29wZW4uIFNvIG9uIHdpbjMyIHdlIG11c3QgdXNlIHVuaWNvZGUgY2FsbC4g Y29kZSB3YXMgY29waWVkIGZyb20KKyAgICAgLy8gZ2xpYiBnc3RkaW8uYworLSAgICBHb29TdHJp bmcgKmZpbGVuYW1lX2dvbyA9IG5ldyBHb29TdHJpbmcodXJpKTsKKy0gICAgcGRmX2RvYyA9IHN0 ZDo6bWFrZV9zaGFyZWQ8UERGRG9jPihmaWxlbmFtZV9nb28sIG51bGxwdHIsIG51bGxwdHIsIG51 bGxwdHIpOyAgIC8vIFRPRE86IENvdWxkIGFzayBmb3IgcGFzc3dvcmQKKysgICAgcGRmX2RvYyA9 IF9QT1BQTEVSX01BS0VfU0hBUkVEX1BERkRPQyh1cmkpOyAvLyBUT0RPOiBDb3VsZCBhc2sgZm9y IHBhc3N3b3JkCisgCisgICAgIGlmICghcGRmX2RvYy0+aXNPaygpKSB7CisgICAgICAgICBpbnQg ZXJyb3IgPSBwZGZfZG9jLT5nZXRFcnJvckNvZGUoKTsKK2RpZmYgLS1naXQgYS9zcmMvZXh0ZW5z aW9uL2ludGVybmFsL3BkZmlucHV0L3BvcHBsZXItdHJhbnNpdGlvbi1hcGkuaCBiL3NyYy9leHRl bnNpb24vaW50ZXJuYWwvcGRmaW5wdXQvcG9wcGxlci10cmFuc2l0aW9uLWFwaS5oCitpbmRleCA4 N2ExOWQ0YzQyLi41MGI2MTdjMjVjIDEwMDY0NAorLS0tIGEvc3JjL2V4dGVuc2lvbi9pbnRlcm5h bC9wZGZpbnB1dC9wb3BwbGVyLXRyYW5zaXRpb24tYXBpLmgKKysrKyBiL3NyYy9leHRlbnNpb24v aW50ZXJuYWwvcGRmaW5wdXQvcG9wcGxlci10cmFuc2l0aW9uLWFwaS5oCitAQCAtMTQsNiArMTQs MTIgQEAKKyAKKyAjaW5jbHVkZSA8Z2xpYi9wb3BwbGVyLWZlYXR1cmVzLmg+CisgCisrI2lmIFBP UFBMRVJfQ0hFQ0tfVkVSU0lPTigyMiwgMywgMCkKKysjZGVmaW5lIF9QT1BQTEVSX01BS0VfU0hB UkVEX1BERkRPQyh1cmkpIHN0ZDo6bWFrZV9zaGFyZWQ8UERGRG9jPihzdGQ6Om1ha2VfdW5pcXVl PEdvb1N0cmluZz4odXJpKSkKKysjZWxzZQorKyNkZWZpbmUgX1BPUFBMRVJfTUFLRV9TSEFSRURf UERGRE9DKHVyaSkgc3RkOjptYWtlX3NoYXJlZDxQREZEb2M+KG5ldyBHb29TdHJpbmcodXJpKSwg bnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0cikKKysjZW5kaWYKKysKKyAjaWYgUE9QUExFUl9DSEVD S19WRVJTSU9OKDAsIDgzLCAwKQorICNkZWZpbmUgX1BPUFBMRVJfQ09OU1RfODMgY29uc3QKKyAj ZWxzZQorLS0gCitHaXRMYWIKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9pbmtzY2FwZS9wYXRjaGVz L0ZpeC1idWlsZC13aXRoLXBvcHBsZXItMjEuMTEuMC5wYXRjaCBiL3NyY3BrZ3MvaW5rc2NhcGUv cGF0Y2hlcy9GaXgtYnVpbGQtd2l0aC1wb3BwbGVyLTIxLjExLjAucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41ZDdmNDgwMTI3M2QKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL2lua3NjYXBlL3BhdGNoZXMvRml4LWJ1aWxkLXdpdGgtcG9wcGxlci0yMS4x MS4wLnBhdGNoCkBAIC0wLDAgKzEsMjkgQEAKK0Zyb20gNTcyNGMyMWI5Y2I3YjYxNzZhN2IzNmNh MjQwNjhiMTQ4YzgxN2U4MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEV2YW5nZWxv cyBGb3V0cmFzIDxldmFuZ2Vsb3NAZm91dHJlbGlzLmNvbT4KK0RhdGU6IE1vbiwgMSBOb3YgMjAy MSAyMTo0NTozOCArMDIwMAorU3ViamVjdDogW1BBVENIXSBGaXggYnVpbGQgd2l0aCBwb3BwbGVy IDIxLjExLjAKKworR2Z4Rm9udDo6dGFnIGlzIG5vdyBvZiB0eXBlIHN0ZDo6c3RyaW5nIGluc3Rl YWQgb2YgR29vU3RyaW5nICouCistLS0KKyBzcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0 L3BkZi1wYXJzZXIuY3BwIHwgNCArKysrCisgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygr KQorCitkaWZmIC0tZ2l0IGEvc3JjL2V4dGVuc2lvbi9pbnRlcm5hbC9wZGZpbnB1dC9wZGYtcGFy c2VyLmNwcCBiL3NyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQvcGRmLXBhcnNlci5jcHAK K2luZGV4IGUzZDA0ZDU0NGIuLmZlZWNlZmEwNDMgMTAwNjQ0CistLS0gYS9zcmMvZXh0ZW5zaW9u L2ludGVybmFsL3BkZmlucHV0L3BkZi1wYXJzZXIuY3BwCisrKysgYi9zcmMvZXh0ZW5zaW9uL2lu dGVybmFsL3BkZmlucHV0L3BkZi1wYXJzZXIuY3BwCitAQCAtMjE2OSw3ICsyMTY5LDExIEBAIHZv aWQgUGRmUGFyc2VyOjpvcFNldEZvbnQoT2JqZWN0IGFyZ3NbXSwgaW50IC8qbnVtQXJncyovKQor ICAgfQorICAgaWYgKHByaW50Q29tbWFuZHMpIHsKKyAgICAgcHJpbnRmKCIgIGZvbnQ6IHRhZz0l cyBuYW1lPSclcycgJWdcbiIsCisrI2lmIFBPUFBMRVJfQ0hFQ0tfVkVSU0lPTigyMSwxMSwwKQor KwkgICBmb250LT5nZXRUYWcoKS5jX3N0cigpLAorKyNlbHNlCisgCSAgIGZvbnQtPmdldFRhZygp LT5nZXRDU3RyaW5nKCksCisrI2VuZGlmCisgCSAgIGZvbnQtPmdldE5hbWUoKSA/IGZvbnQtPmdl dE5hbWUoKS0+Z2V0Q1N0cmluZygpIDogIj8/PyIsCisgCSAgIGFyZ3NbMV0uZ2V0TnVtKCkpOwor ICAgICBmZmx1c2goc3Rkb3V0KTsKKy0tIAorR2l0TGFiCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv aW5rc2NhcGUvcGF0Y2hlcy9GaXgtYnVpbGQtd2l0aC1wb3BwbGVyLTIyLjA0LnBhdGNoIGIvc3Jj cGtncy9pbmtzY2FwZS9wYXRjaGVzL0ZpeC1idWlsZC13aXRoLXBvcHBsZXItMjIuMDQucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5mMTIwNTQyNjhhM2MKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2lua3NjYXBlL3BhdGNoZXMvRml4LWJ1aWxkLXdpdGgt cG9wcGxlci0yMi4wNC5wYXRjaApAQCAtMCwwICsxLDE0MyBAQAorRnJvbSBkOTg5Y2RmMTA1OWM3 OGJjM2JiNjQxNDMzMDI0MjA3Mzc2OGQ2NDBiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJv bTogUmFmYWVsIFNpZWpha293c2tpIDxyc0Bycy1tYXRoLm5ldD4KK0RhdGU6IE1vbiwgNCBBcHIg MjAyMiAyMjowOTozOSAtMDMwMAorU3ViamVjdDogW1BBVENIXSBDb21wYXRpYmlsaXR5IHdpdGgg UG9wcGxlciAyMi4wNAorCitSZXBsYWNlIHZhbmlsbGEgcG9pbnRlcnMgd2l0aCBzdGQ6OnNoYXJl ZF9wdHIgZm9yIHBvaW50ZXJzIHRvIGZvbnRzOworZWxpbWluYXRlIG1hbnVhbCByZWYtY291bnRp bmcuCisKK0ZpeGVzIGh0dHBzOi8vZ2l0bGFiLmNvbS9pbmtzY2FwZS9pbmtzY2FwZS8tL2lzc3Vl cy8zMzg3CistLS0KKyBzcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3BkZi1wYXJzZXIu Y3BwICAgICB8IDE0ICsrKysrKysrLS0tLS0tCisgLi4uL2ludGVybmFsL3BkZmlucHV0L3BvcHBs ZXItdHJhbnNpdGlvbi1hcGkuaCAgICAgfCAgNiArKysrKysKKyBzcmMvZXh0ZW5zaW9uL2ludGVy bmFsL3BkZmlucHV0L3N2Zy1idWlsZGVyLmNwcCAgICB8ICA3ICstLS0tLS0KKyBzcmMvZXh0ZW5z aW9uL2ludGVybmFsL3BkZmlucHV0L3N2Zy1idWlsZGVyLmggICAgICB8ICAxIC0KKyA0IGZpbGVz IGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0 IGEvc3JjL2V4dGVuc2lvbi9pbnRlcm5hbC9wZGZpbnB1dC9wZGYtcGFyc2VyLmNwcCBiL3NyYy9l eHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQvcGRmLXBhcnNlci5jcHAKK2luZGV4IGZlZWNlZmEw NDMuLmQ2ZTJlZGU0ZjMgMTAwNjQ0CistLS0gYS9zcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlu cHV0L3BkZi1wYXJzZXIuY3BwCisrKysgYi9zcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0 L3BkZi1wYXJzZXIuY3BwCitAQCAtMzAsNiArMzAsNyBAQAorICNpbmNsdWRlICJHZnguaCIKKyAj aW5jbHVkZSAicGRmLXBhcnNlci5oIgorICNpbmNsdWRlICJ1dGlsL3VuaXRzLmgiCisrI2luY2x1 ZGUgInBvcHBsZXItdHJhbnNpdGlvbi1hcGkuaCIKKyAKKyAjaW5jbHVkZSAiZ2xpYi9wb3BwbGVy LWZlYXR1cmVzLmgiCisgI2luY2x1ZGUgImdvby9nbWVtLmgiCitAQCAtMjE1OCw3ICsyMTU5LDcg QEAgdm9pZCBQZGZQYXJzZXI6Om9wU2V0Q2hhclNwYWNpbmcoT2JqZWN0IGFyZ3NbXSwgaW50IC8q bnVtQXJncyovKQorIC8vIFRPRE8gbm90IGdvb2QgdGhhdCBudW1BcmdzIGlzIGlnbm9yZWQgYnV0 IGFyZ3NbXSBpcyB1c2VkOgorIHZvaWQgUGRmUGFyc2VyOjpvcFNldEZvbnQoT2JqZWN0IGFyZ3Nb XSwgaW50IC8qbnVtQXJncyovKQorIHsKKy0gIEdmeEZvbnQgKmZvbnQgPSByZXMtPmxvb2t1cEZv bnQoYXJnc1swXS5nZXROYW1lKCkpOworKyAgYXV0byBmb250ID0gcmVzLT5sb29rdXBGb250KGFy Z3NbMF0uZ2V0TmFtZSgpKTsKKyAKKyAgIGlmICghZm9udCkgeworICAgICAvLyB1bnNldHRpbmcg dGhlIGZvbnQgKGRyYXdpbmcgbm8gdGV4dCkgaXMgYmV0dGVyIHRoYW4gdXNpbmcgdGhlCitAQCAt MjE3OSw3ICsyMTgwLDkgQEAgdm9pZCBQZGZQYXJzZXI6Om9wU2V0Rm9udChPYmplY3QgYXJnc1td LCBpbnQgLypudW1BcmdzKi8pCisgICAgIGZmbHVzaChzdGRvdXQpOworICAgfQorIAorKyNpZiAh UE9QUExFUl9DSEVDS19WRVJTSU9OKDIyLCA0LCAwKQorICAgZm9udC0+aW5jUmVmQ250KCk7Cisr I2VuZGlmCisgICBzdGF0ZS0+c2V0Rm9udChmb250LCBhcmdzWzFdLmdldE51bSgpKTsKKyAgIGZv bnRDaGFuZ2VkID0gZ1RydWU7CisgfQorQEAgLTIzNzMsNyArMjM3Niw2IEBAIHZvaWQgUGRmUGFy c2VyOjpkb1Nob3dUZXh0KGNvbnN0IEdvb1N0cmluZyAqcykgeworICNlbHNlCisgdm9pZCBQZGZQ YXJzZXI6OmRvU2hvd1RleHQoR29vU3RyaW5nICpzKSB7CisgI2VuZGlmCistICBHZnhGb250ICpm b250OworICAgaW50IHdNb2RlOworICAgZG91YmxlIHJpc2VYLCByaXNlWTsKKyAgIENoYXJDb2Rl IGNvZGU7CitAQCAtMjM5Miw3ICsyMzk0LDcgQEAgdm9pZCBQZGZQYXJzZXI6OmRvU2hvd1RleHQo R29vU3RyaW5nICpzKSB7CisgI2VuZGlmCisgICBpbnQgbGVuLCBuLCB1TGVuOworIAorLSAgZm9u dCA9IHN0YXRlLT5nZXRGb250KCk7CisrICBhdXRvIGZvbnQgPSBzdGF0ZS0+Z2V0Rm9udCgpOwor ICAgd01vZGUgPSBmb250LT5nZXRXTW9kZSgpOworIAorICAgYnVpbGRlci0+YmVnaW5TdHJpbmco c3RhdGUpOworQEAgLTI0NDUsMTAgKzI0NDcsMTAgQEAgdm9pZCBQZGZQYXJzZXI6OmRvU2hvd1Rl eHQoR29vU3RyaW5nICpzKSB7CisgICAgICAgLy9vdXQtPnVwZGF0ZUNUTShzdGF0ZSwgMSwgMCwg MCwgMSwgMCwgMCk7CisgICAgICAgaWYgKGZhbHNlKXsgLyohb3V0LT5iZWdpblR5cGUzQ2hhcihz dGF0ZSwgY3VyWCArIHJpc2VYLCBjdXJZICsgcmlzZVksIHRkeCwgdGR5LAorIAkJCSAgICAgICBj b2RlLCB1LCB1TGVuKSkgeyovCistICAgICAgICBfUE9QUExFUl9DQUxMX0FSR1MoY2hhclByb2Ms ICgoR2Z4OEJpdEZvbnQgKilmb250KS0+Z2V0Q2hhclByb2MsIGNvZGUpOworLQlpZiAoKHJlc0Rp Y3QgPSAoKEdmeDhCaXRGb250ICopZm9udCktPmdldFJlc291cmNlcygpKSkgeworKyAgICAgICAg X1BPUFBMRVJfQ0FMTF9BUkdTKGNoYXJQcm9jLCBfUE9QUExFUl9GT05UUFRSX1RPX0dGWDgoZm9u dCktPmdldENoYXJQcm9jLCBjb2RlKTsKKysgICAgaWYgKHJlc0RpY3QgPSBfUE9QUExFUl9GT05U UFRSX1RPX0dGWDgoZm9udCktPmdldFJlc291cmNlcygpKSB7CisgCSAgcHVzaFJlc291cmNlcyhy ZXNEaWN0KTsKKy0JfQorKyAgICB9CisgCWlmIChjaGFyUHJvYy5pc1N0cmVhbSgpKSB7CisgCSAg Ly9wYXJzZSgmY2hhclByb2MsIGdGYWxzZSk7IC8vIFRPRE86IHBhcnNlIGludG8gU1ZHIGZvbnQK KyAJfSBlbHNlIHsKK2RpZmYgLS1naXQgYS9zcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0 L3BvcHBsZXItdHJhbnNpdGlvbi1hcGkuaCBiL3NyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5w dXQvcG9wcGxlci10cmFuc2l0aW9uLWFwaS5oCitpbmRleCA1MGI2MTdjMjVjLi5kYzllNDdlNDVi IDEwMDY0NAorLS0tIGEvc3JjL2V4dGVuc2lvbi9pbnRlcm5hbC9wZGZpbnB1dC9wb3BwbGVyLXRy YW5zaXRpb24tYXBpLmgKKysrKyBiL3NyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQvcG9w cGxlci10cmFuc2l0aW9uLWFwaS5oCitAQCAtMTQsNiArMTQsMTIgQEAKKyAKKyAjaW5jbHVkZSA8 Z2xpYi9wb3BwbGVyLWZlYXR1cmVzLmg+CisgCisrI2lmIFBPUFBMRVJfQ0hFQ0tfVkVSU0lPTigy MiwgNCwgMCkKKysjZGVmaW5lIF9QT1BQTEVSX0ZPTlRQVFJfVE9fR0ZYOChmb250X3B0cikgKChH Zng4Qml0Rm9udCAqKWZvbnRfcHRyLmdldCgpKQorKyNlbHNlCisrI2RlZmluZSBfUE9QUExFUl9G T05UUFRSX1RPX0dGWDgoZm9udF9wdHIpICgoR2Z4OEJpdEZvbnQgKilmb250X3B0cikKKysjZW5k aWYKKysKKyAjaWYgUE9QUExFUl9DSEVDS19WRVJTSU9OKDIyLCAzLCAwKQorICNkZWZpbmUgX1BP UFBMRVJfTUFLRV9TSEFSRURfUERGRE9DKHVyaSkgc3RkOjptYWtlX3NoYXJlZDxQREZEb2M+KHN0 ZDo6bWFrZV91bmlxdWU8R29vU3RyaW5nPih1cmkpKQorICNlbHNlCitkaWZmIC0tZ2l0IGEvc3Jj L2V4dGVuc2lvbi9pbnRlcm5hbC9wZGZpbnB1dC9zdmctYnVpbGRlci5jcHAgYi9zcmMvZXh0ZW5z aW9uL2ludGVybmFsL3BkZmlucHV0L3N2Zy1idWlsZGVyLmNwcAoraW5kZXggZWVkZTY2ODg5My4u OTAxY2M4Y2RkYiAxMDA2NDQKKy0tLSBhL3NyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQv c3ZnLWJ1aWxkZXIuY3BwCisrKysgYi9zcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3N2 Zy1idWlsZGVyLmNwcAorQEAgLTEwOCw3ICsxMDgsNiBAQCBTdmdCdWlsZGVyOjp+U3ZnQnVpbGRl cigpID0gZGVmYXVsdDsKKyAKKyB2b2lkIFN2Z0J1aWxkZXI6Ol9pbml0KCkgeworICAgICBfZm9u dF9zdHlsZSA9IG51bGxwdHI7CistICAgIF9jdXJyZW50X2ZvbnQgPSBudWxscHRyOworICAgICBf Zm9udF9zcGVjaWZpY2F0aW9uID0gbnVsbHB0cjsKKyAgICAgX2ZvbnRfc2NhbGluZyA9IDE7Cisg ICAgIF9uZWVkX2ZvbnRfdXBkYXRlID0gdHJ1ZTsKK0BAIC0xMDY0LDExICsxMDYzLDggQEAgdm9p ZCBTdmdCdWlsZGVyOjp1cGRhdGVGb250KEdmeFN0YXRlICpzdGF0ZSkgeworICAgICBfbmVlZF9m b250X3VwZGF0ZSA9IGZhbHNlOworICAgICB1cGRhdGVUZXh0TWF0cml4KHN0YXRlKTsgICAgLy8g RW5zdXJlIHRoYXQgd2UgaGF2ZSBhIHRleHQgbWF0cml4IGJ1aWx0CisgCistICAgIGlmIChfZm9u dF9zdHlsZSkgeworLSAgICAgICAgLy9zcF9yZXByX2Nzc19hdHRyX3VucmVmKF9mb250X3N0eWxl KTsKKy0gICAgfQorICAgICBfZm9udF9zdHlsZSA9IHNwX3JlcHJfY3NzX2F0dHJfbmV3KCk7Cist ICAgIEdmeEZvbnQgKmZvbnQgPSBzdGF0ZS0+Z2V0Rm9udCgpOworKyAgICBhdXRvIGZvbnQgPSBz dGF0ZS0+Z2V0Rm9udCgpOworICAgICAvLyBTdG9yZSBvcmlnaW5hbCBuYW1lCisgICAgIGlmIChm b250LT5nZXROYW1lKCkpIHsKKyAgICAgICAgIF9mb250X3NwZWNpZmljYXRpb24gPSBmb250LT5n ZXROYW1lKCktPmdldENTdHJpbmcoKTsKK0BAIC0xMjEzLDcgKzEyMDksNiBAQCB2b2lkIFN2Z0J1 aWxkZXI6OnVwZGF0ZUZvbnQoR2Z4U3RhdGUgKnN0YXRlKSB7CisgICAgICAgICBzcF9yZXByX2Nz c19zZXRfcHJvcGVydHkoX2ZvbnRfc3R5bGUsICJ3cml0aW5nLW1vZGUiLCAidGIiKTsKKyAgICAg fQorIAorLSAgICBfY3VycmVudF9mb250ID0gZm9udDsKKyAgICAgX2ludmFsaWRhdGVkX3N0eWxl ID0gdHJ1ZTsKKyB9CisgCitkaWZmIC0tZ2l0IGEvc3JjL2V4dGVuc2lvbi9pbnRlcm5hbC9wZGZp bnB1dC9zdmctYnVpbGRlci5oIGIvc3JjL2V4dGVuc2lvbi9pbnRlcm5hbC9wZGZpbnB1dC9zdmct YnVpbGRlci5oCitpbmRleCBmYjRlNjRmYTE5Li5lOTFmZWJkNzE3IDEwMDY0NAorLS0tIGEvc3Jj L2V4dGVuc2lvbi9pbnRlcm5hbC9wZGZpbnB1dC9zdmctYnVpbGRlci5oCisrKysgYi9zcmMvZXh0 ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3N2Zy1idWlsZGVyLmgKK0BAIC0yMDQsNyArMjA0LDYg QEAgcHJpdmF0ZToKKyAgICAgc3RkOjp2ZWN0b3I8U3ZnR3JhcGhpY3NTdGF0ZT4gX3N0YXRlX3N0 YWNrOworIAorICAgICBTUENTU0F0dHIgKl9mb250X3N0eWxlOyAgICAgICAgICAvLyBDdXJyZW50 IGZvbnQgc3R5bGUKKy0gICAgR2Z4Rm9udCAqX2N1cnJlbnRfZm9udDsKKyAgICAgY29uc3QgY2hh ciAqX2ZvbnRfc3BlY2lmaWNhdGlvbjsKKyAgICAgZG91YmxlIF9mb250X3NjYWxpbmc7CisgICAg IGJvb2wgX25lZWRfZm9udF91cGRhdGU7CistLSAKK0dpdExhYgorCmRpZmYgLS1naXQgYS9zcmNw a2dzL2lua3NjYXBlL3RlbXBsYXRlIGIvc3JjcGtncy9pbmtzY2FwZS90ZW1wbGF0ZQppbmRleCA0 NWY0OGNjZGEwZGMuLjRkOTAyZTY2M2Y3MyAxMDA2NDQKLS0tIGEvc3JjcGtncy9pbmtzY2FwZS90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2lua3NjYXBlL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnaW5rc2NhcGUnCiBwa2duYW1lPWlua3NjYXBlCiB2ZXJzaW9u PTEuMS4xCi1yZXZpc2lvbj0zCityZXZpc2lvbj00CiB3cmtzcmM9Imlua3NjYXBlLSR7dmVyc2lv bn1fMjAyMS0wOS0yMF8zYmY1YWUwZDI1IgogYnVpbGRfc3R5bGU9Y21ha2UKICMgYnVpbGRzIGV4 ZWN1dGFibGVzIHRoZW4gcnVucyBjaGVja3MKCkZyb20gY2IxNjkwZmJjYWI3ZTNjN2M5N2QyMGYx Y2VkNzMzNjM1ZTBiOGM2YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8 MzE5MTYzNzkrT3JlbzYzOUB1c2Vycy5ub3JlcGx5LmdpdGh1Yi5jb20+CkRhdGU6IEZyaSwgMjUg TWFyIDIwMjIgMTg6MzQ6NDMgLTA3MDAKU3ViamVjdDogW1BBVENIIDYvOF0gaXBlOiByZWJ1aWxk IGFnYWluc3QgbGlicG9wcGxlciAyMi4wNC4wCgotLS0KIHNyY3BrZ3MvaXBlL3BhdGNoZXMvcG9w cGxlci0yMi4wMy4wLWZpeC5wYXRjaCB8IDMzICsrKysrKysrKysrKysrKysrKysKIHNyY3BrZ3Mv aXBlL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiAyIGZpbGVzIGNo YW5nZWQsIDM0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2lwZS9wYXRjaGVzL3BvcHBsZXItMjIuMDMuMC1maXgucGF0Y2gKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2lwZS9wYXRjaGVzL3BvcHBsZXItMjIuMDMuMC1maXgucGF0Y2ggYi9zcmNw a2dzL2lwZS9wYXRjaGVzL3BvcHBsZXItMjIuMDMuMC1maXgucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kZjI4OTQ4MDljMWMKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL2lwZS9wYXRjaGVzL3BvcHBsZXItMjIuMDMuMC1maXgucGF0Y2gKQEAgLTAsMCAr MSwzMyBAQAorZGlmZiAtTmF1ciBwZGZ0b2lwZS5jcHAub3JpZyBwZGZ0b2lwZS5jcHAKKy0tLSBh L2lwZS10b29scy9wZGZ0b2lwZS9wZGZ0b2lwZS5jcHAub3JpZworKysrIGIvaXBlLXRvb2xzL3Bk ZnRvaXBlL3BkZnRvaXBlLmNwcAorQEAgLTg0LDIyICs4NCwyMCBAQAorICAgaWYgKHF1aWV0KQor ICAgICBnbG9iYWxQYXJhbXMtPnNldEVyclF1aWV0KHF1aWV0KTsKKyAKKy0gIEdvb1N0cmluZyAq b3duZXJQVywgKnVzZXJQVzsKKysgIHN0ZDo6b3B0aW9uYWw8R29vU3RyaW5nPiBvd25lclBXLCB1 c2VyUFc7CisgICBpZiAob3duZXJQYXNzd29yZFswXSkgeworLSAgICBvd25lclBXID0gbmV3IEdv b1N0cmluZyhvd25lclBhc3N3b3JkKTsKKysgICAgb3duZXJQVyA9IEdvb1N0cmluZyhvd25lclBh c3N3b3JkKTsKKyAgIH0gZWxzZSB7CistICAgIG93bmVyUFcgPSAwOworKyAgICBvd25lclBXID0g c3RkOjpudWxsb3B0OworICAgfQorICAgaWYgKHVzZXJQYXNzd29yZFswXSkgeworLSAgICB1c2Vy UFcgPSBuZXcgR29vU3RyaW5nKHVzZXJQYXNzd29yZCk7CisrICAgIHVzZXJQVyA9IEdvb1N0cmlu Zyh1c2VyUGFzc3dvcmQpOworICAgfSBlbHNlIHsKKy0gICAgdXNlclBXID0gMDsKKysgICAgdXNl clBXID0gc3RkOjpudWxsb3B0OworICAgfQorIAorICAgLy8gb3BlbiBQREYgZmlsZQorLSAgUERG RG9jICpkb2MgPSBuZXcgUERGRG9jKGZpbGVOYW1lLCBvd25lclBXLCB1c2VyUFcpOworLSAgZGVs ZXRlIHVzZXJQVzsKKy0gIGRlbGV0ZSBvd25lclBXOworKyAgUERGRG9jICpkb2MgPSBuZXcgUERG RG9jKHN0ZDo6bWFrZV91bmlxdWU8R29vU3RyaW5nPihmaWxlTmFtZSksIG93bmVyUFcsIHVzZXJQ Vyk7CisgCisgICBpZiAoIWRvYy0+aXNPaygpKQorICAgICByZXR1cm4gMTsKKwpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9pcGUvdGVtcGxhdGUgYi9zcmNwa2dzL2lwZS90ZW1wbGF0ZQppbmRleCBhODRk NWMwMzZiMmYuLjcyMzk4ZTdmZjkyNCAxMDA2NDQKLS0tIGEvc3JjcGtncy9pcGUvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9pcGUvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdpcGUnCiBwa2duYW1lPWlwZQogdmVyc2lvbj03LjIuMjQKLXJldmlzaW9uPTYKK3Jl dmlzaW9uPTcKIF90b29sc19jb21taXQ9djcuMi4yMC4xCiBob3N0bWFrZWRlcGVuZHM9InBrZy1j b25maWcgZG94eWdlbiBxdDUtcW1ha2UgcXQ1LXRvb2xzIHF0NS1ob3N0LXRvb2xzIgogbWFrZWRl cGVuZHM9ImNhaXJvLWRldmVsIGdzbC1kZXZlbCBsaWJjdXJsLWRldmVsIGxpYmpwZWctdHVyYm8t ZGV2ZWwKCkZyb20gMGUyYWFkODQ1MTg0MjIwZjRkNzRhNzE1OTI3ZTE2YjA5ZDBkOTA0NCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8MzE5MTYzNzkrT3JlbzYzOUB1c2Vy cy5ub3JlcGx5LmdpdGh1Yi5jb20+CkRhdGU6IEZyaSwgMjUgTWFyIDIwMjIgMTg6MzU6MzAgLTA3 MDAKU3ViamVjdDogW1BBVENIIDcvOF0ga2l0aW5lcmFyeTogcmVidWlsZCBhZ2FpbnN0IGxpYnBv cHBsZXIgMjIuMDQuMAoKLS0tCiBzcmNwa2dzL2tpdGluZXJhcnkvdGVtcGxhdGUgfCAyICstCiAx IGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg YS9zcmNwa2dzL2tpdGluZXJhcnkvdGVtcGxhdGUgYi9zcmNwa2dzL2tpdGluZXJhcnkvdGVtcGxh dGUKaW5kZXggMzQzZWY2NDkxMWQ2Li5hMmNmY2FhMTc4YjYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv a2l0aW5lcmFyeS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2tpdGluZXJhcnkvdGVtcGxhdGUKQEAg LTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdraXRpbmVyYXJ5JwogcGtnbmFtZT1r aXRpbmVyYXJ5CiB2ZXJzaW9uPTIyLjA0LjEKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxk X3N0eWxlPWNtYWtlCiBob3N0bWFrZWRlcGVuZHM9ImV4dHJhLWNtYWtlLW1vZHVsZXMgZ2V0dGV4 dCBrY29yZWFkZG9ucyBwa2ctY29uZmlnIHF0NS1ob3N0LXRvb2xzIHF0NS1xbWFrZSBxdDUtdG9v bHMtZGV2ZWwiCiBtYWtlZGVwZW5kcz0ia2NhbGVuZGFyY29yZS1kZXZlbCBrY29udGFjdHMtZGV2 ZWwga2RlY2xhcmF0aXZlLWRldmVsIGttaW1lLWRldmVsCgpGcm9tIDU2MmNmN2IwZDhhOWFmODAw NDJjYzgwZTgwY2ZlNTc3ZTI4NGNjNGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IG9y ZW82MzkgPDMxOTE2Mzc5K09yZW82MzlAdXNlcnMubm9yZXBseS5naXRodWIuY29tPgpEYXRlOiBG cmksIDI1IE1hciAyMDIyIDE4OjM2OjI0IC0wNzAwClN1YmplY3Q6IFtQQVRDSCA4LzhdIHNjcmli dXM6IHJlYnVpbGQgYWdhaW5zdCBsaWJwb3BwbGVyIDIyLjA0LjAKCi0tLQogLi4uL3BhdGNoZXMv MDAwMS1wb3BwbGVyLTIyLjAyLjAtZml4LnBhdGNoICAgIHwgMTI5ICsrKysrKysrCiAuLi4vcGF0 Y2hlcy8wMDAyLXBvcHBsZXItMjIuMDMuMC1maXgucGF0Y2ggICAgfCAgNTIgKysrKwogLi4uL3Bh dGNoZXMvMDAwMy1wb3BwbGVyLTIyLjA0LjAtZml4LnBhdGNoICAgIHwgMjg4ICsrKysrKysrKysr KysrKysrKwogc3JjcGtncy9zY3JpYnVzL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgIHwg ICA0ICstCiA0IGZpbGVzIGNoYW5nZWQsIDQ3MSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygt KQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvc2NyaWJ1cy9wYXRjaGVzLzAwMDEtcG9wcGxl ci0yMi4wMi4wLWZpeC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvc2NyaWJ1cy9w YXRjaGVzLzAwMDItcG9wcGxlci0yMi4wMy4wLWZpeC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3Mvc2NyaWJ1cy9wYXRjaGVzLzAwMDMtcG9wcGxlci0yMi4wNC4wLWZpeC5wYXRjaAoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc2NyaWJ1cy9wYXRjaGVzLzAwMDEtcG9wcGxlci0yMi4wMi4w LWZpeC5wYXRjaCBiL3NyY3BrZ3Mvc2NyaWJ1cy9wYXRjaGVzLzAwMDEtcG9wcGxlci0yMi4wMi4w LWZpeC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjRlMGY2 MDdjNmEwNwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvc2NyaWJ1cy9wYXRjaGVzLzAwMDEt cG9wcGxlci0yMi4wMi4wLWZpeC5wYXRjaApAQCAtMCwwICsxLDEyOSBAQAorRnJvbSA4NWMwZGZm MzQyMmZhM2MyNmZiYzJlOGQ4NTYxZjU5N2VjMjRiZDkyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQorRnJvbTogSmVhbiBHaGFsaSA8amdoYWxpQGxpYmVydHlzdXJmLmZyPgorRGF0ZTogV2VkLCAy IEZlYiAyMDIyIDIzOjEyOjUyICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdICMxNjczNDogQnVpbGQg YnJlYWsgd2l0aCBwb3BwbGVyIDIyLjIuMAorCitnaXQtc3ZuLWlkOiBzdm46Ly9zY3JpYnVzLm5l dC90cnVuay9TY3JpYnVzQDI0ODg0IDExZDIwNzAxLTg0MzEtMDQxMC1hNzExLWUzYzk1OWUzYjg3 MAorLS0tCisgc2NyaWJ1cy9wbHVnaW5zL2ltcG9ydC9wZGYvc2xhb3V0cHV0LmNwcCB8IDQ3ICsr KysrKysrKysrKysrKysrKystLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAzNyBpbnNlcnRpb25zKCsp LCAxMCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NjcmlidXMvcGx1Z2lucy9pbXBvcnQv cGRmL3NsYW91dHB1dC5jcHAgYi9zY3JpYnVzL3BsdWdpbnMvaW1wb3J0L3BkZi9zbGFvdXRwdXQu Y3BwCitpbmRleCA1ODk0YmYyYWQ2Li4zNjUwYzk2ZjUyIDEwMDY0NAorLS0tIGEvc2NyaWJ1cy9w bHVnaW5zL2ltcG9ydC9wZGYvc2xhb3V0cHV0LmNwcAorKysrIGIvc2NyaWJ1cy9wbHVnaW5zL2lt cG9ydC9wZGYvc2xhb3V0cHV0LmNwcAorQEAgLTcsNiArNywxMSBAQCBmb3Igd2hpY2ggYSBuZXcg bGljZW5zZSAoR1BMK2V4Y2VwdGlvbikgaXMgaW4gcGxhY2UuCisgDQorICNpbmNsdWRlICJzbGFv dXRwdXQuaCINCisgDQorKyNpZiBQT1BQTEVSX0VOQ09ERURfVkVSU0lPTiA+PSBQT1BQTEVSX1ZF UlNJT05fRU5DT0RFKDIyLCAyLCAwKQ0KKysjaW5jbHVkZSA8bWVtb3J5Pg0KKysjaW5jbHVkZSA8 b3B0aW9uYWw+DQorKyNlbmRpZg0KKysNCisgI2luY2x1ZGUgPHBvcHBsZXIvR2xvYmFsUGFyYW1z Lmg+DQorICNpbmNsdWRlIDxwb3BwbGVyL3BvcHBsZXItY29uZmlnLmg+DQorICNpbmNsdWRlIDxw b3BwbGVyL0ZpbGVTcGVjLmg+DQorQEAgLTMwMjcsMTggKzMwMzIsMjQgQEAgdm9pZCBTbGFPdXRw dXREZXY6Om1hcmtQb2ludChQT1BQTEVSX0NPTlNUIGNoYXIgKm5hbWUsIERpY3QgKnByb3BlcnRp ZXMpCisgdm9pZCBTbGFPdXRwdXREZXY6OnVwZGF0ZUZvbnQoR2Z4U3RhdGUgKnN0YXRlKQ0KKyB7 DQorIAlHZnhGb250ICpnZnhGb250Ow0KKy0JR2Z4Rm9udExvYyAqZm9udExvYzsNCisrI2lmIFBP UFBMRVJfRU5DT0RFRF9WRVJTSU9OID49IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUoMjIsIDIsIDAp DQorKwlzdGQ6Om9wdGlvbmFsPEdmeEZvbnRMb2M+IGZvbnRMb2M7DQorKwljb25zdCBHb29TdHJp bmcgKiBmaWxlTmFtZSA9IG51bGxwdHI7DQorKwlzdGQ6OnVuaXF1ZV9wdHI8Rm9GaVRydWVUeXBl PiBmZjsNCisrI2Vsc2UNCisrCUdmeEZvbnRMb2MgKiBmb250TG9jID0gbnVsbHB0cjsNCisrCUdv b1N0cmluZyAqIGZpbGVOYW1lID0gbnVsbHB0cjsNCisrCUZvRmlUcnVlVHlwZSAqIGZmID0gbnVs bHB0cjsNCisrI2VuZGlmDQorIAlHZnhGb250VHlwZSBmb250VHlwZTsNCisgCVNsYU91dEZvbnRG aWxlSUQgKmlkOw0KKyAJU3BsYXNoRm9udEZpbGUgKmZvbnRGaWxlOw0KKyAJU3BsYXNoRm9udFNy YyAqZm9udHNyYyA9IG51bGxwdHI7DQorLQlGb0ZpVHJ1ZVR5cGUgKmZmOw0KKyAJT2JqZWN0IHJl Zk9iaiwgc3RyT2JqOw0KKy0JR29vU3RyaW5nICpmaWxlTmFtZTsNCistCWNoYXIgKnRtcEJ1ZjsN CisrCWNoYXIgKnRtcEJ1ZiA9IG51bGxwdHI7DQorIAlpbnQgdG1wQnVmTGVuID0gMDsNCistCWlu dCAqY29kZVRvR0lEOw0KKy0JY29uc3QgZG91YmxlICp0ZXh0TWF0Ow0KKysJaW50ICpjb2RlVG9H SUQgPSBudWxscHRyOw0KKysJY29uc3QgZG91YmxlICp0ZXh0TWF0ID0gbnVsbHB0cjsNCisgCWRv dWJsZSBtMTEsIG0xMiwgbTIxLCBtMjIsIGZvbnRTaXplOw0KKyAJU3BsYXNoQ29vcmQgbWF0WzRd Ow0KKyAJaW50IG4gPSAwOw0KK0BAIC0zMDQ2LDkgKzMwNTcsNiBAQCB2b2lkIFNsYU91dHB1dERl djo6dXBkYXRlRm9udChHZnhTdGF0ZSAqc3RhdGUpCisgCVNwbGFzaENvb3JkIG1hdHJpeFs2XTsN CisgDQorIAltX2ZvbnQgPSBudWxscHRyOw0KKy0JZmlsZU5hbWUgPSBudWxscHRyOw0KKy0JdG1w QnVmID0gbnVsbHB0cjsNCistCWZvbnRMb2MgPSBudWxscHRyOw0KKyANCisgCWdmeEZvbnQgPSBz dGF0ZS0+Z2V0Rm9udCgpOw0KKyAJaWYgKCFnZnhGb250KQ0KK0BAIC0zMDgzLDcgKzMwOTEsMTEg QEAgdm9pZCBTbGFPdXRwdXREZXY6OnVwZGF0ZUZvbnQoR2Z4U3RhdGUgKnN0YXRlKQorIAkJfQ0K KyAJCWVsc2UNCisgCQl7IC8vIGdmeEZvbnRMb2NFeHRlcm5hbA0KKysjaWYgUE9QUExFUl9FTkNP REVEX1ZFUlNJT04gPj0gUE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgMiwgMCkNCisrCQkJZmls ZU5hbWUgPSBmb250TG9jLT5wYXRoQXNHb29TdHJpbmcoKTsNCisrI2Vsc2UNCisgCQkJZmlsZU5h bWUgPSBmb250TG9jLT5wYXRoOw0KKysjZW5kaWYNCisgCQkJZm9udFR5cGUgPSBmb250TG9jLT5m b250VHlwZTsNCisgCQl9DQorIA0KK0BAIC0zMTM2LDkgKzMxNDgsMTQgQEAgdm9pZCBTbGFPdXRw dXREZXY6OnVwZGF0ZUZvbnQoR2Z4U3RhdGUgKnN0YXRlKQorIAkJCQlmZiA9IEZvRmlUcnVlVHlw ZTo6bWFrZSh0bXBCdWYsIHRtcEJ1Zkxlbik7DQorIAkJCWlmIChmZikNCisgCQkJew0KKysjaWYg UE9QUExFUl9FTkNPREVEX1ZFUlNJT04gPj0gUE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgMiwg MCkNCisrCQkJCWNvZGVUb0dJRCA9ICgoR2Z4OEJpdEZvbnQqKSBnZnhGb250KS0+Z2V0Q29kZVRv R0lETWFwKGZmLmdldCgpKTsNCisrCQkJCWZmLnJlc2V0KCk7DQorKyNlbHNlDQorIAkJCQljb2Rl VG9HSUQgPSAoKEdmeDhCaXRGb250ICopZ2Z4Rm9udCktPmdldENvZGVUb0dJRE1hcChmZik7DQor LQkJCQluID0gMjU2Ow0KKyAJCQkJZGVsZXRlIGZmOw0KKysjZW5kaWYNCisrCQkJCW4gPSAyNTY7 DQorIAkJCX0NCisgCQkJZWxzZQ0KKyAJCQl7DQorQEAgLTMyMDksOCArMzIyNiwxMyBAQCB2b2lk IFNsYU91dHB1dERldjo6dXBkYXRlRm9udChHZnhTdGF0ZSAqc3RhdGUpCisgCQkJCQlmZiA9IEZv RmlUcnVlVHlwZTo6bWFrZSh0bXBCdWYsIHRtcEJ1Zkxlbik7DQorIAkJCQlpZiAoISBmZikNCisg CQkJCQlnb3RvIGVycjI7DQorKyNpZiBQT1BQTEVSX0VOQ09ERURfVkVSU0lPTiA+PSBQT1BQTEVS X1ZFUlNJT05fRU5DT0RFKDIyLCAyLCAwKQ0KKysJCQkJY29kZVRvR0lEID0gKChHZnhDSURGb250 KikgZ2Z4Rm9udCktPmdldENvZGVUb0dJRE1hcChmZi5nZXQoKSwgJm4pOw0KKysJCQkJZmYucmVz ZXQoKTsNCisrI2Vsc2UNCisgCQkJCWNvZGVUb0dJRCA9ICgoR2Z4Q0lERm9udCAqKWdmeEZvbnQp LT5nZXRDb2RlVG9HSURNYXAoZmYsICZuKTsNCisgCQkJCWRlbGV0ZSBmZjsNCisrI2VuZGlmDQor IAkJCX0NCisgCQkJaWYgKCEoZm9udEZpbGUgPSBtX2ZvbnRFbmdpbmUtPmxvYWRUcnVlVHlwZUZv bnQoDQorIAkJCQkJCQlpZCwNCitAQCAtMzI0NywxNCArMzI2OSwxOSBAQCB2b2lkIFNsYU91dHB1 dERldjo6dXBkYXRlRm9udChHZnhTdGF0ZSAqc3RhdGUpCisgCW1hdFszXSA9IC1tMjI7DQorIAlt X2ZvbnQgPSBtX2ZvbnRFbmdpbmUtPmdldEZvbnQoZm9udEZpbGUsIG1hdCwgbWF0cml4KTsNCisg DQorKyNpZiBQT1BQTEVSX0VOQ09ERURfVkVSU0lPTiA8IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUo MjIsIDIsIDApDQorIAlkZWxldGUgZm9udExvYzsNCisrI2VuZGlmDQorIAlpZiAoZm9udHNyYyAm JiAhZm9udHNyYy0+aXNGaWxlKQ0KKyAJCWZvbnRzcmMtPnVucmVmKCk7DQorIAlyZXR1cm47DQor IA0KKyBlcnIyOg0KKyAJZGVsZXRlIGlkOw0KKysjaWYgUE9QUExFUl9FTkNPREVEX1ZFUlNJT04g PCBQT1BQTEVSX1ZFUlNJT05fRU5DT0RFKDIyLCAyLCAwKQ0KKyAJZGVsZXRlIGZvbnRMb2M7DQor KyNlbmRpZg0KKysNCisgZXJyMToNCisgCWlmIChmb250c3JjICYmICFmb250c3JjLT5pc0ZpbGUp DQorIAkJZm9udHNyYy0+dW5yZWYoKTsNCmRpZmYgLS1naXQgYS9zcmNwa2dzL3NjcmlidXMvcGF0 Y2hlcy8wMDAyLXBvcHBsZXItMjIuMDMuMC1maXgucGF0Y2ggYi9zcmNwa2dzL3NjcmlidXMvcGF0 Y2hlcy8wMDAyLXBvcHBsZXItMjIuMDMuMC1maXgucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi5mN2EwYzAzZmRkOTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL3NjcmlidXMvcGF0Y2hlcy8wMDAyLXBvcHBsZXItMjIuMDMuMC1maXgucGF0Y2gKQEAgLTAs MCArMSw1MiBAQAorRnJvbSBmMTk0MTBhYzNiMjdlMzNkZDYyMTA1NzQ2Nzg0ZTYxZTg1YjkwYTFk IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogSmVhbiBHaGFsaSA8amdoYWxpQGxpYmVy dHlzdXJmLmZyPgorRGF0ZTogV2VkLCAyIE1hciAyMDIyIDIyOjIyOjUzICswMDAwCitTdWJqZWN0 OiBbUEFUQ0hdICMxNjc2NDogQnVpbGQgYnJlYWsgd2l0aCBwb3BwbGVyIDIyLjAzLjAKKworZ2l0 LXN2bi1pZDogc3ZuOi8vc2NyaWJ1cy5uZXQvdHJ1bmsvU2NyaWJ1c0AyNDk4MiAxMWQyMDcwMS04 NDMxLTA0MTAtYTcxMS1lM2M5NTllM2I4NzAKKy0tLQorIHNjcmlidXMvcGx1Z2lucy9pbXBvcnQv cGRmL2ltcG9ydHBkZi5jcHAgfCAxMyArKysrKysrKysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDEz IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL3NjcmlidXMvcGx1Z2lucy9pbXBvcnQvcGRm L2ltcG9ydHBkZi5jcHAgYi9zY3JpYnVzL3BsdWdpbnMvaW1wb3J0L3BkZi9pbXBvcnRwZGYuY3Bw CitpbmRleCAxNTRlNThhM2YwLi4zOTJkY2Q5ZTY0IDEwMDY0NAorLS0tIGEvc2NyaWJ1cy9wbHVn aW5zL2ltcG9ydC9wZGYvaW1wb3J0cGRmLmNwcAorKysrIGIvc2NyaWJ1cy9wbHVnaW5zL2ltcG9y dC9wZGYvaW1wb3J0cGRmLmNwcAorQEAgLTg5LDcgKzg5LDExIEBAIFFJbWFnZSBQZGZQbHVnOjpy ZWFkVGh1bWJuYWlsKGNvbnN0IFFTdHJpbmcmIGZOYW1lKQorICNlbmRpZg0KKyAJZ2xvYmFsUGFy YW1zLT5zZXRFcnJRdWlldChnVHJ1ZSk7DQorIA0KKysjaWYgUE9QUExFUl9FTkNPREVEX1ZFUlNJ T04gPj0gUE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgMywgMCkNCisrCVBERkRvYyBwZGZEb2N7 IHN0ZDo6bWFrZV91bmlxdWU8R29vU3RyaW5nPihmbmFtZSkgfTsNCisrI2Vsc2UNCisgCVBERkRv YyBwZGZEb2N7Zm5hbWUsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHJ9Ow0KKysjZW5kaWYNCisg CWlmICghcGRmRG9jLmlzT2soKSB8fCBwZGZEb2MuZ2V0RXJyb3JDb2RlKCkgPT0gZXJyRW5jcnlw dGVkKQ0KKyAJCXJldHVybiBRSW1hZ2UoKTsNCisgDQorQEAgLTM0Miw3ICszNDYsMTEgQEAgYm9v bCBQZGZQbHVnOjpjb252ZXJ0KGNvbnN0IFFTdHJpbmcmIGZuKQorIAlnbG9iYWxQYXJhbXMtPnNl dEVyclF1aWV0KGdUcnVlKTsNCisgLy8JZ2xvYmFsUGFyYW1zLT5zZXRQcmludENvbW1hbmRzKGdU cnVlKTsNCisgCVFMaXN0PE9wdGlvbmFsQ29udGVudEdyb3VwKj4gb2NnR3JvdXBzOw0KKysjaWYg UE9QUExFUl9FTkNPREVEX1ZFUlNJT04gPj0gUE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgMywg MCkNCisrCWF1dG8gcGRmRG9jID0gc3RkOjptYWtlX3VuaXF1ZTxQREZEb2M+KHN0ZDo6bWFrZV91 bmlxdWU8R29vU3RyaW5nPihmbmFtZSkpOw0KKysjZWxzZQ0KKyAJYXV0byBwZGZEb2MgPSBzdGQ6 OnVuaXF1ZV9wdHI8UERGRG9jPihuZXcgUERGRG9jKGZuYW1lLCBudWxscHRyLCBudWxscHRyLCBu dWxscHRyKSk7DQorKyNlbmRpZg0KKyAJaWYgKHBkZkRvYykNCisgCXsNCisgCQlpZiAocGRmRG9j LT5nZXRFcnJvckNvZGUoKSA9PSBlcnJFbmNyeXB0ZWQpDQorQEAgLTM2MSw4ICszNjksMTMgQEAg Ym9vbCBQZGZQbHVnOjpjb252ZXJ0KGNvbnN0IFFTdHJpbmcmIGZuKQorICNlbHNlDQorIAkJCQlh dXRvIGZuYW1lID0gbmV3IEdvb1N0cmluZyhRRmlsZTo6ZW5jb2RlTmFtZShmbikuZGF0YSgpKTsN CisgI2VuZGlmDQorKyNpZiBQT1BQTEVSX0VOQ09ERURfVkVSU0lPTiA+PSBQT1BQTEVSX1ZFUlNJ T05fRU5DT0RFKDIyLCAzLCAwKQ0KKysJCQkJc3RkOjpvcHRpb25hbDxHb29TdHJpbmc+IHVzZXJQ VyhzdGQ6OmluX3BsYWNlLCB0ZXh0LnRvTG9jYWw4Qml0KCkuZGF0YSgpKTsNCisrCQkJCXBkZkRv Yy5yZXNldChuZXcgUERGRG9jKHN0ZDo6bWFrZV91bmlxdWU8R29vU3RyaW5nPihmbmFtZSksIHVz ZXJQVywgdXNlclBXLCBudWxscHRyKSk7DQorKyNlbHNlDQorIAkJCQlhdXRvIHVzZXJQVyA9IG5l dyBHb29TdHJpbmcodGV4dC50b0xvY2FsOEJpdCgpLmRhdGEoKSk7DQorIAkJCQlwZGZEb2MucmVz ZXQobmV3IFBERkRvYyhmbmFtZSwgdXNlclBXLCB1c2VyUFcsIG51bGxwdHIpKTsNCisrI2VuZGlm DQorIAkJCQlxQXBwLT5jaGFuZ2VPdmVycmlkZUN1cnNvcihRQ3Vyc29yKFF0OjpXYWl0Q3Vyc29y KSk7DQorIAkJCX0NCisgCQkJaWYgKCghcGRmRG9jKSB8fCAocGRmRG9jLT5nZXRFcnJvckNvZGUo KSAhPSBlcnJOb25lKSkNCmRpZmYgLS1naXQgYS9zcmNwa2dzL3NjcmlidXMvcGF0Y2hlcy8wMDAz LXBvcHBsZXItMjIuMDQuMC1maXgucGF0Y2ggYi9zcmNwa2dzL3NjcmlidXMvcGF0Y2hlcy8wMDAz LXBvcHBsZXItMjIuMDQuMC1maXgucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi5lMTVlYzdkODEyNjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3Njcmli dXMvcGF0Y2hlcy8wMDAzLXBvcHBsZXItMjIuMDQuMC1maXgucGF0Y2gKQEAgLTAsMCArMSwyODgg QEAKK0Zyb20gZjIyMzdiOGYwYjVjZjc2OTBlODY0YTIyZWY3YTYzYTZkNzY5ZmEzNiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEplYW4gR2hhbGkgPGpnaGFsaUBsaWJlcnR5c3VyZi5m cj4KK0RhdGU6IEZyaSwgMSBBcHIgMjAyMiAyMzo1MjozMiArMDAwMAorU3ViamVjdDogW1BBVENI XSBGaXggYnVpbGQgd2l0aCBwb3BwbGVyIDIyLjA0LjAKKworZ2l0LXN2bi1pZDogc3ZuOi8vc2Ny aWJ1cy5uZXQvdHJ1bmsvU2NyaWJ1c0AyNTA3NCAxMWQyMDcwMS04NDMxLTA0MTAtYTcxMS1lM2M5 NTllM2I4NzAKKy0tLQorIHNjcmlidXMvcGx1Z2lucy9pbXBvcnQvcGRmL3NsYW91dHB1dC5jcHAg fCAxMjMgKysrKysrKysrKysrKystLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNzggaW5zZXJ0 aW9ucygrKSwgNDUgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zY3JpYnVzL3BsdWdpbnMv aW1wb3J0L3BkZi9zbGFvdXRwdXQuY3BwIGIvc2NyaWJ1cy9wbHVnaW5zL2ltcG9ydC9wZGYvc2xh b3V0cHV0LmNwcAoraW5kZXggZTIwYTgxZjk5ZS4uNTYyNmZlMzQ3NyAxMDA2NDQKKy0tLSBhL3Nj cmlidXMvcGx1Z2lucy9pbXBvcnQvcGRmL3NsYW91dHB1dC5jcHAKKysrKyBiL3NjcmlidXMvcGx1 Z2lucy9pbXBvcnQvcGRmL3NsYW91dHB1dC5jcHAKK0BAIC0xNzQsOCArMTc0LDEzIEBAIHZvaWQg QW5vT3V0cHV0RGV2OjpkcmF3U3RyaW5nKEdmeFN0YXRlICpzdGF0ZSwgUE9QUExFUl9DT05TVCBH b29TdHJpbmcgKnMpCisgCWludCBzaGFkZSA9IDEwMDsNCisgCWN1cnJDb2xvclRleHQgPSBnZXRD b2xvcihzdGF0ZS0+Z2V0RmlsbENvbG9yU3BhY2UoKSwgc3RhdGUtPmdldEZpbGxDb2xvcigpLCAm c2hhZGUpOw0KKyAJZm9udFNpemUgPSBzdGF0ZS0+Z2V0Rm9udFNpemUoKTsNCisrI2lmIFBPUFBM RVJfRU5DT0RFRF9WRVJTSU9OID49IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUoMjIsIDQsIDApDQor KwlpZiAoc3RhdGUtPmdldEZvbnQoKSAmJiBzdGF0ZS0+Z2V0Rm9udCgpLT5nZXROYW1lKCkpDQor KwkJZm9udE5hbWUgPSBuZXcgR29vU3RyaW5nKHN0YXRlLT5nZXRGb250KCktPmdldE5hbWUoKS52 YWx1ZSgpKTsNCisrI2Vsc2UNCisgCWlmIChzdGF0ZS0+Z2V0Rm9udCgpKQ0KKyAJCWZvbnROYW1l ID0gc3RhdGUtPmdldEZvbnQoKS0+Z2V0TmFtZSgpLT5jb3B5KCk7DQorKyNlbmRpZg0KKyAJaXRl bVRleHQgPSBzLT5jb3B5KCk7DQorIH0NCisgDQorQEAgLTM1Nyw3ICszNjIsMTIgQEAgc3RkOjp1 bmlxdWVfcHRyPExpbmtBY3Rpb24+IFNsYU91dHB1dERldjo6U0NfZ2V0QWRkaXRpb25hbEFjdGlv bihjb25zdCBjaGFyICprZXkKKyBHQm9vbCBTbGFPdXRwdXREZXY6OmFubm90YXRpb25zX2NhbGxi YWNrKEFubm90ICphbm5vdGEsIHZvaWQgKnVzZXJfZGF0YSkNCisgew0KKyAJU2xhT3V0cHV0RGV2 ICpkZXYgPSAoU2xhT3V0cHV0RGV2Kil1c2VyX2RhdGE7DQorKyNpZiBQT1BQTEVSX0VOQ09ERURf VkVSU0lPTiA+PSBQT1BQTEVSX1ZFUlNJT05fRU5DT0RFKDIyLCA0LCAwKQ0KKysJY29uc3QgUERG UmVjdGFuZ2xlJiBhbm5vdFJlY3QgPSBhbm5vdGEtPmdldFJlY3QoKTs7DQorKwljb25zdCBQREZS ZWN0YW5nbGUqIGJveCA9ICZhbm5vdFJlY3Q7DQorKyNlbHNlDQorIAlQREZSZWN0YW5nbGUgKmJv eCA9IGFubm90YS0+Z2V0UmVjdCgpOw0KKysjZW5kaWYNCisgCWRvdWJsZSB4Q29vciA9IGRldi0+ bV9kb2MtPmN1cnJlbnRQYWdlKCktPnhPZmZzZXQoKSArIGJveC0+eDEgLSBkZXYtPmNyb3BPZmZz ZXRYOw0KKyAJZG91YmxlIHlDb29yID0gZGV2LT5tX2RvYy0+Y3VycmVudFBhZ2UoKS0+eU9mZnNl dCgpICsgZGV2LT5tX2RvYy0+Y3VycmVudFBhZ2UoKS0+aGVpZ2h0KCkgLSBib3gtPnkyICsgZGV2 LT5jcm9wT2Zmc2V0WTsNCisgCWRvdWJsZSB3aWR0aCA9IGJveC0+eDIgLSBib3gtPngxOw0KK0BA IC02ODQsNyArNjk0LDEyIEBAIGJvb2wgU2xhT3V0cHV0RGV2OjpoYW5kbGVXaWRnZXRBbm5vdChB bm5vdCogYW5ub3RhLCBkb3VibGUgeENvb3IsIGRvdWJsZSB5Q29vciwKKyAJCQlpZiAoYXBhIHx8 ICFhY2hhcikNCisgCQkJew0KKyAJCQkJQW5vT3V0cHV0RGV2ICphbm5vdE91dERldiA9IG5ldyBB bm9PdXRwdXREZXYobV9kb2MsIG1faW1wb3J0ZWRDb2xvcnMpOw0KKysjaWYgUE9QUExFUl9FTkNP REVEX1ZFUlNJT04gPj0gUE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgNCwgMCkNCisrCQkJCWNv bnN0IFBERlJlY3RhbmdsZSYgYW5ub3RhUmVjdCA9IGFubm90YS0+Z2V0UmVjdCgpOw0KKysJCQkJ R2Z4KiBnZnggPSBuZXcgR2Z4KHBkZkRvYywgYW5ub3RPdXREZXYsIHBkZkRvYy0+Z2V0UGFnZSht X2FjdFBhZ2UpLT5nZXRSZXNvdXJjZURpY3QoKSwgJmFubm90YVJlY3QsIG51bGxwdHIpOw0KKysj ZWxzZQ0KKyAJCQkJR2Z4ICpnZnggPSBuZXcgR2Z4KHBkZkRvYywgYW5ub3RPdXREZXYsIHBkZkRv Yy0+Z2V0UGFnZShtX2FjdFBhZ2UpLT5nZXRSZXNvdXJjZURpY3QoKSwgYW5ub3RhLT5nZXRSZWN0 KCksIG51bGxwdHIpOw0KKysjZW5kaWYNCisgCQkJCWFuby0+ZHJhdyhnZngsIGZhbHNlKTsNCisg CQkJCWlmICghYmdGb3VuZCkNCisgCQkJCQltX2N1cnJDb2xvckZpbGwgPSBhbm5vdE91dERldi0+ Y3VyckNvbG9yRmlsbDsNCitAQCAtMjkxNiwyMiArMjkzMSwyNyBAQCB2b2lkIFNsYU91dHB1dERl djo6bWFya1BvaW50KFBPUFBMRVJfQ09OU1QgY2hhciAqbmFtZSwgRGljdCAqcHJvcGVydGllcykK KyANCisgdm9pZCBTbGFPdXRwdXREZXY6OnVwZGF0ZUZvbnQoR2Z4U3RhdGUgKnN0YXRlKQ0KKyB7 DQorLQlHZnhGb250ICpnZnhGb250Ow0KKy0jaWYgUE9QUExFUl9FTkNPREVEX1ZFUlNJT04gPj0g UE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgMiwgMCkNCisrI2lmIFBPUFBMRVJfRU5DT0RFRF9W RVJTSU9OID49IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUoMjIsIDQsIDApDQorKwlzdGQ6Om9wdGlv bmFsPEdmeEZvbnRMb2M+IGZvbnRMb2M7DQorKwlzdGQ6OnN0cmluZyBmaWxlTmFtZTsNCisrCXN0 ZDo6dW5pcXVlX3B0cjxGb0ZpVHJ1ZVR5cGU+IGZmOw0KKysJc3RkOjpvcHRpb25hbDxzdGQ6OnZl Y3Rvcjx1bnNpZ25lZCBjaGFyPj4gdG1wQnVmOw0KKysjZWxpZiBQT1BQTEVSX0VOQ09ERURfVkVS U0lPTiA+PSBQT1BQTEVSX1ZFUlNJT05fRU5DT0RFKDIyLCAyLCAwKQ0KKyAJc3RkOjpvcHRpb25h bDxHZnhGb250TG9jPiBmb250TG9jOw0KKyAJY29uc3QgR29vU3RyaW5nICogZmlsZU5hbWUgPSBu dWxscHRyOw0KKyAJc3RkOjp1bmlxdWVfcHRyPEZvRmlUcnVlVHlwZT4gZmY7DQorKwljaGFyKiB0 bXBCdWYgPSBudWxscHRyOw0KKyAjZWxzZQ0KKyAJR2Z4Rm9udExvYyAqIGZvbnRMb2MgPSBudWxs cHRyOw0KKyAJR29vU3RyaW5nICogZmlsZU5hbWUgPSBudWxscHRyOw0KKyAJRm9GaVRydWVUeXBl ICogZmYgPSBudWxscHRyOw0KKysJY2hhciogdG1wQnVmID0gbnVsbHB0cjsNCisgI2VuZGlmDQor IAlHZnhGb250VHlwZSBmb250VHlwZTsNCisgCVNsYU91dEZvbnRGaWxlSUQgKmlkOw0KKyAJU3Bs YXNoRm9udEZpbGUgKmZvbnRGaWxlOw0KKyAJU3BsYXNoRm9udFNyYyAqZm9udHNyYyA9IG51bGxw dHI7DQorIAlPYmplY3QgcmVmT2JqLCBzdHJPYmo7DQorLQljaGFyICp0bXBCdWYgPSBudWxscHRy Ow0KKyAJaW50IHRtcEJ1ZkxlbiA9IDA7DQorIAlpbnQgKmNvZGVUb0dJRCA9IG51bGxwdHI7DQor IAljb25zdCBkb3VibGUgKnRleHRNYXQgPSBudWxscHRyOw0KK0BAIC0yOTQzLDcgKzI5NjMsMTEg QEAgdm9pZCBTbGFPdXRwdXREZXY6OnVwZGF0ZUZvbnQoR2Z4U3RhdGUgKnN0YXRlKQorIA0KKyAJ bV9mb250ID0gbnVsbHB0cjsNCisgDQorLQlnZnhGb250ID0gc3RhdGUtPmdldEZvbnQoKTsNCisr I2lmIFBPUFBMRVJfRU5DT0RFRF9WRVJTSU9OID49IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUoMjIs IDQsIDApDQorKwlHZnhGb250KiBnZnhGb250ID0gc3RhdGUtPmdldEZvbnQoKS5nZXQoKTsNCisr I2Vsc2UNCisrCUdmeEZvbnQqIGdmeEZvbnQgPSBzdGF0ZS0+Z2V0Rm9udCgpOw0KKysjZW5kaWYN CisgCWlmICghZ2Z4Rm9udCkNCisgCQlnb3RvIGVycjE7DQorIA0KK0BAIC0yOTY4LDE1ICsyOTky LDIzIEBAIHZvaWQgU2xhT3V0cHV0RGV2Ojp1cGRhdGVGb250KEdmeFN0YXRlICpzdGF0ZSkKKyAJ CWlmIChmb250TG9jLT5sb2NUeXBlID09IGdmeEZvbnRMb2NFbWJlZGRlZCkNCisgCQl7DQorIAkJ CS8vIGlmIHRoZXJlIGlzIGFuIGVtYmVkZGVkIGZvbnQsIHJlYWQgaXQgdG8gbWVtb3J5DQorLQkJ CXRtcEJ1ZiA9IGdmeEZvbnQtPnJlYWRFbWJGb250RmlsZSh4cmVmLCAmdG1wQnVmTGVuKTsNCisr I2lmIFBPUFBMRVJfRU5DT0RFRF9WRVJTSU9OID49IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUoMjIs IDQsIDApDQorKwkJCXRtcEJ1ZiA9IGdmeEZvbnQtPnJlYWRFbWJGb250RmlsZSgoeHJlZikgPyB4 cmVmIDogcGRmRG9jLT5nZXRYUmVmKCkpOw0KKyAJCQlpZiAoISB0bXBCdWYpDQorIAkJCQlnb3Rv IGVycjI7DQorKyNlbHNlDQorKwkJCXRtcEJ1ZiA9IGdmeEZvbnQtPnJlYWRFbWJGb250RmlsZSh4 cmVmLCAmdG1wQnVmTGVuKTsNCisrCQkJaWYgKCF0bXBCdWYpDQorKwkJCQlnb3RvIGVycjI7DQor KyNlbmRpZg0KKyANCisgCQkJLy8gZXh0ZXJuYWwgZm9udA0KKyAJCX0NCisgCQllbHNlDQorIAkJ eyAvLyBnZnhGb250TG9jRXh0ZXJuYWwNCistI2lmIFBPUFBMRVJfRU5DT0RFRF9WRVJTSU9OID49 IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUoMjIsIDIsIDApDQorKyNpZiBQT1BQTEVSX0VOQ09ERURf VkVSU0lPTiA+PSBQT1BQTEVSX1ZFUlNJT05fRU5DT0RFKDIyLCA0LCAwKQ0KKysJCQlmaWxlTmFt ZSA9IGZvbnRMb2MtPnBhdGg7DQorKyNlbGlmIFBPUFBMRVJfRU5DT0RFRF9WRVJTSU9OID49IFBP UFBMRVJfVkVSU0lPTl9FTkNPREUoMjIsIDIsIDApDQorIAkJCWZpbGVOYW1lID0gZm9udExvYy0+ cGF0aEFzR29vU3RyaW5nKCk7DQorICNlbHNlDQorIAkJCWZpbGVOYW1lID0gZm9udExvYy0+cGF0 aDsNCitAQCAtMjk4NSw1MiArMzAxNyw1NCBAQCB2b2lkIFNsYU91dHB1dERldjo6dXBkYXRlRm9u dChHZnhTdGF0ZSAqc3RhdGUpCisgCQl9DQorIA0KKyAJCWZvbnRzcmMgPSBuZXcgU3BsYXNoRm9u dFNyYzsNCisrI2lmIFBPUFBMRVJfRU5DT0RFRF9WRVJTSU9OID49IFBPUFBMRVJfVkVSU0lPTl9F TkNPREUoMjIsIDQsIDApDQorKwkJaWYgKCFmaWxlTmFtZS5lbXB0eSgpKQ0KKysJCQlmb250c3Jj LT5zZXRGaWxlKGZpbGVOYW1lKTsNCisrCQllbHNlDQorKwkJCWZvbnRzcmMtPnNldEJ1ZihzdGQ6 Om1vdmUodG1wQnVmLnZhbHVlKCkpKTsNCisrI2Vsc2UNCisgCQlpZiAoZmlsZU5hbWUpDQorIAkJ CWZvbnRzcmMtPnNldEZpbGUoZmlsZU5hbWUsIGdGYWxzZSk7DQorIAkJZWxzZQ0KKyAJCQlmb250 c3JjLT5zZXRCdWYodG1wQnVmLCB0bXBCdWZMZW4sIGdUcnVlKTsNCisrI2VuZGlmDQorIA0KKyAJ CS8vIGxvYWQgdGhlIGZvbnQgZmlsZQ0KKyAJCXN3aXRjaCAoZm9udFR5cGUpIHsNCisgCQljYXNl IGZvbnRUeXBlMToNCistCQkJaWYgKCEoZm9udEZpbGUgPSBtX2ZvbnRFbmdpbmUtPmxvYWRUeXBl MUZvbnQoDQorLQkJCQlpZCwNCistCQkJCWZvbnRzcmMsDQorLQkJCQkoY29uc3QgY2hhciAqKiko KEdmeDhCaXRGb250ICopIGdmeEZvbnQpLT5nZXRFbmNvZGluZygpKSkpDQorKwkJCWlmICghKGZv bnRGaWxlID0gbV9mb250RW5naW5lLT5sb2FkVHlwZTFGb250KGlkLCBmb250c3JjLCAoY29uc3Qg Y2hhciAqKikoKEdmeDhCaXRGb250ICopIGdmeEZvbnQpLT5nZXRFbmNvZGluZygpKSkpDQorIAkJ CXsNCistCQkJCWVycm9yKGVyclN5bnRheEVycm9yLCAtMSwgIkNvdWxkbid0IGNyZWF0ZSBhIGZv bnQgZm9yICd7MDpzfSciLA0KKy0JCQkJZ2Z4Rm9udC0+Z2V0TmFtZSgpID8gZ2Z4Rm9udC0+Z2V0 TmFtZSgpLT5nZXRDU3RyaW5nKCkgOiAiKHVubmFtZWQpIik7DQorKwkJCQllcnJvcihlcnJTeW50 YXhFcnJvciwgLTEsICJDb3VsZG4ndCBjcmVhdGUgYSBmb250IGZvciAnezA6c30nIiwgZ2Z4Rm9u dC0+Z2V0TmFtZSgpID8gZ2Z4Rm9udC0+Z2V0TmFtZSgpLT5nZXRDU3RyaW5nKCkgOiAiKHVubmFt ZWQpIik7DQorIAkJCQlnb3RvIGVycjI7DQorIAkJCX0NCisgCQkJYnJlYWs7DQorIAkJY2FzZSBm b250VHlwZTFDOg0KKy0JCQlpZiAoIShmb250RmlsZSA9IG1fZm9udEVuZ2luZS0+bG9hZFR5cGUx Q0ZvbnQoDQorLQkJCQkJCQlpZCwNCistCQkJCQkJCWZvbnRzcmMsDQorLQkJCQkJCQkoY29uc3Qg Y2hhciAqKikoKEdmeDhCaXRGb250ICopIGdmeEZvbnQpLT5nZXRFbmNvZGluZygpKSkpDQorKwkJ CWlmICghKGZvbnRGaWxlID0gbV9mb250RW5naW5lLT5sb2FkVHlwZTFDRm9udChpZCwgZm9udHNy YywgKGNvbnN0IGNoYXIgKiopKChHZng4Qml0Rm9udCAqKSBnZnhGb250KS0+Z2V0RW5jb2Rpbmco KSkpKQ0KKyAJCQl7DQorLQkJCQllcnJvcihlcnJTeW50YXhFcnJvciwgLTEsICJDb3VsZG4ndCBj cmVhdGUgYSBmb250IGZvciAnezA6c30nIiwNCistCQkJCWdmeEZvbnQtPmdldE5hbWUoKSA/IGdm eEZvbnQtPmdldE5hbWUoKS0+Z2V0Q1N0cmluZygpIDogIih1bm5hbWVkKSIpOw0KKysJCQkJZXJy b3IoZXJyU3ludGF4RXJyb3IsIC0xLCAiQ291bGRuJ3QgY3JlYXRlIGEgZm9udCBmb3IgJ3swOnN9 JyIsIGdmeEZvbnQtPmdldE5hbWUoKSA/IGdmeEZvbnQtPmdldE5hbWUoKS0+Z2V0Q1N0cmluZygp IDogIih1bm5hbWVkKSIpOw0KKyAJCQkJZ290byBlcnIyOw0KKyAJCQl9DQorIAkJCWJyZWFrOw0K KyAJCWNhc2UgZm9udFR5cGUxQ09UOg0KKy0JCQlpZiAoIShmb250RmlsZSA9IG1fZm9udEVuZ2lu ZS0+bG9hZE9wZW5UeXBlVDFDRm9udCgNCistCQkJCQkJCWlkLA0KKy0JCQkJCQkJZm9udHNyYywN CistCQkJCQkJCShjb25zdCBjaGFyICoqKSgoR2Z4OEJpdEZvbnQgKikgZ2Z4Rm9udCktPmdldEVu Y29kaW5nKCkpKSkNCisrCQkJaWYgKCEoZm9udEZpbGUgPSBtX2ZvbnRFbmdpbmUtPmxvYWRPcGVu VHlwZVQxQ0ZvbnQoaWQsIGZvbnRzcmMsIChjb25zdCBjaGFyICoqKSgoR2Z4OEJpdEZvbnQgKikg Z2Z4Rm9udCktPmdldEVuY29kaW5nKCkpKSkNCisgCQkJew0KKy0JCQkJZXJyb3IoZXJyU3ludGF4 RXJyb3IsIC0xLCAiQ291bGRuJ3QgY3JlYXRlIGEgZm9udCBmb3IgJ3swOnN9JyIsDQorLQkJCQln ZnhGb250LT5nZXROYW1lKCkgPyBnZnhGb250LT5nZXROYW1lKCktPmdldENTdHJpbmcoKSA6ICIo dW5uYW1lZCkiKTsNCisrCQkJCWVycm9yKGVyclN5bnRheEVycm9yLCAtMSwgIkNvdWxkbid0IGNy ZWF0ZSBhIGZvbnQgZm9yICd7MDpzfSciLCBnZnhGb250LT5nZXROYW1lKCkgPyBnZnhGb250LT5n ZXROYW1lKCktPmdldENTdHJpbmcoKSA6ICIodW5uYW1lZCkiKTsNCisgCQkJCWdvdG8gZXJyMjsN CisgCQkJfQ0KKyAJCQlicmVhazsNCisgCQljYXNlIGZvbnRUcnVlVHlwZToNCisgCQljYXNlIGZv bnRUcnVlVHlwZU9UOg0KKysjaWYgUE9QUExFUl9FTkNPREVEX1ZFUlNJT04gPj0gUE9QUExFUl9W RVJTSU9OX0VOQ09ERSgyMiwgNCwgMCkNCisrCQkJaWYgKCFmaWxlTmFtZS5lbXB0eSgpKQ0KKysJ CQkJZmYgPSBGb0ZpVHJ1ZVR5cGU6OmxvYWQoZmlsZU5hbWUuY19zdHIoKSk7DQorKwkJCWVsc2UN CisrCQkJCWZmID0gRm9GaVRydWVUeXBlOjptYWtlKGZvbnRzcmMtPmJ1Zi5kYXRhKCksIGZvbnRz cmMtPmJ1Zi5zaXplKCkpOw0KKysjZWxzZQ0KKyAJCQlpZiAoZmlsZU5hbWUpDQorIAkJCQlmZiA9 IEZvRmlUcnVlVHlwZTo6bG9hZChmaWxlTmFtZS0+Z2V0Q1N0cmluZygpKTsNCisgCQkJZWxzZQ0K KyAJCQkJZmYgPSBGb0ZpVHJ1ZVR5cGU6Om1ha2UodG1wQnVmLCB0bXBCdWZMZW4pOw0KKysjZW5k aWYNCisgCQkJaWYgKGZmKQ0KKyAJCQl7DQorICNpZiBQT1BQTEVSX0VOQ09ERURfVkVSU0lPTiA+ PSBQT1BQTEVSX1ZFUlNJT05fRU5DT0RFKDIyLCAyLCAwKQ0KK0BAIC0zMDQ3LDI0ICszMDgxLDE3 IEBAIHZvaWQgU2xhT3V0cHV0RGV2Ojp1cGRhdGVGb250KEdmeFN0YXRlICpzdGF0ZSkKKyAJCQkJ Y29kZVRvR0lEID0gbnVsbHB0cjsNCisgCQkJCW4gPSAwOw0KKyAJCQl9DQorLQkJCWlmICghKGZv bnRGaWxlID0gbV9mb250RW5naW5lLT5sb2FkVHJ1ZVR5cGVGb250KA0KKy0JCQkJCQkJaWQsDQor LQkJCQkJCQlmb250c3JjLA0KKy0JCQkJCQkJY29kZVRvR0lELCBuKSkpDQorKwkJCWlmICghKGZv bnRGaWxlID0gbV9mb250RW5naW5lLT5sb2FkVHJ1ZVR5cGVGb250KGlkLCBmb250c3JjLCBjb2Rl VG9HSUQsIG4pKSkNCisgCQkJew0KKy0JCQkJZXJyb3IoZXJyU3ludGF4RXJyb3IsIC0xLCAiQ291 bGRuJ3QgY3JlYXRlIGEgZm9udCBmb3IgJ3swOnN9JyIsDQorLQkJCQlnZnhGb250LT5nZXROYW1l KCkgPyBnZnhGb250LT5nZXROYW1lKCktPmdldENTdHJpbmcoKSA6ICIodW5uYW1lZCkiKTsNCisr CQkJCWVycm9yKGVyclN5bnRheEVycm9yLCAtMSwgIkNvdWxkbid0IGNyZWF0ZSBhIGZvbnQgZm9y ICd7MDpzfSciLCBnZnhGb250LT5nZXROYW1lKCkgPyBnZnhGb250LT5nZXROYW1lKCktPmdldENT dHJpbmcoKSA6ICIodW5uYW1lZCkiKTsNCisgCQkJCWdvdG8gZXJyMjsNCisgCQkJfQ0KKyAJCQli cmVhazsNCisgCQljYXNlIGZvbnRDSURUeXBlMDoNCisgCQljYXNlIGZvbnRDSURUeXBlMEM6DQor LQkJCWlmICghKGZvbnRGaWxlID0gbV9mb250RW5naW5lLT5sb2FkQ0lERm9udCgNCistCQkJCQkJ CWlkLA0KKy0JCQkJCQkJZm9udHNyYykpKQ0KKysJCQlpZiAoIShmb250RmlsZSA9IG1fZm9udEVu Z2luZS0+bG9hZENJREZvbnQoaWQsIGZvbnRzcmMpKSkNCisgCQkJew0KKy0JCQkJZXJyb3IoZXJy U3ludGF4RXJyb3IsIC0xLCAiQ291bGRuJ3QgY3JlYXRlIGEgZm9udCBmb3IgJ3swOnN9JyIsDQor LQkJCQlnZnhGb250LT5nZXROYW1lKCkgPyBnZnhGb250LT5nZXROYW1lKCktPmdldENTdHJpbmco KSA6ICIodW5uYW1lZCkiKTsNCisrCQkJCWVycm9yKGVyclN5bnRheEVycm9yLCAtMSwgIkNvdWxk bid0IGNyZWF0ZSBhIGZvbnQgZm9yICd7MDpzfSciLCBnZnhGb250LT5nZXROYW1lKCkgPyBnZnhG b250LT5nZXROYW1lKCktPmdldENTdHJpbmcoKSA6ICIodW5uYW1lZCkiKTsNCisgCQkJCWdvdG8g ZXJyMjsNCisgCQkJfQ0KKyAJCQlicmVhazsNCitAQCAtMzA4MCwxMCArMzEwNyw3IEBAIHZvaWQg U2xhT3V0cHV0RGV2Ojp1cGRhdGVGb250KEdmeFN0YXRlICpzdGF0ZSkKKyAJCQkJY29kZVRvR0lE ID0gbnVsbHB0cjsNCisgCQkJCW4gPSAwOw0KKyAJCQl9DQorLQkJCWlmICghKGZvbnRGaWxlID0g bV9mb250RW5naW5lLT5sb2FkT3BlblR5cGVDRkZGb250KA0KKy0JCQkJCQkJaWQsDQorLQkJCQkJ CQlmb250c3JjLA0KKy0JCQkJCQkJY29kZVRvR0lELCBuKSkpDQorKwkJCWlmICghKGZvbnRGaWxl ID0gbV9mb250RW5naW5lLT5sb2FkT3BlblR5cGVDRkZGb250KGlkLCBmb250c3JjLCBjb2RlVG9H SUQsIG4pKSkNCisgCQkJew0KKyAJCQkJZXJyb3IoZXJyU3ludGF4RXJyb3IsIC0xLCAiQ291bGRu J3QgY3JlYXRlIGEgZm9udCBmb3IgJ3swOnN9JyIsDQorIAkJCQlnZnhGb250LT5nZXROYW1lKCkg PyBnZnhGb250LT5nZXROYW1lKCktPmdldENTdHJpbmcoKSA6ICIodW5uYW1lZCkiKTsNCitAQCAt MzEwNSwxMCArMzEyOSwxNyBAQCB2b2lkIFNsYU91dHB1dERldjo6dXBkYXRlRm9udChHZnhTdGF0 ZSAqc3RhdGUpCisgCQkJfQ0KKyAJCQllbHNlDQorIAkJCXsNCisrI2lmIFBPUFBMRVJfRU5DT0RF RF9WRVJTSU9OID49IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUoMjIsIDQsIDApDQorKwkJCQlpZiAo IWZpbGVOYW1lLmVtcHR5KCkpDQorKwkJCQkJZmYgPSBGb0ZpVHJ1ZVR5cGU6OmxvYWQoZmlsZU5h bWUuY19zdHIoKSk7DQorKwkJCQllbHNlDQorKwkJCQkJZmYgPSBGb0ZpVHJ1ZVR5cGU6Om1ha2Uo Zm9udHNyYy0+YnVmLmRhdGEoKSwgZm9udHNyYy0+YnVmLnNpemUoKSk7DQorKyNlbHNlDQorIAkJ CQlpZiAoZmlsZU5hbWUpDQorIAkJCQkJZmYgPSBGb0ZpVHJ1ZVR5cGU6OmxvYWQoZmlsZU5hbWUt PmdldENTdHJpbmcoKSk7DQorIAkJCQllbHNlDQorIAkJCQkJZmYgPSBGb0ZpVHJ1ZVR5cGU6Om1h a2UodG1wQnVmLCB0bXBCdWZMZW4pOw0KKysjZW5kaWYNCisgCQkJCWlmICghIGZmKQ0KKyAJCQkJ CWdvdG8gZXJyMjsNCisgI2lmIFBPUFBMRVJfRU5DT0RFRF9WRVJTSU9OID49IFBPUFBMRVJfVkVS U0lPTl9FTkNPREUoMjIsIDIsIDApDQorQEAgLTMxMTksMTMgKzMxNTAsOSBAQCB2b2lkIFNsYU91 dHB1dERldjo6dXBkYXRlRm9udChHZnhTdGF0ZSAqc3RhdGUpCisgCQkJCWRlbGV0ZSBmZjsNCisg I2VuZGlmDQorIAkJCX0NCistCQkJaWYgKCEoZm9udEZpbGUgPSBtX2ZvbnRFbmdpbmUtPmxvYWRU cnVlVHlwZUZvbnQoDQorLQkJCQkJCQlpZCwNCistCQkJCQkJCWZvbnRzcmMsDQorLQkJCQkJCQlj b2RlVG9HSUQsIG4sIGZhY2VJbmRleCkpKQ0KKysJCQlpZiAoIShmb250RmlsZSA9IG1fZm9udEVu Z2luZS0+bG9hZFRydWVUeXBlRm9udChpZCwgZm9udHNyYywgY29kZVRvR0lELCBuLCBmYWNlSW5k ZXgpKSkNCisgCQkJew0KKy0JCQkJZXJyb3IoZXJyU3ludGF4RXJyb3IsIC0xLCAiQ291bGRuJ3Qg Y3JlYXRlIGEgZm9udCBmb3IgJ3swOnN9JyIsDQorLQkJCQlnZnhGb250LT5nZXROYW1lKCkgPyBn ZnhGb250LT5nZXROYW1lKCktPmdldENTdHJpbmcoKSA6ICIodW5uYW1lZCkiKTsNCisrCQkJCWVy cm9yKGVyclN5bnRheEVycm9yLCAtMSwgIkNvdWxkbid0IGNyZWF0ZSBhIGZvbnQgZm9yICd7MDpz fSciLCBnZnhGb250LT5nZXROYW1lKCkgPyBnZnhGb250LT5nZXROYW1lKCktPmdldENTdHJpbmco KSA6ICIodW5uYW1lZCkiKTsNCisgCQkJCWdvdG8gZXJyMjsNCisgCQkJfQ0KKyAJCQlicmVhazsN CitAQCAtMzI2OSw5ICszMjk2LDE1IEBAIHZvaWQgU2xhT3V0cHV0RGV2OjpkcmF3Q2hhcihHZnhT dGF0ZSogc3RhdGUsIGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIGR4LCBkb3ViCisgR0Jvb2wg U2xhT3V0cHV0RGV2OjpiZWdpblR5cGUzQ2hhcihHZnhTdGF0ZSAqc3RhdGUsIGRvdWJsZSB4LCBk b3VibGUgeSwgZG91YmxlIGR4LCBkb3VibGUgZHksIENoYXJDb2RlIGNvZGUsIFBPUFBMRVJfQ09O U1RfMDgyIFVuaWNvZGUgKnUsIGludCB1TGVuKQ0KKyB7DQorIC8vCXFEZWJ1ZygpIDw8ICJiZWdp blR5cGUzQ2hhciI7DQorKyNpZiBQT1BQTEVSX0VOQ09ERURfVkVSU0lPTiA+PSBQT1BQTEVSX1ZF UlNJT05fRU5DT0RFKDIyLCA0LCAwKQ0KKyAJR2Z4Rm9udCAqZ2Z4Rm9udDsNCisrCWlmICghKGdm eEZvbnQgPSBzdGF0ZS0+Z2V0Rm9udCgpLmdldCgpKSkNCisrCQlyZXR1cm4gZ1RydWU7DQorKyNl bHNlDQorKwlHZnhGb250KiBnZnhGb250Ow0KKyAJaWYgKCEoZ2Z4Rm9udCA9IHN0YXRlLT5nZXRG b250KCkpKQ0KKyAJCXJldHVybiBnVHJ1ZTsNCisrI2VuZGlmDQorIAlpZiAoZ2Z4Rm9udC0+Z2V0 VHlwZSgpICE9IGZvbnRUeXBlMykNCisgCQlyZXR1cm4gZ1RydWU7DQorIAlGM0VudHJ5IGYzZTsN CmRpZmYgLS1naXQgYS9zcmNwa2dzL3NjcmlidXMvdGVtcGxhdGUgYi9zcmNwa2dzL3NjcmlidXMv dGVtcGxhdGUKaW5kZXggMGVjOTA4ZjdlZjUwLi4xMjVhN2Q1NGU0Y2YgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3Mvc2NyaWJ1cy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3NjcmlidXMvdGVtcGxhdGUKQEAg LTEsMTAgKzEsMTAgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3NjcmlidXMnCiBwa2duYW1lPXNj cmlidXMKIHZlcnNpb249MS41LjgKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxl PWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURDTUFLRV9TS0lQX1JQQVRIPVRSVUUgLURRVF9QUkVG SVg9JHtYQlBTX0NST1NTX0JBU0V9L3VzcgotIC1EV0FOVF9HUkFQSElDU01BR0lDSz0xIgorIC1E V0FOVF9HUkFQSElDU01BR0lDSz0xIC1EV0FOVF9DUFAxNz1PTiIKIGhvc3RtYWtlZGVwZW5kcz0i cGtnLWNvbmZpZyBxdDUtcW1ha2UgcXQ1LWhvc3QtdG9vbHMgcHl0aG9uMyIKIG1ha2VkZXBlbmRz PSJxdDUtZGV2ZWwgcXQ1LXRvb2xzLWRldmVsIHpsaWItZGV2ZWwgY2Fpcm8tZGV2ZWwgbGNtczIt ZGV2ZWwKICBjdXBzLWRldmVsIGxpYnhtbDItZGV2ZWwgaHlwaGVuLWRldmVsIGdob3N0c2NyaXB0 LWRldmVsIGJvb3N0LWRldmVsCg== --===============3133399171657505579==--