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 29928 invoked from network); 5 Jul 2022 23:58:19 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 5 Jul 2022 23:58:19 -0000 Content-Type: multipart/mixed; boundary="===============6341914990633853929==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_poppler=3A_update_to_22=2E07=2E0?= To: ml@inbox.vuxu.org From: oreo639 Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Wed, 06 Jul 2022 01:58:19 +0200 List-Id: Message-ID: <20220705235819.rvRnzh3f93kbrZ5ZnfrdyX4-JMldwbTzhVnMJ87bgb4@z> GitHub notification mails are now in MIME to allow UTF8. --===============6341914990633853929== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgb3JlbzYzOSBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vb3Jl bzYzOS92b2lkLXBhY2thZ2VzIHBvcHBsZXIKaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgv dm9pZC1wYWNrYWdlcy9wdWxsLzM2MzUxCgpwb3BwbGVyOiB1cGRhdGUgdG8gMjIuMDcuMAo8IS0t IFVuY29tbWVudCByZWxldmFudCBzZWN0aW9ucyBhbmQgZGVsZXRlIG9wdGlvbnMgd2hpY2ggYXJl IG5vdCBhcHBsaWNhYmxlIC0tPg0KDQojIyMjIFRlc3RpbmcgdGhlIGNoYW5nZXMNCi0gSSB0ZXN0 ZWQgdGhlIGNoYW5nZXMgaW4gdGhpcyBQUjogKipicmllZmx5KioNCg0KPCEtLQ0KIyMjIyBOZXcg cGFja2FnZQ0KLSBUaGlzIG5ldyBwYWNrYWdlIGNvbmZvcm1zIHRvIHRoZSBbcXVhbGl0eSByZXF1 aXJlbWVudHNdKGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvYmxv Yi9tYXN0ZXIvTWFudWFsLm1kI3F1YWxpdHktcmVxdWlyZW1lbnRzKTogKipZRVMqKnwqKk5PKioN Ci0tPg0KDQo8IS0tIE5vdGU6IElmIHRoZSBidWlsZCBpcyBsaWtlbHkgdG8gdGFrZSBtb3JlIHRo YW4gMiBob3VycywgcGxlYXNlIFtza2lwIENJXShodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51 eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVyL0NPTlRSSUJVVElORy5tZCNjb250aW51b3VzLWlu dGVncmF0aW9uKQ0KYW5kIHRlc3QgYXQgbGVhc3Qgb25lIG5hdGl2ZSBidWlsZCBhbmQsIGlmIHN1 cHBvcnRlZCwgYXQgbGVhc3Qgb25lIGNyb3NzIGJ1aWxkLg0KSWdub3JlIHRoaXMgc2VjdGlvbiBp ZiB0aGlzIFBSIGlzIG5vdCBza2lwcGluZyBDSS4NCi0tPg0KPCEtLSANCiMjIyMgTG9jYWwgYnVp bGQgdGVzdGluZw0KLSBJIGJ1aWx0IHRoaXMgUFIgbG9jYWxseSBmb3IgbXkgbmF0aXZlIGFyY2hp dGVjdHVyZSwgKEFSQ0gtTElCQykNCi0gSSBidWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIHRoZXNl IGFyY2hpdGVjdHVyZXMgKGlmIHN1cHBvcnRlZC4gbWFyayBjcm9zc2J1aWxkcyk6DQogIC0gYWFy Y2g2NC1tdXNsDQogIC0gYXJtdjdsDQogIC0gYXJtdjZsLW11c2wNCi0tPg0KCgpBIHBhdGNoIGZp bGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwv MzYzNTEucGF0Y2ggaXMgYXR0YWNoZWQ= --===============6341914990633853929== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-poppler-36351.patch" RnJvbSBmYzliMGE4YmQ2YWUyMzA1MTcwNmM4OGZmNjUzNGEyZDQ4OGVkMjY5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDwzMTkxNjM3OStPcmVvNjM5QHVzZXJzLm5vcmVw bHkuZ2l0aHViLmNvbT4KRGF0ZTogRnJpLCAyNSBNYXIgMjAyMiAxODoyODowOCAtMDcwMApTdWJq ZWN0OiBbUEFUQ0ggMDEvMTBdIHBvcHBsZXI6IHVwZGF0ZSB0byAyMi4wNy4wCgotLS0KIGNvbW1v bi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiAuLi4vcGF0 Y2hlcy9jbWFrZS1idWlsZC10eXBlLW5vbmUucGF0Y2ggICAgICAgfCAxMyArKysrKysrKysrKysK IHNyY3BrZ3MvcG9wcGxlci9wYXRjaGVzL2ZpeC1jZmxhZ3MucGF0Y2ggICAgICB8IDIxIC0tLS0t LS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvcG9wcGxlci90ZW1wbGF0ZSAgICAgICAgICAgICAgICAg ICAgICB8IDEzICsrKysrKysrLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCAyMyBpbnNlcnRpb25zKCsp LCAyNiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3BvcHBsZXIvcGF0 Y2hlcy9jbWFrZS1idWlsZC10eXBlLW5vbmUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL3BvcHBsZXIvcGF0Y2hlcy9maXgtY2ZsYWdzLnBhdGNoCgpkaWZmIC0tZ2l0IGEvY29tbW9u L3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggYTVmMzg1ZjcxOWI5Li44MDY0ZjYyYzdhMDIg MTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtMzUwLDcg KzM1MCw3IEBAIGxpYk1hZ2lja0NvcmUtNi5RMTYuc28uNyBsaWJtYWdpY2s2LTYuOS4xMS42MV8x CiBsaWJNYWdpY2tXYW5kLTYuUTE2LnNvLjcgbGlibWFnaWNrNi02LjkuMTEuNjFfMQogbGliTWFn aWNrKystNi5RMTYuc28uOSBsaWJtYWdpY2s2LTYuOS4xMi4xXzEKIGxpYmx0ZGwuc28uNyBsaWJs dGRsLTIuMi42XzEKLWxpYnBvcHBsZXIuc28uMTExIGxpYnBvcHBsZXItMjEuMDcuMF8xCitsaWJw b3BwbGVyLnNvLjEyMiBsaWJwb3BwbGVyLTIyLjA2LjBfMQogbGlicG9wcGxlci1nbGliLnNvLjgg cG9wcGxlci1nbGliLTAuMTguMl8xCiBsaWJwb3BwbGVyLWNwcC5zby4wIHBvcHBsZXItY3BwLTAu MTguMl8xCiBsaWJwb3BwbGVyLXF0NS5zby4xIHBvcHBsZXItcXQ1LTAuMzEuMF8xCmRpZmYgLS1n aXQgYS9zcmNwa2dzL3BvcHBsZXIvcGF0Y2hlcy9jbWFrZS1idWlsZC10eXBlLW5vbmUucGF0Y2gg Yi9zcmNwa2dzL3BvcHBsZXIvcGF0Y2hlcy9jbWFrZS1idWlsZC10eXBlLW5vbmUucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4zZjEwN2QzNmJjNmQKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL3BvcHBsZXIvcGF0Y2hlcy9jbWFrZS1idWlsZC10eXBlLW5v bmUucGF0Y2gKQEAgLTAsMCArMSwxMyBAQAorZGlmZiAtLWdpdCBhL2NtYWtlL21vZHVsZXMvUG9w cGxlck1hY3Jvcy5jbWFrZSBiL2NtYWtlL21vZHVsZXMvUG9wcGxlck1hY3Jvcy5jbWFrZQoraW5k ZXggMmFlZDAyODQuLmVhOGQ3ZTU3IDEwMDY0NAorLS0tIGEvY21ha2UvbW9kdWxlcy9Qb3BwbGVy TWFjcm9zLmNtYWtlCisrKysgYi9jbWFrZS9tb2R1bGVzL1BvcHBsZXJNYWNyb3MuY21ha2UKK0BA IC04MCw3ICs4MCw3IEBAIGlmKE5PVCBDTUFLRV9CVUlMRF9UWVBFIEFORCBOT1QgQ01BS0VfQ09O RklHVVJBVElPTl9UWVBFUykKKyBlbmRpZihOT1QgQ01BS0VfQlVJTERfVFlQRSBBTkQgTk9UIENN QUtFX0NPTkZJR1VSQVRJT05fVFlQRVMpCisgCisgc3RyaW5nKFRPVVBQRVIgIiR7Q01BS0VfQlVJ TERfVFlQRX0iIF9DTUFLRV9CVUlMRF9UWVBFX1VQUEVSKQorLXNldChfa25vd25fYnVpbGRfdHlw ZXMgUkVMV0lUSERFQklORk87UkVMRUFTRTtERUJVRztERUJVR0ZVTEw7UFJPRklMRSkKKytzZXQo X2tub3duX2J1aWxkX3R5cGVzIFJFTFdJVEhERUJJTkZPO1JFTEVBU0U7REVCVUc7REVCVUdGVUxM O1BST0ZJTEU7Tk9ORSkKKyAjIFdlIG92ZXJyaWRlIENNQUtFX0NYWF9GTEFHU18ke19DTUFLRV9C VUlMRF9UWVBFX1VQUEVSfSBiZWxvdy4gSWYgdGhlIHVzZXIKKyAjIHNlbGVjdHMgYSBDTUFLRV9C VUlMRF9UWVBFIHRoYXQgaXMgbm90IGhhbmRsZWQgYnkgdGhlIGxvZ2ljIGJlbG93LCB3ZSB3aWxs CisgIyBlbmQgdXAgZHJvcHBpbmcgdGhlIHByZXZpb3VzIGZsYWdzIChlLmcuIHRob3NlIHNldCBp biBhIGNyb3NzLWNvbXBpbGF0aW9uCmRpZmYgLS1naXQgYS9zcmNwa2dzL3BvcHBsZXIvcGF0Y2hl cy9maXgtY2ZsYWdzLnBhdGNoIGIvc3JjcGtncy9wb3BwbGVyL3BhdGNoZXMvZml4LWNmbGFncy5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjFhNDA4ZDAzY2NlLi4wMDAwMDAw MDAwMDAKLS0tIGEvc3JjcGtncy9wb3BwbGVyL3BhdGNoZXMvZml4LWNmbGFncy5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLWRpZmYgLS1naXQgYS9jbWFrZS9tb2R1bGVzL1Bv cHBsZXJNYWNyb3MuY21ha2UgYi9jbWFrZS9tb2R1bGVzL1BvcHBsZXJNYWNyb3MuY21ha2UKLWlu ZGV4IGZlMTE4MmQuLjYwMTNiZDIgMTAwNjQ0Ci0tLS0gYS9jbWFrZS9tb2R1bGVzL1BvcHBsZXJN YWNyb3MuY21ha2UKLSsrKyBiL2NtYWtlL21vZHVsZXMvUG9wcGxlck1hY3Jvcy5jbWFrZQotQEAg LTEwNCwxNCArMTA0LDE0IEBAIGlmKENNQUtFX0NPTVBJTEVSX0lTX0dOVUNYWCkKLSAgIHNldChE RUZBVUxUX0NPTVBJTEVfV0FSTklOR1NfRVhUUkEgIiR7X3dhcm59ICR7X3dhcm54fSIpCi0gCi0g ICBzZXQoX3NhdmVfY3h4ZmxhZ3MgIiR7Q01BS0VfQ1hYX0ZMQUdTfSIpCi0tICBzZXQoQ01BS0Vf Q1hYX0ZMQUdTICAgICAgICAgICAgICAgICItZm5vLWV4Y2VwdGlvbnMgLWZuby1jaGVjay1uZXcg LWZuby1jb21tb24gLWZuby1vcGVyYXRvci1uYW1lcyAtRF9ERUZBVUxUX1NPVVJDRSIpCi0rICBz ZXQoQ01BS0VfQ1hYX0ZMQUdTICAgICAgICAgICAgICAgICItZm5vLWV4Y2VwdGlvbnMgLWZuby1j aGVjay1uZXcgLWZuby1jb21tb24gLWZuby1vcGVyYXRvci1uYW1lcyAtRF9ERUZBVUxUX1NPVVJD RSAke19zYXZlX2N4eGZsYWdzfSIpCi0gICBzZXQoQ01BS0VfQ1hYX0ZMQUdTX1JFTFdJVEhERUJJ TkZPICItTzIgLWcgJHtfc2F2ZV9jeHhmbGFnc30iKQotICAgc2V0KENNQUtFX0NYWF9GTEFHU19S RUxFQVNFICAgICAgICAiLU8yIC1ETkRFQlVHICR7X3NhdmVfY3h4ZmxhZ3N9IikKLSAgIHNldChD TUFLRV9DWFhfRkxBR1NfREVCVUcgICAgICAgICAgIi1nIC1PMiAtZm5vLXJlb3JkZXItYmxvY2tz IC1mbm8tc2NoZWR1bGUtaW5zbnMgLWZuby1pbmxpbmUgJHtfc2F2ZV9jeHhmbGFnc30iKQotICAg c2V0KENNQUtFX0NYWF9GTEFHU19ERUJVR0ZVTEwgICAgICAiLWczIC1mbm8taW5saW5lICR7X3Nh dmVfY3h4ZmxhZ3N9IikKLSAgIHNldChDTUFLRV9DWFhfRkxBR1NfUFJPRklMRSAgICAgICAgIi1n MyAtZm5vLWlubGluZSAtZnRlc3QtY292ZXJhZ2UgLWZwcm9maWxlLWFyY3MgJHtfc2F2ZV9jeHhm bGFnc30iKQotICAgc2V0KF9zYXZlX2NmbGFncyAiJHtDTUFLRV9DX0ZMQUdTfSIpCi0tICBzZXQo Q01BS0VfQ19GTEFHUyAgICAgICAgICAgICAgICAgICItc3RkPWM5OSAtRF9ERUZBVUxUX1NPVVJD RSIpCi0rICBzZXQoQ01BS0VfQ19GTEFHUyAgICAgICAgICAgICAgICAgICItc3RkPWM5OSAtRF9E RUZBVUxUX1NPVVJDRSAke19zYXZlX2NmbGFnc30iKQotICAgc2V0KENNQUtFX0NfRkxBR1NfUkVM V0lUSERFQklORk8gICAiLU8yIC1nICR7X3NhdmVfY2ZsYWdzfSIpCi0gICBzZXQoQ01BS0VfQ19G TEFHU19SRUxFQVNFICAgICAgICAgICItTzIgLUROREVCVUcgJHtfc2F2ZV9jZmxhZ3N9IikKLSAg IHNldChDTUFLRV9DX0ZMQUdTX0RFQlVHICAgICAgICAgICAgIi1nIC1PMiAtZm5vLXJlb3JkZXIt YmxvY2tzIC1mbm8tc2NoZWR1bGUtaW5zbnMgLWZuby1pbmxpbmUgJHtfc2F2ZV9jZmxhZ3N9IikK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcG9wcGxlci90ZW1wbGF0ZSBiL3NyY3BrZ3MvcG9wcGxlci90 ZW1wbGF0ZQppbmRleCAwYWE0ZWRmMjBiNTcuLjc0YWYxZTVkMmI2MyAxMDA2NDQKLS0tIGEvc3Jj cGtncy9wb3BwbGVyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcG9wcGxlci90ZW1wbGF0ZQpAQCAt MywxMyArMywxNSBAQAogIyBUSElTIFBLRyBNVVNUIEJFIFNZTkNIUk9OSVpFRCBXSVRIICJzcmNw a2dzL3BvcHBsZXItcXQ1Ii4KICMKIHBrZ25hbWU9cG9wcGxlcgotdmVyc2lvbj0yMS4wNy4wCit2 ZXJzaW9uPTIyLjA3LjAKIHJldmlzaW9uPTEKK190ZXN0VmVyc2lvbj05MjBjODlmOGY0M2JkZmU4 OTY2YzhlMzk3ZTdmNjdmNTMwMmU5NDM1CiBidWlsZF9zdHlsZT1jbWFrZQogYnVpbGRfaGVscGVy PSJnaXIiCiBjb25maWd1cmVfYXJncz0iLURFTkFCTEVfVU5TVEFCTEVfQVBJX0FCSV9IRUFERVJT PU9OIC1ERU5BQkxFX0NQUD1PTgogIC1ERU5BQkxFX0dMSUI9T04gLURFTkFCTEVfR09CSkVDVF9J TlRST1NQRUNUSU9OPSQodm9wdF9pZiBnaXIgT04gT0ZGKQotIC1ERU5BQkxFX1FUNT1PRkYgLURF TkFCTEVfVVRJTFM9T04gLURFTkFCTEVfQk9PU1Q9JCh2b3B0X2lmIGJvb3N0IE9OIE9GRikiCisg LURFTkFCTEVfUVQ1PU9GRiAtREVOQUJMRV9VVElMUz1PTiAtREVOQUJMRV9CT09TVD0kKHZvcHRf aWYgYm9vc3QgT04gT0ZGKQorIC1EVEVTVERBVEFESVI9JyR7WEJQU19CVUlMRERJUn0vdGVzdC0k e190ZXN0VmVyc2lvbn0nIgogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGdsaWItZGV2ZWwi CiBtYWtlZGVwZW5kcz0ibGlicG5nLWRldmVsIGxpYmdsaWItZGV2ZWwgY2Fpcm8tZGV2ZWwgdGlm Zi1kZXZlbCBsY21zMi1kZXZlbAogbGliY3VybC1kZXZlbCBsaWJvcGVuanBlZzItZGV2ZWwgJCh2 b3B0X2lmIGJvb3N0IGJvb3N0LWRldmVsKSIKQEAgLTE3LDggKzE5LDExIEBAIHNob3J0X2Rlc2M9 IlBERiByZW5kZXJpbmcgbGlicmFyeSIKIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9p ZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVy IgogaG9tZXBhZ2U9Imh0dHBzOi8vcG9wcGxlci5mcmVlZGVza3RvcC5vcmciCi1kaXN0ZmlsZXM9 IiR7aG9tZXBhZ2V9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1lMjZh YjI5ZjY4MDY1ZGU0ZDY1NjJmMGEzZTJiNTQzNWE4M2NhOTJiZTU3M2I5OWExYzgxOTk4ZmEyODZh NGQ0CitjaGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0bGFiLmZyZWVkZXNrdG9wLm9yZy9wb3BwbGVyL3Bv cHBsZXIvLS9yYXcvbWFzdGVyL05FV1MiCitkaXN0ZmlsZXM9IiR7aG9tZXBhZ2V9LyR7cGtnbmFt ZX0tJHt2ZXJzaW9ufS50YXIueHoKKyBodHRwczovL2dpdGxhYi5mcmVlZGVza3RvcC5vcmcvcG9w cGxlci90ZXN0Ly0vYXJjaGl2ZS8ke190ZXN0VmVyc2lvbn0vdGVzdC0ke190ZXN0VmVyc2lvbn0u dGFyLmd6IgorY2hlY2tzdW09IjQyMDIzMGM1YzQzNzgyZTIxNTEyNTliM2U1MjNlNjMyZjQ4NjEz NDJhYWQ3MGU3ZTIwYjg3NzNkOWVhZjM0MjgKKyBjYTM1ZjE2OGExODAzOGEyZDgxN2VhMzBkNmM3 YjRhYjgyOTRhNDBhNWY1OTUwZjNjMmExNTE4M2JhMDhjOTAwIgogCiBidWlsZF9vcHRpb25zPSJn aXIgYm9vc3QiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciBib29zdCIKCkZyb20gZTk0YzY4 ZTBkMzExNzM3MTBkZDc3OGE2OGI0Y2ZiNjUxMmVkYzFiZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogb3JlbzYzOSA8MzE5MTYzNzkrT3JlbzYzOUB1c2Vycy5ub3JlcGx5LmdpdGh1Yi5j b20+CkRhdGU6IEZyaSwgMjUgTWFyIDIwMjIgMTg6Mjk6MDIgLTA3MDAKU3ViamVjdDogW1BBVENI IDAyLzEwXSBwb3BwbGVyLXF0NTogdXBkYXRlIHRvIDIyLjA3LjAKCi0tLQogc3JjcGtncy9wb3Bw bGVyLXF0NS90ZW1wbGF0ZSB8IDUgKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMo KyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9wb3BwbGVyLXF0NS90ZW1w bGF0ZSBiL3NyY3BrZ3MvcG9wcGxlci1xdDUvdGVtcGxhdGUKaW5kZXggMmExNWY1NjEyOGMxLi4y M2RjYzY0ODVhYzEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcG9wcGxlci1xdDUvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9wb3BwbGVyLXF0NS90ZW1wbGF0ZQpAQCAtNCw3ICs0LDcgQEAKICMgSVQgSVMg U1BMSVQgVE8gQVZPSUQgQSBDWUNMSUMgREVQRU5ERU5DWTogcXQ1IC0+IGN1cHMgLT4gcG9wcGxl ciAtPiBxdDUuCiAjCiBwa2duYW1lPXBvcHBsZXItcXQ1Ci12ZXJzaW9uPTIxLjA3LjAKK3ZlcnNp b249MjIuMDcuMAogcmV2aXNpb249MQogd3Jrc3JjPSJwb3BwbGVyLSR7dmVyc2lvbn0iCiBidWls ZF9zdHlsZT1jbWFrZQpAQCAtMTcsOCArMTcsOSBAQCBzaG9ydF9kZXNjPSJQREYgcmVuZGVyaW5n IGxpYnJhcnkgLSBRdDUgYmluZGluZ3MiCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZv aWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRl ciIKIGhvbWVwYWdlPSJodHRwczovL3BvcHBsZXIuZnJlZWRlc2t0b3Aub3JnIgorY2hhbmdlbG9n PSJodHRwczovL2dpdGxhYi5mcmVlZGVza3RvcC5vcmcvcG9wcGxlci9wb3BwbGVyLy0vcmF3L21h c3Rlci9ORVdTIgogZGlzdGZpbGVzPSIke2hvbWVwYWdlfS9wb3BwbGVyLSR7dmVyc2lvbn0udGFy Lnh6IgotY2hlY2tzdW09ZTI2YWIyOWY2ODA2NWRlNGQ2NTYyZjBhM2UyYjU0MzVhODNjYTkyYmU1 NzNiOTlhMWM4MTk5OGZhMjg2YTRkNAorY2hlY2tzdW09NDIwMjMwYzVjNDM3ODJlMjE1MTI1OWIz ZTUyM2U2MzJmNDg2MTM0MmFhZDcwZTdlMjBiODc3M2Q5ZWFmMzQyOAogIyBmYWlscyB0byBmaW5k IGEgYnVuY2ggb2YgZmlsZXMKIG1ha2VfY2hlY2s9bm8KIAoKRnJvbSBmNmM5NTdkZjJkYWNmMTI2 MWExZDEwZmQ4YmM5M2E3YzhmOTIwYjEyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBv cmVvNjM5IDwzMTkxNjM3OStPcmVvNjM5QHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT4KRGF0ZTog RnJpLCAyNSBNYXIgMjAyMiAxODoyOTozMiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDMvMTBdIHBv cHBsZXItZGF0YTogdXBkYXRlIHRvIDAuNC4xMQoKLS0tCiBzcmNwa2dzL3BvcHBsZXItZGF0YS90 ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3BvcHBsZXItZGF0YS90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvcG9wcGxlci1kYXRhL3RlbXBsYXRlCmluZGV4IDQ4ZGJhMjQ5N2ZiNi4uNGI2ZTk1NmI3 YjcyIDEwMDY0NAotLS0gYS9zcmNwa2dzL3BvcHBsZXItZGF0YS90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL3BvcHBsZXItZGF0YS90ZW1wbGF0ZQpAQCAtMSwxMyArMSwxMyBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAncG9wcGxlci1kYXRhJwogcGtnbmFtZT1wb3BwbGVyLWRhdGEKLXZlcnNpb249MC40 LjEwCit2ZXJzaW9uPTAuNC4xMQogcmV2aXNpb249MQogc2hvcnRfZGVzYz0iRW5jb2RpbmcgZGF0 YSBmb3IgdGhlIHBvcHBsZXIgUERGIHJlbmRlcmluZyBsaWJyYXJ5IgogbWFpbnRhaW5lcj0iT3Jw aGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9Ik1JVCwgR1BMLTIuMC1vci1s YXRlciwgQlNELTMtQ2xhdXNlIgogaG9tZXBhZ2U9Imh0dHBzOi8vcG9wcGxlci5mcmVlZGVza3Rv cC5vcmcvIgogZGlzdGZpbGVzPSJodHRwczovL3BvcHBsZXIuZnJlZWRlc2t0b3Aub3JnLyR7cGtn bmFtZX0tJHt2ZXJzaW9ufS50YXIuZ3oiCi1jaGVja3N1bT02ZTJmY2VmNjZlYzhjNDQ2MjVmOTQy OTJjY2Y4YWY5ZjFkOTE4YjQxMGQ1YWE2OWMyNzRjZTY3Mzg3OTY3YjMwCitjaGVja3N1bT0yY2Vj MDVjZDFiYjAzYWY5OGE4YjA2YTFlMjJmNmU2ZTFhNjViMWUyZjM4MTZjYjMwNjliYjA4NzQ4MjVm MDhjCiAKIGRvX2luc3RhbGwoKSB7CiAJbWFrZSBwcmVmaXg9L3VzciBERVNURElSPSR7REVTVERJ Un0gaW5zdGFsbAoKRnJvbSAzODE2YzkzNzZlNmFhOGVjNDFhNmYyN2VjN2FjZTg3MGE4NzA5Y2Rk IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDwzMTkxNjM3OStPcmVvNjM5 QHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT4KRGF0ZTogRnJpLCAyNSBNYXIgMjAyMiAxODozMzoz MiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMTBdIGNhbGxpZ3JhOiByZWJ1aWxkIGFnYWluc3Qg bGlicG9wcGxlciAyMi4wNi4wCgotLS0KIC4uLi9wYXRjaGVzLzAwMDEtRml4LXNvbWUtbW9yZS13 YXJuaW5ncy5wYXRjaCB8IDQ0MCArKysrKysrKysrKysrKysrKysKIC4uLi8wMDAyLU1ha2Utc2hv dy1oaWRkZW4tcm93LXMtd29yay5wYXRjaCAgICB8ICAyOSArKwogc3JjcGtncy9jYWxsaWdyYS9w YXRjaGVzL2MrKzE3LnBhdGNoICAgICAgICAgIHwgIDE2ICsKIC4uLi9wYXRjaGVzL3BvcHBsZXIt MjIuMDMuMC1maXgucGF0Y2ggICAgICAgICB8ICA3MCArKysKIC4uLi9wYXRjaGVzL3BvcHBsZXIt MjIuMDQuMC1maXgucGF0Y2ggICAgICAgICB8ICA5MSArKysrCiBzcmNwa2dzL2NhbGxpZ3JhL3Rl bXBsYXRlICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIDYgZmlsZXMgY2hhbmdlZCwgNjQ3 IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2NhbGxpZ3JhL3BhdGNoZXMvMDAwMS1GaXgtc29tZS1tb3JlLXdhcm5pbmdzLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jYWxsaWdyYS9wYXRjaGVzLzAwMDItTWFrZS1zaG93LWhp ZGRlbi1yb3ctcy13b3JrLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jYWxsaWdy YS9wYXRjaGVzL2MrKzE3LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jYWxsaWdy YS9wYXRjaGVzL3BvcHBsZXItMjIuMDMuMC1maXgucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2NhbGxpZ3JhL3BhdGNoZXMvcG9wcGxlci0yMi4wNC4wLWZpeC5wYXRjaAoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvY2FsbGlncmEvcGF0Y2hlcy8wMDAxLUZpeC1zb21lLW1vcmUtd2Fybmlu Z3MucGF0Y2ggYi9zcmNwa2dzL2NhbGxpZ3JhL3BhdGNoZXMvMDAwMS1GaXgtc29tZS1tb3JlLXdh cm5pbmdzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNmNj MTMyOTI1YjE2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9jYWxsaWdyYS9wYXRjaGVzLzAw MDEtRml4LXNvbWUtbW9yZS13YXJuaW5ncy5wYXRjaApAQCAtMCwwICsxLDQ0MCBAQAorRnJvbSAw NjhjZDlhZWMxMTA1MjczM2UzOTM5NzYxNDI1MTZkMjE5MGU0NTY0IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQorRnJvbTogUGllcnJlIER1Y3JvcXVldCA8cGluYXJhZkBwaW5hcmFmLmluZm8+CitE YXRlOiBTdW4sIDI4IEZlYiAyMDIxIDIzOjIzOjAyICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIEZp eCBzb21lIG1vcmUgd2FybmluZ3MKKworLS0tCisgZmlsdGVycy9saWJtc29veG1sL01zb29YbWxE aWFncmFtUmVhZGVyX3AuY3BwICAgICAgICB8ICAxICsKKyBmaWx0ZXJzL3NoZWV0cy9jc3YvY3N2 aW1wb3J0LmNjICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KKyBmaWx0ZXJzL3NoZWV0cy9l eGNlbC9zaWRld2luZGVyL2V4Y2VsLmNwcCAgICAgICAgICAgIHwgIDEgKworIGZpbHRlcnMvc2hl ZXRzL2V4Y2VsL3NpZGV3aW5kZXIvZm9ybXVsYXMuY3BwICAgICAgICAgfCAgMiArLQorIGZpbHRl cnMvc2hlZXRzL2dudW1lcmljL2dudW1lcmljZXhwb3J0LmNjICAgICAgICAgICAgfCAgNSArKy0t LQorIGZpbHRlcnMvc2hlZXRzL2h0bWwvaHRtbGV4cG9ydC5jYyAgICAgICAgICAgICAgICAgICAg fCAgMiAtLQorIGZpbHRlcnMvc2hlZXRzL2xhdGV4L2V4cG9ydC9sYXRleGV4cG9ydC5jYyAgICAg ICAgICAgfCAgMSAtCisgZmlsdGVycy9zaGVldHMvbGF0ZXgvZXhwb3J0L3RhYmxlLmNjICAgICAg ICAgICAgICAgICB8ICAxICsKKyBmaWx0ZXJzL3NoZWV0cy94bHN4L1hsc3hYbWxXb3Jrc2hlZXRS ZWFkZXIuY3BwICAgICAgIHwgIDEgLQorIGZpbHRlcnMvc3RhZ2UvcHB0eC9QcHR4WG1sRG9jdW1l bnRSZWFkZXIuY3BwICAgICAgICAgfCAgMiArLQorIGZpbHRlcnMvd29yZHMvbXN3b3JkLW9kZi90 ZXh0aGFuZGxlci5jcHAgICAgICAgICAgICAgfCAgMiArKworIGZpbHRlcnMvd29yZHMvbXN3b3Jk LW9kZi93djIvc3JjL3BhcnNlcjl4LmNwcCAgICAgICAgfCAgNCArKystCisgZmlsdGVycy93b3Jk cy9tc3dvcmQtb2RmL3d2Mi9zcmMvc3R5bGVzLmNwcCAgICAgICAgICB8ICA0ICstLS0KKyBmaWx0 ZXJzL3dvcmRzL21zd29yZC1vZGYvd3YyL3NyYy9zdHlsZXMuaCAgICAgICAgICAgIHwgMTEgKysr KysrKystLS0KKyBnZW1pbmkvbGliL0dlbWluaU1haW5XaW5kb3cuY3BwICAgICAgICAgICAgICAg ICAgICAgIHwgIDIgKysKKyBsaWJzL3BhZ2VhcHAvS29QQU9kZlBhZ2VTYXZlSGVscGVyLmNwcCAg ICAgICAgICAgICAgIHwgIDIgKy0KKyBwbHVnaW5zL3NwYWNlbmF2aWdhdG9yL1NwYWNlTmF2aWdh dG9yRGV2aWNlLmggICAgICAgIHwgIDYgKystLS0tCisgcGx1Z2lucy9zcGFjZW5hdmlnYXRvci9T cGFjZU5hdmlnYXRvckV2ZW50LmggICAgICAgICB8ICAyICstCisgcGx1Z2lucy9zcGFjZW5hdmln YXRvci9TcGFjZU5hdmlnYXRvclBvbGxpbmdUaHJlYWQuaCB8ICAzICstLQorIHBsdWdpbnMvdmVj dG9yc2hhcGUvVmVjdG9yU2hhcGUuY3BwICAgICAgICAgICAgICAgICAgfCAgMSArCisgc2hlZXRz L2Z1bmN0aW9ucy9kYXRldGltZS5jcHAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxICsKKyBz aGVldHMvcGFydC9EaWdlc3QuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDgg KysrKy0tLS0KKyBzaGVldHMvc2hhcGUvVGFibGVUb29sRmFjdG9yeS5oICAgICAgICAgICAgICAg ICAgICAgIHwgIDIgKy0KKyBzaGVldHMvdGVzdHMvVGVzdFNvcnQuY3BwICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgIDQgKystLQorIDI0IGZpbGVzIGNoYW5nZWQsIDM4IGluc2VydGlvbnMo KyksIDMyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZmlsdGVycy9saWJtc29veG1sL01z b29YbWxEaWFncmFtUmVhZGVyX3AuY3BwIGIvZmlsdGVycy9saWJtc29veG1sL01zb29YbWxEaWFn cmFtUmVhZGVyX3AuY3BwCitpbmRleCAxNGIwODUzMTI2Mi4uMTRmYzZhYjlhNzEgMTAwNjQ0Cist LS0gYS9maWx0ZXJzL2xpYm1zb294bWwvTXNvb1htbERpYWdyYW1SZWFkZXJfcC5jcHAKKysrKyBi L2ZpbHRlcnMvbGlibXNvb3htbC9Nc29vWG1sRGlhZ3JhbVJlYWRlcl9wLmNwcAorQEAgLTg3Miw2 ICs4NzIsNyBAQCB2b2lkIExheW91dE5vZGVBdG9tOjpmaW5pc2hCdWlsZChDb250ZXh0KiBjb250 ZXh0KSB7CisgICAgICAgICBjYXNlIEFsZ29yaXRobUF0b206OlVua25vd25BbGc6CisgICAgICAg ICAgICAgd2Fybk1zb29YbWwgPDwgIkxheW91dCB3aXRoIG5hbWU9IiA8PCBtX25hbWUgPDwgImRl ZmluZXMgYW4gdW5rbm93biBhbGdvcml0aG0uIjsKKyAgICAgICAgICAgICAvLyBmYWxsIHRocm91 Z2ggYW5kIHVzZSB0aGUgY29tcG9zaXRlLWFsZ29yaXRobQorKyAgICAgICAgLy8gZmFsbCB0aHJv dWdoCisgICAgICAgICBjYXNlIEFsZ29yaXRobUF0b206OkNvbXBvc2l0ZUFsZzogbV9hbGdvcml0 aG1JbXBsID0gbmV3IENvbXBvc2l0ZUFsZ29yaXRobTsgYnJlYWs7CisgICAgICAgICBjYXNlIEFs Z29yaXRobUF0b206OkNvbm5lY3RvckFsZzogbV9hbGdvcml0aG1JbXBsID0gbmV3IENvbm5lY3Rv ckFsZ29yaXRobTsgYnJlYWs7CisgICAgICAgICBjYXNlIEFsZ29yaXRobUF0b206OkN5Y2xlQWxn OiBtX2FsZ29yaXRobUltcGwgPSBuZXcgQ3ljbGVBbGdvcml0aG07IGJyZWFrOworZGlmZiAtLWdp dCBhL2ZpbHRlcnMvc2hlZXRzL2Nzdi9jc3ZpbXBvcnQuY2MgYi9maWx0ZXJzL3NoZWV0cy9jc3Yv Y3N2aW1wb3J0LmNjCitpbmRleCA4OWZiNzE2MmUwMC4uMTAwOGQxODZmMTggMTAwNjQ0CistLS0g YS9maWx0ZXJzL3NoZWV0cy9jc3YvY3N2aW1wb3J0LmNjCisrKysgYi9maWx0ZXJzL3NoZWV0cy9j c3YvY3N2aW1wb3J0LmNjCitAQCAtOTcsOCArOTcsOCBAQCBLb0ZpbHRlcjo6Q29udmVyc2lvblN0 YXR1cyBDU1ZGaWx0ZXI6OmNvbnZlcnQoY29uc3QgUUJ5dGVBcnJheSYgZnJvbSwgY29uc3QgUUJ5 dAorICAgICAgICAgcmV0dXJuIEtvRmlsdGVyOjpGaWxlTm90Rm91bmQ7CisgICAgIH0KKyAKKy0g ICAgUVN0cmluZyBjc3ZfZGVsaW1pdGVyOworICAgICAvLyAjIyMjIyMgRklYTUU6IGRpc2FibGVk IGZvciBub3cKKysgICAgLy9RU3RyaW5nIGNzdl9kZWxpbWl0ZXI7CisgICAgIC8vaWYgKCFjb25m aWcuaXNOdWxsKCkpCisgICAgIC8vICAgIGNzdl9kZWxpbWl0ZXIgPSBjb25maWdbMF07CisgCitk aWZmIC0tZ2l0IGEvZmlsdGVycy9zaGVldHMvZXhjZWwvc2lkZXdpbmRlci9leGNlbC5jcHAgYi9m aWx0ZXJzL3NoZWV0cy9leGNlbC9zaWRld2luZGVyL2V4Y2VsLmNwcAoraW5kZXggYWI1OTIyMjVj YTYuLjdmYTU2MzNkNDMzIDEwMDY0NAorLS0tIGEvZmlsdGVycy9zaGVldHMvZXhjZWwvc2lkZXdp bmRlci9leGNlbC5jcHAKKysrKyBiL2ZpbHRlcnMvc2hlZXRzL2V4Y2VsL3NpZGV3aW5kZXIvZXhj ZWwuY3BwCitAQCAtMjQ0OSw2ICsyNDQ5LDcgQEAgYm9vbCBFeGNlbFJlYWRlcjo6bG9hZChXb3Jr Ym9vayogd29ya2Jvb2ssIGNvbnN0IGNoYXIqIGZpbGVuYW1lKQorICAgICAgICAgICAgICAgfSBl bHNlIHsKKyAgICAgICAgICAgICAgICAgYnl0ZXNfcmVhZCA9IGNvbWJPYmpTdHJlYW0tPnJlYWQo IGJ1ZmZlciwgbWFya2VyT3JMZW5ndGggKTsKKyAgICAgICAgICAgICAgICAgUVN0cmluZyBhbnNp U3RyaW5nID0gcmVhZEJ5dGVTdHJpbmcoYnVmZmVyLCBtYXJrZXJPckxlbmd0aCk7CisrICAgICAg ICAgICAgICAgIFFfVU5VU0VEKGFuc2lTdHJpbmcpOworICAgICAgICAgICAgICAgICAvL1RPRE8u Li4KKyAgICAgICAgICAgICAgICAgLy9wcmludGYoICJtYXJrZXJPckxlbmd0aD0laSBhbnNpU3Ry aW5nPSVzXG4iLG1hcmtlck9yTGVuZ3RoLGFuc2lTdHJpbmcuYXNjaWkoKSApOworICAgICAgICAg ICAgICAgfQorZGlmZiAtLWdpdCBhL2ZpbHRlcnMvc2hlZXRzL2V4Y2VsL3NpZGV3aW5kZXIvZm9y bXVsYXMuY3BwIGIvZmlsdGVycy9zaGVldHMvZXhjZWwvc2lkZXdpbmRlci9mb3JtdWxhcy5jcHAK K2luZGV4IDYyNzQ3NDY5YTQ5Li4wMTMyZDM5ZTAyNCAxMDA2NDQKKy0tLSBhL2ZpbHRlcnMvc2hl ZXRzL2V4Y2VsL3NpZGV3aW5kZXIvZm9ybXVsYXMuY3BwCisrKysgYi9maWx0ZXJzL3NoZWV0cy9l eGNlbC9zaWRld2luZGVyL2Zvcm11bGFzLmNwcAorQEAgLTE1MTMsNyArMTUxMyw3IEBAIHN0YXRp YyB2b2lkIG1lcmdlVG9rZW5zKFVTdHJpbmdTdGFjayogc3RhY2ssIHVuc2lnbmVkIGNvdW50LCBj b25zdCBRU3RyaW5nICZtZXJnCisgICAgIGlmICghc3RhY2spIHJldHVybjsKKyAgICAgaWYgKHN0 YWNrLT5zaXplKCkgPCBjb3VudCkgcmV0dXJuOworIAorLSAgICBRU3RyaW5nIHMxLCBzMjsKKysg ICAgUVN0cmluZyBzMTsKKyAKKyAgICAgd2hpbGUgKGNvdW50KSB7CisgICAgICAgICBjb3VudC0t OworZGlmZiAtLWdpdCBhL2ZpbHRlcnMvc2hlZXRzL2dudW1lcmljL2dudW1lcmljZXhwb3J0LmNj IGIvZmlsdGVycy9zaGVldHMvZ251bWVyaWMvZ251bWVyaWNleHBvcnQuY2MKK2luZGV4IDEyNTZj NjhiYzc0Li4yNDY4NTQ4ZWRiMyAxMDA2NDQKKy0tLSBhL2ZpbHRlcnMvc2hlZXRzL2dudW1lcmlj L2dudW1lcmljZXhwb3J0LmNjCisrKysgYi9maWx0ZXJzL3NoZWV0cy9nbnVtZXJpYy9nbnVtZXJp Y2V4cG9ydC5jYworQEAgLTEyOTMsMTUgKzEyOTMsMTMgQEAgS29GaWx0ZXI6OkNvbnZlcnNpb25T dGF0dXMgR05VTUVSSUNFeHBvcnQ6OmNvbnZlcnQoY29uc3QgUUJ5dGVBcnJheSYgZnJvbSwgY29u c3QKKyAgICAgICAgICAgICAgICAgaSA9IDA7CisgICAgICAgICAgICAgfQorIAorLSAgICAgICAg ICAgIFFTdHJpbmcgbGluZTsKKyAgICAgICAgICAgICBmb3IgKGludCBjdXJyZW50Y29sdW1uID0g MTsgY3VycmVudGNvbHVtbiA8PSBpTWF4Q29sdW1uOyBjdXJyZW50Y29sdW1uKyspIHsKKyAgICAg ICAgICAgICAgICAgUURvbUVsZW1lbnQgY2VsbF9jb250ZW50czsKKyAgICAgICAgICAgICAgICAg Q2VsbCBjZWxsKHRhYmxlLCBjdXJyZW50Y29sdW1uLCBjdXJyZW50cm93KTsKKyAKKy0gICAgICAg ICAgICAgICAgUVN0cmluZyB0ZXh0LCBzdHlsZTsKKysgICAgICAgICAgICAgICAgUVN0cmluZyB0 ZXh0OworICAgICAgICAgICAgICAgICBRRG9tRG9jdW1lbnQgZG9tTGluazsKKyAgICAgICAgICAg ICAgICAgUURvbUVsZW1lbnQgZG9tUm9vdDsKKy0gICAgICAgICAgICAgICAgUURvbU5vZGUgZG9t Tm9kZTsKKyAgICAgICAgICAgICAgICAgUURvbU5vZGVMaXN0IGNoaWxkTm9kZXM7CisgCisgICAg ICAgICAgICAgICAgIGlmICghY2VsbC5pc0RlZmF1bHQoKSAmJiAhY2VsbC5pc0VtcHR5KCkpIHsK K0BAIC0xMzQyLDYgKzEzNDAsNyBAQCBLb0ZpbHRlcjo6Q29udmVyc2lvblN0YXR1cyBHTlVNRVJJ Q0V4cG9ydDo6Y29udmVydChjb25zdCBRQnl0ZUFycmF5JiBmcm9tLCBjb25zdAorICAgICAgICAg ICAgICAgICAgICAgICAgIHRleHQgPSBkb21Ob2RlLnRvRWxlbWVudCgpLnRleHQoKTsKKyAKKyAg ICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoIWRvbU5vZGUuaXNOdWxsKCkpIHsKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUVN0cmluZyBzdHlsZTsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3R5bGUgPSBkb21Ob2RlLnRvRWxlbWVudCgpLnRhZ05hbWUoKTsKKyAKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0eWxlID09ICJiIikKK2RpZmYgLS1naXQg YS9maWx0ZXJzL3NoZWV0cy9odG1sL2h0bWxleHBvcnQuY2MgYi9maWx0ZXJzL3NoZWV0cy9odG1s L2h0bWxleHBvcnQuY2MKK2luZGV4IDJkMTE2ZTA2MDhjLi5iZjQxYTZmNzQzZSAxMDA2NDQKKy0t LSBhL2ZpbHRlcnMvc2hlZXRzL2h0bWwvaHRtbGV4cG9ydC5jYworKysrIGIvZmlsdGVycy9zaGVl dHMvaHRtbC9odG1sZXhwb3J0LmNjCitAQCAtMjQyLDcgKzI0Miw2IEBAIHZvaWQgSFRNTEV4cG9y dDo6Y29udmVydFNoZWV0KFNoZWV0ICpzaGVldCwgUVN0cmluZyAmc3RyLCBpbnQgaU1heFVzZWRS b3csIGludCBpCisgICAgICAgICAgICAgaSA9IDA7CisgICAgICAgICB9CisgCistICAgICAgICBR U3RyaW5nIHNlcGFyYXRvcnM7CisgICAgICAgICBRU3RyaW5nIGxpbmU7CisgICAgICAgICB1bnNp Z25lZCBpbnQgbm9uZW1wdHlfY2VsbHMgPSAwOworIAorQEAgLTQzNSw3ICs0MzQsNiBAQCB2b2lk IEhUTUxFeHBvcnQ6OmRldGVjdEZpbGxlZENlbGxzKFNoZWV0ICpzaGVldCwgaW50ICZyb3dzLCBp bnQgJmNvbHVtbnMpCisgICAgICAgICBpbnQgaVVzZWRDb2x1bW4gPSAwOworICAgICAgICAgZm9y IChpbnQgY3VycmVudGNvbHVtbiA9IDEgOyBjdXJyZW50Y29sdW1uIDw9IGlNYXhDb2x1bW4gOyBj dXJyZW50Y29sdW1uKyspIHsKKyAgICAgICAgICAgICBjZWxsID0gQ2VsbChzaGVldCwgY3VycmVu dGNvbHVtbiwgY3VycmVudHJvdyk7CistICAgICAgICAgICAgUVN0cmluZyB0ZXh0OworICAgICAg ICAgICAgIGlmICghY2VsbC5pc0RlZmF1bHQoKSAmJiAhY2VsbC5pc0VtcHR5KCkpIHsKKyAgICAg ICAgICAgICAgICAgaVVzZWRDb2x1bW4gPSBjdXJyZW50Y29sdW1uOworICAgICAgICAgICAgIH0K K2RpZmYgLS1naXQgYS9maWx0ZXJzL3NoZWV0cy9sYXRleC9leHBvcnQvbGF0ZXhleHBvcnQuY2Mg Yi9maWx0ZXJzL3NoZWV0cy9sYXRleC9leHBvcnQvbGF0ZXhleHBvcnQuY2MKK2luZGV4IDhkMDY5 OGEzNDIwLi40ZjhjYWYyMzVkOSAxMDA2NDQKKy0tLSBhL2ZpbHRlcnMvc2hlZXRzL2xhdGV4L2V4 cG9ydC9sYXRleGV4cG9ydC5jYworKysrIGIvZmlsdGVycy9zaGVldHMvbGF0ZXgvZXhwb3J0L2xh dGV4ZXhwb3J0LmNjCitAQCAtMzgsNyArMzgsNiBAQCBMQVRFWEV4cG9ydDo6TEFURVhFeHBvcnQo UU9iamVjdCogcGFyZW50LCBjb25zdCBRVmFyaWFudExpc3QmKSA6CisgCisgS29GaWx0ZXI6OkNv bnZlcnNpb25TdGF0dXMgTEFURVhFeHBvcnQ6OmNvbnZlcnQoY29uc3QgUUJ5dGVBcnJheSYgZnJv bSwgY29uc3QgUUJ5dGVBcnJheSYgdG8pCisgeworLSAgICBRU3RyaW5nIGNvbmZpZzsKKyAKKyAg ICAgaWYgKHRvICE9ICJ0ZXh0L3gtdGV4IiB8fCBmcm9tICE9ICJhcHBsaWNhdGlvbi94LWtzcHJl YWQiKQorICAgICAgICAgcmV0dXJuIEtvRmlsdGVyOjpOb3RJbXBsZW1lbnRlZDsKK2RpZmYgLS1n aXQgYS9maWx0ZXJzL3NoZWV0cy9sYXRleC9leHBvcnQvdGFibGUuY2MgYi9maWx0ZXJzL3NoZWV0 cy9sYXRleC9leHBvcnQvdGFibGUuY2MKK2luZGV4IDhkOGI2NzAxYTM5Li5lNTg4MjdkZmJjNyAx MDA2NDQKKy0tLSBhL2ZpbHRlcnMvc2hlZXRzL2xhdGV4L2V4cG9ydC90YWJsZS5jYworKysrIGIv ZmlsdGVycy9zaGVldHMvbGF0ZXgvZXhwb3J0L3RhYmxlLmNjCitAQCAtMTE4LDYgKzExOCw3IEBA IHZvaWQgVGFibGU6OmFuYWx5emVQYXBlcihjb25zdCBRRG9tTm9kZSBub2RlKQorIAorICAgICAv KiBib3JkZXJzICovCisgICAgIFFEb21Ob2RlIGJvcmRlciA9IGdldENoaWxkKG5vZGUsICJib3Jk ZXJzIik7CisrICAgIFFfVU5VU0VEKGJvcmRlcik7CisgICAgIHNldEJvcmRlclJpZ2h0KGdldEF0 dHIobm9kZSwgInJpZ2h0IikudG9Mb25nKCkpOworICAgICBzZXRCb3JkZXJMZWZ0KGdldEF0dHIo bm9kZSwgImxlZnQiKS50b0xvbmcoKSk7CisgICAgIHNldEJvcmRlckJvdHRvbShnZXRBdHRyKG5v ZGUsICJib3R0b20iKS50b0xvbmcoKSk7CitkaWZmIC0tZ2l0IGEvZmlsdGVycy9zaGVldHMveGxz eC9YbHN4WG1sV29ya3NoZWV0UmVhZGVyLmNwcCBiL2ZpbHRlcnMvc2hlZXRzL3hsc3gvWGxzeFht bFdvcmtzaGVldFJlYWRlci5jcHAKK2luZGV4IDc4MmE1OTE0NzI5Li5lZGE4ZmZjNmI0NyAxMDA2 NDQKKy0tLSBhL2ZpbHRlcnMvc2hlZXRzL3hsc3gvWGxzeFhtbFdvcmtzaGVldFJlYWRlci5jcHAK KysrKyBiL2ZpbHRlcnMvc2hlZXRzL3hsc3gvWGxzeFhtbFdvcmtzaGVldFJlYWRlci5jcHAKK0BA IC04NzIsNyArODcyLDYgQEAgS29GaWx0ZXI6OkNvbnZlcnNpb25TdGF0dXMgWGxzeFhtbFdvcmtz aGVldFJlYWRlcjo6cmVhZF9jb25kaXRpb25hbEZvcm1hdHRpbmcoKQorICAgICB3aGlsZSAoaW5k ZXggPCBtX2NvbmRpdGlvbmFsSW5kaWNlcy5zaXplKCkpIHsKKyAgICAgICAgIFFTdHJpbmcgY29u ZGl0aW9uYWxBcmVhOworICAgICAgICAgQ29uZGl0aW9uIGV4YW1pbmVkQ29uZGl0aW9uID0gbV9j b25kaXRpb25hbEluZGljZXMuYXQoaW5kZXgpOworLSAgICAgICAgUVN0cmluZyBzcXJlZk9yaWdp bmFsID0gc3FyZWY7CisgICAgICAgICBpbnQgYXJlYUluZGV4ID0gMDsKKyAgICAgICAgIENvbmRp dGlvbiBwcmV2aW91c0NvbmQ7CisgCitkaWZmIC0tZ2l0IGEvZmlsdGVycy9zdGFnZS9wcHR4L1Bw dHhYbWxEb2N1bWVudFJlYWRlci5jcHAgYi9maWx0ZXJzL3N0YWdlL3BwdHgvUHB0eFhtbERvY3Vt ZW50UmVhZGVyLmNwcAoraW5kZXggNGNmODZhZWE4YzguLjExYjVhZDI2NmI5IDEwMDY0NAorLS0t IGEvZmlsdGVycy9zdGFnZS9wcHR4L1BwdHhYbWxEb2N1bWVudFJlYWRlci5jcHAKKysrKyBiL2Zp bHRlcnMvc3RhZ2UvcHB0eC9QcHR4WG1sRG9jdW1lbnRSZWFkZXIuY3BwCitAQCAtMzE2LDcgKzMx Niw3IEBAIEtvRmlsdGVyOjpDb252ZXJzaW9uU3RhdHVzIFBwdHhYbWxEb2N1bWVudFJlYWRlcjo6 cmVhZF9zbGRJZCgpCisgCisgICAgIFFTdHJpbmcgc2xpZGVNYXN0ZXJQYXRoLCBzbGlkZU1hc3Rl ckZpbGU7CisgICAgIE1TT09YTUw6OlV0aWxzOjpzcGxpdFBhdGhBbmRGaWxlKG1fY29udGV4dC0+ cmVsYXRpb25zaGlwcy0+dGFyZ2V0Rm9yVHlwZShzbGlkZVBhdGgsIHNsaWRlRmlsZSwgUUxhdGlu MVN0cmluZyhNU09PWE1MOjpTY2hlbWFzOjpvZmZpY2VEb2N1bWVudDo6cmVsYXRpb25zaGlwcykg KyAiL3NsaWRlTGF5b3V0IiksICZzbGlkZU1hc3RlclBhdGgsICZzbGlkZU1hc3RlckZpbGUpOwor LSAgICBjb25zdCBRU3RyaW5nIHNsaWRlTWFzdGVyUGF0aEFuZEZpbGUgPSBtX2NvbnRleHQtPnJl bGF0aW9uc2hpcHMtPnRhcmdldEZvclR5cGUoc2xpZGVNYXN0ZXJQYXRoLCBzbGlkZU1hc3RlckZp bGUsIFFMYXRpbjFTdHJpbmcoTVNPT1hNTDo6U2NoZW1hczo6b2ZmaWNlRG9jdW1lbnQ6OnJlbGF0 aW9uc2hpcHMpICsgIi9zbGlkZU1hc3RlciIpOworKyAgICAvLyBjb25zdCBRU3RyaW5nIHNsaWRl TWFzdGVyUGF0aEFuZEZpbGUgPSBtX2NvbnRleHQtPnJlbGF0aW9uc2hpcHMtPnRhcmdldEZvclR5 cGUoc2xpZGVNYXN0ZXJQYXRoLCBzbGlkZU1hc3RlckZpbGUsIFFMYXRpbjFTdHJpbmcoTVNPT1hN TDo6U2NoZW1hczo6b2ZmaWNlRG9jdW1lbnQ6OnJlbGF0aW9uc2hpcHMpICsgIi9zbGlkZU1hc3Rl ciIpOworIAorICAgICAvLyBEZWxheSB0aGUgcmVhZGluZyBvZiBhIHRhYmxlU3R5bGUgdW50aWwg d2UgZmluZCBhIHRhYmxlIGFzIHdlIG5lZWQgdGhlCisgICAgIC8vIGNsck1hcCBmcm9tIHRoZSBt YXN0ZXIgc2xpZGUKK2RpZmYgLS1naXQgYS9maWx0ZXJzL3dvcmRzL21zd29yZC1vZGYvdGV4dGhh bmRsZXIuY3BwIGIvZmlsdGVycy93b3Jkcy9tc3dvcmQtb2RmL3RleHRoYW5kbGVyLmNwcAoraW5k ZXggZTE2N2Q4NmUwMjguLjg5ZWY2Nzg5NjFhIDEwMDY0NAorLS0tIGEvZmlsdGVycy93b3Jkcy9t c3dvcmQtb2RmL3RleHRoYW5kbGVyLmNwcAorKysrIGIvZmlsdGVycy93b3Jkcy9tc3dvcmQtb2Rm L3RleHRoYW5kbGVyLmNwcAorQEAgLTQwOCw2ICs0MDgsNyBAQCB2b2lkIFdvcmRzVGV4dEhhbmRs ZXI6OmZvb3Rub3RlRm91bmQod3ZXYXJlOjpGb290bm90ZURhdGEgZGF0YSwKKyAgICAgICAgIH0K KyAgICAgICAgIGNhc2UgbXNvbmZjVUNMZXR0ZXI6CisgICAgICAgICAgICAgbGV0dGVyID0gJ0En OworKyAgICAgICAgICAgIC8vIGZhbGwgdGhyb3VnaAorICAgICAgICAgY2FzZSBtc29uZmNMQ0xl dHRlcjoKKyAgICAgICAgIHsKKyAgICAgICAgICAgICB3aGlsZSAobm90ZU51bWJlciAvIDI1ID4g MCkgeworQEAgLTEwNjQsNiArMTA2NSw3IEBAIHZvaWQgV29yZHNUZXh0SGFuZGxlcjo6ZmllbGRT dGFydChjb25zdCB3dldhcmU6OkZMRCogZmxkLCB3dldhcmU6OlNoYXJlZFB0cjxjb25zCisgICAg ICAgICBicmVhazsKKyAgICAgY2FzZSBVTlNVUFBPUlRFRDoKKyAgICAgICAgIHdhcm5Nc0RvYyA8 PCAiV2FybmluZzogRmxkIGRhdGEgbWlzc2luZywgaWdub3JpbmchIjsKKysgICAgICAgIC8vIGZh bGwgdGhyb3VnaAorICAgICBkZWZhdWx0OgorICAgICAgICAgd2Fybk1zRG9jIDw8ICJXYXJuaW5n OiB1bnJlY29nbml6ZWQgZmllbGQgdHlwZSwgaWdub3JpbmchIjsKKyAgICAgICAgIG1fZmxkLT5t X3R5cGUgPSBVTlNVUFBPUlRFRDsKK2RpZmYgLS1naXQgYS9maWx0ZXJzL3dvcmRzL21zd29yZC1v ZGYvd3YyL3NyYy9wYXJzZXI5eC5jcHAgYi9maWx0ZXJzL3dvcmRzL21zd29yZC1vZGYvd3YyL3Ny Yy9wYXJzZXI5eC5jcHAKK2luZGV4IDlhNmQxNjA2Y2U5Li5lNWQ3ZDE0NjkxYyAxMDA2NDQKKy0t LSBhL2ZpbHRlcnMvd29yZHMvbXN3b3JkLW9kZi93djIvc3JjL3BhcnNlcjl4LmNwcAorKysrIGIv ZmlsdGVycy93b3Jkcy9tc3dvcmQtb2RmL3d2Mi9zcmMvcGFyc2VyOXguY3BwCitAQCAtNTgxLDcg KzU4MSw4IEBAIHZvaWQgUGFyc2VyOXg6OnByb2Nlc3NQaWVjZSggU3RyaW5nKiBzdHJpbmcsIFUz MiBmYywgVTMyIGxpbWl0LCBjb25zdCBQb3NpdGlvbiYKKyAgICAgICAgIC8vIHNhbWUgQVNDSUkg Y29kZSBhcyBUVFBfTUFSSyAoMHgwMDA3KSwgTk9URTogdGFibGUgZGVwdGggPT0gMQorICAgICAg ICAgY2FzZSBDRUxMX01BUks6CisgICAgICAgICAgICAgbV9jZWxsTWFya0ZvdW5kID0gdHJ1ZTsK Ky0gICAgICAgICAgICAvLyBGYWxsLXRocm91Z2ggaW50ZW5kZWQuIEEgcm93L2NlbGwgZW5kIGlz IGFsc28gYSBwYXJhZ3JhcGggZW5kLgorKyAgICAgICAgICAgIC8vIEEgcm93L2NlbGwgZW5kIGlz IGFsc28gYSBwYXJhZ3JhcGggZW5kLgorKyAgICAgICAgICAgIC8vIGZhbGwgdGhyb3VnaAorICAg ICAgICAgY2FzZSBQQVJBR1JBUEhfTUFSSzoKKyAgICAgICAgIHsKKyAgICAgICAgICAgICAvLyBO byAiaW5kZXggLSBzdGFydCArIDEiIGhlcmUsIGFzIHdlIGRvbid0IHdhbnQgdG8gY29weSB0aGUK K0BAIC0xMDY0LDYgKzEwNjUsNyBAQCB2b2lkIFBhcnNlcjl4OjplbWl0U3BlY2lhbENoYXJhY3Rl ciggVUNoYXIgY2hhcmFjdGVyLCBVMzIgZ2xvYmFsQ1AsIFNoYXJlZFB0cjxjbworICAgICAgICAg ICAgIGlmIChtX3N1YkRvY3VtZW50ID09IE1haW4pIHsKKyAgICAgICAgICAgICAgICAgZW1pdEFu bm90YXRpb24oIFVTdHJpbmcoY2hhcmFjdGVyKSwgZ2xvYmFsQ1AsIGNocCApOworICAgICAgICAg ICAgIH0KKysgICAgICAgICAgICBicmVhazsKKyAgICAgICAgIH0KKyAgICAgY2FzZSBUZXh0SGFu ZGxlcjo6RmllbGRFc2NhcGVDaGFyOgorICAgICAgICAgd3Zsb2cgPDwgIkZvdW5kIGFuIGVzY2Fw ZSBjaGFyYWN0ZXIgKysrKysrKysrKysrKysrKysrKys/IiA8PCBlbmRsOworZGlmZiAtLWdpdCBh L2ZpbHRlcnMvd29yZHMvbXN3b3JkLW9kZi93djIvc3JjL3N0eWxlcy5jcHAgYi9maWx0ZXJzL3dv cmRzL21zd29yZC1vZGYvd3YyL3NyYy9zdHlsZXMuY3BwCitpbmRleCBmNDdjM2RkOGQ1MS4uZDJj OTZlM2Q5MmIgMTAwNjQ0CistLS0gYS9maWx0ZXJzL3dvcmRzL21zd29yZC1vZGYvd3YyL3NyYy9z dHlsZXMuY3BwCisrKysgYi9maWx0ZXJzL3dvcmRzL21zd29yZC1vZGYvd3YyL3NyYy9zdHlsZXMu Y3BwCitAQCAtNDIsNyArNDIsNiBAQCBTVEQ6OlNURCgpCisgfQorIAorIFNURDo6U1REKCBVMTYg YmFzZVNpemUsIFUxNiB0b3RhbFNpemUsIE9MRVN0cmVhbVJlYWRlciogc3RyZWFtLCBib29sIHBy ZXNlcnZlUG9zICkKKy10aHJvdyhJbnZhbGlkRm9ybWF0RXhjZXB0aW9uKQorIHsKKyAgICAgY2xl YXJJbnRlcm5hbCgpOworICAgICBpZiAoIXJlYWQoIGJhc2VTaXplLCB0b3RhbFNpemUsIHN0cmVh bSwgcHJlc2VydmVQb3MgKSkgeworQEAgLTExMiw3ICsxMTEsNiBAQCBTVEQmIFNURDo6b3BlcmF0 b3I9KCBjb25zdCBTVEQmIHJocyApCisgfQorIAorIGJvb2wgU1REOjpyZWFkKCBjb25zdCBVMTYg Y2JTdGQsIGNvbnN0IFUxNiBzdGRmU2l6ZSwgT0xFU3RyZWFtUmVhZGVyKiBzdHJlYW0sIGJvb2wg cHJlc2VydmVQb3MgKQorLXRocm93KEludmFsaWRGb3JtYXRFeGNlcHRpb24pCisgeworICAgICBV MTYgc2hpZnRlclUxNjsKKyAgICAgUzMyIHN0YXJ0T2Zmc2V0PXN0cmVhbS0+dGVsbCgpOyAgLy8g YWRkcmVzcyB3aGVyZSB0aGUgU1REIHN0YXJ0cworQEAgLTkzOCw3ICs5MzYsNyBAQCB2b2lkIFN0 eWxlOjptZXJnZVVwZWNocHgoIGNvbnN0IFN0eWxlKiBwYXJlbnRTdHlsZSwgV29yZFZlcnNpb24g dmVyc2lvbiApCisgfQorIAorIAorLVN0eWxlU2hlZXQ6OlN0eWxlU2hlZXQoIE9MRVN0cmVhbVJl YWRlciogdGFibGVTdHJlYW0sIFUzMiBmY1N0c2hmLCBVMzIgbGNiU3RzaGYgKSB0aHJvdyhJbnZh bGlkRm9ybWF0RXhjZXB0aW9uKQorK1N0eWxlU2hlZXQ6OlN0eWxlU2hlZXQoIE9MRVN0cmVhbVJl YWRlciogdGFibGVTdHJlYW0sIFUzMiBmY1N0c2hmLCBVMzIgbGNiU3RzaGYgKQorICAgICA6IG1f dWRzTnVtKDApCisgeworICAgICBXb3JkVmVyc2lvbiB2ZXJzaW9uID0gV29yZDg7CitkaWZmIC0t Z2l0IGEvZmlsdGVycy93b3Jkcy9tc3dvcmQtb2RmL3d2Mi9zcmMvc3R5bGVzLmggYi9maWx0ZXJz L3dvcmRzL21zd29yZC1vZGYvd3YyL3NyYy9zdHlsZXMuaAoraW5kZXggYmEwMmRlZjY4NDUuLjQx YzgyNzhkZDIxIDEwMDY0NAorLS0tIGEvZmlsdGVycy93b3Jkcy9tc3dvcmQtb2RmL3d2Mi9zcmMv c3R5bGVzLmgKKysrKyBiL2ZpbHRlcnMvd29yZHMvbXN3b3JkLW9kZi93djIvc3JjL3N0eWxlcy5o CitAQCAtNTgsOCArNTgsOSBAQCBzdHJ1Y3QgU1RECisgICAgIFNURCgpOworICAgICAvKioKKyAg ICAgICogU2ltcGx5IGNhbGxzIHJlYWQoLi4uKQorKyAgICAgKiBAdGhyb3cgSW52YWxpZEZvcm1h dEV4Y2VwdGlvbgorICAgICAgKi8KKy0gICAgU1REKCBVMTYgc3RkZlNpemUsIFUxNiB0b3RhbFNp emUsIE9MRVN0cmVhbVJlYWRlciogc3RyZWFtLCBib29sIHByZXNlcnZlUG9zID0gZmFsc2UgKSB0 aHJvdyhJbnZhbGlkRm9ybWF0RXhjZXB0aW9uKTsKKysgICAgU1REKCBVMTYgc3RkZlNpemUsIFUx NiB0b3RhbFNpemUsIE9MRVN0cmVhbVJlYWRlciogc3RyZWFtLCBib29sIHByZXNlcnZlUG9zID0g ZmFsc2UgKTsKKyAgICAgLyoqCisgICAgICAqIEF0dGVudGlvbjogVGhpcyBzdHJ1Y3QgYWxsb2Nh dGVzIG1lbW9yeSBvbiB0aGUgaGVhcAorICAgICAgKi8KK0BAIC03NCw4ICs3NSw5IEBAIHN0cnVj dCBTVEQKKyAgICAgICogZmFsc2UgdGhlIHN0YXRlIG9mIHN0cmVhbSB3aWxsIGJlIGNoYW5nZWQh CisgICAgICAqCisgICAgICAqIEByZXR1cm4gdHJ1ZSAtIHN1Y2Nlc3MsIGZhbHNlIC0gZmFpbGVk CisrICAgICAqIEB0aHJvdyBJbnZhbGlkRm9ybWF0RXhjZXB0aW9uCisgICAgICAqLworLSAgICBi b29sIHJlYWQoIGNvbnN0IFUxNiBjYlN0ZCwgY29uc3QgVTE2IHN0ZGZTaXplLCBPTEVTdHJlYW1S ZWFkZXIqIHN0cmVhbSwgYm9vbCBwcmVzZXJ2ZVBvcyA9IGZhbHNlICkgdGhyb3coSW52YWxpZEZv cm1hdEV4Y2VwdGlvbik7CisrICAgIGJvb2wgcmVhZCggY29uc3QgVTE2IGNiU3RkLCBjb25zdCBV MTYgc3RkZlNpemUsIE9MRVN0cmVhbVJlYWRlciogc3RyZWFtLCBib29sIHByZXNlcnZlUG9zID0g ZmFsc2UgKTsKKyAKKyAgICAgLyoqCisgICAgICAqIFNhbWUgYXMgcmVhZGluZyA6KQorQEAgLTM2 NSw3ICszNjcsMTAgQEAgY2xhc3MgV1YyX0VYUE9SVCBTdHlsZQorIGNsYXNzIFdWMl9FWFBPUlQg U3R5bGVTaGVldAorIHsKKyBwdWJsaWM6CistICAgIFN0eWxlU2hlZXQoIE9MRVN0cmVhbVJlYWRl ciogdGFibGVTdHJlYW0sIFUzMiBmY1N0c2hmLCBVMzIgbGNiU3RzaGYgKSB0aHJvdyhJbnZhbGlk Rm9ybWF0RXhjZXB0aW9uKTsKKysgICAgLyoqCisrICAgICAqIEB0aHJvdyBJbnZhbGlkRm9ybWF0 RXhjZXB0aW9uCisrICAgICAqLworKyAgICBTdHlsZVNoZWV0KCBPTEVTdHJlYW1SZWFkZXIqIHRh YmxlU3RyZWFtLCBVMzIgZmNTdHNoZiwgVTMyIGxjYlN0c2hmICk7CisgICAgIH5TdHlsZVNoZWV0 KCk7CisgCisgICAgIC8qKgorZGlmZiAtLWdpdCBhL2dlbWluaS9saWIvR2VtaW5pTWFpbldpbmRv dy5jcHAgYi9nZW1pbmkvbGliL0dlbWluaU1haW5XaW5kb3cuY3BwCitpbmRleCAzZDA1ZjY0NjFl MC4uZWI1ZjEyMGMwZjcgMTAwNjQ0CistLS0gYS9nZW1pbmkvbGliL0dlbWluaU1haW5XaW5kb3cu Y3BwCisrKysgYi9nZW1pbmkvbGliL0dlbWluaU1haW5XaW5kb3cuY3BwCitAQCAtMTM2LDggKzEz NiwxMCBAQCB2b2lkIEdlbWluaU1haW5XaW5kb3c6OnNldEZ1bGxTY3JlZW4oYm9vbCBuZXdTdGF0 ZSkKKyB9CisgCisgCisrCisgdm9pZCBHZW1pbmlNYWluV2luZG93OjpjaGFuZ2VTdGF0ZShHZW1p bmlNYWluV2luZG93OjpHZW1pbmlTdGF0ZSBuZXdTdGF0ZSwgYm9vbCBsb2NrTmV3U3RhdGUpCisg eworKyAgICBRX1VOVVNFRChsb2NrTmV3U3RhdGUpOworICAgICBkLT5zeW5jT2JqZWN0ID0gbmV3 IEdlbWluaU1vZGVTeW5jaHJvbmlzYXRpb25PYmplY3Q7CisgCisgICAgIGlmKGNlbnRyYWxXaWRn ZXQoKSkgeworZGlmZiAtLWdpdCBhL2xpYnMvcGFnZWFwcC9Lb1BBT2RmUGFnZVNhdmVIZWxwZXIu Y3BwIGIvbGlicy9wYWdlYXBwL0tvUEFPZGZQYWdlU2F2ZUhlbHBlci5jcHAKK2luZGV4IDkyYzZk ZmQ0Y2I0Li4wNjg1MDFjOGFmMSAxMDA2NDQKKy0tLSBhL2xpYnMvcGFnZWFwcC9Lb1BBT2RmUGFn ZVNhdmVIZWxwZXIuY3BwCisrKysgYi9saWJzL3BhZ2VhcHAvS29QQU9kZlBhZ2VTYXZlSGVscGVy LmNwcAorQEAgLTQ5LDcgKzQ5LDcgQEAgS29QQU9kZlBhZ2VTYXZlSGVscGVyOjpLb1BBT2RmUGFn ZVNhdmVIZWxwZXIoIEtvUEFEb2N1bWVudCAqIGRvYywgUUxpc3Q8S29QQVBhZ2UKKyAgICAgICAg ICAgICBLb1BBUGFnZSAqIHAgPSBzdGF0aWNfY2FzdDxLb1BBUGFnZSAqPiggcGFnZSApOworICAg ICAgICAgICAgIG1hc3RlclBhZ2VzLmluc2VydCggcC0+bWFzdGVyUGFnZSgpICk7CisgICAgICAg ICB9CistICAgICAgICBtX21hc3RlclBhZ2VzID0gbWFzdGVyUGFnZXMudG9MaXN0KCk7CisrICAg ICAgICBtX21hc3RlclBhZ2VzID0gbWFzdGVyUGFnZXMudmFsdWVzKCk7CisgICAgIH0KKyB9Cisg CitkaWZmIC0tZ2l0IGEvcGx1Z2lucy9zcGFjZW5hdmlnYXRvci9TcGFjZU5hdmlnYXRvckRldmlj ZS5oIGIvcGx1Z2lucy9zcGFjZW5hdmlnYXRvci9TcGFjZU5hdmlnYXRvckRldmljZS5oCitpbmRl eCBiOTA1NmFjOThjMS4uZWNkNjk2ZTQxNWYgMTAwNjQ0CistLS0gYS9wbHVnaW5zL3NwYWNlbmF2 aWdhdG9yL1NwYWNlTmF2aWdhdG9yRGV2aWNlLmgKKysrKyBiL3BsdWdpbnMvc3BhY2VuYXZpZ2F0 b3IvU3BhY2VOYXZpZ2F0b3JEZXZpY2UuaAorQEAgLTMxLDEwICszMSw4IEBAIGNsYXNzIFNwYWNl TmF2aWdhdG9yRGV2aWNlIDogcHVibGljIEtvSW5wdXREZXZpY2VIYW5kbGVyCisgICAgIGV4cGxp Y2l0IFNwYWNlTmF2aWdhdG9yRGV2aWNlKFFPYmplY3QgKnBhcmVudCk7CisgICAgIHZpcnR1YWwg flNwYWNlTmF2aWdhdG9yRGV2aWNlKCk7CisgCistICAgIC8vLyByZWltcGxlbWVudGVkIGZyb20g S29JbnB1dERldmljZUhhbmRsZXIKKy0gICAgdmlydHVhbCBib29sIHN0YXJ0KCk7CistICAgIC8v LyByZWltcGxlbWVudGVkIGZyb20gS29JbnB1dERldmljZUhhbmRsZXIKKy0gICAgdmlydHVhbCBi b29sIHN0b3AoKTsKKysgICAgdmlydHVhbCBib29sIHN0YXJ0KCkgb3ZlcnJpZGU7CisrICAgIHZp cnR1YWwgYm9vbCBzdG9wKCkgb3ZlcnJpZGU7CisgcHJpdmF0ZSBRX1NMT1RTOgorICAgICB2b2lk IHNsb3RNb3ZlRXZlbnQoIGludCB4LCBpbnQgeSwgaW50IHosIGludCByeCwgaW50IHJ5LCBpbnQg cnosIFF0OjpNb3VzZUJ1dHRvbnMgKTsKKyAgICAgdm9pZCBzbG90QnV0dG9uRXZlbnQoIGludCB4 LCBpbnQgeSwgaW50IHosIGludCByeCwgaW50IHJ5LCBpbnQgcnosIFF0OjpNb3VzZUJ1dHRvbnMs IFF0OjpNb3VzZUJ1dHRvbiwgaW50IHR5cGUgKTsKK2RpZmYgLS1naXQgYS9wbHVnaW5zL3NwYWNl bmF2aWdhdG9yL1NwYWNlTmF2aWdhdG9yRXZlbnQuaCBiL3BsdWdpbnMvc3BhY2VuYXZpZ2F0b3Iv U3BhY2VOYXZpZ2F0b3JFdmVudC5oCitpbmRleCA3Mzc1MWVjODhmZi4uNzZlZThlMmY4ODAgMTAw NjQ0CistLS0gYS9wbHVnaW5zL3NwYWNlbmF2aWdhdG9yL1NwYWNlTmF2aWdhdG9yRXZlbnQuaAor KysrIGIvcGx1Z2lucy9zcGFjZW5hdmlnYXRvci9TcGFjZU5hdmlnYXRvckV2ZW50LmgKK0BAIC0z Myw3ICszMyw3IEBAIGNsYXNzIFNwYWNlTmF2aWdhdG9yRXZlbnQgOiBwdWJsaWMgS29JbnB1dERl dmljZUhhbmRsZXJFdmVudAorICAgICB2b2lkIHNldFBvc2l0aW9uKCBpbnQgeCwgaW50IHksIGlu dCB6ICk7CisgICAgIHZvaWQgc2V0Um90YXRpb24oIGludCByeCwgaW50IHJ5LCBpbnQgcnogKTsK KyAKKy0gICAgdmlydHVhbCBLb1BvaW50ZXJFdmVudCAqIHBvaW50ZXJFdmVudCgpOworKyAgICB2 aXJ0dWFsIEtvUG9pbnRlckV2ZW50ICogcG9pbnRlckV2ZW50KCkgb3ZlcnJpZGU7CisgCisgcHJp dmF0ZToKKyAgICAgaW50IG1feCwgbV95LCBtX3o7CitkaWZmIC0tZ2l0IGEvcGx1Z2lucy9zcGFj ZW5hdmlnYXRvci9TcGFjZU5hdmlnYXRvclBvbGxpbmdUaHJlYWQuaCBiL3BsdWdpbnMvc3BhY2Vu YXZpZ2F0b3IvU3BhY2VOYXZpZ2F0b3JQb2xsaW5nVGhyZWFkLmgKK2luZGV4IDYyYzRkZThhYjcz Li42N2Q1OTE3NzAyMSAxMDA2NDQKKy0tLSBhL3BsdWdpbnMvc3BhY2VuYXZpZ2F0b3IvU3BhY2VO YXZpZ2F0b3JQb2xsaW5nVGhyZWFkLmgKKysrKyBiL3BsdWdpbnMvc3BhY2VuYXZpZ2F0b3IvU3Bh Y2VOYXZpZ2F0b3JQb2xsaW5nVGhyZWFkLmgKK0BAIC0zOSw4ICszOSw3IEBAIGNsYXNzIFNwYWNl TmF2aWdhdG9yUG9sbGluZ1RocmVhZCA6IHB1YmxpYyBRVGhyZWFkCisgCisgcHJvdGVjdGVkOgor IAorLSAgICAvLy8gcmVpbXBsZW1lbnRlZCBmcm9tIFFUaHJlYWQKKy0gICAgdmlydHVhbCB2b2lk IHJ1bigpOworKyAgICB2aXJ0dWFsIHZvaWQgcnVuKCkgb3ZlcnJpZGU7CisgCisgcHJpdmF0ZToK KyAgICAgYm9vbCBtX3N0b3BwZWQ7CitkaWZmIC0tZ2l0IGEvcGx1Z2lucy92ZWN0b3JzaGFwZS9W ZWN0b3JTaGFwZS5jcHAgYi9wbHVnaW5zL3ZlY3RvcnNoYXBlL1ZlY3RvclNoYXBlLmNwcAoraW5k ZXggYTI1YWIzZmM1NjEuLjlhY2JkMjUxYzk0IDEwMDY0NAorLS0tIGEvcGx1Z2lucy92ZWN0b3Jz aGFwZS9WZWN0b3JTaGFwZS5jcHAKKysrKyBiL3BsdWdpbnMvdmVjdG9yc2hhcGUvVmVjdG9yU2hh cGUuY3BwCitAQCAtMjk0LDYgKzI5NCw3IEBAIHZvaWQgVmVjdG9yU2hhcGU6OnNhdmVPZGYoS29T aGFwZVNhdmluZ0NvbnRleHQgJiBjb250ZXh0KSBjb25zdAorICAgICAgICAgYnJlYWs7CisgICAg IGNhc2UgVmVjdG9yVHlwZVN2ZzoKKyAgICAgICAgIG1pbWVUeXBlID0gImltYWdlL3N2Zyt4bWwi OworKyAgICAgICAgYnJlYWs7CisgICAgIGRlZmF1bHQ6CisgICAgICAgICAvLyBGSVhNRTogV2hh dCBoZXJlPworICAgICAgICAgbWltZVR5cGUgPSAiYXBwbGljYXRpb24veC13aGF0IjsKK2RpZmYg LS1naXQgYS9zaGVldHMvZnVuY3Rpb25zL2RhdGV0aW1lLmNwcCBiL3NoZWV0cy9mdW5jdGlvbnMv ZGF0ZXRpbWUuY3BwCitpbmRleCA5ZjU5ZmUyY2Y3NS4uNjE1N2IwOTk2YzEgMTAwNjQ0CistLS0g YS9zaGVldHMvZnVuY3Rpb25zL2RhdGV0aW1lLmNwcAorKysrIGIvc2hlZXRzL2Z1bmN0aW9ucy9k YXRldGltZS5jcHAKK0BAIC01OTcsNiArNTk3LDcgQEAgVmFsdWUgZnVuY19jdXJyZW50RGF0ZSh2 YWxWZWN0b3IsIFZhbHVlQ2FsYyAqIGNhbGMsIEZ1bmNFeHRyYSAqKQorIC8vIEZ1bmN0aW9uOiBD VVJSRU5UVElNRQorIFZhbHVlIGZ1bmNfY3VycmVudFRpbWUodmFsVmVjdG9yLCBWYWx1ZUNhbGMg KiBjYWxjLCBGdW5jRXh0cmEgKikKKyB7CisrICAgIFFfVU5VU0VEKGNhbGMpOworICAgICByZXR1 cm4gVmFsdWUoUVRpbWU6OmN1cnJlbnRUaW1lKCkpOworIH0KKyAKK2RpZmYgLS1naXQgYS9zaGVl dHMvcGFydC9EaWdlc3QuY3BwIGIvc2hlZXRzL3BhcnQvRGlnZXN0LmNwcAoraW5kZXggOGNkOTcy ZGI5ODkuLmU5MjQ2Y2U2ZTdkIDEwMDY0NAorLS0tIGEvc2hlZXRzL3BhcnQvRGlnZXN0LmNwcAor KysrIGIvc2hlZXRzL3BhcnQvRGlnZXN0LmNwcAorQEAgLTU5NiwxMCArNTk2LDEwIEBAIHN0YXRp YyB2b2lkIF9fcnRsX2RpZ2VzdF9lbmRTSEEoRGlnZXN0Q29udGV4dFNIQSAqY3R4KQorICAgICB9 CisgCisgICAgIHN3aXRjaCAoY3R4LT5tX25EYXRMZW4gJiAweDAzKSB7CistICAgIGNhc2UgMDog WFtpXSAgPSAoKHNhbF91SW50MzIpKCoocCsrKSkpIDw8ICAwTDsKKy0gICAgY2FzZSAxOiBYW2ld IHw9ICgoc2FsX3VJbnQzMikoKihwKyspKSkgPDwgIDhMOworLSAgICBjYXNlIDI6IFhbaV0gfD0g KChzYWxfdUludDMyKSgqKHArKykpKSA8PCAxNkw7CistICAgIGNhc2UgMzogWFtpXSB8PSAoKHNh bF91SW50MzIpKCoocCsrKSkpIDw8IDI0TDsKKysgICAgY2FzZSAwOiBYW2ldICA9ICgoc2FsX3VJ bnQzMikoKihwKyspKSkgPDwgIDBMOyAvKiBmYWxsIHRocm91Z2ggKi8KKysgICAgY2FzZSAxOiBY W2ldIHw9ICgoc2FsX3VJbnQzMikoKihwKyspKSkgPDwgIDhMOyAvKiBmYWxsIHRocm91Z2ggKi8K KysgICAgY2FzZSAyOiBYW2ldIHw9ICgoc2FsX3VJbnQzMikoKihwKyspKSkgPDwgMTZMOyAvKiBm YWxsIHRocm91Z2ggKi8KKysgICAgY2FzZSAzOiBYW2ldIHw9ICgoc2FsX3VJbnQzMikoKihwKysp KSkgPDwgMjRMOyAvKiBmYWxsIHRocm91Z2ggKi8KKyAgICAgfQorIAorICAgICBfX3J0bF9kaWdl c3Rfc3dhcExvbmcoWCwgaSArIDEpOworZGlmZiAtLWdpdCBhL3NoZWV0cy9zaGFwZS9UYWJsZVRv b2xGYWN0b3J5LmggYi9zaGVldHMvc2hhcGUvVGFibGVUb29sRmFjdG9yeS5oCitpbmRleCA2Nzli ZmUxNGI4ZS4uOTQxMmQ4ZmZkYzUgMTAwNjQ0CistLS0gYS9zaGVldHMvc2hhcGUvVGFibGVUb29s RmFjdG9yeS5oCisrKysgYi9zaGVldHMvc2hhcGUvVGFibGVUb29sRmFjdG9yeS5oCitAQCAtMzQs NyArMzQsNyBAQCBjbGFzcyBUYWJsZVRvb2xGYWN0b3J5IDogcHVibGljIEtvVG9vbEZhY3RvcnlC YXNlCisgICAgIFRhYmxlVG9vbEZhY3RvcnkoKTsKKyAgICAgflRhYmxlVG9vbEZhY3RvcnkoKTsK KyAKKy0gICAgS29Ub29sQmFzZSogY3JlYXRlVG9vbChLb0NhbnZhc0Jhc2UqIGNhbnZhcyk7Cisr ICAgIEtvVG9vbEJhc2UqIGNyZWF0ZVRvb2woS29DYW52YXNCYXNlKiBjYW52YXMpIG92ZXJyaWRl OworIH07CisgCisgfSAvLyBuYW1lc3BhY2UgU2hlZXRzCitkaWZmIC0tZ2l0IGEvc2hlZXRzL3Rl c3RzL1Rlc3RTb3J0LmNwcCBiL3NoZWV0cy90ZXN0cy9UZXN0U29ydC5jcHAKK2luZGV4IGIzZjFl MzUxNjlkLi42MzU0ZDc5YWJjNSAxMDA2NDQKKy0tLSBhL3NoZWV0cy90ZXN0cy9UZXN0U29ydC5j cHAKKysrKyBiL3NoZWV0cy90ZXN0cy9UZXN0U29ydC5jcHAKK0BAIC02OCw3ICs2OCw3IEBAIHZv aWQgVGVzdFNvcnQ6OkFzY2VuZGluZ09yZGVyKCkKKyAgICAgY29tbWFuZC0+c2V0U2hlZXQoc2hl ZXQpOworIAorICAgICAvLyBQYXJhbWV0ZXJzLgorLSAgICBjb21tYW5kLT5zZXRTb3J0Um93cyhR dDo6VmVydGljYWwpOworKyAgICBjb21tYW5kLT5zZXRTb3J0Um93cyh0cnVlKTsKKyAgICAgY29t bWFuZC0+c2V0U2tpcEZpcnN0KGZhbHNlKTsKKyAgICAgY29tbWFuZC0+c2V0Q29weUZvcm1hdChm YWxzZSk7CisgCitAQCAtMTIxLDcgKzEyMSw3IEBAIHZvaWQgVGVzdFNvcnQ6OkRlc2NlbmRpbmdP cmRlcigpCisgICAgIGNvbW1hbmQtPnNldFNoZWV0KHNoZWV0KTsKKyAKKyAgICAgLy8gUGFyYW1l dGVycy4KKy0gICAgY29tbWFuZC0+c2V0U29ydFJvd3MoUXQ6OlZlcnRpY2FsKTsKKysgICAgY29t bWFuZC0+c2V0U29ydFJvd3ModHJ1ZSk7CisgICAgIGNvbW1hbmQtPnNldFNraXBGaXJzdChmYWxz ZSk7CisgICAgIGNvbW1hbmQtPnNldENvcHlGb3JtYXQoZmFsc2UpOworIApkaWZmIC0tZ2l0IGEv c3JjcGtncy9jYWxsaWdyYS9wYXRjaGVzLzAwMDItTWFrZS1zaG93LWhpZGRlbi1yb3ctcy13b3Jr LnBhdGNoIGIvc3JjcGtncy9jYWxsaWdyYS9wYXRjaGVzLzAwMDItTWFrZS1zaG93LWhpZGRlbi1y b3ctcy13b3JrLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u ZDRiMDgyYjlhMGYxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9jYWxsaWdyYS9wYXRjaGVz LzAwMDItTWFrZS1zaG93LWhpZGRlbi1yb3ctcy13b3JrLnBhdGNoCkBAIC0wLDAgKzEsMjkgQEAK K0Zyb20gMjJlMDI5OThkZWM4YWYxNWEyNWI3ZThlM2Q1M2MxNzQ4MTBjYzNiZSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKK0Zyb206IERhZyBBbmRlcnNlbiA8ZGFuZGVyc0BnZXQybmV0LmRrPgor RGF0ZTogVGh1LCAxMSBKdW4gMjAyMCAxMDo0MzozOCArMDIwMAorU3ViamVjdDogW1BBVENIXSBN YWtlIHNob3cgaGlkZGVuIHJvdyhzKSB3b3JrCisKK0NoZWNrIGZvciBoaWRkZW4gcm93cyB3YXMg aW52ZXJ0ZWQgdG8gY2hlY2sgZm9yIHNob3duIHJvd3MsCitoZW5jZSBoaWRkZW4gcm93cyB3b3Vs ZCBuZXZlciBiZSB1bmhpZGRlbi4KKworQlVHOjMzODgxNgorQlVHOjM1NDIzNgorRklYRUQtSU46 My4yLjIKKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDI4OTIwYzUwZTYzMDBkNjQzNDc3ZjI1 NmFiYTkxYzhjNTE4MzY2ODIpCistLS0KKyBzaGVldHMvY29tbWFuZHMvUm93Q29sdW1uTWFuaXB1 bGF0b3JzLmNwcCB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVs ZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL3NoZWV0cy9jb21tYW5kcy9Sb3dDb2x1bW5NYW5pcHVs YXRvcnMuY3BwIGIvc2hlZXRzL2NvbW1hbmRzL1Jvd0NvbHVtbk1hbmlwdWxhdG9ycy5jcHAKK2lu ZGV4IDk1MjgyZDZlMzFiLi4yNWU4YzQ1NGUyNyAxMDA2NDQKKy0tLSBhL3NoZWV0cy9jb21tYW5k cy9Sb3dDb2x1bW5NYW5pcHVsYXRvcnMuY3BwCisrKysgYi9zaGVldHMvY29tbWFuZHMvUm93Q29s dW1uTWFuaXB1bGF0b3JzLmNwcAorQEAgLTE5Miw3ICsxOTIsNyBAQCBib29sIEhpZGVTaG93TWFu aXB1bGF0b3I6OnByZVByb2Nlc3NpbmcoKQorICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIGZvciAoaW50IHJvdyA9IHJhbmdlLnRvcCgp OyByb3cgPD0gcmFuZ2UuYm90dG9tKCk7ICsrcm93KSB7CistICAgICAgICAgICAgICAgICAgICBp ZiAoIW1fc2hlZXQtPnJvd0Zvcm1hdHMoKS0+aXNIaWRkZW4ocm93KSkgeworKyAgICAgICAgICAg ICAgICAgICAgaWYgKG1fc2hlZXQtPnJvd0Zvcm1hdHMoKS0+aXNIaWRkZW4ocm93KSkgeworICAg ICAgICAgICAgICAgICAgICAgICAgIHJlZ2lvbi5hZGQoUVJlY3QoMSwgcm93LCBLU19jb2xNYXgs IDEpKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgfQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9jYWxsaWdyYS9wYXRjaGVzL2MrKzE3LnBhdGNoIGIvc3JjcGtncy9jYWxs aWdyYS9wYXRjaGVzL2MrKzE3LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMC4uMWRiODM4NTE2MWEzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9jYWxsaWdy YS9wYXRjaGVzL2MrKzE3LnBhdGNoCkBAIC0wLDAgKzEsMTYgQEAKK2RpZmYgLU5hdXIgQ01ha2VM aXN0cy50eHQub3JpZyBDTWFrZUxpc3RzLnR4dAorLS0tIGEvQ01ha2VMaXN0cy50eHQub3JpZwor KysrIGIvQ01ha2VMaXN0cy50eHQKK0BAIC0xMDYsOSArMTA2LDkgQEAKKyAKKyAjIHVzZSBDUFAt MTEKKyBpZiAoQ01BS0VfVkVSU0lPTiBWRVJTSU9OX0xFU1MgIjMuMSIpCistICAgIHNldCAoQ01B S0VfQ1hYX0ZMQUdTICIke0NNQUtFX0NYWF9GTEFHU30gLXN0ZD1jKysxMSIpCisrICAgIHNldCAo Q01BS0VfQ1hYX0ZMQUdTICIke0NNQUtFX0NYWF9GTEFHU30gLXN0ZD1jKysxNyIpCisgZWxzZSAo KQorLSAgICBzZXQgKENNQUtFX0NYWF9TVEFOREFSRCAxMSkKKysgICAgc2V0IChDTUFLRV9DWFhf U1RBTkRBUkQgMTcpCisgZW5kaWYgKCkKKyAKKyAjIyMjIyMjIyMjIyMKKwpkaWZmIC0tZ2l0IGEv c3JjcGtncy9jYWxsaWdyYS9wYXRjaGVzL3BvcHBsZXItMjIuMDMuMC1maXgucGF0Y2ggYi9zcmNw a2dzL2NhbGxpZ3JhL3BhdGNoZXMvcG9wcGxlci0yMi4wMy4wLWZpeC5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjdkYWI1M2JjZmM3ZgotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvY2FsbGlncmEvcGF0Y2hlcy9wb3BwbGVyLTIyLjAzLjAtZml4LnBhdGNo CkBAIC0wLDAgKzEsNzAgQEAKK0Zyb20gMjM2YmFjYmUxMzczOTQxNGU5MTlkZTg2ODI4M2IwY2Fm MmRmNWQ4YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFsYmVydCBBc3RhbHMgQ2lk IDxhYWNpZEBrZGUub3JnPgorRGF0ZTogV2VkLCAxMyBBcHIgMjAyMiAwMToyNTo0NCArMDIwMAor U3ViamVjdDogW1BBVENIXSBQZGZJbXBvcnQ6IEZpeCBjb21waWxlIHdpdGggbmV3ZXIgcG9wcGxl cgorCitCcmluZ3MgYSBkZXBlbmRlbmN5IG9uIHBvcHBsZXItcXQ1IHRvIGJlIGFibGUgdG8gaW5j bHVkZSB0aGUgdmVyc2lvbgoraGVhZGVyLCBob25lc3RseSBpdCdzIG5vdCBzdHJpY3RseSBuZWVk ZWQsIG9uZSBjb3VsZCBkbyBhCitjaGVja19jeHhfc291cmNlX2NvbXBpbGVzLCBidXQgSSBkb24n dCBjYXJlIGFib3V0IENhbGxpZ3JhIGVub3VnaCB0bworc3BlbmQgbW9yZSB0aW1lIG1ha2luZyBp dCBjb21waWxlIHdoaWxlIGl0J3MgdXNpbmcgcG9wcGxlciB0aGUgd3JvbmcKK3dheS4KKy0tLQor IENNYWtlTGlzdHMudHh0ICAgICAgICAgICAgICAgICAgICB8IDEgKworIGZpbHRlcnMva2FyYm9u L3BkZi9DTWFrZUxpc3RzLnR4dCB8IDIgKy0KKyBmaWx0ZXJzL2thcmJvbi9wZGYvUGRmSW1wb3J0 LmNwcCAgfCA5ICsrKysrKysrKworIDMgZmlsZXMgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwg MSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvQ01ha2VMaXN0cy50eHQgYi9DTWFrZUxpc3Rz LnR4dAoraW5kZXggNTFmMWQ2NWI4ZTYuLjA2YmJhZDVjMjRjIDEwMDY0NAorLS0tIGEvQ01ha2VM aXN0cy50eHQKKysrKyBiL0NNYWtlTGlzdHMudHh0CitAQCAtOTUyLDYgKzk1Miw3IEBAIGNhbGxp Z3JhX2Ryb3BfcHJvZHVjdF9vbl9iYWRfY29uZGl0aW9uKCBGSUxURVJfV1BHX1RPX09ERworIGNh bGxpZ3JhX2Ryb3BfcHJvZHVjdF9vbl9iYWRfY29uZGl0aW9uKCBGSUxURVJfUERGX1RPX1NWRwor ICAgICBOT1RfV0lOICJub3Qgc3VwcG9ydGVkIG9uIFdpbmRvd3MiCisgICAgIFBvcHBsZXJYUERG SGVhZGVyc19GT1VORCAicG9wcGxlciB4cGRmIGhlYWRlcnMgbm90IGZvdW5kIgorKyAgICBQb3Bw bGVyX0ZPVU5EICJwb3BwbGVyIHF0NSBoZWFkZXJzIG5vdCBmb3VuZCIKKyAgICAgKQorIAorIGNh bGxpZ3JhX2Ryb3BfcHJvZHVjdF9vbl9iYWRfY29uZGl0aW9uKCBGSUxURVJfSFRNTF9UT19PRFMK K2RpZmYgLS1naXQgYS9maWx0ZXJzL2thcmJvbi9wZGYvQ01ha2VMaXN0cy50eHQgYi9maWx0ZXJz L2thcmJvbi9wZGYvQ01ha2VMaXN0cy50eHQKK2luZGV4IDhmZGRmMWFkNzU3Li5iNzFjOTJjYmYw NCAxMDA2NDQKKy0tLSBhL2ZpbHRlcnMva2FyYm9uL3BkZi9DTWFrZUxpc3RzLnR4dAorKysrIGIv ZmlsdGVycy9rYXJib24vcGRmL0NNYWtlTGlzdHMudHh0CitAQCAtMyw3ICszLDcgQEAgc2V0KHBk ZjJzdmdfUEFSVF9TUkNTIFBkZkltcG9ydERlYnVnLmNwcCBQZGZJbXBvcnQuY3BwIFN2Z091dHB1 dERldi5jcHAgKQorIGFkZF9saWJyYXJ5KGNhbGxpZ3JhX2ZpbHRlcl9wZGYyc3ZnIE1PRFVMRSAk e3BkZjJzdmdfUEFSVF9TUkNTfSkKKyBjYWxsaWdyYV9maWx0ZXJfZGVza3RvcF90b19qc29uKGNh bGxpZ3JhX2ZpbHRlcl9wZGYyc3ZnIGNhbGxpZ3JhX2ZpbHRlcl9wZGYyc3ZnLmRlc2t0b3ApCisg CistdGFyZ2V0X2xpbmtfbGlicmFyaWVzKGNhbGxpZ3JhX2ZpbHRlcl9wZGYyc3ZnIGtvbWFpbiBQ b3BwbGVyOjpDb3JlKQorK3RhcmdldF9saW5rX2xpYnJhcmllcyhjYWxsaWdyYV9maWx0ZXJfcGRm MnN2ZyBrb21haW4gUG9wcGxlcjo6Q29yZSBQb3BwbGVyOjpRdDUpCisgCisgaW5zdGFsbChUQVJH RVRTIGNhbGxpZ3JhX2ZpbHRlcl9wZGYyc3ZnIERFU1RJTkFUSU9OICR7UExVR0lOX0lOU1RBTExf RElSfS9jYWxsaWdyYS9mb3JtYXRmaWx0ZXJzKQorIAorZGlmZiAtLWdpdCBhL2ZpbHRlcnMva2Fy Ym9uL3BkZi9QZGZJbXBvcnQuY3BwIGIvZmlsdGVycy9rYXJib24vcGRmL1BkZkltcG9ydC5jcHAK K2luZGV4IGFiYmU2ODFiNGU4Li5lOTc5NzRmYzEzMyAxMDA2NDQKKy0tLSBhL2ZpbHRlcnMva2Fy Ym9uL3BkZi9QZGZJbXBvcnQuY3BwCisrKysgYi9maWx0ZXJzL2thcmJvbi9wZGYvUGRmSW1wb3J0 LmNwcAorQEAgLTE3LDYgKzE3LDEwIEBACisgCisgI2luY2x1ZGUgPGtwbHVnaW5mYWN0b3J5Lmg+ CisgCisrI2luY2x1ZGUgPHBvcHBsZXItdmVyc2lvbi5oPgorKworKyNkZWZpbmUgUE9QUExFUl9W RVJTSU9OX01BQ1JPICgoUE9QUExFUl9WRVJTSU9OX01BSk9SIDw8IDE2KSB8IChQT1BQTEVSX1ZF UlNJT05fTUlOT1IgPDwgOCkgfCAoUE9QUExFUl9WRVJTSU9OX01JQ1JPKSkKKysKKyAvLyBEb24n dCBzaG93IHRoaXMgd2FybmluZzogaXQncyBhbiBpc3N1ZSBpbiBwb3BwbGVyCisgI2lmZGVmIF9f R05VQ19fCisgI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VudXNlZC1wYXJhbWV0 ZXIiCitAQCAtNTQsOCArNTgsMTMgQEAgS29GaWx0ZXI6OkNvbnZlcnNpb25TdGF0dXMgUGRmSW1w b3J0Ojpjb252ZXJ0KGNvbnN0IFFCeXRlQXJyYXkmIGZyb20sIGNvbnN0IFFCeXQKKyAgICAgaWYg KCEgZ2xvYmFsUGFyYW1zKQorICAgICAgICAgcmV0dXJuIEtvRmlsdGVyOjpOb3RJbXBsZW1lbnRl ZDsKKyAKKysjaWYgUE9QUExFUl9WRVJTSU9OX01BQ1JPIDwgUVRfVkVSU0lPTl9DSEVDSygyMiwg MDMsIDApCisgICAgIEdvb1N0cmluZyAqIGZuYW1lID0gbmV3IEdvb1N0cmluZyhRRmlsZTo6ZW5j b2RlTmFtZShtX2NoYWluLT5pbnB1dEZpbGUoKSkuZGF0YSgpKTsKKyAgICAgUERGRG9jICogcGRm RG9jID0gbmV3IFBERkRvYyhmbmFtZSwgMCwgMCwgMCk7CisrI2Vsc2UKKysgICAgc3RkOjp1bmlx dWVfcHRyPEdvb1N0cmluZz4gZm5hbWUgPSBzdGQ6Om1ha2VfdW5pcXVlPEdvb1N0cmluZz4oUUZp bGU6OmVuY29kZU5hbWUobV9jaGFpbi0+aW5wdXRGaWxlKCkpLmRhdGEoKSk7CisrICAgIFBERkRv YyAqIHBkZkRvYyA9IG5ldyBQREZEb2Moc3RkOjptb3ZlKGZuYW1lKSk7CisrI2VuZGlmCisgICAg IGlmICghIHBkZkRvYykgeworICAgICAgICAgZ2xvYmFsUGFyYW1zLnJlc2V0KCk7CisgICAgICAg ICByZXR1cm4gS29GaWx0ZXI6OlN0dXBpZEVycm9yOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jYWxs aWdyYS9wYXRjaGVzL3BvcHBsZXItMjIuMDQuMC1maXgucGF0Y2ggYi9zcmNwa2dzL2NhbGxpZ3Jh L3BhdGNoZXMvcG9wcGxlci0yMi4wNC4wLWZpeC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAuLmU0NzE2OTk1MGI4YgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvY2FsbGlncmEvcGF0Y2hlcy9wb3BwbGVyLTIyLjA0LjAtZml4LnBhdGNoCkBAIC0wLDAgKzEs OTEgQEAKK0Zyb20gNmI3NWJlYzc4NGM5ODM1Yzc4OTkzMzQ5ODQ1ZDhjMmVmMjJlYzNkZSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IERhZyBBbmRlcnNlbiA8ZGFnLmFuZGVyc2VuQGtk ZW1haWwubmV0PgorRGF0ZTogV2VkLCAxMyBBcHIgMjAyMiAxNDo0NTozMyArMDIwMAorU3ViamVj dDogW1BBVENIXSBQZGZJbXBvcnQ6IEZpeCBjb21waWxlIHdpdGggbmV3ZXIgcG9wcGxlcgorCitB bHNvIGZpeGVzIG9kZzJwZGYgZmlsdGVyLgorCitTYW1lIHNvbHV0aW9uIGFzIGNvbW1pdCAyMzZi YWNiZTEzNzM5NDE0ZTkxOWRlODY4MjgzYjBjYWYyZGY1ZDhhCitieSBhY2NpZEBrZGUub3JnLgor LS0tCisgZmlsdGVycy9rYXJib24vcGRmL0NNYWtlTGlzdHMudHh0ICAgIHwgMiArLQorIGZpbHRl cnMva2FyYm9uL3BkZi9QZGYyT2RnSW1wb3J0LmNwcCB8IDkgKysrKysrKysrCisgZmlsdGVycy9r YXJib24vcGRmL1N2Z091dHB1dERldi5jcHAgIHwgOSArKysrKysrKysKKyAzIGZpbGVzIGNoYW5n ZWQsIDE5IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2ZpbHRl cnMva2FyYm9uL3BkZi9DTWFrZUxpc3RzLnR4dCBiL2ZpbHRlcnMva2FyYm9uL3BkZi9DTWFrZUxp c3RzLnR4dAoraW5kZXggYjcxYzkyY2JmMDQuLjRjZTEzOGNjZGQ2IDEwMDY0NAorLS0tIGEvZmls dGVycy9rYXJib24vcGRmL0NNYWtlTGlzdHMudHh0CisrKysgYi9maWx0ZXJzL2thcmJvbi9wZGYv Q01ha2VMaXN0cy50eHQKK0BAIC0xMyw2ICsxMyw2IEBAIHNldChwZGYyb2RnX1BBUlRfU1JDUyBQ ZGZJbXBvcnREZWJ1Zy5jcHAgUGRmMk9kZ0ltcG9ydC5jcHAgU3ZnT3V0cHV0RGV2LmNwcCkKKyBh ZGRfbGlicmFyeShjYWxsaWdyYV9maWx0ZXJfcGRmMm9kZyBNT0RVTEUgJHtwZGYyb2RnX1BBUlRf U1JDU30pCisgY2FsbGlncmFfZmlsdGVyX2Rlc2t0b3BfdG9fanNvbihjYWxsaWdyYV9maWx0ZXJf cGRmMm9kZyBjYWxsaWdyYV9maWx0ZXJfcGRmMm9kZy5kZXNrdG9wKQorIAorLXRhcmdldF9saW5r X2xpYnJhcmllcyhjYWxsaWdyYV9maWx0ZXJfcGRmMm9kZyBrb3BhZ2VhcHAga2FyYm9udWkgUG9w cGxlcjo6Q29yZSkKKyt0YXJnZXRfbGlua19saWJyYXJpZXMoY2FsbGlncmFfZmlsdGVyX3BkZjJv ZGcga29wYWdlYXBwIGthcmJvbnVpIFBvcHBsZXI6OkNvcmUgUG9wcGxlcjo6UXQ1KQorIAorIGlu c3RhbGwoVEFSR0VUUyBjYWxsaWdyYV9maWx0ZXJfcGRmMm9kZyBERVNUSU5BVElPTiAke1BMVUdJ Tl9JTlNUQUxMX0RJUn0vY2FsbGlncmEvZm9ybWF0ZmlsdGVycykKK2RpZmYgLS1naXQgYS9maWx0 ZXJzL2thcmJvbi9wZGYvUGRmMk9kZ0ltcG9ydC5jcHAgYi9maWx0ZXJzL2thcmJvbi9wZGYvUGRm Mk9kZ0ltcG9ydC5jcHAKK2luZGV4IDkzNGUzMWRkNWFhLi5hMjFlYWM5N2E3NyAxMDA2NDQKKy0t LSBhL2ZpbHRlcnMva2FyYm9uL3BkZi9QZGYyT2RnSW1wb3J0LmNwcAorKysrIGIvZmlsdGVycy9r YXJib24vcGRmL1BkZjJPZGdJbXBvcnQuY3BwCitAQCAtMjcsNiArMjcsOCBAQAorIAorICNpbmNs dWRlIDxrcGx1Z2luZmFjdG9yeS5oPgorIAorKyNpbmNsdWRlIDxwb3BwbGVyLXZlcnNpb24uaD4K KysKKyAvLyBEb24ndCBzaG93IHRoaXMgd2FybmluZzogaXQncyBhbiBpc3N1ZSBpbiBwb3BwbGVy CisgI2lmZGVmIF9fR05VQ19fCisgI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3Vu dXNlZC1wYXJhbWV0ZXIiCitAQCAtMzYsNiArMzgsOCBAQAorICNpbmNsdWRlIDxQREZEb2MuaD4K KyAjaW5jbHVkZSA8R2xvYmFsUGFyYW1zLmg+CisgCisrI2RlZmluZSBQT1BQTEVSX1ZFUlNJT05f TUFDUk8gKChQT1BQTEVSX1ZFUlNJT05fTUFKT1IgPDwgMTYpIHwgKFBPUFBMRVJfVkVSU0lPTl9N SU5PUiA8PCA4KSB8IChQT1BQTEVSX1ZFUlNJT05fTUlDUk8pKQorKworIEtfUExVR0lOX0ZBQ1RP UllfV0lUSF9KU09OKFBkZjJPZGdJbXBvcnRGYWN0b3J5LCAiY2FsbGlncmFfZmlsdGVyX3BkZjJv ZGcuanNvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJQbHVnaW48UGRm Mk9kZ0ltcG9ydD4oKTspCisgCitAQCAtNjksOCArNzMsMTMgQEAgS29GaWx0ZXI6OkNvbnZlcnNp b25TdGF0dXMgUGRmMk9kZ0ltcG9ydDo6Y29udmVydChjb25zdCBRQnl0ZUFycmF5JiBmcm9tLCBj b25zdAorICAgICBpZiAoISBnbG9iYWxQYXJhbXMpCisgICAgICAgICByZXR1cm4gS29GaWx0ZXI6 Ok5vdEltcGxlbWVudGVkOworIAorKyNpZiBQT1BQTEVSX1ZFUlNJT05fTUFDUk8gPCBRVF9WRVJT SU9OX0NIRUNLKDIyLCAwMywgMCkKKyAgICAgR29vU3RyaW5nICogZm5hbWUgPSBuZXcgR29vU3Ry aW5nKFFGaWxlOjplbmNvZGVOYW1lKG1fY2hhaW4tPmlucHV0RmlsZSgpKS5kYXRhKCkpOworICAg ICBQREZEb2MgKiBwZGZEb2MgPSBuZXcgUERGRG9jKGZuYW1lLCAwLCAwLCAwKTsKKysjZWxzZQor KyAgICBzdGQ6OnVuaXF1ZV9wdHI8R29vU3RyaW5nPiBmbmFtZSA9IHN0ZDo6bWFrZV91bmlxdWU8 R29vU3RyaW5nPihRRmlsZTo6ZW5jb2RlTmFtZShtX2NoYWluLT5pbnB1dEZpbGUoKSkuZGF0YSgp KTsKKysgICAgUERGRG9jICogcGRmRG9jID0gbmV3IFBERkRvYyhzdGQ6Om1vdmUoZm5hbWUpKTsK KysjZW5kaWYKKyAgICAgaWYgKCEgcGRmRG9jKSB7CisgICAgICAgICBnbG9iYWxQYXJhbXMucmVz ZXQoKTsKKyAgICAgICAgIHJldHVybiBLb0ZpbHRlcjo6U3R1cGlkRXJyb3I7CitkaWZmIC0tZ2l0 IGEvZmlsdGVycy9rYXJib24vcGRmL1N2Z091dHB1dERldi5jcHAgYi9maWx0ZXJzL2thcmJvbi9w ZGYvU3ZnT3V0cHV0RGV2LmNwcAoraW5kZXggMGU2ZTVhOTM0Y2EuLjdjYWVjMTUxNzVhIDEwMDY0 NAorLS0tIGEvZmlsdGVycy9rYXJib24vcGRmL1N2Z091dHB1dERldi5jcHAKKysrKyBiL2ZpbHRl cnMva2FyYm9uL3BkZi9TdmdPdXRwdXREZXYuY3BwCitAQCAtMjIsNiArMjIsMTAgQEAKKyAjaW5j bHVkZSA8UVBlbj4KKyAjaW5jbHVkZSA8UUltYWdlPgorIAorKyNpbmNsdWRlIDxwb3BwbGVyLXZl cnNpb24uaD4KKysKKysjZGVmaW5lIFBPUFBMRVJfVkVSU0lPTl9NQUNSTyAoKFBPUFBMRVJfVkVS U0lPTl9NQUpPUiA8PCAxNikgfCAoUE9QUExFUl9WRVJTSU9OX01JTk9SIDw8IDgpIHwgKFBPUFBM RVJfVkVSU0lPTl9NSUNSTykpCisrCisgY2xhc3MgU3ZnT3V0cHV0RGV2OjpQcml2YXRlCisgewor IHB1YmxpYzoKK0BAIC0zODYsNyArMzkwLDEyIEBAIHZvaWQgU3ZnT3V0cHV0RGV2OjpkcmF3U3Ry aW5nKEdmeFN0YXRlICogc3RhdGUsIGNvbnN0IEdvb1N0cmluZyAqIHMpCisgICAgIGlmIChzLT5n ZXRMZW5ndGgoKSA9PSAwKQorICAgICAgICAgcmV0dXJuOworIAorKyNpZiBQT1BQTEVSX1ZFUlNJ T05fTUFDUk8gPCBRVF9WRVJTSU9OX0NIRUNLKDIyLCAwMywgMCkKKyAgICAgR2Z4Rm9udCAqIGZv bnQgPSBzdGF0ZS0+Z2V0Rm9udCgpOworKyNlbHNlCisrICAgIHN0ZDo6c2hhcmVkX3B0cjxHZnhG b250PiBmb250ID0gc3RhdGUtPmdldEZvbnQoKTsKKysjZW5kaWYKKysKKyAKKyAgICAgUVN0cmlu ZyBzdHI7CisgCmRpZmYgLS1naXQgYS9zcmNwa2dzL2NhbGxpZ3JhL3RlbXBsYXRlIGIvc3JjcGtn cy9jYWxsaWdyYS90ZW1wbGF0ZQppbmRleCA3YzE0MTFiZjNkYTYuLjZmOTI0ZDYyZjhmZiAxMDA2 NDQKLS0tIGEvc3JjcGtncy9jYWxsaWdyYS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2NhbGxpZ3Jh L3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY2FsbGlncmEn CiBwa2duYW1lPWNhbGxpZ3JhCiB2ZXJzaW9uPTMuMi4xCi1yZXZpc2lvbj03CityZXZpc2lvbj04 CiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1Xbm8tZGV2IC1EQ0FMTElHUkFf U0hPVUxEX0JVSUxEX1VOTUFJTlRBSU5FRD1PTgogIC1EQlVJTERfVEVTVElORz1PRkYiCgpGcm9t IDIyMWRjNTI4MjYwMTVjOWZjMmUwOTM1MDU3ZmJlN2MzYzllODgyYWEgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IG9yZW82MzkgPDMxOTE2Mzc5K09yZW82MzlAdXNlcnMubm9yZXBseS5n aXRodWIuY29tPgpEYXRlOiBGcmksIDI1IE1hciAyMDIyIDE4OjM0OjA3IC0wNzAwClN1YmplY3Q6 IFtQQVRDSCAwNS8xMF0gaW5rc2NhcGU6IHJlYnVpbGQgYWdhaW5zdCBsaWJwb3BwbGVyIDIyLjA2 LjAKCi0tLQogLi4uaWJpbGl0eS13aXRoLVBvcHBsZXItMjIuMDMtYW5kLWxhdGVyLnBhdGNoIHwg IDUwICsrKysrKwogLi4uL0ZpeC1idWlsZC13aXRoLXBvcHBsZXItMjEuMTEuMC5wYXRjaCAgICAg IHwgIDI5ICsrKysKIC4uLi9GaXgtYnVpbGQtd2l0aC1wb3BwbGVyLTIyLjA0LnBhdGNoICAgICAg ICB8IDE0MyArKysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvaW5rc2NhcGUvdGVtcGxhdGUgICAg ICAgICAgICAgICAgICAgICB8ICAgMiArLQogNCBmaWxlcyBjaGFuZ2VkLCAyMjMgaW5zZXJ0aW9u cygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvaW5rc2NhcGUv cGF0Y2hlcy9FbnN1cmUtY29tcGF0aWJpbGl0eS13aXRoLVBvcHBsZXItMjIuMDMtYW5kLWxhdGVy LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9pbmtzY2FwZS9wYXRjaGVzL0ZpeC1i dWlsZC13aXRoLXBvcHBsZXItMjEuMTEuMC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvaW5rc2NhcGUvcGF0Y2hlcy9GaXgtYnVpbGQtd2l0aC1wb3BwbGVyLTIyLjA0LnBhdGNoCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9pbmtzY2FwZS9wYXRjaGVzL0Vuc3VyZS1jb21wYXRpYmlsaXR5 LXdpdGgtUG9wcGxlci0yMi4wMy1hbmQtbGF0ZXIucGF0Y2ggYi9zcmNwa2dzL2lua3NjYXBlL3Bh dGNoZXMvRW5zdXJlLWNvbXBhdGliaWxpdHktd2l0aC1Qb3BwbGVyLTIyLjAzLWFuZC1sYXRlci5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjI5N2VmNjc3NjY1 ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvaW5rc2NhcGUvcGF0Y2hlcy9FbnN1cmUtY29t cGF0aWJpbGl0eS13aXRoLVBvcHBsZXItMjIuMDMtYW5kLWxhdGVyLnBhdGNoCkBAIC0wLDAgKzEs NTAgQEAKK0Zyb20gYTE4YzU3ZmZmZjMxM2ZkMDhiYzhhNDRmNmI2YmYwYjAxZDdlOWI3NSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEV2YW5nZWxvcyBGb3V0cmFzIDxldmFuZ2Vsb3NA Zm91dHJlbGlzLmNvbT4KK0RhdGU6IFN1biwgMjAgTWFyIDIwMjIgMjI6NDE6NTEgLTAzMDAKK1N1 YmplY3Q6IFtQQVRDSF0gRW5zdXJlIGNvbXBhdGliaWxpdHkgd2l0aCBQb3BwbGVyIDIyLjAzIGFu ZCBsYXRlcgorCitUaGlzIGNoYW5nZSBlbnN1cmVzIHRoYXQgSW5rc2NhcGUgd2lsbCBidWlsZCBh Z2FpbnN0IFBvcHBsZXIgMjIuMDMgYWZ0ZXIKK3RoZSBjaGFuZ2VzIHRoYXQgd2VyZSBtYWRlIHRv IHRoZSBjb25zdHJ1Y3RvciBvZiBgUERGRG9jYC4KKworU2VlOiBodHRwczovL2dpdGxhYi5mcmVl ZGVza3RvcC5vcmcvcG9wcGxlci9wb3BwbGVyLy0vY29tbWl0LzRmMmFiZDNlZgorCitDby1hdXRo b3JlZC1ieTogUmFmYWVsIFNpZWpha293c2tpIDxyc0Bycy1tYXRoLm5ldD4KKy0tLQorIHNyYy9l eHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQvcGRmLWlucHV0LmNwcCAgICAgICAgICAgIHwgMyAr LS0KKyBzcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3BvcHBsZXItdHJhbnNpdGlvbi1h cGkuaCB8IDYgKysrKysrCisgMiBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDIgZGVs ZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0 L3BkZi1pbnB1dC5jcHAgYi9zcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3BkZi1pbnB1 dC5jcHAKK2luZGV4IDNkYWJjOTRiYTIuLjA3OWIwZGM3MTMgMTAwNjQ0CistLS0gYS9zcmMvZXh0 ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3BkZi1pbnB1dC5jcHAKKysrKyBiL3NyYy9leHRlbnNp b24vaW50ZXJuYWwvcGRmaW5wdXQvcGRmLWlucHV0LmNwcAorQEAgLTY4OCw4ICs2ODgsNyBAQCBQ ZGZJbnB1dDo6b3Blbig6Oklua3NjYXBlOjpFeHRlbnNpb246OklucHV0ICogLyptb2QqLywgY29u c3QgZ2NoYXIgKiB1cmkpIHsKKyAKKyAgICAgLy8gcG9wcGxlciBkb2VzIG5vdCB1c2UgZ2xpYiBn X29wZW4uIFNvIG9uIHdpbjMyIHdlIG11c3QgdXNlIHVuaWNvZGUgY2FsbC4gY29kZSB3YXMgY29w aWVkIGZyb20KKyAgICAgLy8gZ2xpYiBnc3RkaW8uYworLSAgICBHb29TdHJpbmcgKmZpbGVuYW1l X2dvbyA9IG5ldyBHb29TdHJpbmcodXJpKTsKKy0gICAgcGRmX2RvYyA9IHN0ZDo6bWFrZV9zaGFy ZWQ8UERGRG9jPihmaWxlbmFtZV9nb28sIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIpOyAgIC8v IFRPRE86IENvdWxkIGFzayBmb3IgcGFzc3dvcmQKKysgICAgcGRmX2RvYyA9IF9QT1BQTEVSX01B S0VfU0hBUkVEX1BERkRPQyh1cmkpOyAvLyBUT0RPOiBDb3VsZCBhc2sgZm9yIHBhc3N3b3JkCisg CisgICAgIGlmICghcGRmX2RvYy0+aXNPaygpKSB7CisgICAgICAgICBpbnQgZXJyb3IgPSBwZGZf ZG9jLT5nZXRFcnJvckNvZGUoKTsKK2RpZmYgLS1naXQgYS9zcmMvZXh0ZW5zaW9uL2ludGVybmFs L3BkZmlucHV0L3BvcHBsZXItdHJhbnNpdGlvbi1hcGkuaCBiL3NyYy9leHRlbnNpb24vaW50ZXJu YWwvcGRmaW5wdXQvcG9wcGxlci10cmFuc2l0aW9uLWFwaS5oCitpbmRleCA4N2ExOWQ0YzQyLi41 MGI2MTdjMjVjIDEwMDY0NAorLS0tIGEvc3JjL2V4dGVuc2lvbi9pbnRlcm5hbC9wZGZpbnB1dC9w b3BwbGVyLXRyYW5zaXRpb24tYXBpLmgKKysrKyBiL3NyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRm aW5wdXQvcG9wcGxlci10cmFuc2l0aW9uLWFwaS5oCitAQCAtMTQsNiArMTQsMTIgQEAKKyAKKyAj aW5jbHVkZSA8Z2xpYi9wb3BwbGVyLWZlYXR1cmVzLmg+CisgCisrI2lmIFBPUFBMRVJfQ0hFQ0tf VkVSU0lPTigyMiwgMywgMCkKKysjZGVmaW5lIF9QT1BQTEVSX01BS0VfU0hBUkVEX1BERkRPQyh1 cmkpIHN0ZDo6bWFrZV9zaGFyZWQ8UERGRG9jPihzdGQ6Om1ha2VfdW5pcXVlPEdvb1N0cmluZz4o dXJpKSkKKysjZWxzZQorKyNkZWZpbmUgX1BPUFBMRVJfTUFLRV9TSEFSRURfUERGRE9DKHVyaSkg c3RkOjptYWtlX3NoYXJlZDxQREZEb2M+KG5ldyBHb29TdHJpbmcodXJpKSwgbnVsbHB0ciwgbnVs bHB0ciwgbnVsbHB0cikKKysjZW5kaWYKKysKKyAjaWYgUE9QUExFUl9DSEVDS19WRVJTSU9OKDAs IDgzLCAwKQorICNkZWZpbmUgX1BPUFBMRVJfQ09OU1RfODMgY29uc3QKKyAjZWxzZQorLS0gCitH aXRMYWIKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9pbmtzY2FwZS9wYXRjaGVzL0ZpeC1idWlsZC13 aXRoLXBvcHBsZXItMjEuMTEuMC5wYXRjaCBiL3NyY3BrZ3MvaW5rc2NhcGUvcGF0Y2hlcy9GaXgt YnVpbGQtd2l0aC1wb3BwbGVyLTIxLjExLjAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwLi41ZDdmNDgwMTI3M2QKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L2lua3NjYXBlL3BhdGNoZXMvRml4LWJ1aWxkLXdpdGgtcG9wcGxlci0yMS4xMS4wLnBhdGNoCkBA IC0wLDAgKzEsMjkgQEAKK0Zyb20gNTcyNGMyMWI5Y2I3YjYxNzZhN2IzNmNhMjQwNjhiMTQ4Yzgx N2U4MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEV2YW5nZWxvcyBGb3V0cmFzIDxl dmFuZ2Vsb3NAZm91dHJlbGlzLmNvbT4KK0RhdGU6IE1vbiwgMSBOb3YgMjAyMSAyMTo0NTozOCAr MDIwMAorU3ViamVjdDogW1BBVENIXSBGaXggYnVpbGQgd2l0aCBwb3BwbGVyIDIxLjExLjAKKwor R2Z4Rm9udDo6dGFnIGlzIG5vdyBvZiB0eXBlIHN0ZDo6c3RyaW5nIGluc3RlYWQgb2YgR29vU3Ry aW5nICouCistLS0KKyBzcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3BkZi1wYXJzZXIu Y3BwIHwgNCArKysrCisgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0t Z2l0IGEvc3JjL2V4dGVuc2lvbi9pbnRlcm5hbC9wZGZpbnB1dC9wZGYtcGFyc2VyLmNwcCBiL3Ny Yy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQvcGRmLXBhcnNlci5jcHAKK2luZGV4IGUzZDA0 ZDU0NGIuLmZlZWNlZmEwNDMgMTAwNjQ0CistLS0gYS9zcmMvZXh0ZW5zaW9uL2ludGVybmFsL3Bk ZmlucHV0L3BkZi1wYXJzZXIuY3BwCisrKysgYi9zcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlu cHV0L3BkZi1wYXJzZXIuY3BwCitAQCAtMjE2OSw3ICsyMTY5LDExIEBAIHZvaWQgUGRmUGFyc2Vy OjpvcFNldEZvbnQoT2JqZWN0IGFyZ3NbXSwgaW50IC8qbnVtQXJncyovKQorICAgfQorICAgaWYg KHByaW50Q29tbWFuZHMpIHsKKyAgICAgcHJpbnRmKCIgIGZvbnQ6IHRhZz0lcyBuYW1lPSclcycg JWdcbiIsCisrI2lmIFBPUFBMRVJfQ0hFQ0tfVkVSU0lPTigyMSwxMSwwKQorKwkgICBmb250LT5n ZXRUYWcoKS5jX3N0cigpLAorKyNlbHNlCisgCSAgIGZvbnQtPmdldFRhZygpLT5nZXRDU3RyaW5n KCksCisrI2VuZGlmCisgCSAgIGZvbnQtPmdldE5hbWUoKSA/IGZvbnQtPmdldE5hbWUoKS0+Z2V0 Q1N0cmluZygpIDogIj8/PyIsCisgCSAgIGFyZ3NbMV0uZ2V0TnVtKCkpOworICAgICBmZmx1c2go c3Rkb3V0KTsKKy0tIAorR2l0TGFiCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaW5rc2NhcGUvcGF0 Y2hlcy9GaXgtYnVpbGQtd2l0aC1wb3BwbGVyLTIyLjA0LnBhdGNoIGIvc3JjcGtncy9pbmtzY2Fw ZS9wYXRjaGVzL0ZpeC1idWlsZC13aXRoLXBvcHBsZXItMjIuMDQucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5mMTIwNTQyNjhhM2MKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL2lua3NjYXBlL3BhdGNoZXMvRml4LWJ1aWxkLXdpdGgtcG9wcGxlci0yMi4w NC5wYXRjaApAQCAtMCwwICsxLDE0MyBAQAorRnJvbSBkOTg5Y2RmMTA1OWM3OGJjM2JiNjQxNDMz MDI0MjA3Mzc2OGQ2NDBiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUmFmYWVsIFNp ZWpha293c2tpIDxyc0Bycy1tYXRoLm5ldD4KK0RhdGU6IE1vbiwgNCBBcHIgMjAyMiAyMjowOToz OSAtMDMwMAorU3ViamVjdDogW1BBVENIXSBDb21wYXRpYmlsaXR5IHdpdGggUG9wcGxlciAyMi4w NAorCitSZXBsYWNlIHZhbmlsbGEgcG9pbnRlcnMgd2l0aCBzdGQ6OnNoYXJlZF9wdHIgZm9yIHBv aW50ZXJzIHRvIGZvbnRzOworZWxpbWluYXRlIG1hbnVhbCByZWYtY291bnRpbmcuCisKK0ZpeGVz IGh0dHBzOi8vZ2l0bGFiLmNvbS9pbmtzY2FwZS9pbmtzY2FwZS8tL2lzc3Vlcy8zMzg3CistLS0K KyBzcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3BkZi1wYXJzZXIuY3BwICAgICB8IDE0 ICsrKysrKysrLS0tLS0tCisgLi4uL2ludGVybmFsL3BkZmlucHV0L3BvcHBsZXItdHJhbnNpdGlv bi1hcGkuaCAgICAgfCAgNiArKysrKysKKyBzcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0 L3N2Zy1idWlsZGVyLmNwcCAgICB8ICA3ICstLS0tLS0KKyBzcmMvZXh0ZW5zaW9uL2ludGVybmFs L3BkZmlucHV0L3N2Zy1idWlsZGVyLmggICAgICB8ICAxIC0KKyA0IGZpbGVzIGNoYW5nZWQsIDE1 IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3JjL2V4dGVu c2lvbi9pbnRlcm5hbC9wZGZpbnB1dC9wZGYtcGFyc2VyLmNwcCBiL3NyYy9leHRlbnNpb24vaW50 ZXJuYWwvcGRmaW5wdXQvcGRmLXBhcnNlci5jcHAKK2luZGV4IGZlZWNlZmEwNDMuLmQ2ZTJlZGU0 ZjMgMTAwNjQ0CistLS0gYS9zcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3BkZi1wYXJz ZXIuY3BwCisrKysgYi9zcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3BkZi1wYXJzZXIu Y3BwCitAQCAtMzAsNiArMzAsNyBAQAorICNpbmNsdWRlICJHZnguaCIKKyAjaW5jbHVkZSAicGRm LXBhcnNlci5oIgorICNpbmNsdWRlICJ1dGlsL3VuaXRzLmgiCisrI2luY2x1ZGUgInBvcHBsZXIt dHJhbnNpdGlvbi1hcGkuaCIKKyAKKyAjaW5jbHVkZSAiZ2xpYi9wb3BwbGVyLWZlYXR1cmVzLmgi CisgI2luY2x1ZGUgImdvby9nbWVtLmgiCitAQCAtMjE1OCw3ICsyMTU5LDcgQEAgdm9pZCBQZGZQ YXJzZXI6Om9wU2V0Q2hhclNwYWNpbmcoT2JqZWN0IGFyZ3NbXSwgaW50IC8qbnVtQXJncyovKQor IC8vIFRPRE8gbm90IGdvb2QgdGhhdCBudW1BcmdzIGlzIGlnbm9yZWQgYnV0IGFyZ3NbXSBpcyB1 c2VkOgorIHZvaWQgUGRmUGFyc2VyOjpvcFNldEZvbnQoT2JqZWN0IGFyZ3NbXSwgaW50IC8qbnVt QXJncyovKQorIHsKKy0gIEdmeEZvbnQgKmZvbnQgPSByZXMtPmxvb2t1cEZvbnQoYXJnc1swXS5n ZXROYW1lKCkpOworKyAgYXV0byBmb250ID0gcmVzLT5sb29rdXBGb250KGFyZ3NbMF0uZ2V0TmFt ZSgpKTsKKyAKKyAgIGlmICghZm9udCkgeworICAgICAvLyB1bnNldHRpbmcgdGhlIGZvbnQgKGRy YXdpbmcgbm8gdGV4dCkgaXMgYmV0dGVyIHRoYW4gdXNpbmcgdGhlCitAQCAtMjE3OSw3ICsyMTgw LDkgQEAgdm9pZCBQZGZQYXJzZXI6Om9wU2V0Rm9udChPYmplY3QgYXJnc1tdLCBpbnQgLypudW1B cmdzKi8pCisgICAgIGZmbHVzaChzdGRvdXQpOworICAgfQorIAorKyNpZiAhUE9QUExFUl9DSEVD S19WRVJTSU9OKDIyLCA0LCAwKQorICAgZm9udC0+aW5jUmVmQ250KCk7CisrI2VuZGlmCisgICBz dGF0ZS0+c2V0Rm9udChmb250LCBhcmdzWzFdLmdldE51bSgpKTsKKyAgIGZvbnRDaGFuZ2VkID0g Z1RydWU7CisgfQorQEAgLTIzNzMsNyArMjM3Niw2IEBAIHZvaWQgUGRmUGFyc2VyOjpkb1Nob3dU ZXh0KGNvbnN0IEdvb1N0cmluZyAqcykgeworICNlbHNlCisgdm9pZCBQZGZQYXJzZXI6OmRvU2hv d1RleHQoR29vU3RyaW5nICpzKSB7CisgI2VuZGlmCistICBHZnhGb250ICpmb250OworICAgaW50 IHdNb2RlOworICAgZG91YmxlIHJpc2VYLCByaXNlWTsKKyAgIENoYXJDb2RlIGNvZGU7CitAQCAt MjM5Miw3ICsyMzk0LDcgQEAgdm9pZCBQZGZQYXJzZXI6OmRvU2hvd1RleHQoR29vU3RyaW5nICpz KSB7CisgI2VuZGlmCisgICBpbnQgbGVuLCBuLCB1TGVuOworIAorLSAgZm9udCA9IHN0YXRlLT5n ZXRGb250KCk7CisrICBhdXRvIGZvbnQgPSBzdGF0ZS0+Z2V0Rm9udCgpOworICAgd01vZGUgPSBm b250LT5nZXRXTW9kZSgpOworIAorICAgYnVpbGRlci0+YmVnaW5TdHJpbmcoc3RhdGUpOworQEAg LTI0NDUsMTAgKzI0NDcsMTAgQEAgdm9pZCBQZGZQYXJzZXI6OmRvU2hvd1RleHQoR29vU3RyaW5n ICpzKSB7CisgICAgICAgLy9vdXQtPnVwZGF0ZUNUTShzdGF0ZSwgMSwgMCwgMCwgMSwgMCwgMCk7 CisgICAgICAgaWYgKGZhbHNlKXsgLyohb3V0LT5iZWdpblR5cGUzQ2hhcihzdGF0ZSwgY3VyWCAr IHJpc2VYLCBjdXJZICsgcmlzZVksIHRkeCwgdGR5LAorIAkJCSAgICAgICBjb2RlLCB1LCB1TGVu KSkgeyovCistICAgICAgICBfUE9QUExFUl9DQUxMX0FSR1MoY2hhclByb2MsICgoR2Z4OEJpdEZv bnQgKilmb250KS0+Z2V0Q2hhclByb2MsIGNvZGUpOworLQlpZiAoKHJlc0RpY3QgPSAoKEdmeDhC aXRGb250ICopZm9udCktPmdldFJlc291cmNlcygpKSkgeworKyAgICAgICAgX1BPUFBMRVJfQ0FM TF9BUkdTKGNoYXJQcm9jLCBfUE9QUExFUl9GT05UUFRSX1RPX0dGWDgoZm9udCktPmdldENoYXJQ cm9jLCBjb2RlKTsKKysgICAgaWYgKHJlc0RpY3QgPSBfUE9QUExFUl9GT05UUFRSX1RPX0dGWDgo Zm9udCktPmdldFJlc291cmNlcygpKSB7CisgCSAgcHVzaFJlc291cmNlcyhyZXNEaWN0KTsKKy0J fQorKyAgICB9CisgCWlmIChjaGFyUHJvYy5pc1N0cmVhbSgpKSB7CisgCSAgLy9wYXJzZSgmY2hh clByb2MsIGdGYWxzZSk7IC8vIFRPRE86IHBhcnNlIGludG8gU1ZHIGZvbnQKKyAJfSBlbHNlIHsK K2RpZmYgLS1naXQgYS9zcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3BvcHBsZXItdHJh bnNpdGlvbi1hcGkuaCBiL3NyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQvcG9wcGxlci10 cmFuc2l0aW9uLWFwaS5oCitpbmRleCA1MGI2MTdjMjVjLi5kYzllNDdlNDViIDEwMDY0NAorLS0t IGEvc3JjL2V4dGVuc2lvbi9pbnRlcm5hbC9wZGZpbnB1dC9wb3BwbGVyLXRyYW5zaXRpb24tYXBp LmgKKysrKyBiL3NyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQvcG9wcGxlci10cmFuc2l0 aW9uLWFwaS5oCitAQCAtMTQsNiArMTQsMTIgQEAKKyAKKyAjaW5jbHVkZSA8Z2xpYi9wb3BwbGVy LWZlYXR1cmVzLmg+CisgCisrI2lmIFBPUFBMRVJfQ0hFQ0tfVkVSU0lPTigyMiwgNCwgMCkKKysj ZGVmaW5lIF9QT1BQTEVSX0ZPTlRQVFJfVE9fR0ZYOChmb250X3B0cikgKChHZng4Qml0Rm9udCAq KWZvbnRfcHRyLmdldCgpKQorKyNlbHNlCisrI2RlZmluZSBfUE9QUExFUl9GT05UUFRSX1RPX0dG WDgoZm9udF9wdHIpICgoR2Z4OEJpdEZvbnQgKilmb250X3B0cikKKysjZW5kaWYKKysKKyAjaWYg UE9QUExFUl9DSEVDS19WRVJTSU9OKDIyLCAzLCAwKQorICNkZWZpbmUgX1BPUFBMRVJfTUFLRV9T SEFSRURfUERGRE9DKHVyaSkgc3RkOjptYWtlX3NoYXJlZDxQREZEb2M+KHN0ZDo6bWFrZV91bmlx dWU8R29vU3RyaW5nPih1cmkpKQorICNlbHNlCitkaWZmIC0tZ2l0IGEvc3JjL2V4dGVuc2lvbi9p bnRlcm5hbC9wZGZpbnB1dC9zdmctYnVpbGRlci5jcHAgYi9zcmMvZXh0ZW5zaW9uL2ludGVybmFs L3BkZmlucHV0L3N2Zy1idWlsZGVyLmNwcAoraW5kZXggZWVkZTY2ODg5My4uOTAxY2M4Y2RkYiAx MDA2NDQKKy0tLSBhL3NyYy9leHRlbnNpb24vaW50ZXJuYWwvcGRmaW5wdXQvc3ZnLWJ1aWxkZXIu Y3BwCisrKysgYi9zcmMvZXh0ZW5zaW9uL2ludGVybmFsL3BkZmlucHV0L3N2Zy1idWlsZGVyLmNw cAorQEAgLTEwOCw3ICsxMDgsNiBAQCBTdmdCdWlsZGVyOjp+U3ZnQnVpbGRlcigpID0gZGVmYXVs dDsKKyAKKyB2b2lkIFN2Z0J1aWxkZXI6Ol9pbml0KCkgeworICAgICBfZm9udF9zdHlsZSA9IG51 bGxwdHI7CistICAgIF9jdXJyZW50X2ZvbnQgPSBudWxscHRyOworICAgICBfZm9udF9zcGVjaWZp Y2F0aW9uID0gbnVsbHB0cjsKKyAgICAgX2ZvbnRfc2NhbGluZyA9IDE7CisgICAgIF9uZWVkX2Zv bnRfdXBkYXRlID0gdHJ1ZTsKK0BAIC0xMDY0LDExICsxMDYzLDggQEAgdm9pZCBTdmdCdWlsZGVy Ojp1cGRhdGVGb250KEdmeFN0YXRlICpzdGF0ZSkgeworICAgICBfbmVlZF9mb250X3VwZGF0ZSA9 IGZhbHNlOworICAgICB1cGRhdGVUZXh0TWF0cml4KHN0YXRlKTsgICAgLy8gRW5zdXJlIHRoYXQg d2UgaGF2ZSBhIHRleHQgbWF0cml4IGJ1aWx0CisgCistICAgIGlmIChfZm9udF9zdHlsZSkgewor LSAgICAgICAgLy9zcF9yZXByX2Nzc19hdHRyX3VucmVmKF9mb250X3N0eWxlKTsKKy0gICAgfQor ICAgICBfZm9udF9zdHlsZSA9IHNwX3JlcHJfY3NzX2F0dHJfbmV3KCk7CistICAgIEdmeEZvbnQg KmZvbnQgPSBzdGF0ZS0+Z2V0Rm9udCgpOworKyAgICBhdXRvIGZvbnQgPSBzdGF0ZS0+Z2V0Rm9u dCgpOworICAgICAvLyBTdG9yZSBvcmlnaW5hbCBuYW1lCisgICAgIGlmIChmb250LT5nZXROYW1l KCkpIHsKKyAgICAgICAgIF9mb250X3NwZWNpZmljYXRpb24gPSBmb250LT5nZXROYW1lKCktPmdl dENTdHJpbmcoKTsKK0BAIC0xMjEzLDcgKzEyMDksNiBAQCB2b2lkIFN2Z0J1aWxkZXI6OnVwZGF0 ZUZvbnQoR2Z4U3RhdGUgKnN0YXRlKSB7CisgICAgICAgICBzcF9yZXByX2Nzc19zZXRfcHJvcGVy dHkoX2ZvbnRfc3R5bGUsICJ3cml0aW5nLW1vZGUiLCAidGIiKTsKKyAgICAgfQorIAorLSAgICBf Y3VycmVudF9mb250ID0gZm9udDsKKyAgICAgX2ludmFsaWRhdGVkX3N0eWxlID0gdHJ1ZTsKKyB9 CisgCitkaWZmIC0tZ2l0IGEvc3JjL2V4dGVuc2lvbi9pbnRlcm5hbC9wZGZpbnB1dC9zdmctYnVp bGRlci5oIGIvc3JjL2V4dGVuc2lvbi9pbnRlcm5hbC9wZGZpbnB1dC9zdmctYnVpbGRlci5oCitp bmRleCBmYjRlNjRmYTE5Li5lOTFmZWJkNzE3IDEwMDY0NAorLS0tIGEvc3JjL2V4dGVuc2lvbi9p bnRlcm5hbC9wZGZpbnB1dC9zdmctYnVpbGRlci5oCisrKysgYi9zcmMvZXh0ZW5zaW9uL2ludGVy bmFsL3BkZmlucHV0L3N2Zy1idWlsZGVyLmgKK0BAIC0yMDQsNyArMjA0LDYgQEAgcHJpdmF0ZToK KyAgICAgc3RkOjp2ZWN0b3I8U3ZnR3JhcGhpY3NTdGF0ZT4gX3N0YXRlX3N0YWNrOworIAorICAg ICBTUENTU0F0dHIgKl9mb250X3N0eWxlOyAgICAgICAgICAvLyBDdXJyZW50IGZvbnQgc3R5bGUK Ky0gICAgR2Z4Rm9udCAqX2N1cnJlbnRfZm9udDsKKyAgICAgY29uc3QgY2hhciAqX2ZvbnRfc3Bl Y2lmaWNhdGlvbjsKKyAgICAgZG91YmxlIF9mb250X3NjYWxpbmc7CisgICAgIGJvb2wgX25lZWRf Zm9udF91cGRhdGU7CistLSAKK0dpdExhYgorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2lua3NjYXBl L3RlbXBsYXRlIGIvc3JjcGtncy9pbmtzY2FwZS90ZW1wbGF0ZQppbmRleCA0NWY0OGNjZGEwZGMu LjRkOTAyZTY2M2Y3MyAxMDA2NDQKLS0tIGEvc3JjcGtncy9pbmtzY2FwZS90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL2lua3NjYXBlL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnaW5rc2NhcGUnCiBwa2duYW1lPWlua3NjYXBlCiB2ZXJzaW9uPTEuMS4xCi1yZXZp c2lvbj0zCityZXZpc2lvbj00CiB3cmtzcmM9Imlua3NjYXBlLSR7dmVyc2lvbn1fMjAyMS0wOS0y MF8zYmY1YWUwZDI1IgogYnVpbGRfc3R5bGU9Y21ha2UKICMgYnVpbGRzIGV4ZWN1dGFibGVzIHRo ZW4gcnVucyBjaGVja3MKCkZyb20gZGJjOWIwMmQyMWNmNmIyMWE0MjhkMzNmZDM3MzA2ZTBjMzgz YzZmZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8MzE5MTYzNzkrT3Jl bzYzOUB1c2Vycy5ub3JlcGx5LmdpdGh1Yi5jb20+CkRhdGU6IEZyaSwgMjUgTWFyIDIwMjIgMTg6 MzQ6NDMgLTA3MDAKU3ViamVjdDogW1BBVENIIDA2LzEwXSBpcGU6IHJlYnVpbGQgYWdhaW5zdCBs aWJwb3BwbGVyIDIyLjA2LjAKCi0tLQogc3JjcGtncy9pcGUvcGF0Y2hlcy9wb3BwbGVyLTIyLjAz LjAtZml4LnBhdGNoIHwgMzMgKysrKysrKysrKysrKysrKysrKwogc3JjcGtncy9pcGUvdGVtcGxh dGUgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMzQg aW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv aXBlL3BhdGNoZXMvcG9wcGxlci0yMi4wMy4wLWZpeC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvaXBlL3BhdGNoZXMvcG9wcGxlci0yMi4wMy4wLWZpeC5wYXRjaCBiL3NyY3BrZ3MvaXBlL3Bh dGNoZXMvcG9wcGxlci0yMi4wMy4wLWZpeC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAuLmRmMjg5NDgwOWMxYwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv aXBlL3BhdGNoZXMvcG9wcGxlci0yMi4wMy4wLWZpeC5wYXRjaApAQCAtMCwwICsxLDMzIEBACitk aWZmIC1OYXVyIHBkZnRvaXBlLmNwcC5vcmlnIHBkZnRvaXBlLmNwcAorLS0tIGEvaXBlLXRvb2xz L3BkZnRvaXBlL3BkZnRvaXBlLmNwcC5vcmlnCisrKysgYi9pcGUtdG9vbHMvcGRmdG9pcGUvcGRm dG9pcGUuY3BwCitAQCAtODQsMjIgKzg0LDIwIEBACisgICBpZiAocXVpZXQpCisgICAgIGdsb2Jh bFBhcmFtcy0+c2V0RXJyUXVpZXQocXVpZXQpOworIAorLSAgR29vU3RyaW5nICpvd25lclBXLCAq dXNlclBXOworKyAgc3RkOjpvcHRpb25hbDxHb29TdHJpbmc+IG93bmVyUFcsIHVzZXJQVzsKKyAg IGlmIChvd25lclBhc3N3b3JkWzBdKSB7CistICAgIG93bmVyUFcgPSBuZXcgR29vU3RyaW5nKG93 bmVyUGFzc3dvcmQpOworKyAgICBvd25lclBXID0gR29vU3RyaW5nKG93bmVyUGFzc3dvcmQpOwor ICAgfSBlbHNlIHsKKy0gICAgb3duZXJQVyA9IDA7CisrICAgIG93bmVyUFcgPSBzdGQ6Om51bGxv cHQ7CisgICB9CisgICBpZiAodXNlclBhc3N3b3JkWzBdKSB7CistICAgIHVzZXJQVyA9IG5ldyBH b29TdHJpbmcodXNlclBhc3N3b3JkKTsKKysgICAgdXNlclBXID0gR29vU3RyaW5nKHVzZXJQYXNz d29yZCk7CisgICB9IGVsc2UgeworLSAgICB1c2VyUFcgPSAwOworKyAgICB1c2VyUFcgPSBzdGQ6 Om51bGxvcHQ7CisgICB9CisgCisgICAvLyBvcGVuIFBERiBmaWxlCistICBQREZEb2MgKmRvYyA9 IG5ldyBQREZEb2MoZmlsZU5hbWUsIG93bmVyUFcsIHVzZXJQVyk7CistICBkZWxldGUgdXNlclBX OworLSAgZGVsZXRlIG93bmVyUFc7CisrICBQREZEb2MgKmRvYyA9IG5ldyBQREZEb2Moc3RkOjpt YWtlX3VuaXF1ZTxHb29TdHJpbmc+KGZpbGVOYW1lKSwgb3duZXJQVywgdXNlclBXKTsKKyAKKyAg IGlmICghZG9jLT5pc09rKCkpCisgICAgIHJldHVybiAxOworCmRpZmYgLS1naXQgYS9zcmNwa2dz L2lwZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvaXBlL3RlbXBsYXRlCmluZGV4IGE4NGQ1YzAzNmIyZi4u NzIzOThlN2ZmOTI0IDEwMDY0NAotLS0gYS9zcmNwa2dzL2lwZS90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL2lwZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2lw ZScKIHBrZ25hbWU9aXBlCiB2ZXJzaW9uPTcuMi4yNAotcmV2aXNpb249NgorcmV2aXNpb249Nwog X3Rvb2xzX2NvbW1pdD12Ny4yLjIwLjEKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBkb3h5 Z2VuIHF0NS1xbWFrZSBxdDUtdG9vbHMgcXQ1LWhvc3QtdG9vbHMiCiBtYWtlZGVwZW5kcz0iY2Fp cm8tZGV2ZWwgZ3NsLWRldmVsIGxpYmN1cmwtZGV2ZWwgbGlianBlZy10dXJiby1kZXZlbAoKRnJv bSA5N2NhODY1YjcxNzY1N2E3MTI2YmYxM2JlY2QzMzU2NGRlMGE4ZjcwIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDwzMTkxNjM3OStPcmVvNjM5QHVzZXJzLm5vcmVwbHku Z2l0aHViLmNvbT4KRGF0ZTogRnJpLCAyNSBNYXIgMjAyMiAxODozNTozMCAtMDcwMApTdWJqZWN0 OiBbUEFUQ0ggMDcvMTBdIGtpdGluZXJhcnk6IHJlYnVpbGQgYWdhaW5zdCBsaWJwb3BwbGVyIDIy LjA2LjAKCi0tLQogc3JjcGtncy9raXRpbmVyYXJ5L3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNo YW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9raXRpbmVyYXJ5L3RlbXBsYXRlIGIvc3JjcGtncy9raXRpbmVyYXJ5L3RlbXBsYXRlCmluZGV4 IDM0M2VmNjQ5MTFkNi4uYTJjZmNhYTE3OGI2IDEwMDY0NAotLS0gYS9zcmNwa2dzL2tpdGluZXJh cnkvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9raXRpbmVyYXJ5L3RlbXBsYXRlCkBAIC0xLDcgKzEs NyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAna2l0aW5lcmFyeScKIHBrZ25hbWU9a2l0aW5lcmFy eQogdmVyc2lvbj0yMi4wNC4xCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1j bWFrZQogaG9zdG1ha2VkZXBlbmRzPSJleHRyYS1jbWFrZS1tb2R1bGVzIGdldHRleHQga2NvcmVh ZGRvbnMgcGtnLWNvbmZpZyBxdDUtaG9zdC10b29scyBxdDUtcW1ha2UgcXQ1LXRvb2xzLWRldmVs IgogbWFrZWRlcGVuZHM9ImtjYWxlbmRhcmNvcmUtZGV2ZWwga2NvbnRhY3RzLWRldmVsIGtkZWNs YXJhdGl2ZS1kZXZlbCBrbWltZS1kZXZlbAoKRnJvbSBiNjhjZTA3NmQyNmM5YmFhM2Q2NzVhOWFj ZDgwZDU0ZjU5OWExYzk4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDwz MTkxNjM3OStPcmVvNjM5QHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT4KRGF0ZTogRnJpLCAyNSBN YXIgMjAyMiAxODozNjoyNCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDgvMTBdIHNjcmlidXM6IHJl YnVpbGQgYWdhaW5zdCBsaWJwb3BwbGVyIDIyLjA2LjAKCi0tLQogLi4uL3BhdGNoZXMvMDAwMS1w b3BwbGVyLTIyLjAyLjAtZml4LnBhdGNoICAgIHwgMTI5ICsrKysrKysrCiAuLi4vcGF0Y2hlcy8w MDAyLXBvcHBsZXItMjIuMDMuMC1maXgucGF0Y2ggICAgfCAgNTIgKysrKwogLi4uL3BhdGNoZXMv MDAwMy1wb3BwbGVyLTIyLjA0LjAtZml4LnBhdGNoICAgIHwgMjg4ICsrKysrKysrKysrKysrKysr Kwogc3JjcGtncy9zY3JpYnVzL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgIHwgICAyICst CiA0IGZpbGVzIGNoYW5nZWQsIDQ3MCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9zY3JpYnVzL3BhdGNoZXMvMDAwMS1wb3BwbGVyLTIyLjAy LjAtZml4LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9zY3JpYnVzL3BhdGNoZXMv MDAwMi1wb3BwbGVyLTIyLjAzLjAtZml4LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9zY3JpYnVzL3BhdGNoZXMvMDAwMy1wb3BwbGVyLTIyLjA0LjAtZml4LnBhdGNoCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9zY3JpYnVzL3BhdGNoZXMvMDAwMS1wb3BwbGVyLTIyLjAyLjAtZml4LnBh dGNoIGIvc3JjcGtncy9zY3JpYnVzL3BhdGNoZXMvMDAwMS1wb3BwbGVyLTIyLjAyLjAtZml4LnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNGUwZjYwN2M2YTA3 Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9zY3JpYnVzL3BhdGNoZXMvMDAwMS1wb3BwbGVy LTIyLjAyLjAtZml4LnBhdGNoCkBAIC0wLDAgKzEsMTI5IEBACitGcm9tIDg1YzBkZmYzNDIyZmEz YzI2ZmJjMmU4ZDg1NjFmNTk3ZWMyNGJkOTIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9t OiBKZWFuIEdoYWxpIDxqZ2hhbGlAbGliZXJ0eXN1cmYuZnI+CitEYXRlOiBXZWQsIDIgRmViIDIw MjIgMjM6MTI6NTIgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0gIzE2NzM0OiBCdWlsZCBicmVhayB3 aXRoIHBvcHBsZXIgMjIuMi4wCisKK2dpdC1zdm4taWQ6IHN2bjovL3NjcmlidXMubmV0L3RydW5r L1NjcmlidXNAMjQ4ODQgMTFkMjA3MDEtODQzMS0wNDEwLWE3MTEtZTNjOTU5ZTNiODcwCistLS0K KyBzY3JpYnVzL3BsdWdpbnMvaW1wb3J0L3BkZi9zbGFvdXRwdXQuY3BwIHwgNDcgKysrKysrKysr KysrKysrKysrKy0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDM3IGluc2VydGlvbnMoKyksIDEwIGRl bGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc2NyaWJ1cy9wbHVnaW5zL2ltcG9ydC9wZGYvc2xh b3V0cHV0LmNwcCBiL3NjcmlidXMvcGx1Z2lucy9pbXBvcnQvcGRmL3NsYW91dHB1dC5jcHAKK2lu ZGV4IDU4OTRiZjJhZDYuLjM2NTBjOTZmNTIgMTAwNjQ0CistLS0gYS9zY3JpYnVzL3BsdWdpbnMv aW1wb3J0L3BkZi9zbGFvdXRwdXQuY3BwCisrKysgYi9zY3JpYnVzL3BsdWdpbnMvaW1wb3J0L3Bk Zi9zbGFvdXRwdXQuY3BwCitAQCAtNyw2ICs3LDExIEBAIGZvciB3aGljaCBhIG5ldyBsaWNlbnNl IChHUEwrZXhjZXB0aW9uKSBpcyBpbiBwbGFjZS4KKyANCisgI2luY2x1ZGUgInNsYW91dHB1dC5o Ig0KKyANCisrI2lmIFBPUFBMRVJfRU5DT0RFRF9WRVJTSU9OID49IFBPUFBMRVJfVkVSU0lPTl9F TkNPREUoMjIsIDIsIDApDQorKyNpbmNsdWRlIDxtZW1vcnk+DQorKyNpbmNsdWRlIDxvcHRpb25h bD4NCisrI2VuZGlmDQorKw0KKyAjaW5jbHVkZSA8cG9wcGxlci9HbG9iYWxQYXJhbXMuaD4NCisg I2luY2x1ZGUgPHBvcHBsZXIvcG9wcGxlci1jb25maWcuaD4NCisgI2luY2x1ZGUgPHBvcHBsZXIv RmlsZVNwZWMuaD4NCitAQCAtMzAyNywxOCArMzAzMiwyNCBAQCB2b2lkIFNsYU91dHB1dERldjo6 bWFya1BvaW50KFBPUFBMRVJfQ09OU1QgY2hhciAqbmFtZSwgRGljdCAqcHJvcGVydGllcykKKyB2 b2lkIFNsYU91dHB1dERldjo6dXBkYXRlRm9udChHZnhTdGF0ZSAqc3RhdGUpDQorIHsNCisgCUdm eEZvbnQgKmdmeEZvbnQ7DQorLQlHZnhGb250TG9jICpmb250TG9jOw0KKysjaWYgUE9QUExFUl9F TkNPREVEX1ZFUlNJT04gPj0gUE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgMiwgMCkNCisrCXN0 ZDo6b3B0aW9uYWw8R2Z4Rm9udExvYz4gZm9udExvYzsNCisrCWNvbnN0IEdvb1N0cmluZyAqIGZp bGVOYW1lID0gbnVsbHB0cjsNCisrCXN0ZDo6dW5pcXVlX3B0cjxGb0ZpVHJ1ZVR5cGU+IGZmOw0K KysjZWxzZQ0KKysJR2Z4Rm9udExvYyAqIGZvbnRMb2MgPSBudWxscHRyOw0KKysJR29vU3RyaW5n ICogZmlsZU5hbWUgPSBudWxscHRyOw0KKysJRm9GaVRydWVUeXBlICogZmYgPSBudWxscHRyOw0K KysjZW5kaWYNCisgCUdmeEZvbnRUeXBlIGZvbnRUeXBlOw0KKyAJU2xhT3V0Rm9udEZpbGVJRCAq aWQ7DQorIAlTcGxhc2hGb250RmlsZSAqZm9udEZpbGU7DQorIAlTcGxhc2hGb250U3JjICpmb250 c3JjID0gbnVsbHB0cjsNCistCUZvRmlUcnVlVHlwZSAqZmY7DQorIAlPYmplY3QgcmVmT2JqLCBz dHJPYmo7DQorLQlHb29TdHJpbmcgKmZpbGVOYW1lOw0KKy0JY2hhciAqdG1wQnVmOw0KKysJY2hh ciAqdG1wQnVmID0gbnVsbHB0cjsNCisgCWludCB0bXBCdWZMZW4gPSAwOw0KKy0JaW50ICpjb2Rl VG9HSUQ7DQorLQljb25zdCBkb3VibGUgKnRleHRNYXQ7DQorKwlpbnQgKmNvZGVUb0dJRCA9IG51 bGxwdHI7DQorKwljb25zdCBkb3VibGUgKnRleHRNYXQgPSBudWxscHRyOw0KKyAJZG91YmxlIG0x MSwgbTEyLCBtMjEsIG0yMiwgZm9udFNpemU7DQorIAlTcGxhc2hDb29yZCBtYXRbNF07DQorIAlp bnQgbiA9IDA7DQorQEAgLTMwNDYsOSArMzA1Nyw2IEBAIHZvaWQgU2xhT3V0cHV0RGV2Ojp1cGRh dGVGb250KEdmeFN0YXRlICpzdGF0ZSkKKyAJU3BsYXNoQ29vcmQgbWF0cml4WzZdOw0KKyANCisg CW1fZm9udCA9IG51bGxwdHI7DQorLQlmaWxlTmFtZSA9IG51bGxwdHI7DQorLQl0bXBCdWYgPSBu dWxscHRyOw0KKy0JZm9udExvYyA9IG51bGxwdHI7DQorIA0KKyAJZ2Z4Rm9udCA9IHN0YXRlLT5n ZXRGb250KCk7DQorIAlpZiAoIWdmeEZvbnQpDQorQEAgLTMwODMsNyArMzA5MSwxMSBAQCB2b2lk IFNsYU91dHB1dERldjo6dXBkYXRlRm9udChHZnhTdGF0ZSAqc3RhdGUpCisgCQl9DQorIAkJZWxz ZQ0KKyAJCXsgLy8gZ2Z4Rm9udExvY0V4dGVybmFsDQorKyNpZiBQT1BQTEVSX0VOQ09ERURfVkVS U0lPTiA+PSBQT1BQTEVSX1ZFUlNJT05fRU5DT0RFKDIyLCAyLCAwKQ0KKysJCQlmaWxlTmFtZSA9 IGZvbnRMb2MtPnBhdGhBc0dvb1N0cmluZygpOw0KKysjZWxzZQ0KKyAJCQlmaWxlTmFtZSA9IGZv bnRMb2MtPnBhdGg7DQorKyNlbmRpZg0KKyAJCQlmb250VHlwZSA9IGZvbnRMb2MtPmZvbnRUeXBl Ow0KKyAJCX0NCisgDQorQEAgLTMxMzYsOSArMzE0OCwxNCBAQCB2b2lkIFNsYU91dHB1dERldjo6 dXBkYXRlRm9udChHZnhTdGF0ZSAqc3RhdGUpCisgCQkJCWZmID0gRm9GaVRydWVUeXBlOjptYWtl KHRtcEJ1ZiwgdG1wQnVmTGVuKTsNCisgCQkJaWYgKGZmKQ0KKyAJCQl7DQorKyNpZiBQT1BQTEVS X0VOQ09ERURfVkVSU0lPTiA+PSBQT1BQTEVSX1ZFUlNJT05fRU5DT0RFKDIyLCAyLCAwKQ0KKysJ CQkJY29kZVRvR0lEID0gKChHZng4Qml0Rm9udCopIGdmeEZvbnQpLT5nZXRDb2RlVG9HSURNYXAo ZmYuZ2V0KCkpOw0KKysJCQkJZmYucmVzZXQoKTsNCisrI2Vsc2UNCisgCQkJCWNvZGVUb0dJRCA9 ICgoR2Z4OEJpdEZvbnQgKilnZnhGb250KS0+Z2V0Q29kZVRvR0lETWFwKGZmKTsNCistCQkJCW4g PSAyNTY7DQorIAkJCQlkZWxldGUgZmY7DQorKyNlbmRpZg0KKysJCQkJbiA9IDI1NjsNCisgCQkJ fQ0KKyAJCQllbHNlDQorIAkJCXsNCitAQCAtMzIwOSw4ICszMjI2LDEzIEBAIHZvaWQgU2xhT3V0 cHV0RGV2Ojp1cGRhdGVGb250KEdmeFN0YXRlICpzdGF0ZSkKKyAJCQkJCWZmID0gRm9GaVRydWVU eXBlOjptYWtlKHRtcEJ1ZiwgdG1wQnVmTGVuKTsNCisgCQkJCWlmICghIGZmKQ0KKyAJCQkJCWdv dG8gZXJyMjsNCisrI2lmIFBPUFBMRVJfRU5DT0RFRF9WRVJTSU9OID49IFBPUFBMRVJfVkVSU0lP Tl9FTkNPREUoMjIsIDIsIDApDQorKwkJCQljb2RlVG9HSUQgPSAoKEdmeENJREZvbnQqKSBnZnhG b250KS0+Z2V0Q29kZVRvR0lETWFwKGZmLmdldCgpLCAmbik7DQorKwkJCQlmZi5yZXNldCgpOw0K KysjZWxzZQ0KKyAJCQkJY29kZVRvR0lEID0gKChHZnhDSURGb250ICopZ2Z4Rm9udCktPmdldENv ZGVUb0dJRE1hcChmZiwgJm4pOw0KKyAJCQkJZGVsZXRlIGZmOw0KKysjZW5kaWYNCisgCQkJfQ0K KyAJCQlpZiAoIShmb250RmlsZSA9IG1fZm9udEVuZ2luZS0+bG9hZFRydWVUeXBlRm9udCgNCisg CQkJCQkJCWlkLA0KK0BAIC0zMjQ3LDE0ICszMjY5LDE5IEBAIHZvaWQgU2xhT3V0cHV0RGV2Ojp1 cGRhdGVGb250KEdmeFN0YXRlICpzdGF0ZSkKKyAJbWF0WzNdID0gLW0yMjsNCisgCW1fZm9udCA9 IG1fZm9udEVuZ2luZS0+Z2V0Rm9udChmb250RmlsZSwgbWF0LCBtYXRyaXgpOw0KKyANCisrI2lm IFBPUFBMRVJfRU5DT0RFRF9WRVJTSU9OIDwgUE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgMiwg MCkNCisgCWRlbGV0ZSBmb250TG9jOw0KKysjZW5kaWYNCisgCWlmIChmb250c3JjICYmICFmb250 c3JjLT5pc0ZpbGUpDQorIAkJZm9udHNyYy0+dW5yZWYoKTsNCisgCXJldHVybjsNCisgDQorIGVy cjI6DQorIAlkZWxldGUgaWQ7DQorKyNpZiBQT1BQTEVSX0VOQ09ERURfVkVSU0lPTiA8IFBPUFBM RVJfVkVSU0lPTl9FTkNPREUoMjIsIDIsIDApDQorIAlkZWxldGUgZm9udExvYzsNCisrI2VuZGlm DQorKw0KKyBlcnIxOg0KKyAJaWYgKGZvbnRzcmMgJiYgIWZvbnRzcmMtPmlzRmlsZSkNCisgCQlm b250c3JjLT51bnJlZigpOw0KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc2NyaWJ1cy9wYXRjaGVzLzAw MDItcG9wcGxlci0yMi4wMy4wLWZpeC5wYXRjaCBiL3NyY3BrZ3Mvc2NyaWJ1cy9wYXRjaGVzLzAw MDItcG9wcGxlci0yMi4wMy4wLWZpeC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAuLmY3YTBjMDNmZGQ5NgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvc2Ny aWJ1cy9wYXRjaGVzLzAwMDItcG9wcGxlci0yMi4wMy4wLWZpeC5wYXRjaApAQCAtMCwwICsxLDUy IEBACitGcm9tIGYxOTQxMGFjM2IyN2UzM2RkNjIxMDU3NDY3ODRlNjFlODViOTBhMWQgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBKZWFuIEdoYWxpIDxqZ2hhbGlAbGliZXJ0eXN1cmYu ZnI+CitEYXRlOiBXZWQsIDIgTWFyIDIwMjIgMjI6MjI6NTMgKzAwMDAKK1N1YmplY3Q6IFtQQVRD SF0gIzE2NzY0OiBCdWlsZCBicmVhayB3aXRoIHBvcHBsZXIgMjIuMDMuMAorCitnaXQtc3ZuLWlk OiBzdm46Ly9zY3JpYnVzLm5ldC90cnVuay9TY3JpYnVzQDI0OTgyIDExZDIwNzAxLTg0MzEtMDQx MC1hNzExLWUzYzk1OWUzYjg3MAorLS0tCisgc2NyaWJ1cy9wbHVnaW5zL2ltcG9ydC9wZGYvaW1w b3J0cGRmLmNwcCB8IDEzICsrKysrKysrKysrKysKKyAxIGZpbGUgY2hhbmdlZCwgMTMgaW5zZXJ0 aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvc2NyaWJ1cy9wbHVnaW5zL2ltcG9ydC9wZGYvaW1wb3J0 cGRmLmNwcCBiL3NjcmlidXMvcGx1Z2lucy9pbXBvcnQvcGRmL2ltcG9ydHBkZi5jcHAKK2luZGV4 IDE1NGU1OGEzZjAuLjM5MmRjZDllNjQgMTAwNjQ0CistLS0gYS9zY3JpYnVzL3BsdWdpbnMvaW1w b3J0L3BkZi9pbXBvcnRwZGYuY3BwCisrKysgYi9zY3JpYnVzL3BsdWdpbnMvaW1wb3J0L3BkZi9p bXBvcnRwZGYuY3BwCitAQCAtODksNyArODksMTEgQEAgUUltYWdlIFBkZlBsdWc6OnJlYWRUaHVt Ym5haWwoY29uc3QgUVN0cmluZyYgZk5hbWUpCisgI2VuZGlmDQorIAlnbG9iYWxQYXJhbXMtPnNl dEVyclF1aWV0KGdUcnVlKTsNCisgDQorKyNpZiBQT1BQTEVSX0VOQ09ERURfVkVSU0lPTiA+PSBQ T1BQTEVSX1ZFUlNJT05fRU5DT0RFKDIyLCAzLCAwKQ0KKysJUERGRG9jIHBkZkRvY3sgc3RkOjpt YWtlX3VuaXF1ZTxHb29TdHJpbmc+KGZuYW1lKSB9Ow0KKysjZWxzZQ0KKyAJUERGRG9jIHBkZkRv Y3tmbmFtZSwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0cn07DQorKyNlbmRpZg0KKyAJaWYgKCFw ZGZEb2MuaXNPaygpIHx8IHBkZkRvYy5nZXRFcnJvckNvZGUoKSA9PSBlcnJFbmNyeXB0ZWQpDQor IAkJcmV0dXJuIFFJbWFnZSgpOw0KKyANCitAQCAtMzQyLDcgKzM0NiwxMSBAQCBib29sIFBkZlBs dWc6OmNvbnZlcnQoY29uc3QgUVN0cmluZyYgZm4pCisgCWdsb2JhbFBhcmFtcy0+c2V0RXJyUXVp ZXQoZ1RydWUpOw0KKyAvLwlnbG9iYWxQYXJhbXMtPnNldFByaW50Q29tbWFuZHMoZ1RydWUpOw0K KyAJUUxpc3Q8T3B0aW9uYWxDb250ZW50R3JvdXAqPiBvY2dHcm91cHM7DQorKyNpZiBQT1BQTEVS X0VOQ09ERURfVkVSU0lPTiA+PSBQT1BQTEVSX1ZFUlNJT05fRU5DT0RFKDIyLCAzLCAwKQ0KKysJ YXV0byBwZGZEb2MgPSBzdGQ6Om1ha2VfdW5pcXVlPFBERkRvYz4oc3RkOjptYWtlX3VuaXF1ZTxH b29TdHJpbmc+KGZuYW1lKSk7DQorKyNlbHNlDQorIAlhdXRvIHBkZkRvYyA9IHN0ZDo6dW5pcXVl X3B0cjxQREZEb2M+KG5ldyBQREZEb2MoZm5hbWUsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIp KTsNCisrI2VuZGlmDQorIAlpZiAocGRmRG9jKQ0KKyAJew0KKyAJCWlmIChwZGZEb2MtPmdldEVy cm9yQ29kZSgpID09IGVyckVuY3J5cHRlZCkNCitAQCAtMzYxLDggKzM2OSwxMyBAQCBib29sIFBk ZlBsdWc6OmNvbnZlcnQoY29uc3QgUVN0cmluZyYgZm4pCisgI2Vsc2UNCisgCQkJCWF1dG8gZm5h bWUgPSBuZXcgR29vU3RyaW5nKFFGaWxlOjplbmNvZGVOYW1lKGZuKS5kYXRhKCkpOw0KKyAjZW5k aWYNCisrI2lmIFBPUFBMRVJfRU5DT0RFRF9WRVJTSU9OID49IFBPUFBMRVJfVkVSU0lPTl9FTkNP REUoMjIsIDMsIDApDQorKwkJCQlzdGQ6Om9wdGlvbmFsPEdvb1N0cmluZz4gdXNlclBXKHN0ZDo6 aW5fcGxhY2UsIHRleHQudG9Mb2NhbDhCaXQoKS5kYXRhKCkpOw0KKysJCQkJcGRmRG9jLnJlc2V0 KG5ldyBQREZEb2Moc3RkOjptYWtlX3VuaXF1ZTxHb29TdHJpbmc+KGZuYW1lKSwgdXNlclBXLCB1 c2VyUFcsIG51bGxwdHIpKTsNCisrI2Vsc2UNCisgCQkJCWF1dG8gdXNlclBXID0gbmV3IEdvb1N0 cmluZyh0ZXh0LnRvTG9jYWw4Qml0KCkuZGF0YSgpKTsNCisgCQkJCXBkZkRvYy5yZXNldChuZXcg UERGRG9jKGZuYW1lLCB1c2VyUFcsIHVzZXJQVywgbnVsbHB0cikpOw0KKysjZW5kaWYNCisgCQkJ CXFBcHAtPmNoYW5nZU92ZXJyaWRlQ3Vyc29yKFFDdXJzb3IoUXQ6OldhaXRDdXJzb3IpKTsNCisg CQkJfQ0KKyAJCQlpZiAoKCFwZGZEb2MpIHx8IChwZGZEb2MtPmdldEVycm9yQ29kZSgpICE9IGVy ck5vbmUpKQ0KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc2NyaWJ1cy9wYXRjaGVzLzAwMDMtcG9wcGxl ci0yMi4wNC4wLWZpeC5wYXRjaCBiL3NyY3BrZ3Mvc2NyaWJ1cy9wYXRjaGVzLzAwMDMtcG9wcGxl ci0yMi4wNC4wLWZpeC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLmUxNWVjN2Q4MTI2NgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvc2NyaWJ1cy9wYXRj aGVzLzAwMDMtcG9wcGxlci0yMi4wNC4wLWZpeC5wYXRjaApAQCAtMCwwICsxLDI4OCBAQAorRnJv bSBmMjIzN2I4ZjBiNWNmNzY5MGU4NjRhMjJlZjdhNjNhNmQ3NjlmYTM2IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogSmVhbiBHaGFsaSA8amdoYWxpQGxpYmVydHlzdXJmLmZyPgorRGF0 ZTogRnJpLCAxIEFwciAyMDIyIDIzOjUyOjMyICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIEZpeCBi dWlsZCB3aXRoIHBvcHBsZXIgMjIuMDQuMAorCitnaXQtc3ZuLWlkOiBzdm46Ly9zY3JpYnVzLm5l dC90cnVuay9TY3JpYnVzQDI1MDc0IDExZDIwNzAxLTg0MzEtMDQxMC1hNzExLWUzYzk1OWUzYjg3 MAorLS0tCisgc2NyaWJ1cy9wbHVnaW5zL2ltcG9ydC9wZGYvc2xhb3V0cHV0LmNwcCB8IDEyMyAr KysrKysrKysrKysrKy0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA3OCBpbnNlcnRpb25zKCsp LCA0NSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NjcmlidXMvcGx1Z2lucy9pbXBvcnQv cGRmL3NsYW91dHB1dC5jcHAgYi9zY3JpYnVzL3BsdWdpbnMvaW1wb3J0L3BkZi9zbGFvdXRwdXQu Y3BwCitpbmRleCBlMjBhODFmOTllLi41NjI2ZmUzNDc3IDEwMDY0NAorLS0tIGEvc2NyaWJ1cy9w bHVnaW5zL2ltcG9ydC9wZGYvc2xhb3V0cHV0LmNwcAorKysrIGIvc2NyaWJ1cy9wbHVnaW5zL2lt cG9ydC9wZGYvc2xhb3V0cHV0LmNwcAorQEAgLTE3NCw4ICsxNzQsMTMgQEAgdm9pZCBBbm9PdXRw dXREZXY6OmRyYXdTdHJpbmcoR2Z4U3RhdGUgKnN0YXRlLCBQT1BQTEVSX0NPTlNUIEdvb1N0cmlu ZyAqcykKKyAJaW50IHNoYWRlID0gMTAwOw0KKyAJY3VyckNvbG9yVGV4dCA9IGdldENvbG9yKHN0 YXRlLT5nZXRGaWxsQ29sb3JTcGFjZSgpLCBzdGF0ZS0+Z2V0RmlsbENvbG9yKCksICZzaGFkZSk7 DQorIAlmb250U2l6ZSA9IHN0YXRlLT5nZXRGb250U2l6ZSgpOw0KKysjaWYgUE9QUExFUl9FTkNP REVEX1ZFUlNJT04gPj0gUE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgNCwgMCkNCisrCWlmIChz dGF0ZS0+Z2V0Rm9udCgpICYmIHN0YXRlLT5nZXRGb250KCktPmdldE5hbWUoKSkNCisrCQlmb250 TmFtZSA9IG5ldyBHb29TdHJpbmcoc3RhdGUtPmdldEZvbnQoKS0+Z2V0TmFtZSgpLnZhbHVlKCkp Ow0KKysjZWxzZQ0KKyAJaWYgKHN0YXRlLT5nZXRGb250KCkpDQorIAkJZm9udE5hbWUgPSBzdGF0 ZS0+Z2V0Rm9udCgpLT5nZXROYW1lKCktPmNvcHkoKTsNCisrI2VuZGlmDQorIAlpdGVtVGV4dCA9 IHMtPmNvcHkoKTsNCisgfQ0KKyANCitAQCAtMzU3LDcgKzM2MiwxMiBAQCBzdGQ6OnVuaXF1ZV9w dHI8TGlua0FjdGlvbj4gU2xhT3V0cHV0RGV2OjpTQ19nZXRBZGRpdGlvbmFsQWN0aW9uKGNvbnN0 IGNoYXIgKmtleQorIEdCb29sIFNsYU91dHB1dERldjo6YW5ub3RhdGlvbnNfY2FsbGJhY2soQW5u b3QgKmFubm90YSwgdm9pZCAqdXNlcl9kYXRhKQ0KKyB7DQorIAlTbGFPdXRwdXREZXYgKmRldiA9 IChTbGFPdXRwdXREZXYqKXVzZXJfZGF0YTsNCisrI2lmIFBPUFBMRVJfRU5DT0RFRF9WRVJTSU9O ID49IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUoMjIsIDQsIDApDQorKwljb25zdCBQREZSZWN0YW5n bGUmIGFubm90UmVjdCA9IGFubm90YS0+Z2V0UmVjdCgpOzsNCisrCWNvbnN0IFBERlJlY3Rhbmds ZSogYm94ID0gJmFubm90UmVjdDsNCisrI2Vsc2UNCisgCVBERlJlY3RhbmdsZSAqYm94ID0gYW5u b3RhLT5nZXRSZWN0KCk7DQorKyNlbmRpZg0KKyAJZG91YmxlIHhDb29yID0gZGV2LT5tX2RvYy0+ Y3VycmVudFBhZ2UoKS0+eE9mZnNldCgpICsgYm94LT54MSAtIGRldi0+Y3JvcE9mZnNldFg7DQor IAlkb3VibGUgeUNvb3IgPSBkZXYtPm1fZG9jLT5jdXJyZW50UGFnZSgpLT55T2Zmc2V0KCkgKyBk ZXYtPm1fZG9jLT5jdXJyZW50UGFnZSgpLT5oZWlnaHQoKSAtIGJveC0+eTIgKyBkZXYtPmNyb3BP ZmZzZXRZOw0KKyAJZG91YmxlIHdpZHRoID0gYm94LT54MiAtIGJveC0+eDE7DQorQEAgLTY4NCw3 ICs2OTQsMTIgQEAgYm9vbCBTbGFPdXRwdXREZXY6OmhhbmRsZVdpZGdldEFubm90KEFubm90KiBh bm5vdGEsIGRvdWJsZSB4Q29vciwgZG91YmxlIHlDb29yLAorIAkJCWlmIChhcGEgfHwgIWFjaGFy KQ0KKyAJCQl7DQorIAkJCQlBbm9PdXRwdXREZXYgKmFubm90T3V0RGV2ID0gbmV3IEFub091dHB1 dERldihtX2RvYywgbV9pbXBvcnRlZENvbG9ycyk7DQorKyNpZiBQT1BQTEVSX0VOQ09ERURfVkVS U0lPTiA+PSBQT1BQTEVSX1ZFUlNJT05fRU5DT0RFKDIyLCA0LCAwKQ0KKysJCQkJY29uc3QgUERG UmVjdGFuZ2xlJiBhbm5vdGFSZWN0ID0gYW5ub3RhLT5nZXRSZWN0KCk7DQorKwkJCQlHZngqIGdm eCA9IG5ldyBHZngocGRmRG9jLCBhbm5vdE91dERldiwgcGRmRG9jLT5nZXRQYWdlKG1fYWN0UGFn ZSktPmdldFJlc291cmNlRGljdCgpLCAmYW5ub3RhUmVjdCwgbnVsbHB0cik7DQorKyNlbHNlDQor IAkJCQlHZnggKmdmeCA9IG5ldyBHZngocGRmRG9jLCBhbm5vdE91dERldiwgcGRmRG9jLT5nZXRQ YWdlKG1fYWN0UGFnZSktPmdldFJlc291cmNlRGljdCgpLCBhbm5vdGEtPmdldFJlY3QoKSwgbnVs bHB0cik7DQorKyNlbmRpZg0KKyAJCQkJYW5vLT5kcmF3KGdmeCwgZmFsc2UpOw0KKyAJCQkJaWYg KCFiZ0ZvdW5kKQ0KKyAJCQkJCW1fY3VyckNvbG9yRmlsbCA9IGFubm90T3V0RGV2LT5jdXJyQ29s b3JGaWxsOw0KK0BAIC0yOTE2LDIyICsyOTMxLDI3IEBAIHZvaWQgU2xhT3V0cHV0RGV2OjptYXJr UG9pbnQoUE9QUExFUl9DT05TVCBjaGFyICpuYW1lLCBEaWN0ICpwcm9wZXJ0aWVzKQorIA0KKyB2 b2lkIFNsYU91dHB1dERldjo6dXBkYXRlRm9udChHZnhTdGF0ZSAqc3RhdGUpDQorIHsNCistCUdm eEZvbnQgKmdmeEZvbnQ7DQorLSNpZiBQT1BQTEVSX0VOQ09ERURfVkVSU0lPTiA+PSBQT1BQTEVS X1ZFUlNJT05fRU5DT0RFKDIyLCAyLCAwKQ0KKysjaWYgUE9QUExFUl9FTkNPREVEX1ZFUlNJT04g Pj0gUE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgNCwgMCkNCisrCXN0ZDo6b3B0aW9uYWw8R2Z4 Rm9udExvYz4gZm9udExvYzsNCisrCXN0ZDo6c3RyaW5nIGZpbGVOYW1lOw0KKysJc3RkOjp1bmlx dWVfcHRyPEZvRmlUcnVlVHlwZT4gZmY7DQorKwlzdGQ6Om9wdGlvbmFsPHN0ZDo6dmVjdG9yPHVu c2lnbmVkIGNoYXI+PiB0bXBCdWY7DQorKyNlbGlmIFBPUFBMRVJfRU5DT0RFRF9WRVJTSU9OID49 IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUoMjIsIDIsIDApDQorIAlzdGQ6Om9wdGlvbmFsPEdmeEZv bnRMb2M+IGZvbnRMb2M7DQorIAljb25zdCBHb29TdHJpbmcgKiBmaWxlTmFtZSA9IG51bGxwdHI7 DQorIAlzdGQ6OnVuaXF1ZV9wdHI8Rm9GaVRydWVUeXBlPiBmZjsNCisrCWNoYXIqIHRtcEJ1ZiA9 IG51bGxwdHI7DQorICNlbHNlDQorIAlHZnhGb250TG9jICogZm9udExvYyA9IG51bGxwdHI7DQor IAlHb29TdHJpbmcgKiBmaWxlTmFtZSA9IG51bGxwdHI7DQorIAlGb0ZpVHJ1ZVR5cGUgKiBmZiA9 IG51bGxwdHI7DQorKwljaGFyKiB0bXBCdWYgPSBudWxscHRyOw0KKyAjZW5kaWYNCisgCUdmeEZv bnRUeXBlIGZvbnRUeXBlOw0KKyAJU2xhT3V0Rm9udEZpbGVJRCAqaWQ7DQorIAlTcGxhc2hGb250 RmlsZSAqZm9udEZpbGU7DQorIAlTcGxhc2hGb250U3JjICpmb250c3JjID0gbnVsbHB0cjsNCisg CU9iamVjdCByZWZPYmosIHN0ck9iajsNCistCWNoYXIgKnRtcEJ1ZiA9IG51bGxwdHI7DQorIAlp bnQgdG1wQnVmTGVuID0gMDsNCisgCWludCAqY29kZVRvR0lEID0gbnVsbHB0cjsNCisgCWNvbnN0 IGRvdWJsZSAqdGV4dE1hdCA9IG51bGxwdHI7DQorQEAgLTI5NDMsNyArMjk2MywxMSBAQCB2b2lk IFNsYU91dHB1dERldjo6dXBkYXRlRm9udChHZnhTdGF0ZSAqc3RhdGUpCisgDQorIAltX2ZvbnQg PSBudWxscHRyOw0KKyANCistCWdmeEZvbnQgPSBzdGF0ZS0+Z2V0Rm9udCgpOw0KKysjaWYgUE9Q UExFUl9FTkNPREVEX1ZFUlNJT04gPj0gUE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgNCwgMCkN CisrCUdmeEZvbnQqIGdmeEZvbnQgPSBzdGF0ZS0+Z2V0Rm9udCgpLmdldCgpOw0KKysjZWxzZQ0K KysJR2Z4Rm9udCogZ2Z4Rm9udCA9IHN0YXRlLT5nZXRGb250KCk7DQorKyNlbmRpZg0KKyAJaWYg KCFnZnhGb250KQ0KKyAJCWdvdG8gZXJyMTsNCisgDQorQEAgLTI5NjgsMTUgKzI5OTIsMjMgQEAg dm9pZCBTbGFPdXRwdXREZXY6OnVwZGF0ZUZvbnQoR2Z4U3RhdGUgKnN0YXRlKQorIAkJaWYgKGZv bnRMb2MtPmxvY1R5cGUgPT0gZ2Z4Rm9udExvY0VtYmVkZGVkKQ0KKyAJCXsNCisgCQkJLy8gaWYg dGhlcmUgaXMgYW4gZW1iZWRkZWQgZm9udCwgcmVhZCBpdCB0byBtZW1vcnkNCistCQkJdG1wQnVm ID0gZ2Z4Rm9udC0+cmVhZEVtYkZvbnRGaWxlKHhyZWYsICZ0bXBCdWZMZW4pOw0KKysjaWYgUE9Q UExFUl9FTkNPREVEX1ZFUlNJT04gPj0gUE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgNCwgMCkN CisrCQkJdG1wQnVmID0gZ2Z4Rm9udC0+cmVhZEVtYkZvbnRGaWxlKCh4cmVmKSA/IHhyZWYgOiBw ZGZEb2MtPmdldFhSZWYoKSk7DQorIAkJCWlmICghIHRtcEJ1ZikNCisgCQkJCWdvdG8gZXJyMjsN CisrI2Vsc2UNCisrCQkJdG1wQnVmID0gZ2Z4Rm9udC0+cmVhZEVtYkZvbnRGaWxlKHhyZWYsICZ0 bXBCdWZMZW4pOw0KKysJCQlpZiAoIXRtcEJ1ZikNCisrCQkJCWdvdG8gZXJyMjsNCisrI2VuZGlm DQorIA0KKyAJCQkvLyBleHRlcm5hbCBmb250DQorIAkJfQ0KKyAJCWVsc2UNCisgCQl7IC8vIGdm eEZvbnRMb2NFeHRlcm5hbA0KKy0jaWYgUE9QUExFUl9FTkNPREVEX1ZFUlNJT04gPj0gUE9QUExF Ul9WRVJTSU9OX0VOQ09ERSgyMiwgMiwgMCkNCisrI2lmIFBPUFBMRVJfRU5DT0RFRF9WRVJTSU9O ID49IFBPUFBMRVJfVkVSU0lPTl9FTkNPREUoMjIsIDQsIDApDQorKwkJCWZpbGVOYW1lID0gZm9u dExvYy0+cGF0aDsNCisrI2VsaWYgUE9QUExFUl9FTkNPREVEX1ZFUlNJT04gPj0gUE9QUExFUl9W RVJTSU9OX0VOQ09ERSgyMiwgMiwgMCkNCisgCQkJZmlsZU5hbWUgPSBmb250TG9jLT5wYXRoQXNH b29TdHJpbmcoKTsNCisgI2Vsc2UNCisgCQkJZmlsZU5hbWUgPSBmb250TG9jLT5wYXRoOw0KK0BA IC0yOTg1LDUyICszMDE3LDU0IEBAIHZvaWQgU2xhT3V0cHV0RGV2Ojp1cGRhdGVGb250KEdmeFN0 YXRlICpzdGF0ZSkKKyAJCX0NCisgDQorIAkJZm9udHNyYyA9IG5ldyBTcGxhc2hGb250U3JjOw0K KysjaWYgUE9QUExFUl9FTkNPREVEX1ZFUlNJT04gPj0gUE9QUExFUl9WRVJTSU9OX0VOQ09ERSgy MiwgNCwgMCkNCisrCQlpZiAoIWZpbGVOYW1lLmVtcHR5KCkpDQorKwkJCWZvbnRzcmMtPnNldEZp bGUoZmlsZU5hbWUpOw0KKysJCWVsc2UNCisrCQkJZm9udHNyYy0+c2V0QnVmKHN0ZDo6bW92ZSh0 bXBCdWYudmFsdWUoKSkpOw0KKysjZWxzZQ0KKyAJCWlmIChmaWxlTmFtZSkNCisgCQkJZm9udHNy Yy0+c2V0RmlsZShmaWxlTmFtZSwgZ0ZhbHNlKTsNCisgCQllbHNlDQorIAkJCWZvbnRzcmMtPnNl dEJ1Zih0bXBCdWYsIHRtcEJ1ZkxlbiwgZ1RydWUpOw0KKysjZW5kaWYNCisgDQorIAkJLy8gbG9h ZCB0aGUgZm9udCBmaWxlDQorIAkJc3dpdGNoIChmb250VHlwZSkgew0KKyAJCWNhc2UgZm9udFR5 cGUxOg0KKy0JCQlpZiAoIShmb250RmlsZSA9IG1fZm9udEVuZ2luZS0+bG9hZFR5cGUxRm9udCgN CistCQkJCWlkLA0KKy0JCQkJZm9udHNyYywNCistCQkJCShjb25zdCBjaGFyICoqKSgoR2Z4OEJp dEZvbnQgKikgZ2Z4Rm9udCktPmdldEVuY29kaW5nKCkpKSkNCisrCQkJaWYgKCEoZm9udEZpbGUg PSBtX2ZvbnRFbmdpbmUtPmxvYWRUeXBlMUZvbnQoaWQsIGZvbnRzcmMsIChjb25zdCBjaGFyICoq KSgoR2Z4OEJpdEZvbnQgKikgZ2Z4Rm9udCktPmdldEVuY29kaW5nKCkpKSkNCisgCQkJew0KKy0J CQkJZXJyb3IoZXJyU3ludGF4RXJyb3IsIC0xLCAiQ291bGRuJ3QgY3JlYXRlIGEgZm9udCBmb3Ig J3swOnN9JyIsDQorLQkJCQlnZnhGb250LT5nZXROYW1lKCkgPyBnZnhGb250LT5nZXROYW1lKCkt PmdldENTdHJpbmcoKSA6ICIodW5uYW1lZCkiKTsNCisrCQkJCWVycm9yKGVyclN5bnRheEVycm9y LCAtMSwgIkNvdWxkbid0IGNyZWF0ZSBhIGZvbnQgZm9yICd7MDpzfSciLCBnZnhGb250LT5nZXRO YW1lKCkgPyBnZnhGb250LT5nZXROYW1lKCktPmdldENTdHJpbmcoKSA6ICIodW5uYW1lZCkiKTsN CisgCQkJCWdvdG8gZXJyMjsNCisgCQkJfQ0KKyAJCQlicmVhazsNCisgCQljYXNlIGZvbnRUeXBl MUM6DQorLQkJCWlmICghKGZvbnRGaWxlID0gbV9mb250RW5naW5lLT5sb2FkVHlwZTFDRm9udCgN CistCQkJCQkJCWlkLA0KKy0JCQkJCQkJZm9udHNyYywNCistCQkJCQkJCShjb25zdCBjaGFyICoq KSgoR2Z4OEJpdEZvbnQgKikgZ2Z4Rm9udCktPmdldEVuY29kaW5nKCkpKSkNCisrCQkJaWYgKCEo Zm9udEZpbGUgPSBtX2ZvbnRFbmdpbmUtPmxvYWRUeXBlMUNGb250KGlkLCBmb250c3JjLCAoY29u c3QgY2hhciAqKikoKEdmeDhCaXRGb250ICopIGdmeEZvbnQpLT5nZXRFbmNvZGluZygpKSkpDQor IAkJCXsNCistCQkJCWVycm9yKGVyclN5bnRheEVycm9yLCAtMSwgIkNvdWxkbid0IGNyZWF0ZSBh IGZvbnQgZm9yICd7MDpzfSciLA0KKy0JCQkJZ2Z4Rm9udC0+Z2V0TmFtZSgpID8gZ2Z4Rm9udC0+ Z2V0TmFtZSgpLT5nZXRDU3RyaW5nKCkgOiAiKHVubmFtZWQpIik7DQorKwkJCQllcnJvcihlcnJT eW50YXhFcnJvciwgLTEsICJDb3VsZG4ndCBjcmVhdGUgYSBmb250IGZvciAnezA6c30nIiwgZ2Z4 Rm9udC0+Z2V0TmFtZSgpID8gZ2Z4Rm9udC0+Z2V0TmFtZSgpLT5nZXRDU3RyaW5nKCkgOiAiKHVu bmFtZWQpIik7DQorIAkJCQlnb3RvIGVycjI7DQorIAkJCX0NCisgCQkJYnJlYWs7DQorIAkJY2Fz ZSBmb250VHlwZTFDT1Q6DQorLQkJCWlmICghKGZvbnRGaWxlID0gbV9mb250RW5naW5lLT5sb2Fk T3BlblR5cGVUMUNGb250KA0KKy0JCQkJCQkJaWQsDQorLQkJCQkJCQlmb250c3JjLA0KKy0JCQkJ CQkJKGNvbnN0IGNoYXIgKiopKChHZng4Qml0Rm9udCAqKSBnZnhGb250KS0+Z2V0RW5jb2Rpbmco KSkpKQ0KKysJCQlpZiAoIShmb250RmlsZSA9IG1fZm9udEVuZ2luZS0+bG9hZE9wZW5UeXBlVDFD Rm9udChpZCwgZm9udHNyYywgKGNvbnN0IGNoYXIgKiopKChHZng4Qml0Rm9udCAqKSBnZnhGb250 KS0+Z2V0RW5jb2RpbmcoKSkpKQ0KKyAJCQl7DQorLQkJCQllcnJvcihlcnJTeW50YXhFcnJvciwg LTEsICJDb3VsZG4ndCBjcmVhdGUgYSBmb250IGZvciAnezA6c30nIiwNCistCQkJCWdmeEZvbnQt PmdldE5hbWUoKSA/IGdmeEZvbnQtPmdldE5hbWUoKS0+Z2V0Q1N0cmluZygpIDogIih1bm5hbWVk KSIpOw0KKysJCQkJZXJyb3IoZXJyU3ludGF4RXJyb3IsIC0xLCAiQ291bGRuJ3QgY3JlYXRlIGEg Zm9udCBmb3IgJ3swOnN9JyIsIGdmeEZvbnQtPmdldE5hbWUoKSA/IGdmeEZvbnQtPmdldE5hbWUo KS0+Z2V0Q1N0cmluZygpIDogIih1bm5hbWVkKSIpOw0KKyAJCQkJZ290byBlcnIyOw0KKyAJCQl9 DQorIAkJCWJyZWFrOw0KKyAJCWNhc2UgZm9udFRydWVUeXBlOg0KKyAJCWNhc2UgZm9udFRydWVU eXBlT1Q6DQorKyNpZiBQT1BQTEVSX0VOQ09ERURfVkVSU0lPTiA+PSBQT1BQTEVSX1ZFUlNJT05f RU5DT0RFKDIyLCA0LCAwKQ0KKysJCQlpZiAoIWZpbGVOYW1lLmVtcHR5KCkpDQorKwkJCQlmZiA9 IEZvRmlUcnVlVHlwZTo6bG9hZChmaWxlTmFtZS5jX3N0cigpKTsNCisrCQkJZWxzZQ0KKysJCQkJ ZmYgPSBGb0ZpVHJ1ZVR5cGU6Om1ha2UoZm9udHNyYy0+YnVmLmRhdGEoKSwgZm9udHNyYy0+YnVm LnNpemUoKSk7DQorKyNlbHNlDQorIAkJCWlmIChmaWxlTmFtZSkNCisgCQkJCWZmID0gRm9GaVRy dWVUeXBlOjpsb2FkKGZpbGVOYW1lLT5nZXRDU3RyaW5nKCkpOw0KKyAJCQllbHNlDQorIAkJCQlm ZiA9IEZvRmlUcnVlVHlwZTo6bWFrZSh0bXBCdWYsIHRtcEJ1Zkxlbik7DQorKyNlbmRpZg0KKyAJ CQlpZiAoZmYpDQorIAkJCXsNCisgI2lmIFBPUFBMRVJfRU5DT0RFRF9WRVJTSU9OID49IFBPUFBM RVJfVkVSU0lPTl9FTkNPREUoMjIsIDIsIDApDQorQEAgLTMwNDcsMjQgKzMwODEsMTcgQEAgdm9p ZCBTbGFPdXRwdXREZXY6OnVwZGF0ZUZvbnQoR2Z4U3RhdGUgKnN0YXRlKQorIAkJCQljb2RlVG9H SUQgPSBudWxscHRyOw0KKyAJCQkJbiA9IDA7DQorIAkJCX0NCistCQkJaWYgKCEoZm9udEZpbGUg PSBtX2ZvbnRFbmdpbmUtPmxvYWRUcnVlVHlwZUZvbnQoDQorLQkJCQkJCQlpZCwNCistCQkJCQkJ CWZvbnRzcmMsDQorLQkJCQkJCQljb2RlVG9HSUQsIG4pKSkNCisrCQkJaWYgKCEoZm9udEZpbGUg PSBtX2ZvbnRFbmdpbmUtPmxvYWRUcnVlVHlwZUZvbnQoaWQsIGZvbnRzcmMsIGNvZGVUb0dJRCwg bikpKQ0KKyAJCQl7DQorLQkJCQllcnJvcihlcnJTeW50YXhFcnJvciwgLTEsICJDb3VsZG4ndCBj cmVhdGUgYSBmb250IGZvciAnezA6c30nIiwNCistCQkJCWdmeEZvbnQtPmdldE5hbWUoKSA/IGdm eEZvbnQtPmdldE5hbWUoKS0+Z2V0Q1N0cmluZygpIDogIih1bm5hbWVkKSIpOw0KKysJCQkJZXJy b3IoZXJyU3ludGF4RXJyb3IsIC0xLCAiQ291bGRuJ3QgY3JlYXRlIGEgZm9udCBmb3IgJ3swOnN9 JyIsIGdmeEZvbnQtPmdldE5hbWUoKSA/IGdmeEZvbnQtPmdldE5hbWUoKS0+Z2V0Q1N0cmluZygp IDogIih1bm5hbWVkKSIpOw0KKyAJCQkJZ290byBlcnIyOw0KKyAJCQl9DQorIAkJCWJyZWFrOw0K KyAJCWNhc2UgZm9udENJRFR5cGUwOg0KKyAJCWNhc2UgZm9udENJRFR5cGUwQzoNCistCQkJaWYg KCEoZm9udEZpbGUgPSBtX2ZvbnRFbmdpbmUtPmxvYWRDSURGb250KA0KKy0JCQkJCQkJaWQsDQor LQkJCQkJCQlmb250c3JjKSkpDQorKwkJCWlmICghKGZvbnRGaWxlID0gbV9mb250RW5naW5lLT5s b2FkQ0lERm9udChpZCwgZm9udHNyYykpKQ0KKyAJCQl7DQorLQkJCQllcnJvcihlcnJTeW50YXhF cnJvciwgLTEsICJDb3VsZG4ndCBjcmVhdGUgYSBmb250IGZvciAnezA6c30nIiwNCistCQkJCWdm eEZvbnQtPmdldE5hbWUoKSA/IGdmeEZvbnQtPmdldE5hbWUoKS0+Z2V0Q1N0cmluZygpIDogIih1 bm5hbWVkKSIpOw0KKysJCQkJZXJyb3IoZXJyU3ludGF4RXJyb3IsIC0xLCAiQ291bGRuJ3QgY3Jl YXRlIGEgZm9udCBmb3IgJ3swOnN9JyIsIGdmeEZvbnQtPmdldE5hbWUoKSA/IGdmeEZvbnQtPmdl dE5hbWUoKS0+Z2V0Q1N0cmluZygpIDogIih1bm5hbWVkKSIpOw0KKyAJCQkJZ290byBlcnIyOw0K KyAJCQl9DQorIAkJCWJyZWFrOw0KK0BAIC0zMDgwLDEwICszMTA3LDcgQEAgdm9pZCBTbGFPdXRw dXREZXY6OnVwZGF0ZUZvbnQoR2Z4U3RhdGUgKnN0YXRlKQorIAkJCQljb2RlVG9HSUQgPSBudWxs cHRyOw0KKyAJCQkJbiA9IDA7DQorIAkJCX0NCistCQkJaWYgKCEoZm9udEZpbGUgPSBtX2ZvbnRF bmdpbmUtPmxvYWRPcGVuVHlwZUNGRkZvbnQoDQorLQkJCQkJCQlpZCwNCistCQkJCQkJCWZvbnRz cmMsDQorLQkJCQkJCQljb2RlVG9HSUQsIG4pKSkNCisrCQkJaWYgKCEoZm9udEZpbGUgPSBtX2Zv bnRFbmdpbmUtPmxvYWRPcGVuVHlwZUNGRkZvbnQoaWQsIGZvbnRzcmMsIGNvZGVUb0dJRCwgbikp KQ0KKyAJCQl7DQorIAkJCQllcnJvcihlcnJTeW50YXhFcnJvciwgLTEsICJDb3VsZG4ndCBjcmVh dGUgYSBmb250IGZvciAnezA6c30nIiwNCisgCQkJCWdmeEZvbnQtPmdldE5hbWUoKSA/IGdmeEZv bnQtPmdldE5hbWUoKS0+Z2V0Q1N0cmluZygpIDogIih1bm5hbWVkKSIpOw0KK0BAIC0zMTA1LDEw ICszMTI5LDE3IEBAIHZvaWQgU2xhT3V0cHV0RGV2Ojp1cGRhdGVGb250KEdmeFN0YXRlICpzdGF0 ZSkKKyAJCQl9DQorIAkJCWVsc2UNCisgCQkJew0KKysjaWYgUE9QUExFUl9FTkNPREVEX1ZFUlNJ T04gPj0gUE9QUExFUl9WRVJTSU9OX0VOQ09ERSgyMiwgNCwgMCkNCisrCQkJCWlmICghZmlsZU5h bWUuZW1wdHkoKSkNCisrCQkJCQlmZiA9IEZvRmlUcnVlVHlwZTo6bG9hZChmaWxlTmFtZS5jX3N0 cigpKTsNCisrCQkJCWVsc2UNCisrCQkJCQlmZiA9IEZvRmlUcnVlVHlwZTo6bWFrZShmb250c3Jj LT5idWYuZGF0YSgpLCBmb250c3JjLT5idWYuc2l6ZSgpKTsNCisrI2Vsc2UNCisgCQkJCWlmIChm aWxlTmFtZSkNCisgCQkJCQlmZiA9IEZvRmlUcnVlVHlwZTo6bG9hZChmaWxlTmFtZS0+Z2V0Q1N0 cmluZygpKTsNCisgCQkJCWVsc2UNCisgCQkJCQlmZiA9IEZvRmlUcnVlVHlwZTo6bWFrZSh0bXBC dWYsIHRtcEJ1Zkxlbik7DQorKyNlbmRpZg0KKyAJCQkJaWYgKCEgZmYpDQorIAkJCQkJZ290byBl cnIyOw0KKyAjaWYgUE9QUExFUl9FTkNPREVEX1ZFUlNJT04gPj0gUE9QUExFUl9WRVJTSU9OX0VO Q09ERSgyMiwgMiwgMCkNCitAQCAtMzExOSwxMyArMzE1MCw5IEBAIHZvaWQgU2xhT3V0cHV0RGV2 Ojp1cGRhdGVGb250KEdmeFN0YXRlICpzdGF0ZSkKKyAJCQkJZGVsZXRlIGZmOw0KKyAjZW5kaWYN CisgCQkJfQ0KKy0JCQlpZiAoIShmb250RmlsZSA9IG1fZm9udEVuZ2luZS0+bG9hZFRydWVUeXBl Rm9udCgNCistCQkJCQkJCWlkLA0KKy0JCQkJCQkJZm9udHNyYywNCistCQkJCQkJCWNvZGVUb0dJ RCwgbiwgZmFjZUluZGV4KSkpDQorKwkJCWlmICghKGZvbnRGaWxlID0gbV9mb250RW5naW5lLT5s b2FkVHJ1ZVR5cGVGb250KGlkLCBmb250c3JjLCBjb2RlVG9HSUQsIG4sIGZhY2VJbmRleCkpKQ0K KyAJCQl7DQorLQkJCQllcnJvcihlcnJTeW50YXhFcnJvciwgLTEsICJDb3VsZG4ndCBjcmVhdGUg YSBmb250IGZvciAnezA6c30nIiwNCistCQkJCWdmeEZvbnQtPmdldE5hbWUoKSA/IGdmeEZvbnQt PmdldE5hbWUoKS0+Z2V0Q1N0cmluZygpIDogIih1bm5hbWVkKSIpOw0KKysJCQkJZXJyb3IoZXJy U3ludGF4RXJyb3IsIC0xLCAiQ291bGRuJ3QgY3JlYXRlIGEgZm9udCBmb3IgJ3swOnN9JyIsIGdm eEZvbnQtPmdldE5hbWUoKSA/IGdmeEZvbnQtPmdldE5hbWUoKS0+Z2V0Q1N0cmluZygpIDogIih1 bm5hbWVkKSIpOw0KKyAJCQkJZ290byBlcnIyOw0KKyAJCQl9DQorIAkJCWJyZWFrOw0KK0BAIC0z MjY5LDkgKzMyOTYsMTUgQEAgdm9pZCBTbGFPdXRwdXREZXY6OmRyYXdDaGFyKEdmeFN0YXRlKiBz dGF0ZSwgZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUgZHgsIGRvdWIKKyBHQm9vbCBTbGFPdXRw dXREZXY6OmJlZ2luVHlwZTNDaGFyKEdmeFN0YXRlICpzdGF0ZSwgZG91YmxlIHgsIGRvdWJsZSB5 LCBkb3VibGUgZHgsIGRvdWJsZSBkeSwgQ2hhckNvZGUgY29kZSwgUE9QUExFUl9DT05TVF8wODIg VW5pY29kZSAqdSwgaW50IHVMZW4pDQorIHsNCisgLy8JcURlYnVnKCkgPDwgImJlZ2luVHlwZTND aGFyIjsNCisrI2lmIFBPUFBMRVJfRU5DT0RFRF9WRVJTSU9OID49IFBPUFBMRVJfVkVSU0lPTl9F TkNPREUoMjIsIDQsIDApDQorIAlHZnhGb250ICpnZnhGb250Ow0KKysJaWYgKCEoZ2Z4Rm9udCA9 IHN0YXRlLT5nZXRGb250KCkuZ2V0KCkpKQ0KKysJCXJldHVybiBnVHJ1ZTsNCisrI2Vsc2UNCisr CUdmeEZvbnQqIGdmeEZvbnQ7DQorIAlpZiAoIShnZnhGb250ID0gc3RhdGUtPmdldEZvbnQoKSkp DQorIAkJcmV0dXJuIGdUcnVlOw0KKysjZW5kaWYNCisgCWlmIChnZnhGb250LT5nZXRUeXBlKCkg IT0gZm9udFR5cGUzKQ0KKyAJCXJldHVybiBnVHJ1ZTsNCisgCUYzRW50cnkgZjNlOw0KZGlmZiAt LWdpdCBhL3NyY3BrZ3Mvc2NyaWJ1cy90ZW1wbGF0ZSBiL3NyY3BrZ3Mvc2NyaWJ1cy90ZW1wbGF0 ZQppbmRleCA3OTFjZGVhNzEyYzUuLjEyNWE3ZDU0ZTRjZiAxMDA2NDQKLS0tIGEvc3JjcGtncy9z Y3JpYnVzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvc2NyaWJ1cy90ZW1wbGF0ZQpAQCAtNCw3ICs0 LDcgQEAgdmVyc2lvbj0xLjUuOAogcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZp Z3VyZV9hcmdzPSItRENNQUtFX1NLSVBfUlBBVEg9VFJVRSAtRFFUX1BSRUZJWD0ke1hCUFNfQ1JP U1NfQkFTRX0vdXNyCi0gLURXQU5UX0dSQVBISUNTTUFHSUNLPTEiCisgLURXQU5UX0dSQVBISUNT TUFHSUNLPTEgLURXQU5UX0NQUDE3PU9OIgogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIHF0 NS1xbWFrZSBxdDUtaG9zdC10b29scyBweXRob24zIgogbWFrZWRlcGVuZHM9InF0NS1kZXZlbCBx dDUtdG9vbHMtZGV2ZWwgemxpYi1kZXZlbCBjYWlyby1kZXZlbCBsY21zMi1kZXZlbAogIGN1cHMt ZGV2ZWwgbGlieG1sMi1kZXZlbCBoeXBoZW4tZGV2ZWwgZ2hvc3RzY3JpcHQtZGV2ZWwgYm9vc3Qt ZGV2ZWwKCkZyb20gZTUzODVkMjJkOTFjNDNiZDBkMDFlOTQyMzFiODg2OTc4OWQ2NTA4YyBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8MzE5MTYzNzkrT3JlbzYzOUB1c2Vy cy5ub3JlcGx5LmdpdGh1Yi5jb20+CkRhdGU6IFRodSwgMTYgSnVuIDIwMjIgMTc6MDU6MzYgLTA3 MDAKU3ViamVjdDogW1BBVENIIDA5LzEwXSBsaWJyZW9mZmljZTogcmVidWlsZCBhZ2FpbnN0IGxp YnBvcHBsZXIgMjIuMDYuMAoKLS0tCiAuLi4vbGlicmVvZmZpY2UvcGF0Y2hlcy9wb3BwbGVyLTIy LjAzLjAucGF0Y2ggfCAyOCArKysrKysrKwogLi4uL2xpYnJlb2ZmaWNlL3BhdGNoZXMvcG9wcGxl ci0yMi4wNC4wLnBhdGNoIHwgNzEgKysrKysrKysrKysrKysrKysrKwogc3JjcGtncy9saWJyZW9m ZmljZS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIDMgZmlsZXMgY2hhbmdlZCwg MTAwIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2xpYnJlb2ZmaWNlL3BhdGNoZXMvcG9wcGxlci0yMi4wMy4wLnBhdGNoCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9saWJyZW9mZmljZS9wYXRjaGVzL3BvcHBsZXItMjIuMDQuMC5wYXRj aAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGlicmVvZmZpY2UvcGF0Y2hlcy9wb3BwbGVyLTIyLjAz LjAucGF0Y2ggYi9zcmNwa2dzL2xpYnJlb2ZmaWNlL3BhdGNoZXMvcG9wcGxlci0yMi4wMy4wLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYzY1NDRiMjU3NWY5 Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saWJyZW9mZmljZS9wYXRjaGVzL3BvcHBsZXIt MjIuMDMuMC5wYXRjaApAQCAtMCwwICsxLDI4IEBACitkaWZmIC0tZ2l0IGEvc2RleHQvc291cmNl L3BkZmltcG9ydC94cGRmd3JhcHBlci93cmFwcGVyX2dwbC5jeHggYi9zZGV4dC9zb3VyY2UvcGRm aW1wb3J0L3hwZGZ3cmFwcGVyL3dyYXBwZXJfZ3BsLmN4eAoraW5kZXggYWQ2MzIwMTM5Li5lNWY2 ZDljNjggMTAwNjQ0CistLS0gYS9zZGV4dC9zb3VyY2UvcGRmaW1wb3J0L3hwZGZ3cmFwcGVyL3dy YXBwZXJfZ3BsLmN4eAorKysrIGIvc2RleHQvc291cmNlL3BkZmltcG9ydC94cGRmd3JhcHBlci93 cmFwcGVyX2dwbC5jeHgKK0BAIC0xMzgsNiArMTM4LDE1IEBAIGludCBtYWluKGludCBhcmdjLCBj aGFyICoqYXJndikKKyAgICAgX3NldG1vZGUoIF9maWxlbm8oIGdfYmluYXJ5X291dCApLCBfT19C SU5BUlkgKTsKKyAjZW5kaWYKKyAKKysjaWYgUE9QUExFUl9DSEVDS19WRVJTSU9OKDIyLCAzLCAw KQorKyAgICBQREZEb2MgYURvYyggc3RkOjptYWtlX3VuaXF1ZTxHb29TdHJpbmc+KHBGaWxlTmFt ZSksCisrICAgICAgICAgICAgICAgICBHb29TdHJpbmcocE93bmVyUGFzc3dvcmRTdHIpLAorKyAg ICAgICAgICAgICAgICAgR29vU3RyaW5nKHBVc2VyUGFzc3dvcmRTdHIpICk7CisrCisrICAgIFBE RkRvYyBhRXJyRG9jKCBzdGQ6Om1ha2VfdW5pcXVlPEdvb1N0cmluZz4ocEVyckZpbGVOYW1lKSwK KysgICAgICAgICAgICAgICAgIEdvb1N0cmluZyhwT3duZXJQYXNzd29yZFN0ciksCisrICAgICAg ICAgICAgICAgICBHb29TdHJpbmcocFVzZXJQYXNzd29yZFN0cikgKTsKKysjZWxzZQorICAgICBQ REZEb2MgYURvYyggcEZpbGVOYW1lLAorICAgICAgICAgICAgICAgICAgcE93bmVyUGFzc3dvcmRT dHIsCisgICAgICAgICAgICAgICAgICBwVXNlclBhc3N3b3JkU3RyICk7CitAQCAtMTQ1LDYgKzE1 NCw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKKyAgICAgUERGRG9jIGFFcnJE b2MoIHBFcnJGaWxlTmFtZSwKKyAgICAgICAgICAgICAgICAgIHBPd25lclBhc3N3b3JkU3RyLAor ICAgICAgICAgICAgICAgICAgcFVzZXJQYXNzd29yZFN0ciApOworKyNlbmRpZgorIAorICAgICAv LyBDaGVjayB2YXJpb3VzIHBlcm1pc3Npb25zIGZvciBhRG9jLgorICAgICBQREZEb2MgJnJEb2Mg PSBhRG9jLmlzT2soKT8gYURvYzogYUVyckRvYzsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGlicmVv ZmZpY2UvcGF0Y2hlcy9wb3BwbGVyLTIyLjA0LjAucGF0Y2ggYi9zcmNwa2dzL2xpYnJlb2ZmaWNl L3BhdGNoZXMvcG9wcGxlci0yMi4wNC4wLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMC4uNDdmNTk2NzNkNjllCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9s aWJyZW9mZmljZS9wYXRjaGVzL3BvcHBsZXItMjIuMDQuMC5wYXRjaApAQCAtMCwwICsxLDcxIEBA CisjIFBhdGNoIGZyb20gRnJlZUJTRCAoaHR0cHM6Ly9jZ2l0LmZyZWVic2Qub3JnL3BvcnRzL2Nv bW1pdC8/aWQ9ZDliNWVmODAwZGJkKQorCistLS0gYS9zZGV4dC9zb3VyY2UvcGRmaW1wb3J0L3hw ZGZ3cmFwcGVyL3BkZmlvdXRkZXZfZ3BsLmN4eAorKysrIGIvc2RleHQvc291cmNlL3BkZmltcG9y dC94cGRmd3JhcHBlci9wZGZpb3V0ZGV2X2dwbC5jeHgKK0BAIC00NzQsMTEgKzQ3NCwxNyBAQCBp bnQgUERGT3V0RGV2OjpwYXJzZUZvbnQoIGxvbmcgbG9uZyBuTmV3SWQsIEdmeEZvbnQqIGcKKyAg ICAgeworICAgICAgICAgLy8gVE9ETyhQMyk6IFVuZm9ydHVuYXRlbHksIG5lZWQgdG8gcmVhZCBz dHJlYW0gdHdpY2UsIHNpbmNlCisgICAgICAgICAvLyB3ZSBtdXN0IHdyaXRlIGJ5dGUgY291bnQg dG8gc3Rkb3V0IGJlZm9yZQorKyNpZiAhUE9QUExFUl9DSEVDS19WRVJTSU9OKDIyLCAzLCAwKQor ICAgICAgICAgY2hhciogcEJ1ZiA9IGdmeEZvbnQtPnJlYWRFbWJGb250RmlsZSggbV9wRG9jLT5n ZXRYUmVmKCksICZuU2l6ZSApOworKyNlbHNlCisrICAgICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6 dmVjdG9yPHVuc2lnbmVkIGNoYXI+PiBwQnVmID0gZ2Z4Rm9udC0+cmVhZEVtYkZvbnRGaWxlKCBt X3BEb2MtPmdldFhSZWYoKSApOworKyNlbmRpZgorICAgICAgICAgaWYoIHBCdWYgKQorICAgICAg ICAgeworICAgICAgICAgICAgIGFOZXdGb250LmlzRW1iZWRkZWQgPSB0cnVlOworKyNpZiAhUE9Q UExFUl9DSEVDS19WRVJTSU9OKDIyLCAzLCAwKQorICAgICAgICAgICAgIGdmcmVlKHBCdWYpOwor KyNlbmRpZgorICAgICAgICAgfQorICAgICB9CisgCitAQCAtNDkyLDIxICs0OTgsMzIgQEAgdm9p ZCBQREZPdXREZXY6OndyaXRlRm9udEZpbGUoIEdmeEZvbnQqIGdmeEZvbnQgKSBjb25zCisgICAg ICAgICByZXR1cm47CisgCisgICAgIGludCBuU2l6ZSA9IDA7CistICAgIGNoYXIqIHBCdWYgPSBn ZnhGb250LT5yZWFkRW1iRm9udEZpbGUoIG1fcERvYy0+Z2V0WFJlZigpLCAmblNpemUgKTsKKysj aWYgIVBPUFBMRVJfQ0hFQ0tfVkVSU0lPTigyMiwgMywgMCkKKysgICAgICAgIGNoYXIqIHBCdWYg PSBnZnhGb250LT5yZWFkRW1iRm9udEZpbGUoIG1fcERvYy0+Z2V0WFJlZigpLCAmblNpemUgKTsK KysjZWxzZQorKyAgICAgICAgc3RkOjpvcHRpb25hbDxzdGQ6OnZlY3Rvcjx1bnNpZ25lZCBjaGFy Pj4gcEJ1ZiA9IGdmeEZvbnQtPnJlYWRFbWJGb250RmlsZSggbV9wRG9jLT5nZXRYUmVmKCkgKTsK KysjZW5kaWYKKyAgICAgaWYoICFwQnVmICkKKyAgICAgICAgIHJldHVybjsKKyAKKyAgICAgLy8g LS0tc3luYyBwb2ludC0tLSBzZWUgU1lOQyBTVFJFQU1TIGFib3ZlCisgICAgIGZmbHVzaChzdGRv dXQpOworLQorKyNpZiAhUE9QUExFUl9DSEVDS19WRVJTSU9OKDIyLCAzLCAwKQorICAgICBpZigg ZndyaXRlKHBCdWYsIHNpemVvZihjaGFyKSwgblNpemUsIGdfYmluYXJ5X291dCkgIT0gc3RhdGlj X2Nhc3Q8c2l6ZV90PihuU2l6ZSkgKQorKyNlbHNlCisrICAgIGlmKCBmd3JpdGUocmVpbnRlcnBy ZXRfY2FzdDxjaGFyKj4ocEJ1Zi52YWx1ZSgpLmRhdGEoKSksIHNpemVvZihjaGFyKSwgblNpemUs IGdfYmluYXJ5X291dCkgIT0gc3RhdGljX2Nhc3Q8c2l6ZV90PihuU2l6ZSkgKQorKyNlbmRpZgor ICAgICB7CistICAgICAgICBnZnJlZShwQnVmKTsKKysjaWYgIVBPUFBMRVJfQ0hFQ0tfVkVSU0lP TigyMiwgMywgMCkKKysgICAgICAgICAgICBnZnJlZShwQnVmKTsKKysjZW5kaWYKKyAgICAgICAg IGV4aXQoMSk7IC8vIGVycm9yCisgICAgIH0KKyAgICAgLy8gLS0tc3luYyBwb2ludC0tLSBzZWUg U1lOQyBTVFJFQU1TIGFib3ZlCisgICAgIGZmbHVzaChnX2JpbmFyeV9vdXQpOworLSAgICBnZnJl ZShwQnVmKTsKKysjaWYgIVBPUFBMRVJfQ0hFQ0tfVkVSU0lPTigyMiwgMywgMCkKKysgICAgICAg ICAgICBnZnJlZShwQnVmKTsKKysjZW5kaWYKKyB9CisgCisgI2lmIFBPUFBMRVJfQ0hFQ0tfVkVS U0lPTigwLCA4MywgMCkKK0BAIC03NTksNyArNzc2LDExIEBAIHZvaWQgUERGT3V0RGV2Ojp1cGRh dGVGb250KEdmeFN0YXRlICpzdGF0ZSkKKyB7CisgICAgIGFzc2VydChzdGF0ZSk7CisgCisrI2lm ICFQT1BQTEVSX0NIRUNLX1ZFUlNJT04oMjIsIDMsIDApCisgICAgIEdmeEZvbnQgKmdmeEZvbnQg PSBzdGF0ZS0+Z2V0Rm9udCgpOworKyNlbHNlCisrICAgIEdmeEZvbnQgKmdmeEZvbnQgPSBzdGF0 ZS0+Z2V0Rm9udCgpLmdldCgpOworKyNlbmRpZgorICAgICBpZiggIWdmeEZvbnQgKQorICAgICAg ICAgcmV0dXJuOworIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJyZW9mZmljZS90ZW1wbGF0ZSBi L3NyY3BrZ3MvbGlicmVvZmZpY2UvdGVtcGxhdGUKaW5kZXggNmQzNWUxNGEzMjc0Li4xNThkZjBm MzBlYmMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGlicmVvZmZpY2UvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9saWJyZW9mZmljZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ2xpYnJlb2ZmaWNlJwogcGtnbmFtZT1saWJyZW9mZmljZQogdmVyc2lvbj03LjMuMy4y Ci1yZXZpc2lvbj0yCityZXZpc2lvbj0zCiBidWlsZF9zdHlsZT1tZXRhCiBtYWtlX2J1aWxkX3Rh cmdldD0iYnVpbGQtbm9jaGVjayIKIG5vY3Jvc3M9IlNldmVyYWwgZGVwZW5kZW5jaWVzIGFyZSBu b2Nyb3NzPXllcyIKCkZyb20gYmJlNmIxZDNiMmYxMzliYzIyZDEyMmIxODU0NWY3N2MzMGFiMGZi MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8MzE5MTYzNzkrT3JlbzYz OUB1c2Vycy5ub3JlcGx5LmdpdGh1Yi5jb20+CkRhdGU6IFR1ZSwgNSBKdWwgMjAyMiAxNjoxMDox MiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMTBdIHRleGxpdmU6IFJlbW92ZSBwb3BwbGVyIGZy b20gbWFrZWRlcGVuZHMKClRleGxpdmUgcHJldmlvdXNseSBkcm9wcGVkIHN1cHBvcnQgZm9yIGxp YnBvcHBsZXIgb24gMjAyMC0wNS0xNAotLS0KIHNyY3BrZ3MvdGV4bGl2ZS90ZW1wbGF0ZSB8IDQg Ky0tLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAzIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvdGV4bGl2ZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvdGV4bGl2ZS90ZW1w bGF0ZQppbmRleCA3YTkyMmJjMDdmMmIuLmYzZjhhYTk5OTVhMiAxMDA2NDQKLS0tIGEvc3JjcGtn cy90ZXhsaXZlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvdGV4bGl2ZS90ZW1wbGF0ZQpAQCAtNjAs NyArNjAsNiBAQCBjb25maWd1cmVfYXJncz0iCiAgLS13aXRoLXN5c3RlbS1saWJwYXBlcgogIC0t d2l0aC1zeXN0ZW0tbGlicG5nCiAgLS13aXRoLXN5c3RlbS1tcGZyCi0gLS13aXRoLXN5c3RlbS1w b3BwbGVyCiAgLS13aXRoLXN5c3RlbS1waXhtYW4KICAtLXdpdGgtc3lzdGVtLXRlY2tpdAogIC0t d2l0aC1zeXN0ZW0temxpYgpAQCAtNjksOCArNjgsNyBAQCBjb25maWd1cmVfYXJncz0iCiBob3N0 bWFrZWRlcGVuZHM9InBrZy1jb25maWcgcGVybCBsdWE1Mi1CaXRPcCB0ZXhpbmZvIgogbWFrZWRl cGVuZHM9ImNhaXJvLWRldmVsIGZyZWV0eXBlLWRldmVsIGdkLWRldmVsIGdyYXBoaXRlLWRldmVs IGdtcC1kZXZlbAogIGhhcmZidXp6LWRldmVsIGljdS1kZXZlbCBsaWJwYXBlci1kZXZlbCBsaWJw bmctZGV2ZWwgbXBmci1kZXZlbAotIHBvcHBsZXItZGV2ZWwgcGl4bWFuLWRldmVsIGxpYnRlY2tp dC1kZXZlbCB6bGliLWRldmVsIHp6aXBsaWItZGV2ZWwKLSBsaWJYYXctZGV2ZWwiCisgcGl4bWFu LWRldmVsIGxpYnRlY2tpdC1kZXZlbCB6bGliLWRldmVsIHp6aXBsaWItZGV2ZWwgbGliWGF3LWRl dmVsIgogZGVwZW5kcz0iZGlhbG9nIGdob3N0c2NyaXB0IHBlcmwtVGsgdGV4bGl2ZS1jb3JlIHRl eGxpdmUtbGF0ZXhtayB4YnBzLXRyaWdnZXJzIgogc2hvcnRfZGVzYz0iVGVYIExpdmUiCiBtYWlu dGFpbmVyPSJmb3NzbGludXggPGZvc3NsaW51eEBhdXNzaWVzLnNwYWNlPiIK --===============6341914990633853929==--