From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Than Ngo To: git-commits@fedoraproject.org Subject: [rpms/chromium] epel9-next: vaapi support for wayland Date: Fri, 07 Aug 2026 16:04:23 GMT Message-ID: <178611866399.1.6679909597321216155.rpms-chromium-378fb70a07bd@fedoraproject.org> List-ID: X-Git-Repo: rpms/chromium X-Git-Branch: epel9-next X-Git-Rev: 378fb70a07bd9a5c64b93159ca15980fa0620105 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvY2hyb21pdW0KQnJh bmNoIDogZXBlbDktbmV4dApDb21taXQgOiAzNzhmYjcwYTA3YmQ5YTVjNjRiOTMxNTljYTE1OTgw ZmEwNjIwMTA1CkF1dGhvciA6IFRoYW4gTmdvIDx0aGFuQHJlZGhhdC5jb20+CkRhdGUgICA6IDIw MjMtMDEtMDhUMTY6MDY6MzErMDE6MDAKU3RhdHMgIDogKzY2MS8tMzYgaW4gMyBmaWxlKHMpClVS TCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvY2hyb21pdW0vYy8zNzhm YjcwYTA3YmQ5YTVjNjRiOTMxNTljYTE1OTgwZmEwNjIwMTA1P2JyYW5jaD1lcGVsOS1uZXh0CgpM b2c6CnZhYXBpIHN1cHBvcnQgZm9yIHdheWxhbmQKCi0tLQpkaWZmIC0tZ2l0IGEvY2hyb21pdW0t MTA4LW96b25lLXdheWxhbmQtdmFhcGktc3VwcG9ydC5wYXRjaCBiL2Nocm9taXVtLTEwOC1vem9u ZS13YXlsYW5kLXZhYXBpLXN1cHBvcnQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uZDMxY2E4YwotLS0gL2Rldi9udWxsCisrKyBiL2Nocm9taXVtLTEwOC1vem9uZS13 YXlsYW5kLXZhYXBpLXN1cHBvcnQucGF0Y2gKQEAgLTAsMCArMSw2NTUgQEAKK2F1dGhvcglKaWFu aHVpIERhaSA8amlhbmh1aS5qLmRhaUBpbnRlbC5jb20+CVR1ZSBOb3YgMTUgMDY6MTg6MDQgMjAy MgorY29tbWl0dGVyCUppYW5odWkgRGFpIDxqaWFuaHVpLmouZGFpQGludGVsLmNvbT4JVHVlIE5v diAxNSAwNjoxODowNCAyMDIyCisKK1tPem9uZS9MaW51eF0gU3VwcG9ydCBWQS1BUEkgb24gTGlu dXggT3pvbmUvV2F5bGFuZAorCitWQS1BUEkgc3VwcG9ydHMgZGlmZmVyZW50IGRpc3BsYXkgYmFj a2VuZHMgWzFdLiBWQS9EUk0gYW5kIFZBL1gxMSBhcmUKK3VzZWQgYnkgQ2hyb21pdW0gYXQgdGhl IG1vbWVudC4gQWxsIE96b25lIHBsYXRmb3JtcyBzdXBwb3J0IFZBL0RSTSBieQorZGVmYXVsdC4g VkEvWDExIGlzIHN1cHBvcnRlZCBvbmx5IG9uIE96b25lL1gxMS4KKworVGhpcyBDTCByZW5hbWVz ICdzdXBwb3J0c192YWFwaScgdG8gJ3N1cHBvcnRzX3ZhYXBpX3gxMSc7IGl0IGluZGljYXRlcwor aWYgVkEvWDExIHN1cHBvcnRlZC4gTGludXggT3pvbmUvWDExIHN1cHBvcnRzIGJvdGggVkEvWDEx IGFuZCBWQS9EUk07CitMaW51eCBPem9uZS9XYXlsYW5kIHN1cHBvcnRzIG9ubHkgVkEvRFJNLiBg VmFhcGlQaWN0dXJlRmFjdG9yeWAgYWxzbwordGFrZXMgdGhpcyBmbGFnIHRvIGRldGVybWluZSBw aWN0dXJlIGNyZWF0aW9uIGFuZCBkb3dubG9hZGluZyBtZWNoYW5pc20KK29uIExpbnV4LgorCitb MV0gaHR0cHM6Ly9naXRodWIuY29tL2ludGVsL2xpYnZhL2Jsb2IvbWFzdGVyL3ZhL3ZhX2JhY2tl bmQuaAorCitUZXN0OiBWREEgdmlkZW8gcGxheWJhY2sgb24gTGludXggWDExIGFuZCBMaW51eCBX YXlsYW5kCitCdWc6IDEzMjY3NTQsMTExNjcwMQorQ2hhbmdlLUlkOiBJNmQ2YmY3ODE4MzNhNzc1 MmQyM2RhZmIyYjYzMTEyYzJmYzgxYjE3YQorZGlmZiAtdXAgY2hyb21pdW0tMTA4LjAuNTM1OS4x MjQvbWVkaWEvZ3B1L2FyZ3MuZ25pLndheWxhbmQtdmFhcGkgY2hyb21pdW0tMTA4LjAuNTM1OS4x MjQvbWVkaWEvZ3B1L2FyZ3MuZ25pCistLS0gY2hyb21pdW0tMTA4LjAuNTM1OS4xMjQvbWVkaWEv Z3B1L2FyZ3MuZ25pLndheWxhbmQtdmFhcGkJMjAyMi0xMi0xNCAwMTozOTo1Mi4wMDAwMDAwMDAg KzAxMDAKKysrKyBjaHJvbWl1bS0xMDguMC41MzU5LjEyNC9tZWRpYS9ncHUvYXJncy5nbmkJMjAy My0wMS0wNSAxMDoxMzowOC4yOTE0MDMyNjEgKzAxMDAKK0BAIC02LDEwICs2LDE0IEBAIGltcG9y dCgiLy9idWlsZC9jb25maWcvY2hyb21lb3MvdWlfbW9kZS4KKyBpbXBvcnQoIi8vYnVpbGQvY29u ZmlnL296b25lLmduaSIpCisgCisgZGVjbGFyZV9hcmdzKCkgeworLSAgIyBJbmRpY2F0ZXMgaWYg WDExIFZBLUFQSS1iYXNlZCBoYXJkd2FyZSBhY2NlbGVyYXRpb24gaXMgdG8gYmUgdXNlZC4KKy0g ICMgU2VlIGFsc28gdGhlIGNvbW1lbnQgbmVhciB0aGUgfHVzZV92YWFwaXwgYXJnLgorLSAgdXNl X3ZhYXBpX3gxMSA9IGlzX2xpbnV4ICYmIG96b25lX3BsYXRmb3JtX3gxMSAmJgorLSAgICAgICAg ICAgICAgICAgICh0YXJnZXRfY3B1ID09ICJ4ODYiIHx8IHRhcmdldF9jcHUgPT0gIng2NCIpICYm ICFpc19jYXN0b3MKKysgICMgQnVpbGQgQ2hyb21lIHN1cHBvcnQgZm9yIHVzaW5nIFZBLUFQSSBv dmVyIFgxMS4gTm90ZSB0aGF0IHNldHRpbmcgdGhpcyB0byB0cnVlIGlzCisrICAjIG5vdCBhIGd1 YXJhbnRlZSB0aGF0IENocm9tZSB3aWxsIHVzZSAob3IgZXZlbiB0cnkgdG8gdXNlKSBWQS1BUEkg b3ZlciBYMTEuIEluCisrICAjIHBhcnRpY3VsYXIsIGl0IGlzIHBvc3NpYmxlIHRvIGJ1aWxkIENo cm9tZSB3aXRoIHN1cHBvcnQgZm9yIFZBLUFQSSBvdmVyIFgxMSBidXQKKysgICMgcGljayBXYXls YW5kIGFzIHRoZSBPem9uZSBiYWNrZW5kIGF0IHJ1bnRpbWUuIEluIHRoaXMgY2FzZSwgQ2hyb21l IHdpbGwgdHJ5IHRvCisrICAjIHVzZSBWQS1BUEkgb3ZlciBEUk0uCisrICBzdXBwb3J0X3ZhYXBp X292ZXJfeDExID0KKysgICAgICBpc19saW51eCAmJiBvem9uZV9wbGF0Zm9ybV94MTEgJiYKKysg ICAgICAodGFyZ2V0X2NwdSA9PSAieDg2IiB8fCB0YXJnZXRfY3B1ID09ICJ4NjQiKSAmJiAhaXNf Y2FzdG9zCisgfQorIAorIGRlY2xhcmVfYXJncygpIHsKK0BAIC0yOSw4ICszMyw5IEBAIGRlY2xh cmVfYXJncygpIHsKKyAgICMgaXMgdHlwaWNhbGx5IHRoZSBjYXNlIG9uIHg4Ni1iYXNlZCBDaHJv bWVPUyBkZXZpY2VzLgorICAgIyBWQS1BUEkgc2hvdWxkIGFsc28gYmUgY29tcGlsZWQgYnkgZGVm YXVsdCBvbiB4MTEtdXNpbmcgbGludXggZGV2aWNlcworICAgIyB1c2luZyB4ODYveDY0LgorLSAg dXNlX3ZhYXBpID0gdXNlX3ZhYXBpX3gxMSB8fCAoaXNfY2hyb21lb3NfbGFjcm9zICYmCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGFyZ2V0X2NwdSA9PSAieDg2IiB8fCB0YXJn ZXRfY3B1ID09ICJ4NjQiKSkKKysgIHVzZV92YWFwaSA9CisrICAgICAgc3VwcG9ydF92YWFwaV9v dmVyX3gxMSB8fAorKyAgICAgIChpc19jaHJvbWVvc19sYWNyb3MgJiYgKHRhcmdldF9jcHUgPT0g Ing4NiIgfHwgdGFyZ2V0X2NwdSA9PSAieDY0IikpCisgCisgICAjIEluZGljYXRlcyBpZiBDaHJv bWVPUyBwcm90ZWN0ZWQgbWVkaWEgc3VwcG9ydCBleGlzdHMuIFRoaXMgaXMgdXNlZAorICAgIyB0 byBlbmFibGUgdGhlIENETSBkYWVtb24gaW4gQ2hyb21lIE9TIGFzIHdlbGwgYXMgc3VwcG9ydCBm b3IKK2RpZmYgLXVwIGNocm9taXVtLTEwOC4wLjUzNTkuMTI0L21lZGlhL2dwdS9CVUlMRC5nbi53 YXlsYW5kLXZhYXBpIGNocm9taXVtLTEwOC4wLjUzNTkuMTI0L21lZGlhL2dwdS9CVUlMRC5nbgor LS0tIGNocm9taXVtLTEwOC4wLjUzNTkuMTI0L21lZGlhL2dwdS9CVUlMRC5nbi53YXlsYW5kLXZh YXBpCTIwMjItMTItMTQgMDE6Mzk6NTIuMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTA4 LjAuNTM1OS4xMjQvbWVkaWEvZ3B1L0JVSUxELmduCTIwMjMtMDEtMDUgMTA6MTM6MDguMjkxNDAz MjYxICswMTAwCitAQCAtMjAsNyArMjAsNyBAQCBidWlsZGZsYWdfaGVhZGVyKCJidWlsZGZsYWdz IikgeworICAgICAiVVNFX1ZBQVBJX0lNQUdFX0NPREVDUz0kdXNlX3ZhYXBpX2ltYWdlX2NvZGVj cyIsCisgICAgICJVU0VfVjRMMl9DT0RFQz0kdXNlX3Y0bDJfY29kZWMiLAorICAgICAiVVNFX0xJ QlY0TDI9JHVzZV92NGxwbHVnaW4iLAorLSAgICAiVVNFX1ZBQVBJX1gxMT0kdXNlX3ZhYXBpX3gx MSIsCisrICAgICJTVVBQT1JUX1ZBQVBJX09WRVJfWDExPSRzdXBwb3J0X3ZhYXBpX292ZXJfeDEx IiwKKyAgIF0KKyB9CisgCitkaWZmIC11cCBjaHJvbWl1bS0xMDguMC41MzU5LjEyNC9tZWRpYS9n cHUvdmFhcGkvQlVJTEQuZ24ud2F5bGFuZC12YWFwaSBjaHJvbWl1bS0xMDguMC41MzU5LjEyNC9t ZWRpYS9ncHUvdmFhcGkvQlVJTEQuZ24KKy0tLSBjaHJvbWl1bS0xMDguMC41MzU5LjEyNC9tZWRp YS9ncHUvdmFhcGkvQlVJTEQuZ24ud2F5bGFuZC12YWFwaQkyMDIyLTEyLTE0IDAxOjM5OjUyLjAw MDAwMDAwMCArMDEwMAorKysrIGNocm9taXVtLTEwOC4wLjUzNTkuMTI0L21lZGlhL2dwdS92YWFw aS9CVUlMRC5nbgkyMDIzLTAxLTA1IDEwOjEzOjA4LjI5MTQwMzI2MSArMDEwMAorQEAgLTE3LDcg KzE3LDcgQEAgYXNzZXJ0KHVzZV92YWFwaSkKKyBnZW5lcmF0ZV9zdHVicygibGlidmFfc3R1YnMi KSB7CisgICBleHRyYV9oZWFkZXIgPSAidmFfc3R1Yl9oZWFkZXIuZnJhZ21lbnQiCisgICBzaWdz ID0gWyAidmEuc2lncyIgXQorLSAgaWYgKHVzZV92YWFwaV94MTEpIHsKKysgIGlmIChzdXBwb3J0 X3ZhYXBpX292ZXJfeDExKSB7CisgICAgIHNpZ3MgKz0gWyAidmFfeDExLnNpZ3MiIF0KKyAgIH0K KyAgIGlmIChpc19jaHJvbWVvc19hc2gpIHsKK0BAIC0xMzgsNyArMTM4LDcgQEAgc291cmNlX3Nl dCgidmFhcGkiKSB7CisgICAgIF0KKyAgIH0KKyAKKy0gIGlmICh1c2VfdmFhcGlfeDExKSB7Cisr ICBpZiAoc3VwcG9ydF92YWFwaV9vdmVyX3gxMSkgeworICAgICBkZXBzICs9IFsgIi8vdWkvZ2Z4 L3giIF0KKyAgICAgc291cmNlcyArPSBbCisgICAgICAgInZhYXBpX3BpY3R1cmVfbmF0aXZlX3Bp eG1hcF9hbmdsZS5jYyIsCitAQCAtMjE0LDcgKzIxNCw3IEBAIHNvdXJjZV9zZXQoImNvbW1vbiIp IHsKKyAgICAgZGVwcyArPSBbICIvL3VpL296b25lIiBdCisgICB9CisgCistICBpZiAodXNlX3Zh YXBpX3gxMSkgeworKyAgaWYgKHN1cHBvcnRfdmFhcGlfb3Zlcl94MTEpIHsKKyAgICAgZGVwcyAr PSBbICIvL3VpL2dmeC94IiBdCisgICB9CisgCitkaWZmIC11cCBjaHJvbWl1bS0xMDguMC41MzU5 LjEyNC9tZWRpYS9ncHUvdmFhcGkvdmFhcGlfcGljdHVyZV9mYWN0b3J5LmNjLndheWxhbmQtdmFh cGkgY2hyb21pdW0tMTA4LjAuNTM1OS4xMjQvbWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3BpY3R1cmVf ZmFjdG9yeS5jYworLS0tIGNocm9taXVtLTEwOC4wLjUzNTkuMTI0L21lZGlhL2dwdS92YWFwaS92 YWFwaV9waWN0dXJlX2ZhY3RvcnkuY2Mud2F5bGFuZC12YWFwaQkyMDIyLTEyLTE0IDAxOjM5OjUz LjAwMDAwMDAwMCArMDEwMAorKysrIGNocm9taXVtLTEwOC4wLjUzNTkuMTI0L21lZGlhL2dwdS92 YWFwaS92YWFwaV9waWN0dXJlX2ZhY3RvcnkuY2MJMjAyMy0wMS0wNSAxMDozMjo1OC42MTY1MTc1 NzIgKzAxMDAKK0BAIC0xMiwxMCArMTIsMTAgQEAKKyAjaWYgZGVmaW5lZChVU0VfT1pPTkUpCisg I2luY2x1ZGUgIm1lZGlhL2dwdS92YWFwaS92YWFwaV9waWN0dXJlX25hdGl2ZV9waXhtYXBfb3pv bmUuaCIKKyAjZW5kaWYgIC8vIGRlZmluZWQoVVNFX09aT05FKQorLSNpZiBCVUlMREZMQUcoVVNF X1ZBQVBJX1gxMSkKKysjaWYgQlVJTERGTEFHKFNVUFBPUlRfVkFBUElfT1ZFUl9YMTEpCisgI2lu Y2x1ZGUgIm1lZGlhL2dwdS92YWFwaS92YWFwaV9waWN0dXJlX25hdGl2ZV9waXhtYXBfYW5nbGUu aCIKKyAjaW5jbHVkZSAibWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3BpY3R1cmVfdGZwLmgiCistI2Vu ZGlmICAvLyBCVUlMREZMQUcoVVNFX1ZBQVBJX1gxMSkKKysjZW5kaWYgIC8vIEJVSUxERkxBRyhT VVBQT1JUX1ZBQVBJX09WRVJfWDExKQorICNpZiBkZWZpbmVkKFVTRV9FR0wpCisgI2luY2x1ZGUg Im1lZGlhL2dwdS92YWFwaS92YWFwaV9waWN0dXJlX25hdGl2ZV9waXhtYXBfZWdsLmgiCisgI2Vu ZGlmCitAQCAtNDEsMjIgKzQxLDMyIEBAIHN0ZDo6dW5pcXVlX3B0cjxWYWFwaVBpY3R1cmU+IENy ZWF0ZVZhYXAKKyAKKyB9ICAvLyBuYW1lc3BhY2UKKyAKKysjaWYgQlVJTERGTEFHKFNVUFBPUlRf VkFBUElfT1ZFUl9YMTEpCisrVmFhcGlQaWN0dXJlRmFjdG9yeTo6VmFhcGlQaWN0dXJlRmFjdG9y eSgKKysgICAgYWJzbDo6b3B0aW9uYWw8Ym9vbD4gbWF5X3VzZV92YWFwaV9vdmVyX3gxMSkKKysg ICAgOiBtYXlfdXNlX3ZhYXBpX292ZXJfeDExXyhtYXlfdXNlX3ZhYXBpX292ZXJfeDExKSB7Cisr I2Vsc2UKKyBWYWFwaVBpY3R1cmVGYWN0b3J5OjpWYWFwaVBpY3R1cmVGYWN0b3J5KCkgeworKyNl bmRpZiAvLyBCVUlMREZMQUcoU1VQUE9SVF9WQUFQSV9PVkVSX1gxMSkKKyAgIHZhYXBpX2ltcGxf cGFpcnNfLmluc2VydCgKKyAgICAgICBzdGQ6Om1ha2VfcGFpcihnbDo6a0dMSW1wbGVtZW50YXRp b25FR0xHTEVTMiwKKyAgICAgICAgICAgICAgICAgICAgICBWYWFwaVBpY3R1cmVGYWN0b3J5Ojpr VmFhcGlJbXBsZW1lbnRhdGlvbkRybSkpOworLSNpZiBCVUlMREZMQUcoVVNFX1ZBQVBJX1gxMSkK Ky0gIHZhYXBpX2ltcGxfcGFpcnNfLmluc2VydCgKKy0gICAgICBzdGQ6Om1ha2VfcGFpcihnbDo6 a0dMSW1wbGVtZW50YXRpb25FR0xBTkdMRSwKKy0gICAgICAgICAgICAgICAgICAgICBWYWFwaVBp Y3R1cmVGYWN0b3J5OjprVmFhcGlJbXBsZW1lbnRhdGlvbkFuZ2xlKSk7CistICB2YWFwaV9pbXBs X3BhaXJzXy5pbnNlcnQoCistICAgICAgc3RkOjptYWtlX3BhaXIoZ2w6OmtHTEltcGxlbWVudGF0 aW9uRGVza3RvcEdMLAorLSAgICAgICAgICAgICAgICAgICAgIFZhYXBpUGljdHVyZUZhY3Rvcnk6 OmtWYWFwaUltcGxlbWVudGF0aW9uWDExKSk7CistI2VsaWYgZGVmaW5lZChVU0VfT1pPTkUpCisr CisrI2lmIEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDExKQorKyAgQ0hFQ0sobWF5X3Vz ZV92YWFwaV9vdmVyX3gxMV8uaGFzX3ZhbHVlKCkpOworKyAgaWYgKG1heV91c2VfdmFhcGlfb3Zl cl94MTFfLnZhbHVlKCkpIHsKKysgICAgdmFhcGlfaW1wbF9wYWlyc18uaW5zZXJ0KAorKyAgICAg ICAgc3RkOjptYWtlX3BhaXIoZ2w6OmtHTEltcGxlbWVudGF0aW9uRUdMQU5HTEUsCisrICAgICAg ICAgICAgICAgICAgICAgICBWYWFwaVBpY3R1cmVGYWN0b3J5OjprVmFhcGlJbXBsZW1lbnRhdGlv bkFuZ2xlKSk7CisrICAgIHZhYXBpX2ltcGxfcGFpcnNfLmluc2VydCgKKysgICAgICAgIHN0ZDo6 bWFrZV9wYWlyKGdsOjprR0xJbXBsZW1lbnRhdGlvbkRlc2t0b3BHTCwKKysgICAgICAgICAgICAg ICAgICAgICAgIFZhYXBpUGljdHVyZUZhY3Rvcnk6OmtWYWFwaUltcGxlbWVudGF0aW9uWDExKSk7 CisrICB9CisrI2Vsc2UKKyAgIHZhYXBpX2ltcGxfcGFpcnNfLmluc2VydCgKKyAgICAgICBzdGQ6 Om1ha2VfcGFpcihnbDo6a0dMSW1wbGVtZW50YXRpb25FR0xBTkdMRSwKKyAgICAgICAgICAgICAg ICAgICAgICBWYWFwaVBpY3R1cmVGYWN0b3J5OjprVmFhcGlJbXBsZW1lbnRhdGlvbkRybSkpOwor LSNlbmRpZgorKyNlbmRpZiAvLyBCVUlMREZMQUcoU1VQUE9SVF9WQUFQSV9PVkVSX1gxMSkKKyAK KyAgIERldGVybWluZVBpY3R1cmVDcmVhdGlvbkFuZERvd25sb2FkaW5nTWVjaGFuaXNtKCk7Cisg fQorQEAgLTk3LDE5ICsxMDcsMTkgQEAgVmFhcGlQaWN0dXJlRmFjdG9yeTo6R2V0VmFhcGlJbXBs ZW1lbnRhdAorIH0KKyAKKyB1aW50MzJfdCBWYWFwaVBpY3R1cmVGYWN0b3J5OjpHZXRHTFRleHR1 cmVUYXJnZXQoKSB7CistI2lmIEJVSUxERkxBRyhVU0VfVkFBUElfWDExKQorLSAgcmV0dXJuIEdM X1RFWFRVUkVfMkQ7CistI2Vsc2UKKysjaWYgQlVJTERGTEFHKElTX0NIUk9NRU9TKQorICAgcmV0 dXJuIEdMX1RFWFRVUkVfRVhURVJOQUxfT0VTOworLSNlbmRpZgorKyNlbHNlCisrICByZXR1cm4g R0xfVEVYVFVSRV8yRDsKKysjZW5kaWYgIC8vIEJVSUxERkxBRyhJU19DSFJPTUVPUykKKyB9Cisg CisgZ2Z4OjpCdWZmZXJGb3JtYXQgVmFhcGlQaWN0dXJlRmFjdG9yeTo6R2V0QnVmZmVyRm9ybWF0 KCkgeworLSNpZiBCVUlMREZMQUcoVVNFX1ZBQVBJX1gxMSkKKy0gIHJldHVybiBnZng6OkJ1ZmZl ckZvcm1hdDo6UkdCWF84ODg4OworLSNlbHNlCisrI2lmIEJVSUxERkxBRyhJU19DSFJPTUVPUykK KyAgIHJldHVybiBnZng6OkJ1ZmZlckZvcm1hdDo6WVVWXzQyMF9CSVBMQU5BUjsKKy0jZW5kaWYK KysjZWxzZQorKyAgcmV0dXJuIGdmeDo6QnVmZmVyRm9ybWF0OjpSR0JYXzg4ODg7CisrI2VuZGlm ICAvLyBCVUlMREZMQUcoSVNfQ0hST01FT1MpCisgfQorIAorIHZvaWQgVmFhcGlQaWN0dXJlRmFj dG9yeTo6RGV0ZXJtaW5lUGljdHVyZUNyZWF0aW9uQW5kRG93bmxvYWRpbmdNZWNoYW5pc20oKSB7 CitAQCAtMTE3LDI1ICsxMjcsMzAgQEAgdm9pZCBWYWFwaVBpY3R1cmVGYWN0b3J5OjpEZXRlcm1p bmVQaWN0dQorICNpZiBkZWZpbmVkKFVTRV9PWk9ORSkKKyAgICAgLy8gV2UgY2FuIGJlIGNhbGxl ZCB3aXRob3V0IEdMIGluaXRpYWxpemVkLCB3aGljaCBpcyB2YWxpZCBpZiB3ZSB1c2UgT3pvbmUu CisgICAgIGNhc2Uga1ZhYXBpSW1wbGVtZW50YXRpb25Ob25lOgorKyNpZiBCVUlMREZMQUcoU1VQ UE9SVF9WQUFQSV9PVkVSX1gxMSkKKysgICAgICBEQ0hFQ0sobWF5X3VzZV92YWFwaV9vdmVyX3gx MV8udmFsdWVfb3IoZmFsc2UpKTsKKysjZW5kaWYKKyAgICAgICBjcmVhdGVfcGljdHVyZV9jYl8g PSBiYXNlOjpCaW5kUmVwZWF0aW5nKAorICAgICAgICAgICAmQ3JlYXRlVmFhcGlQaWN0dXJlTmF0 aXZlSW1wbDxWYWFwaVBpY3R1cmVOYXRpdmVQaXhtYXBPem9uZT4pOworICAgICAgIG5lZWRzX3Zw cF9mb3JfZG93bmxvYWRpbmdfID0gdHJ1ZTsKKyAgICAgICBicmVhazsKKyAjZW5kaWYgIC8vIGRl ZmluZWQoVVNFX09aT05FKQorLSNpZiBCVUlMREZMQUcoVVNFX1ZBQVBJX1gxMSkKKysjaWYgQlVJ TERGTEFHKFNVUFBPUlRfVkFBUElfT1ZFUl9YMTEpCisgICAgIGNhc2Uga1ZhYXBpSW1wbGVtZW50 YXRpb25YMTE6CisrICAgICAgRENIRUNLKG1heV91c2VfdmFhcGlfb3Zlcl94MTFfLnZhbHVlX29y KGZhbHNlKSk7CisgICAgICAgY3JlYXRlX3BpY3R1cmVfY2JfID0KKyAgICAgICAgICAgYmFzZTo6 QmluZFJlcGVhdGluZygmQ3JlYXRlVmFhcGlQaWN0dXJlTmF0aXZlSW1wbDxWYWFwaVRGUFBpY3R1 cmU+KTsKKyAgICAgICAvLyBOZWl0aGVyIFZhYXBpVEZQUGljdHVyZSBvciBWYWFwaVBpY3R1cmVO YXRpdmVQaXhtYXBBbmdsZSBuZWVkcyB0aGUgVlBQLgorICAgICAgIG5lZWRzX3ZwcF9mb3JfZG93 bmxvYWRpbmdfID0gZmFsc2U7CisgICAgICAgYnJlYWs7CisgICAgIGNhc2Uga1ZhYXBpSW1wbGVt ZW50YXRpb25BbmdsZToKKysgICAgICBEQ0hFQ0sobWF5X3VzZV92YWFwaV9vdmVyX3gxMV8udmFs dWVfb3IoZmFsc2UpKTsKKyAgICAgICBjcmVhdGVfcGljdHVyZV9jYl8gPSBiYXNlOjpCaW5kUmVw ZWF0aW5nKAorICAgICAgICAgICAmQ3JlYXRlVmFhcGlQaWN0dXJlTmF0aXZlSW1wbDxWYWFwaVBp Y3R1cmVOYXRpdmVQaXhtYXBBbmdsZT4pOworICAgICAgIC8vIE5laXRoZXIgVmFhcGlURlBQaWN0 dXJlIG9yIFZhYXBpUGljdHVyZU5hdGl2ZVBpeG1hcEFuZ2xlIG5lZWRzIHRoZSBWUFAuCisgICAg ICAgbmVlZHNfdnBwX2Zvcl9kb3dubG9hZGluZ18gPSBmYWxzZTsKKyAgICAgICBicmVhazsKKy0j ZW5kaWYgIC8vIEJVSUxERkxBRyhVU0VfVkFBUElfWDExKQorKyNlbmRpZiAgLy8gQlVJTERGTEFH KFNVUFBPUlRfVkFBUElfT1ZFUl9YMTEpCisgICAgIGNhc2Uga1ZhYXBpSW1wbGVtZW50YXRpb25E cm06CisgI2lmIGRlZmluZWQoVVNFX09aT05FKQorICAgICAgIGNyZWF0ZV9waWN0dXJlX2NiXyA9 IGJhc2U6OkJpbmRSZXBlYXRpbmcoCitkaWZmIC11cCBjaHJvbWl1bS0xMDguMC41MzU5LjEyNC9t ZWRpYS9ncHUvdmFhcGkvdmFhcGlfcGljdHVyZV9mYWN0b3J5Lmgud2F5bGFuZC12YWFwaSBjaHJv bWl1bS0xMDguMC41MzU5LjEyNC9tZWRpYS9ncHUvdmFhcGkvdmFhcGlfcGljdHVyZV9mYWN0b3J5 LmgKKy0tLSBjaHJvbWl1bS0xMDguMC41MzU5LjEyNC9tZWRpYS9ncHUvdmFhcGkvdmFhcGlfcGlj dHVyZV9mYWN0b3J5Lmgud2F5bGFuZC12YWFwaQkyMDIyLTEyLTE0IDAxOjM5OjUzLjAwMDAwMDAw MCArMDEwMAorKysrIGNocm9taXVtLTEwOC4wLjUzNTkuMTI0L21lZGlhL2dwdS92YWFwaS92YWFw aV9waWN0dXJlX2ZhY3RvcnkuaAkyMDIzLTAxLTA1IDEwOjEzOjA4LjI5MTQwMzI2MSArMDEwMAor QEAgLTM2LDcgKzM2LDExIEBAIGNsYXNzIE1FRElBX0dQVV9FWFBPUlQgVmFhcGlQaWN0dXJlRmFj dG8KKyAgICAga1ZhYXBpSW1wbGVtZW50YXRpb25BbmdsZSwKKyAgIH07CisgCisrI2lmIEJVSUxE RkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDExKQorKyAgZXhwbGljaXQgVmFhcGlQaWN0dXJlRmFj dG9yeShhYnNsOjpvcHRpb25hbDxib29sPiBtYXlfdXNlX3ZhYXBpX292ZXJfeDExKTsKKysjZWxz ZQorICAgVmFhcGlQaWN0dXJlRmFjdG9yeSgpOworKyNlbmRpZiAgLy8gQlVJTERGTEFHKFNVUFBP UlRfVkFBUElfT1ZFUl9YMTEpCisgCisgICBWYWFwaVBpY3R1cmVGYWN0b3J5KGNvbnN0IFZhYXBp UGljdHVyZUZhY3RvcnkmKSA9IGRlbGV0ZTsKKyAgIFZhYXBpUGljdHVyZUZhY3RvcnkmIG9wZXJh dG9yPShjb25zdCBWYWFwaVBpY3R1cmVGYWN0b3J5JikgPSBkZWxldGU7CitAQCAtODUsNiArODks MTEgQEAgY2xhc3MgTUVESUFfR1BVX0VYUE9SVCBWYWFwaVBpY3R1cmVGYWN0bworIAorICAgQ3Jl YXRlUGljdHVyZUNCIGNyZWF0ZV9waWN0dXJlX2NiXzsKKyAgIGJvb2wgbmVlZHNfdnBwX2Zvcl9k b3dubG9hZGluZ18gPSBmYWxzZTsKKysKKysjaWYgQlVJTERGTEFHKFNVUFBPUlRfVkFBUElfT1ZF Ul9YMTEpCisrICAvLyBTZWUgY29tbWVudCBpbiBgVmFhcGlXcmFwcGVyOjpNYXlVc2VWYWFwaU92 ZXJYMTEoKWAuCisrICBhYnNsOjpvcHRpb25hbDxib29sPiBtYXlfdXNlX3ZhYXBpX292ZXJfeDEx XzsKKysjZW5kaWYgIC8vIEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDExKQorIH07Cisg CisgfSAgLy8gbmFtZXNwYWNlIG1lZGlhCitkaWZmIC11cCBjaHJvbWl1bS0xMDguMC41MzU5LjEy NC9tZWRpYS9ncHUvdmFhcGkvdmFhcGlfcGljdHVyZV9uYXRpdmVfcGl4bWFwX296b25lLmNjLndh eWxhbmQtdmFhcGkgY2hyb21pdW0tMTA4LjAuNTM1OS4xMjQvbWVkaWEvZ3B1L3ZhYXBpL3ZhYXBp X3BpY3R1cmVfbmF0aXZlX3BpeG1hcF9vem9uZS5jYworZGlmZiAtdXAgY2hyb21pdW0tMTA4LjAu NTM1OS4xMjQvbWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3ZpZGVvX2RlY29kZV9hY2NlbGVyYXRvci5j Yy53YXlsYW5kLXZhYXBpIGNocm9taXVtLTEwOC4wLjUzNTkuMTI0L21lZGlhL2dwdS92YWFwaS92 YWFwaV92aWRlb19kZWNvZGVfYWNjZWxlcmF0b3IuY2MKKy0tLSBjaHJvbWl1bS0xMDguMC41MzU5 LjEyNC9tZWRpYS9ncHUvdmFhcGkvdmFhcGlfdmlkZW9fZGVjb2RlX2FjY2VsZXJhdG9yLmNjLndh eWxhbmQtdmFhcGkJMjAyMy0wMS0wNSAxMDoxMzowOC4yOTA0MDMyNTEgKzAxMDAKKysrKyBjaHJv bWl1bS0xMDguMC41MzU5LjEyNC9tZWRpYS9ncHUvdmFhcGkvdmFhcGlfdmlkZW9fZGVjb2RlX2Fj Y2VsZXJhdG9yLmNjCTIwMjMtMDEtMDUgMTA6MTM6MDguMjkyNDAzMjcxICswMTAwCitAQCAtMTg0 LDcgKzE4NCwxMiBAQCBib29sIFZhYXBpVmlkZW9EZWNvZGVBY2NlbGVyYXRvcjo6SW5pdGlhCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50KiBjbGll bnQpIHsKKyAgIERDSEVDSyh0YXNrX3J1bm5lcl8tPkJlbG9uZ3NUb0N1cnJlbnRUaHJlYWQoKSk7 CisgCisrI2lmIEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDExKQorKyAgdmFhcGlfcGlj dHVyZV9mYWN0b3J5XyA9CisrICAgICAgc3RkOjptYWtlX3VuaXF1ZTxWYWFwaVBpY3R1cmVGYWN0 b3J5PihWYWFwaVdyYXBwZXI6Ok1heVVzZVZhYXBpT3ZlclgxMSgpKTsKKysjZWxzZQorICAgdmFh cGlfcGljdHVyZV9mYWN0b3J5XyA9IHN0ZDo6bWFrZV91bmlxdWU8VmFhcGlQaWN0dXJlRmFjdG9y eT4oKTsKKysjZW5kaWYgIC8vIEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDExKQorIAor ICAgaWYgKGNvbmZpZy5pc19lbmNyeXB0ZWQoKSkgeworICAgICBOT1RSRUFDSEVEKCkgPDwgIkVu Y3J5cHRlZCBzdHJlYW1zIGFyZSBub3Qgc3VwcG9ydGVkIGZvciB0aGlzIFZEQSI7CitAQCAtMTIx MCw3ICsxMjE1LDcgQEAgVmFhcGlWaWRlb0RlY29kZUFjY2VsZXJhdG9yOjpHZXRTdXBwb3J0ZQor IAorIFZhYXBpVmlkZW9EZWNvZGVBY2NlbGVyYXRvcjo6QnVmZmVyQWxsb2NhdGlvbk1vZGUKKyBW YWFwaVZpZGVvRGVjb2RlQWNjZWxlcmF0b3I6OkRlY2lkZUJ1ZmZlckFsbG9jYXRpb25Nb2RlKCkg eworLSNpZiBCVUlMREZMQUcoVVNFX1ZBQVBJX1gxMSkKKysjaWYgQlVJTERGTEFHKFNVUFBPUlRf VkFBUElfT1ZFUl9YMTEpCisgICAvLyBUaGUgSU1QT1JUIG1vZGUgaXMgdXNlZCBmb3IgQW5kcm9p ZCBvbiBDaHJvbWUgT1MsIHNvIHRoaXMgZG9lc24ndCBhcHBseQorICAgLy8gaGVyZS4KKyAgIERD SEVDS19ORShvdXRwdXRfbW9kZV8sIFZpZGVvRGVjb2RlQWNjZWxlcmF0b3I6OkNvbmZpZzo6T3V0 cHV0TW9kZTo6SU1QT1JUKTsKK2RpZmYgLXVwIGNocm9taXVtLTEwOC4wLjUzNTkuMTI0L21lZGlh L2dwdS92YWFwaS92YWFwaV92aWRlb19kZWNvZGVfYWNjZWxlcmF0b3JfdW5pdHRlc3QuY2Mud2F5 bGFuZC12YWFwaSBjaHJvbWl1bS0xMDguMC41MzU5LjEyNC9tZWRpYS9ncHUvdmFhcGkvdmFhcGlf dmlkZW9fZGVjb2RlX2FjY2VsZXJhdG9yX3VuaXR0ZXN0LmNjCistLS0gY2hyb21pdW0tMTA4LjAu NTM1OS4xMjQvbWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3ZpZGVvX2RlY29kZV9hY2NlbGVyYXRvcl91 bml0dGVzdC5jYy53YXlsYW5kLXZhYXBpCTIwMjItMTItMTQgMDE6Mzk6NTMuMDAwMDAwMDAwICsw MTAwCisrKysgY2hyb21pdW0tMTA4LjAuNTM1OS4xMjQvbWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3Zp ZGVvX2RlY29kZV9hY2NlbGVyYXRvcl91bml0dGVzdC5jYwkyMDIzLTAxLTA1IDEwOjM4OjE1LjE3 NjYzMTUwNyArMDEwMAorQEAgLTM4LDYgKzM4LDExIEBAIHN0cnVjdCBUZXN0UGFyYW1zIHsKKyAg IGJvb2wgZGVjb2RlX3VzaW5nX2NsaWVudF9waWN0dXJlX2J1ZmZlcnM7CisgfTsKKyAKKysjaWYg QlVJTERGTEFHKFNVUFBPUlRfVkFBUElfT1ZFUl9YMTEpCisrLy8gVE9ETzogQWRkIGl0IGluIFRl c3RQYXJhbXMgdG8gY292ZXIgT3pvbmUvV2F5bGFuZC4KKytib29sIGtNYXlVc2VWYWFwaU92ZXJY MTEgPSB0cnVlOworKyNlbmRpZiAgLy8gQlVJTERGTEFHKFNVUFBPUlRfVkFBUElfT1ZFUl9YMTEp CisrCisgY29uc3RleHByIGludDMyX3Qga0JpdHN0cmVhbUlkID0gMTIzOworIGNvbnN0ZXhwciBz aXplX3Qga0lucHV0U2l6ZSA9IDI1NjsKKyAKK0BAIC0xMzAsNyArMTM1LDEzIEBAIGNsYXNzIE1v Y2tWYWFwaVBpY3R1cmUgOiBwdWJsaWMgVmFhcGlQaWMKKyAKKyBjbGFzcyBNb2NrVmFhcGlQaWN0 dXJlRmFjdG9yeSA6IHB1YmxpYyBWYWFwaVBpY3R1cmVGYWN0b3J5IHsKKyAgcHVibGljOgorKyNp ZiBCVUlMREZMQUcoU1VQUE9SVF9WQUFQSV9PVkVSX1gxMSkKKysgIGV4cGxpY2l0IE1vY2tWYWFw aVBpY3R1cmVGYWN0b3J5KGFic2w6Om9wdGlvbmFsPGJvb2w+IG1heV91c2VfdmFhcGlfb3Zlcl94 MTEpCisrICAgICAgOiBWYWFwaVBpY3R1cmVGYWN0b3J5KG1heV91c2VfdmFhcGlfb3Zlcl94MTEp IHt9CisrI2Vsc2UKKyAgIE1vY2tWYWFwaVBpY3R1cmVGYWN0b3J5KCkgPSBkZWZhdWx0OworKyNl bmRpZiAgLy8gQlVJTERGTEFHKFNVUFBPUlRfVkFBUElfT1ZFUl9YMTEpCisrCisgICB+TW9ja1Zh YXBpUGljdHVyZUZhY3RvcnkoKSBvdmVycmlkZSA9IGRlZmF1bHQ7CisgCisgICBNT0NLX01FVEhP RDMoTW9ja0NyZWF0ZVZhYXBpUGljdHVyZSwKK0BAIC0xNjQsNyArMTc1LDEyIEBAIGNsYXNzIFZh YXBpVmlkZW9EZWNvZGVBY2NlbGVyYXRvclRlc3QgOgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYm9vbCBjYW5fYmluZF90b19zYW1wbGVyKSB7IHJldHVybiB0cnVlOyB9KSks CisgICAgICAgICBkZWNvZGVyX3RocmVhZF8oIlZhYXBpVmlkZW9EZWNvZGVBY2NlbGVyYXRvclRl c3RUaHJlYWQiKSwKKyAgICAgICAgIG1vY2tfZGVjb2Rlcl8obmV3IDo6dGVzdGluZzo6U3RyaWN0 TW9jazxNb2NrQWNjZWxlcmF0ZWRWaWRlb0RlY29kZXI+KSwKKysjaWYgQlVJTERGTEFHKFNVUFBP UlRfVkFBUElfT1ZFUl9YMTEpCisrICAgICAgICBtb2NrX3ZhYXBpX3BpY3R1cmVfZmFjdG9yeV8o CisrICAgICAgICAgICAgbmV3IE1vY2tWYWFwaVBpY3R1cmVGYWN0b3J5KGtNYXlVc2VWYWFwaU92 ZXJYMTEpKSwKKysjZWxzZQorICAgICAgICAgbW9ja192YWFwaV9waWN0dXJlX2ZhY3RvcnlfKG5l dyBNb2NrVmFhcGlQaWN0dXJlRmFjdG9yeSgpKSwKKysjZW5kaWYgIC8vIEJVSUxERkxBRyhTVVBQ T1JUX1ZBQVBJX09WRVJfWDExKQorICAgICAgICAgbW9ja192YWFwaV93cmFwcGVyXyhuZXcgTW9j a1ZhYXBpV3JhcHBlcihWYWFwaVdyYXBwZXI6OmtEZWNvZGUpKSwKKyAgICAgICAgIG1vY2tfdnBw X3ZhYXBpX3dyYXBwZXJfKG5ldyBNb2NrVmFhcGlXcmFwcGVyKFZhYXBpV3JhcHBlcjo6a0RlY29k ZSkpLAorICAgICAgICAgd2Vha19wdHJfZmFjdG9yeV8odGhpcykgeworQEAgLTQyMCwxNCArNDM2 LDE2IEBAIFRFU1RfUChWYWFwaVZpZGVvRGVjb2RlQWNjZWxlcmF0b3JUZXN0LAorICAgICAgICAg ICAgIG1vY2tfdmFhcGlfcGljdHVyZV9mYWN0b3J5Xy0+R2V0VmFhcGlJbXBsZW1lbnRhdGlvbigK KyAgICAgICAgICAgICAgICAgZ2w6OmtHTEltcGxlbWVudGF0aW9uRUdMR0xFUzIpKTsKKyAKKy0j aWYgQlVJTERGTEFHKFVTRV9WQUFQSV9YMTEpCistICBFWFBFQ1RfRVEoVmFhcGlQaWN0dXJlRmFj dG9yeTo6a1ZhYXBpSW1wbGVtZW50YXRpb25BbmdsZSwKKy0gICAgICAgICAgICBtb2NrX3ZhYXBp X3BpY3R1cmVfZmFjdG9yeV8tPkdldFZhYXBpSW1wbGVtZW50YXRpb24oCistICAgICAgICAgICAg ICAgIGdsOjprR0xJbXBsZW1lbnRhdGlvbkVHTEFOR0xFKSk7CistICBFWFBFQ1RfRVEoVmFhcGlQ aWN0dXJlRmFjdG9yeTo6a1ZhYXBpSW1wbGVtZW50YXRpb25YMTEsCistICAgICAgICAgICAgbW9j a192YWFwaV9waWN0dXJlX2ZhY3RvcnlfLT5HZXRWYWFwaUltcGxlbWVudGF0aW9uKAorLSAgICAg ICAgICAgICAgICBnbDo6a0dMSW1wbGVtZW50YXRpb25EZXNrdG9wR0wpKTsKKy0jZWxpZiBkZWZp bmVkKFVTRV9PWk9ORSkKKysjaWYgQlVJTERGTEFHKFNVUFBPUlRfVkFBUElfT1ZFUl9YMTEpCisr ICBpZiAoa01heVVzZVZhYXBpT3ZlclgxMSkgeworKyAgICBFWFBFQ1RfRVEoVmFhcGlQaWN0dXJl RmFjdG9yeTo6a1ZhYXBpSW1wbGVtZW50YXRpb25BbmdsZSwKKysgICAgICAgICAgICAgIG1vY2tf dmFhcGlfcGljdHVyZV9mYWN0b3J5Xy0+R2V0VmFhcGlJbXBsZW1lbnRhdGlvbigKKysgICAgICAg ICAgICAgICAgICBnbDo6a0dMSW1wbGVtZW50YXRpb25FR0xBTkdMRSkpOworKyAgICBFWFBFQ1Rf RVEoVmFhcGlQaWN0dXJlRmFjdG9yeTo6a1ZhYXBpSW1wbGVtZW50YXRpb25YMTEsCisrICAgICAg ICAgICAgICBtb2NrX3ZhYXBpX3BpY3R1cmVfZmFjdG9yeV8tPkdldFZhYXBpSW1wbGVtZW50YXRp b24oCisrICAgICAgICAgICAgICAgICAgZ2w6OmtHTEltcGxlbWVudGF0aW9uRGVza3RvcEdMKSk7 CisrICB9CisrI2Vsc2UKKyAgIEVYUEVDVF9FUShWYWFwaVBpY3R1cmVGYWN0b3J5OjprVmFhcGlJ bXBsZW1lbnRhdGlvbkRybSwKKyAgICAgICAgICAgICBtb2NrX3ZhYXBpX3BpY3R1cmVfZmFjdG9y eV8tPkdldFZhYXBpSW1wbGVtZW50YXRpb24oCisgICAgICAgICAgICAgICAgIGdsOjprR0xJbXBs ZW1lbnRhdGlvbkVHTEFOR0xFKSk7CitkaWZmIC11cCBjaHJvbWl1bS0xMDguMC41MzU5LjEyNC9t ZWRpYS9ncHUvdmFhcGkvdmFhcGlfd3JhcHBlci5jYy53YXlsYW5kLXZhYXBpIGNocm9taXVtLTEw OC4wLjUzNTkuMTI0L21lZGlhL2dwdS92YWFwaS92YWFwaV93cmFwcGVyLmNjCistLS0gY2hyb21p dW0tMTA4LjAuNTM1OS4xMjQvbWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3dyYXBwZXIuY2Mud2F5bGFu ZC12YWFwaQkyMDIyLTEyLTE0IDAxOjM5OjUzLjAwMDAwMDAwMCArMDEwMAorKysrIGNocm9taXVt LTEwOC4wLjUzNTkuMTI0L21lZGlhL2dwdS92YWFwaS92YWFwaV93cmFwcGVyLmNjCTIwMjMtMDEt MDUgMTA6NDE6NDEuNTk1NjQ4MjI3ICswMTAwCitAQCAtNjIsNyArNjIsNyBAQAorICNpbmNsdWRl ICJ1aS9nbC9nbF9iaW5kaW5ncy5oIgorICNpbmNsdWRlICJ1aS9nbC9nbF9pbXBsZW1lbnRhdGlv bi5oIgorIAorLSNpZiBCVUlMREZMQUcoVVNFX1ZBQVBJX1gxMSkKKysjaWYgQlVJTERGTEFHKFNV UFBPUlRfVkFBUElfT1ZFUl9YMTEpCisgdHlwZWRlZiBYSUQgRHJhd2FibGU7CisgCisgZXh0ZXJu ICJDIiB7CitAQCAtNzAsNyArNzAsNyBAQCBleHRlcm4gIkMiIHsKKyB9CisgCisgI2luY2x1ZGUg InVpL2dmeC94L2Nvbm5lY3Rpb24uaCIgIC8vIG5vZ25jaGVjaworLSNlbmRpZiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBCVUlMREZMQUcoVVNFX1ZBQVBJX1gxMSkKKysjZW5kaWYgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gQlVJTERGTEFHKFNVUFBPUlRfVkFBUElfT1ZFUl9Y MTEpIAorIAorICNpZiBkZWZpbmVkKFVTRV9PWk9ORSkKKyAjaW5jbHVkZSAidWkvb3pvbmUvcHVi bGljL296b25lX3BsYXRmb3JtLmgiCitAQCAtODQsMTQgKzg0LDE0IEBAIHVzaW5nIG1lZGlhX2dw dV92YWFwaTo6a01vZHVsZVZhX3Byb3Q7CisgCisgdXNpbmcgbWVkaWFfZ3B1X3ZhYXBpOjprTW9k dWxlVmE7CisgdXNpbmcgbWVkaWFfZ3B1X3ZhYXBpOjprTW9kdWxlVmFfZHJtOworLSNpZiBCVUlM REZMQUcoVVNFX1ZBQVBJX1gxMSkKKysjaWYgQlVJTERGTEFHKFNVUFBPUlRfVkFBUElfT1ZFUl9Y MTEpCisgdXNpbmcgbWVkaWFfZ3B1X3ZhYXBpOjprTW9kdWxlVmFfeDExOworLSNlbmRpZiAgLy8g QlVJTERGTEFHKFVTRV9WQUFQSV9YMTEpCisrI2VuZGlmICAvLyBCVUlMREZMQUcoU1VQUE9SVF9W QUFQSV9PVkVSX1gxMSkKKyB1c2luZyBtZWRpYV9ncHVfdmFhcGk6OkluaXRpYWxpemVTdHViczsK KyB1c2luZyBtZWRpYV9ncHVfdmFhcGk6OklzVmFJbml0aWFsaXplZDsKKy0jaWYgQlVJTERGTEFH KFVTRV9WQUFQSV9YMTEpCisrI2lmIEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDExKQor IHVzaW5nIG1lZGlhX2dwdV92YWFwaTo6SXNWYV94MTFJbml0aWFsaXplZDsKKy0jZW5kaWYgIC8v IEJVSUxERkxBRyhVU0VfVkFBUElfWDExKQorKyNlbmRpZiAgLy8gQlVJTERGTEFHKFNVUFBPUlRf VkFBUElfT1ZFUl9YMTEpCisgdXNpbmcgbWVkaWFfZ3B1X3ZhYXBpOjpJc1ZhX2RybUluaXRpYWxp emVkOworIHVzaW5nIG1lZGlhX2dwdV92YWFwaTo6U3R1YlBhdGhNYXA7CisgCitAQCAtNjY4LDYg KzY2OCwxMiBAQCBjbGFzcyBWQURpc3BsYXlTdGF0ZSB7CisgCisgICB2b2lkIFNldERybUZkKGJh c2U6OlBsYXRmb3JtRmlsZSBmZCkgeyBkcm1fZmRfLnJlc2V0KEhBTkRMRV9FSU5UUihkdXAoZmQp KSk7IH0KKyAKKysjaWYgQlVJTERGTEFHKFNVUFBPUlRfVkFBUElfT1ZFUl9YMTEpCisrICBhYnNs OjpvcHRpb25hbDxib29sPiBNYXlVc2VWYWFwaU92ZXJYMTEoKSBjb25zdCB7CisrICAgIHJldHVy biBtYXlfdXNlX3ZhYXBpX292ZXJfeDExXzsKKysgIH0KKysjZW5kaWYKKysKKyAgcHJpdmF0ZToK KyAgIGZyaWVuZCBjbGFzcyBiYXNlOjpOb0Rlc3RydWN0b3I8VkFEaXNwbGF5U3RhdGU+OworIAor QEAgLTY5MCw2ICs2OTYsMTMgQEAgY2xhc3MgVkFEaXNwbGF5U3RhdGUgeworICAgLy8gRHJtIGZk IHVzZWQgdG8gb2J0YWluIGFjY2VzcyB0byB0aGUgZHJpdmVyIGludGVyZmFjZSBieSBWQS4KKyAg IGJhc2U6OlNjb3BlZEZEIGRybV9mZF87CisgCisrI2lmIEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJ X09WRVJfWDExKQorKyAgLy8gV2hldGhlciB3ZSdsbCBiZSBwb3NzaWJseSB1c2luZyBWQS1BUEkg b3ZlciBPem9uZS9YMTEuIFRoaXMgc2hvdWxkIG9ubHkgYmUKKysgIC8vIHNldCAoaWYgYXQgYWxs KSBkdXJpbmcgdGhlIHByZS1zYW5kYm94IGluaXRpYWxpemF0aW9uLiBJZiBhYnNsOjpudWxsb3B0 LAorKyAgLy8gYWxsIGNhbGxzIHRvIEluaXRpYWxpemUoKSB3aWxsIHJldHVybiBmYWxzZSBpbW1l ZGlhdGVseS4KKysgIGFic2w6Om9wdGlvbmFsPGJvb2w+IG1heV91c2VfdmFhcGlfb3Zlcl94MTFf OworKyNlbmRpZgorKworICAgLy8gVGhlIFZBRGlzcGxheSBoYW5kbGUuIFZhbGlkIGJldHdlZW4g SW5pdGlhbGl6ZSgpIGFuZCBEZWluaXRpYWxpemUoKS4KKyAgIFZBRGlzcGxheSB2YV9kaXNwbGF5 XzsKKyAKK0BAIC03MDgsNiArNzIxLDE1IEBAIFZBRGlzcGxheVN0YXRlKiBWQURpc3BsYXlTdGF0 ZTo6R2V0KCkgeworIAorIC8vIHN0YXRpYworIHZvaWQgVkFEaXNwbGF5U3RhdGU6OlByZVNhbmRi b3hJbml0aWFsaXphdGlvbigpIHsKKysjaWYgQlVJTERGTEFHKFNVUFBPUlRfVkFBUElfT1ZFUl9Y MTEpCisrICBpZiAodWk6Ok96b25lUGxhdGZvcm06OklzSW5pdGlhbGl6ZWQoKSkgeworKyAgICBW QURpc3BsYXlTdGF0ZTo6R2V0KCktPm1heV91c2VfdmFhcGlfb3Zlcl94MTFfID0KKysgICAgICAg IHVpOjpPem9uZVBsYXRmb3JtOjpHZXRJbnN0YW5jZSgpCisrICAgICAgICAgICAgLT5HZXRQbGF0 Zm9ybVByb3BlcnRpZXMoKQorKyAgICAgICAgICAgIC5zdXBwb3J0c192YWFwaV94MTE7CisrICB9 CisrI2VuZGlmCisrCisgICBjb25zdGV4cHIgY2hhciBrUmVuZGVyTm9kZUZpbGVQYXR0ZXJuW10g PSAiL2Rldi9kcmkvcmVuZGVyRCVkIjsKKyAgIC8vIFRoaXMgbG9vcCBlbmRzIG9uIGVpdGhlciB0 aGUgZmlyc3QgY2FyZCB0aGF0IGRvZXMgbm90IGV4aXN0IG9yIHRoZSBmaXJzdAorICAgLy8gcmVu ZGVyIG5vZGUgdGhhdCBpcyBub3QgdmdlbS4KK0BAIC03NDAsMjAgKzc2MiwxOCBAQCBWQURpc3Bs YXlTdGF0ZTo6VkFEaXNwbGF5U3RhdGUoKQorIGJvb2wgVkFEaXNwbGF5U3RhdGU6OkluaXRpYWxp emUoKSB7CisgICBiYXNlOjpBdXRvTG9jayBhdXRvX2xvY2sodmFfbG9ja18pOworIAorLSNpZiBk ZWZpbmVkKFVTRV9PWk9ORSkgJiYgQlVJTERGTEFHKElTX0xJTlVYKQorLSAgLy8gVE9ETyhjcmJ1 Zy5jb20vMTExNjcwMSk6IGFkZCB2YWFwaSBzdXBwb3J0IGZvciBvdGhlciBPem9uZSBwbGF0Zm9y bXMgb24KKy0gIC8vIExpbnV4LiBTZWUgY29tbWVudCBpbiBPem9uZVBsYXRmb3JtOjpQbGF0Zm9y bVByb3BlcnRpZXM6OnN1cHBvcnRzX3ZhYXBpCistICAvLyBmb3IgbW9yZSBkZXRhaWxzLiBUaGlz IHdpbGwgYWxzbyByZXF1aXJlIHJldmlzaXRpbmcgZXZlcnl0aGluZyB0aGF0J3MKKy0gIC8vIGd1 YXJkZWQgYnkgVVNFX1ZBQVBJX1gxMS4gRm9yIGV4YW1wbGUsIGlmIFVTRV9WQUFQSV9YMTEgaXMg dHJ1ZSwgYnV0IHRoZQorLSAgLy8gdXNlciBjaG9vc2VzIHRoZSBXYXlsYW5kIGJhY2tlbmQgZm9y IE96b25lIGF0IHJ1bnRpbWUsIHRoZW4gbWFueSB0aGluZ3MgKGlmCistICAvLyBub3QgYWxsKSB0 aGF0IHdlIGRvIGZvciBYMTEgd29uJ3QgYXBwbHkuCistICBpZiAoIXVpOjpPem9uZVBsYXRmb3Jt OjpHZXRJbnN0YW5jZSgpLT5HZXRQbGF0Zm9ybVByb3BlcnRpZXMoKS5zdXBwb3J0c192YWFwaSkK KysjaWYgQlVJTERGTEFHKFNVUFBPUlRfVkFBUElfT1ZFUl9YMTEpCisrICBpZiAoIW1heV91c2Vf dmFhcGlfb3Zlcl94MTFfLmhhc192YWx1ZSgpKQorICAgICByZXR1cm4gZmFsc2U7CisgI2VuZGlm CisgCisgICBib29sIGxpYnJhcmllc19pbml0aWFsaXplZCA9IElzVmFJbml0aWFsaXplZCgpICYm IElzVmFfZHJtSW5pdGlhbGl6ZWQoKTsKKy0jaWYgQlVJTERGTEFHKFVTRV9WQUFQSV9YMTEpCist ICBsaWJyYXJpZXNfaW5pdGlhbGl6ZWQgPSBsaWJyYXJpZXNfaW5pdGlhbGl6ZWQgJiYgSXNWYV94 MTFJbml0aWFsaXplZCgpOworKyNpZiBCVUlMREZMQUcoU1VQUE9SVF9WQUFQSV9PVkVSX1gxMSkK KysgIC8vIEluaXRpYWxpemUgVkEtQVBJIFgxMSBkaXNwbGF5IGJhY2tlbmQgZm9yIExpbnV4IE96 b25lL1gxMS4KKysgIC8vIFNlZSBjb21tZW50IGluIE96b25lUGxhdGZvcm06OlBsYXRmb3JtUHJv cGVydGllczo6c3VwcG9ydHNfdmFhcGlfeDExIGZvcgorKyAgLy8gbW9yZSBkZXRhaWxzLgorKyAg aWYgKG1heV91c2VfdmFhcGlfb3Zlcl94MTFfLnZhbHVlKCkpCisrICAgIGxpYnJhcmllc19pbml0 aWFsaXplZCA9IGxpYnJhcmllc19pbml0aWFsaXplZCAmJiBJc1ZhX3gxMUluaXRpYWxpemVkKCk7 CisgI2VuZGlmCisgICBpZiAoIWxpYnJhcmllc19pbml0aWFsaXplZCkKKyAgICAgcmV0dXJuIGZh bHNlOworQEAgLTc2OCw3ICs3ODgsNyBAQCBib29sIFZBRGlzcGxheVN0YXRlOjpJbml0aWFsaXpl KCkgeworICAgcmV0dXJuIHN1Y2Nlc3M7CisgfQorIAorLSNpZiBCVUlMREZMQUcoVVNFX1ZBQVBJ X1gxMSkKKysjaWYgQlVJTERGTEFHKFNVUFBPUlRfVkFBUElfT1ZFUl9YMTEpCisgCisgYWJzbDo6 b3B0aW9uYWw8VkFEaXNwbGF5PiBHZXRWQURpc3BsYXlTdGF0ZVgxMShjb25zdCBiYXNlOjpTY29w ZWRGRCYgZHJtX2ZkKSB7CisgICBzd2l0Y2ggKGdsOjpHZXRHTEltcGxlbWVudGF0aW9uKCkpIHsK K0BAIC03OTYsMTMgKzgxNiwxOSBAQCBhYnNsOjpvcHRpb25hbDxWQURpc3BsYXk+IEdldFZBRGlz cGxheVN0CisgICB9CisgfQorIAorLSNlbHNlCisrI2VuZGlmICAvLyBCVUlMREZMQUcoU1VQUE9S VF9WQUFQSV9PVkVSX1gxMSkKKyAKKyBhYnNsOjpvcHRpb25hbDxWQURpc3BsYXk+IEdldFZBRGlz cGxheVN0YXRlKGNvbnN0IGJhc2U6OlNjb3BlZEZEJiBkcm1fZmQpIHsKKyAgIHN3aXRjaCAoZ2w6 OkdldEdMSW1wbGVtZW50YXRpb24oKSkgeworICAgICBjYXNlIGdsOjprR0xJbXBsZW1lbnRhdGlv bkVHTEdMRVMyOgorKyNpZiBCVUlMREZMQUcoSVNfQ0hST01FT1MpCisrICAgIC8vIEdldFZBRGlz cGxheVN0YXRlKCkgc2hvdWxkIG5vdCBnZXQgY2FsbGVkIG9uIExpbnV4IHdpdGggT3pvbmUvWDEx CisrICAgIC8vIChHZXRWQURpc3BsYXlTdGF0ZVgxMSgpIHNob3VsZCBnZXQgY2FsbGVkIGluc3Rl YWQpLCBhbmQgd2UgaGF2ZW4ndCB0cmllZAorKyAgICAvLyBWQS1BUEkgZGVjb2Rpbmcgb24gTGlu dXggd2l0aCBPem9uZS9XYXlsYW5kIGFuZCBhbnl0aGluZyBvdGhlciB0aGFuCisrICAgIC8vIG5h dGl2ZSBFR0wvR0xFUzIuCisgICAgIGNhc2UgZ2w6OmtHTEltcGxlbWVudGF0aW9uRUdMQU5HTEU6 CisgICAgIGNhc2UgZ2w6OmtHTEltcGxlbWVudGF0aW9uTm9uZToKKysjZW5kaWYKKyAgICAgICBy ZXR1cm4gdmFHZXREaXNwbGF5RFJNKGRybV9mZC5nZXQoKSk7CisgICAgIGRlZmF1bHQ6CisgICAg ICAgTE9HKFdBUk5JTkcpIDw8ICJWQUFQSSB2aWRlbyBhY2NlbGVyYXRpb24gbm90IGF2YWlsYWJs ZSBmb3IgIgorQEAgLTgxMiwxOCArODM4LDIzIEBAIGFic2w6Om9wdGlvbmFsPFZBRGlzcGxheT4g R2V0VkFEaXNwbGF5U3QKKyAgIH0KKyB9CisgCistI2VuZGlmICAvLyBCVUlMREZMQUcoVVNFX1ZB QVBJX1gxMSkKKy0KKyBib29sIFZBRGlzcGxheVN0YXRlOjpJbml0aWFsaXplVmFEaXNwbGF5X0xv Y2tlZCgpIHsKKy0gIGFic2w6Om9wdGlvbmFsPFZBRGlzcGxheT4gZGlzcGxheSA9CistI2lmIEJV SUxERkxBRyhVU0VfVkFBUElfWDExKQorLSAgICAgIEdldFZBRGlzcGxheVN0YXRlWDExKGRybV9m ZF8pOworLSNlbHNlCistICAgICAgR2V0VkFEaXNwbGF5U3RhdGUoZHJtX2ZkXyk7CistI2VuZGlm CisrICBhYnNsOjpvcHRpb25hbDxWQURpc3BsYXk+IGRpc3BsYXk7CisgCistICBpZiAoIWRpc3Bs YXkpCistICAgIHJldHVybiBmYWxzZTsKKysjaWYgQlVJTERGTEFHKFNVUFBPUlRfVkFBUElfT1ZF Ul9YMTEpCisrICBEQ0hFQ0sobWF5X3VzZV92YWFwaV9vdmVyX3gxMV8uaGFzX3ZhbHVlKCkpOwor KyAgaWYgKG1heV91c2VfdmFhcGlfb3Zlcl94MTFfLnZhbHVlKCkpIHsKKysgICAgZGlzcGxheSA9 IEdldFZBRGlzcGxheVN0YXRlWDExKGRybV9mZF8pOworKyAgICBpZiAoIWRpc3BsYXkpCisrICAg ICAgcmV0dXJuIGZhbHNlOworKyAgfQorKyNlbmRpZiAgLy8gQlVJTERGTEFHKFNVUFBPUlRfVkFB UElfT1ZFUl9YMTEpCisrCisrICBpZiAoIWRpc3BsYXkpIHsKKysgICAgZGlzcGxheSA9IEdldFZB RGlzcGxheVN0YXRlKGRybV9mZF8pOworKyAgICBpZiAoIWRpc3BsYXkpCisrICAgICAgcmV0dXJu IGZhbHNlOworKyAgfQorIAorICAgdmFfZGlzcGxheV8gPSAqZGlzcGxheTsKKyAgIGlmICghdmFE aXNwbGF5SXNWYWxpZCh2YV9kaXNwbGF5XykpIHsKK0BAIC0xNjU2LDYgKzE2ODcsMTMgQEAgc2Nv cGVkX3JlZnB0cjxWYWFwaVdyYXBwZXI+IFZhYXBpV3JhcHBlcgorICAgICAgICAgICAgICAgICBl bmZvcmNlX3NlcXVlbmNlX2FmZmluaXR5KTsKKyB9CisgCisrI2lmIEJVSUxERkxBRyhTVVBQT1JU X1ZBQVBJX09WRVJfWDExKQorKy8vIHN0YXRpYworK2Fic2w6Om9wdGlvbmFsPGJvb2w+IFZhYXBp V3JhcHBlcjo6TWF5VXNlVmFhcGlPdmVyWDExKCkgeworKyAgcmV0dXJuIFZBRGlzcGxheVN0YXRl OjpHZXQoKS0+TWF5VXNlVmFhcGlPdmVyWDExKCk7CisrfQorKyNlbmRpZgorKworIC8vIHN0YXRp YworIHN0ZDo6dmVjdG9yPFNWQ1NjYWxhYmlsaXR5TW9kZT4gVmFhcGlXcmFwcGVyOjpHZXRTdXBw b3J0ZWRTY2FsYWJpbGl0eU1vZGVzKAorICAgICBWaWRlb0NvZGVjUHJvZmlsZSBtZWRpYV9wcm9m aWxlLAorQEAgLTI2NjUsMTIgKzI3MDMsMTMgQEAgYm9vbCBWYWFwaVdyYXBwZXI6Ok1hcEFuZENv cHlBbmRFeGVjdXRlKAorICAgcmV0dXJuIEV4ZWN1dGVfTG9ja2VkKHZhX3N1cmZhY2VfaWQsIHZh X2J1ZmZlcl9pZHMpOworIH0KKyAKKy0jaWYgQlVJTERGTEFHKFVTRV9WQUFQSV9YMTEpCisrI2lm IEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDExKQorIGJvb2wgVmFhcGlXcmFwcGVyOjpQ dXRTdXJmYWNlSW50b1BpeG1hcChWQVN1cmZhY2VJRCB2YV9zdXJmYWNlX2lkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MTE6OlBpeG1hcCB4X3BpeG1hcCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Z4OjpTaXplIGRlc3Rfc2l6 ZSkgeworICAgQ0hFQ0soIWVuZm9yY2Vfc2VxdWVuY2VfYWZmaW5pdHlfIHx8CisgICAgICAgICBz ZXF1ZW5jZV9jaGVja2VyXy5DYWxsZWRPblZhbGlkU2VxdWVuY2UoKSk7CisrICBDSEVDSyhNYXlV c2VWYWFwaU92ZXJYMTEoKS52YWx1ZV9vcihmYWxzZSkpOworICAgYmFzZTo6QXV0b0xvY2tNYXli ZSBhdXRvX2xvY2sodmFfbG9ja18uZ2V0KCkpOworIAorICAgVkFTdGF0dXMgdmFfcmVzID0gdmFT eW5jU3VyZmFjZSh2YV9kaXNwbGF5XywgdmFfc3VyZmFjZV9pZCk7CitAQCAtMjY4NCw3ICsyNzIz LDcgQEAgYm9vbCBWYWFwaVdyYXBwZXI6OlB1dFN1cmZhY2VJbnRvUGl4bWFwKAorICAgVkFfU1VD Q0VTU19PUl9SRVRVUk4odmFfcmVzLCBWYWFwaUZ1bmN0aW9uczo6a1ZBUHV0U3VyZmFjZSwgZmFs c2UpOworICAgcmV0dXJuIHRydWU7CisgfQorLSNlbmRpZiAgLy8gQlVJTERGTEFHKFVTRV9WQUFQ SV9YMTEpCisrI2VuZGlmICAvLyBCVUlMREZMQUcoU1VQUE9SVF9WQUFQSV9PVkVSX1gxMSkKKyAK KyBzdGQ6OnVuaXF1ZV9wdHI8U2NvcGVkVkFJbWFnZT4gVmFhcGlXcmFwcGVyOjpDcmVhdGVWYUlt YWdlKAorICAgICBWQVN1cmZhY2VJRCB2YV9zdXJmYWNlX2lkLAorQEAgLTMwODYsNyArMzEyNSw3 IEBAIHZvaWQgVmFhcGlXcmFwcGVyOjpQcmVTYW5kYm94SW5pdGlhbGl6YXQKKyAKKyAgIHBhdGhz W2tNb2R1bGVWYV0ucHVzaF9iYWNrKHN0ZDo6c3RyaW5nKCJsaWJ2YS5zby4iKSArIHZhX3N1ZmZp eCk7CisgICBwYXRoc1trTW9kdWxlVmFfZHJtXS5wdXNoX2JhY2soc3RkOjpzdHJpbmcoImxpYnZh LWRybS5zby4iKSArIHZhX3N1ZmZpeCk7CistI2lmIEJVSUxERkxBRyhVU0VfVkFBUElfWDExKQor KyNpZiBCVUlMREZMQUcoU1VQUE9SVF9WQUFQSV9PVkVSX1gxMSkKKyAgIHBhdGhzW2tNb2R1bGVW YV94MTFdLnB1c2hfYmFjayhzdGQ6OnN0cmluZygibGlidmEteDExLnNvLiIpICsgdmFfc3VmZml4 KTsKKyAjZW5kaWYKKyAjaWYgQlVJTERGTEFHKElTX0NIUk9NRU9TX0FTSCkKK2RpZmYgLXVwIGNo cm9taXVtLTEwOC4wLjUzNTkuMTI0L21lZGlhL2dwdS92YWFwaS92YWFwaV93cmFwcGVyLmgud2F5 bGFuZC12YWFwaSBjaHJvbWl1bS0xMDguMC41MzU5LjEyNC9tZWRpYS9ncHUvdmFhcGkvdmFhcGlf d3JhcHBlci5oCistLS0gY2hyb21pdW0tMTA4LjAuNTM1OS4xMjQvbWVkaWEvZ3B1L3ZhYXBpL3Zh YXBpX3dyYXBwZXIuaC53YXlsYW5kLXZhYXBpCTIwMjItMTItMTQgMDE6Mzk6NTMuMDAwMDAwMDAw ICswMTAwCisrKysgY2hyb21pdW0tMTA4LjAuNTM1OS4xMjQvbWVkaWEvZ3B1L3ZhYXBpL3ZhYXBp X3dyYXBwZXIuaAkyMDIzLTAxLTA1IDEwOjEzOjA4LjI5MjQwMzI3MSArMDEwMAorQEAgLTM2LDkg KzM2LDkgQEAKKyAjaW5jbHVkZSAidGhpcmRfcGFydHkvYWJzZWlsLWNwcC9hYnNsL3R5cGVzL29w dGlvbmFsLmgiCisgI2luY2x1ZGUgInVpL2dmeC9nZW9tZXRyeS9zaXplLmgiCisgCistI2lmIEJV SUxERkxBRyhVU0VfVkFBUElfWDExKQorKyNpZiBCVUlMREZMQUcoU1VQUE9SVF9WQUFQSV9PVkVS X1gxMSkKKyAjaW5jbHVkZSAidWkvZ2Z4L3gveHByb3RvLmgiICAvLyBub2duY2hlY2sKKy0jZW5k aWYgICAgICAgICAgICAgICAgICAgICAgICAvLyBCVUlMREZMQUcoVVNFX1ZBQVBJX1gxMSkKKysj ZW5kaWYgICAgICAgICAgICAgICAgICAgICAgICAvLyBCVUlMREZMQUcoU1VQUE9SVF9WQUFQSV9P VkVSX1gxMSkKKyAKKyBuYW1lc3BhY2UgZ2Z4IHsKKyBlbnVtIGNsYXNzIEJ1ZmZlckZvcm1hdDsK K0BAIC0xODYsNiArMTg2LDE2IEBAIGNsYXNzIE1FRElBX0dQVV9FWFBPUlQgVmFhcGlXcmFwcGVy CisgICBWYWFwaVdyYXBwZXIoY29uc3QgVmFhcGlXcmFwcGVyJikgPSBkZWxldGU7CisgICBWYWFw aVdyYXBwZXImIG9wZXJhdG9yPShjb25zdCBWYWFwaVdyYXBwZXImKSA9IGRlbGV0ZTsKKyAKKysj aWYgQlVJTERGTEFHKFNVUFBPUlRfVkFBUElfT1ZFUl9YMTEpCisrICAvLyBSZXR1cm5zIHRydWUg aWYgVmFhcGlXcmFwcGVyIGluc3RhbmNlcyBtYXkgdXNlIFZBLUFQSSBvdmVyIFgxMSBhbmQgZmFs c2UKKysgIC8vIG90aGVyd2lzZSAoVkEtQVBJIG92ZXIgRFJNIHdpbGwgYmUgdXNlZCkuIElmIHRo aXMgcmV0dXJucyBhYnNsOjpudWxsb3B0LAorKyAgLy8gaXQncyBiZWNhdXNlIGl0IHdhcyBub3Qg cG9zc2libGUgdG8gZGV0ZXJtaW5lIGhvdyBWQS1BUEkgbWF5IGJlIHVzZWQuIFRoaXMKKysgIC8v IHNob3VsZCBvbmx5IGJlIGNhbGxlZCBhZnRlciBQcmVTYW5kYm94SW5pdGlhbGl6YXRpb24oKSAo d2hpY2ggaXMgYXNzdW1lZCB0bworKyAgLy8gYmUgY2FsbGVkIG9ubHkgb25jZSBkdXJpbmcgdGhl IEdQVSBwcm9jZXNzIHN0YXJ0dXApIGFuZCBpcyBzYWZlIHRvIGNhbGwKKysgIC8vIGZyb20gYW55 IHRocmVhZC4gQWRkaXRpb25hbGx5LCB0aGlzIHNob3VsZCBhbHdheXMgcmV0dXJuIHRoZSBzYW1l IHZhbHVlLgorKyAgc3RhdGljIGFic2w6Om9wdGlvbmFsPGJvb2w+IE1heVVzZVZhYXBpT3Zlclgx MSgpOworKyNlbmRpZgorKworICAgLy8gUmV0dXJucyB0aGUgc3VwcG9ydGVkIFNWQyBzY2FsYWJp bGl0eSBtb2RlcyBmb3Igc3BlY2lmaWVkIHByb2ZpbGUuCisgICBzdGF0aWMgc3RkOjp2ZWN0b3I8 U1ZDU2NhbGFiaWxpdHlNb2RlPiBHZXRTdXBwb3J0ZWRTY2FsYWJpbGl0eU1vZGVzKAorICAgICAg IFZpZGVvQ29kZWNQcm9maWxlIG1lZGlhX3Byb2ZpbGUsCitAQCAtNDM5LDEzICs0NDksMTMgQEAg Y2xhc3MgTUVESUFfR1BVX0VYUE9SVCBWYWFwaVdyYXBwZXIKKyAgICAgICBWQVN1cmZhY2VJRCB2 YV9zdXJmYWNlX2lkLAorICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHN0ZDo6cGFpcjxWQUJ1ZmZl cklELCBWQUJ1ZmZlckRlc2NyaXB0b3I+PiYgdmFfYnVmZmVycyk7CisgCistI2lmIEJVSUxERkxB RyhVU0VfVkFBUElfWDExKQorKyNpZiBCVUlMREZMQUcoU1VQUE9SVF9WQUFQSV9PVkVSX1gxMSkK KyAgIC8vIFB1dCBkYXRhIGZyb20gfHZhX3N1cmZhY2VfaWR8IGludG8gfHhfcGl4bWFwfCBvZiBz aXplCisgICAvLyB8ZGVzdF9zaXplfCwgY29udmVydGluZy9zY2FsaW5nIHRvIGl0LgorICAgW1tu b2Rpc2NhcmRdXSBib29sIFB1dFN1cmZhY2VJbnRvUGl4bWFwKFZBU3VyZmFjZUlEIHZhX3N1cmZh Y2VfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDExOjpQ aXhtYXAgeF9waXhtYXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZ2Z4OjpTaXplIGRlc3Rfc2l6ZSk7CistI2VuZGlmICAvLyBCVUlMREZMQUcoVVNFX1ZBQVBJ X1gxMSkKKysjZW5kaWYgIC8vIEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDExKQorIAor ICAgLy8gQ3JlYXRlcyBhIFNjb3BlZFZBSW1hZ2UgZnJvbSBhIFZBU3VyZmFjZSB8dmFfc3VyZmFj ZV9pZHwgYW5kIG1hcCBpdCBpbnRvCisgICAvLyBtZW1vcnkgd2l0aCB0aGUgZ2l2ZW4gfGZvcm1h dHwgYW5kIHxzaXplfC4gSWYgfGZvcm1hdHwgaXMgbm90IGVxdWFsIHRvIHRoZQorZGlmZiAtdXAg Y2hyb21pdW0tMTA4LjAuNTM1OS4xMjQvbWVkaWEvZ3B1L3ZhYXBpL3ZhX3N0dWJfaGVhZGVyLmZy YWdtZW50LndheWxhbmQtdmFhcGkgY2hyb21pdW0tMTA4LjAuNTM1OS4xMjQvbWVkaWEvZ3B1L3Zh YXBpL3ZhX3N0dWJfaGVhZGVyLmZyYWdtZW50CistLS0gY2hyb21pdW0tMTA4LjAuNTM1OS4xMjQv bWVkaWEvZ3B1L3ZhYXBpL3ZhX3N0dWJfaGVhZGVyLmZyYWdtZW50LndheWxhbmQtdmFhcGkJMjAy Mi0xMi0xNCAwMTozOTo1Mi4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMDguMC41MzU5 LjEyNC9tZWRpYS9ncHUvdmFhcGkvdmFfc3R1Yl9oZWFkZXIuZnJhZ21lbnQJMjAyMy0wMS0wNSAx MDoxMzowOC4yOTE0MDMyNjEgKzAxMDAKK0BAIC03LDggKzcsOCBAQCBleHRlcm4gIkMiIHsKKyAK KyAjaW5jbHVkZSA8dmEvdmFfZHJtLmg+CisgI2luY2x1ZGUgPHZhL3ZhLmg+CistI2lmIEJVSUxE RkxBRyhVU0VfVkFBUElfWDExKQorKyNpZiBCVUlMREZMQUcoU1VQUE9SVF9WQUFQSV9PVkVSX1gx MSkKKyAjaW5jbHVkZSA8dmEvdmFfeDExLmg+CistI2VuZGlmICAvLyBCVUlMREZMQUcoVVNFX1ZB QVBJX1gxMSkKKysjZW5kaWYgIC8vIEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDExKQor IAorIH0KK2RpZmYgLXVwIGNocm9taXVtLTEwOC4wLjUzNTkuMTI0L3VpL296b25lL3BsYXRmb3Jt L3gxMS9vem9uZV9wbGF0Zm9ybV94MTEuY2Mud2F5bGFuZC12YWFwaSBjaHJvbWl1bS0xMDguMC41 MzU5LjEyNC91aS9vem9uZS9wbGF0Zm9ybS94MTEvb3pvbmVfcGxhdGZvcm1feDExLmNjCistLS0g Y2hyb21pdW0tMTA4LjAuNTM1OS4xMjQvdWkvb3pvbmUvcGxhdGZvcm0veDExL296b25lX3BsYXRm b3JtX3gxMS5jYy53YXlsYW5kLXZhYXBpCTIwMjItMTItMTQgMDE6NDA6MTQuMDAwMDAwMDAwICsw MTAwCisrKysgY2hyb21pdW0tMTA4LjAuNTM1OS4xMjQvdWkvb3pvbmUvcGxhdGZvcm0veDExL296 b25lX3BsYXRmb3JtX3gxMS5jYwkyMDIzLTAxLTA1IDEwOjEzOjA4LjI5MjQwMzI3MSArMDEwMAor QEAgLTE5Niw3ICsxOTYsNyBAQCBjbGFzcyBPem9uZVBsYXRmb3JtWDExIDogcHVibGljIE96b25l UGxhCisgICAgICAgcHJvcGVydGllcy0+YXBwX21vZGFsX2RpYWxvZ3NfdXNlX2V2ZW50X2Jsb2Nr ZXIgPSB0cnVlOworICAgICAgIHByb3BlcnRpZXMtPmZldGNoX2J1ZmZlcl9mb3JtYXRzX2Zvcl9n bWJfb25fZ3B1ID0gdHJ1ZTsKKyAjaWYgQlVJTERGTEFHKElTX0xJTlVYKQorLSAgICAgIHByb3Bl cnRpZXMtPnN1cHBvcnRzX3ZhYXBpID0gdHJ1ZTsKKysgICAgICBwcm9wZXJ0aWVzLT5zdXBwb3J0 c192YWFwaV94MTEgPSB0cnVlOworICNlbmRpZgorIAorICAgICAgIGluaXRpYWxpc2VkID0gdHJ1 ZTsKK2RpZmYgLXVwIGNocm9taXVtLTEwOC4wLjUzNTkuMTI0L3VpL296b25lL3B1YmxpYy9vem9u ZV9wbGF0Zm9ybS5oLndheWxhbmQtdmFhcGkgY2hyb21pdW0tMTA4LjAuNTM1OS4xMjQvdWkvb3pv bmUvcHVibGljL296b25lX3BsYXRmb3JtLmgKKy0tLSBjaHJvbWl1bS0xMDguMC41MzU5LjEyNC91 aS9vem9uZS9wdWJsaWMvb3pvbmVfcGxhdGZvcm0uaC53YXlsYW5kLXZhYXBpCTIwMjItMTItMTQg MDE6NDA6MTQuMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTA4LjAuNTM1OS4xMjQvdWkv b3pvbmUvcHVibGljL296b25lX3BsYXRmb3JtLmgJMjAyMy0wMS0wNSAxMDoxMzowOC4yOTM0MDMy ODEgKzAxMDAKK0BAIC0xNDUsMTIgKzE0NSwxMyBAQCBjbGFzcyBDT01QT05FTlRfRVhQT1JUKE9a T05FKSBPem9uZVBsYXRmCisgICAgIGJvb2wgZmV0Y2hfYnVmZmVyX2Zvcm1hdHNfZm9yX2dtYl9v bl9ncHUgPSBmYWxzZTsKKyAKKyAjaWYgQlVJTERGTEFHKElTX0xJTlVYKQorLSAgICAvLyBUT0RP KGNyYnVnLmNvbS8xMTE2NzAxKTogYWRkIHZhYXBpIHN1cHBvcnQgZm9yIG90aGVyIE96b25lIHBs YXRmb3JtcyBvbgorLSAgICAvLyBMaW51eC4gQXQgdGhlIG1vbWVudCwgVkEtQVBJIExpbnV4IGlt cGxlbWVudGF0aW9uIHN1cHBvcnRzIG9ubHkgWDExCistICAgIC8vIGJhY2tlbmQuIFRoaXMgaW1w bGVtZW50YXRpb24gbXVzdCBiZSByZWZhY3RvcmVkIHRvIHN1cHBvcnQgT3pvbmUKKy0gICAgLy8g cHJvcGVybHkuIEFzIGEgdGVtcG9yYXJ5IHNvbHV0aW9uLCBWQS1BUEkgb24gTGludXggY2hlY2tz IGlmIHZhYXBpIGlzCistICAgIC8vIHN1cHBvcnRlZCAod2hpY2ggaW1wbGljaXRseSBtZWFucyB0 aGF0IGl0IGlzIE96b25lL1gxMSkuCistICAgIGJvb2wgc3VwcG9ydHNfdmFhcGkgPSBmYWxzZTsK KysgICAgLy8gVkEtQVBJIHN1cHBvcnRzIGRpZmZlcmVudCBkaXNwbGF5IGJhY2tlbmRzLgorKyAg ICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2ludGVsL2xpYnZhL2Jsb2IvbWFzdGVyL3ZhL3Zh X2JhY2tlbmQuaAorKyAgICAvLworKyAgICAvLyBWQS9EUk0gYW5kIFZBL1gxMSBhcmUgdXNlZCBi eSBDaHJvbWl1bSBhdCB0aGUgbW9tZW50LiBBbGwgT3pvbmUgcGxhdGZvcm1zCisrICAgIC8vIHN1 cHBvcnQgVkEvRFJNIGJ5IGRlZmF1bHQuIGBzdXBwb3J0c192YWFwaV94MTFgIGluZGljYXRlcyBp ZiBWQS9YMTEKKysgICAgLy8gc3VwcG9ydGVkOyBpdCBpcyB0cnVlIG9ubHkgb24gT3pvbmUvWDEx IHBsYXRmb3JtLgorKyAgICBib29sIHN1cHBvcnRzX3ZhYXBpX3gxMSA9IGZhbHNlOworICNlbmRp ZgorIAorICAgICAvLyBJbmRpY2F0ZXMgdGhhdCB0aGUgcGxhdGZvcm0gYWxsb3dzIGNsaWVudCBh cHBsaWNhdGlvbnMgdG8gbWFuaXB1bGF0ZQoKZGlmZiAtLWdpdCBhL2Nocm9taXVtLTEwOC12YWFw aS1pNjg2LWZwZXJtaXNzaXZlLnBhdGNoIGIvY2hyb21pdW0tMTA4LXZhYXBpLWk2ODYtZnBlcm1p c3NpdmUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNiZDliNTAuLjAwMDAw MDAKLS0tIGEvY2hyb21pdW0tMTA4LXZhYXBpLWk2ODYtZnBlcm1pc3NpdmUucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi0tLS0gY2hyb21pdW0tMTA4LjAuNTM1OS4xMjQvbWVk aWEvZ3B1L3ZhYXBpL0JVSUxELmduLm9yaWcJMjAyMi0xMi0xNCAwMTozOTo1Mi45OTI0ODIwMDAg KzAxMDAKLSsrKyBjaHJvbWl1bS0xMDguMC41MzU5LjEyNC9tZWRpYS9ncHUvdmFhcGkvQlVJTEQu Z24JMjAyMi0xMi0yNCAxMToxNDoxOS4xMTgwMzM5NjcgKzAxMDAKLUBAIC0xNCw2ICsxNCwxMCBA QAotIGFzc2VydChpc19saW51eCB8fCBpc19jaHJvbWVvcykKLSBhc3NlcnQodXNlX3ZhYXBpKQot IAotK2NvbmZpZygidmFhcGlfcGVybWlzc2l2ZSIpIHsKLSsgIGNmbGFncyA9IFsgIi1mcGVybWlz c2l2ZSIgXQotK30KLSsKLSBnZW5lcmF0ZV9zdHVicygibGlidmFfc3R1YnMiKSB7Ci0gICBleHRy YV9oZWFkZXIgPSAidmFfc3R1Yl9oZWFkZXIuZnJhZ21lbnQiCi0gICBzaWdzID0gWyAidmEuc2ln cyIgXQotQEAgLTEzOCw2ICsxNDIsOCBAQAotICAgICBdCi0gICB9Ci0gCi0rICBjb25maWdzICs9 IFsgIjp2YWFwaV9wZXJtaXNzaXZlIiBdCi0rCi0gICBpZiAodXNlX3ZhYXBpX3gxMSkgewotICAg ICBkZXBzICs9IFsgIi8vdWkvZ2Z4L3giIF0KLSAgICAgc291cmNlcyArPSBbCgpkaWZmIC0tZ2l0 IGEvY2hyb21pdW0uc3BlYyBiL2Nocm9taXVtLnNwZWMKaW5kZXggODc3M2RhNS4uMzA0NzU3MyAx MDA2NDQKLS0tIGEvY2hyb21pdW0uc3BlYworKysgYi9jaHJvbWl1bS5zcGVjCkBAIC02NSwxMyAr NjUsNiBAQAogJWdsb2JhbCB1c2VfdmFhcGkgMAogJWVuZGlmCiAKLSMgLi4uIGFuZCBFTDkgZG9l c24ndCBzaGlwIGxpYnZhLWRldmVsIG9uIGFhcmNoNjQ/Ci0laWYgMCV7P3JoZWx9ID09IDkKLSAl aWZhcmNoIGFhcmNoNjQKLSAgJWdsb2JhbCB1c2VfdmFhcGkgMAotICVlbmRpZgotJWVuZGlmCi0K ICMgU2VlbXMgbGlrZSB3ZSBtaWdodCBuZWVkIHRoaXMgc29tZXRpbWVzCiAjIFByYWN0aWNhbGx5 LCBuby4gQnV0IGl0J3MgaGVyZSBpbiBjYXNlIHdlIGRvLgogJWdsb2JhbCB1c2VfZ29sZCAwCkBA IC0yMTksNyArMjEyLDcgQEAgQnVpbGRSZXF1aXJlczogbGliaWN1LWRldmVsID49IDUuNAogCiBO YW1lOgljaHJvbWl1bSV7Y2hyb21pdW1fY2hhbm5lbH0KIFZlcnNpb246IDEwOC4wLjUzNTkuMTI0 Ci1SZWxlYXNlOiAzJXs/ZGlzdH0KK1JlbGVhc2U6IDQlez9kaXN0fQogU3VtbWFyeTogQSBXZWJL aXQgKEJsaW5rKSBwb3dlcmVkIHdlYiBicm93c2VyIHRoYXQgR29vZ2xlIGRvZXNuJ3Qgd2FudCB5 b3UgdG8gdXNlCiBVcmw6IGh0dHA6Ly93d3cuY2hyb21pdW0ub3JnL0hvbWUKIExpY2Vuc2U6IEJT RCBhbmQgTEdQTHYyKyBhbmQgQVNMIDIuMCBhbmQgSUpHIGFuZCBNSVQgYW5kIEdQTHYyKyBhbmQg SVNDIGFuZCBPcGVuU1NMIGFuZCAoTVBMdjEuMSBvciBHUEx2MiBvciBMR1BMdjIpCkBAIC0zODIs OCArMzc1LDggQEAgUGF0Y2gxMjA6IGNocm9taXVtLTEwOC1jbGFuZzE0LWMrKzIwLWxpbmstZXJy b3IucGF0Y2gKICMgVkFBUEkKICMgVXBzdHJlYW0gdHVybmVkIFZBQVBJIG9uIGluIExpbnV4IGlu IDg2CiBQYXRjaDIwMjogY2hyb21pdW0tMTA0LjAuNTExMi4xMDEtZW5hYmxlLWhhcmR3YXJlLWFj Y2VsZXJhdGVkLW1qcGVnLnBhdGNoCi1QYXRjaDIwMzogY2hyb21pdW0tMTA4LXZhYXBpLWk2ODYt ZnBlcm1pc3NpdmUucGF0Y2gKIFBhdGNoMjA1OiBjaHJvbWl1bS04Ni4wLjQyNDAuNzUtZml4LXZh YXBpLW9uLWludGVsLnBhdGNoCitQYXRjaDIwNjogY2hyb21pdW0tMTA4LW96b25lLXdheWxhbmQt dmFhcGktc3VwcG9ydC5wYXRjaAogCiAjIEFwcGx5IHRoZXNlIHBhdGNoZXMgdG8gd29yayBhcm91 bmQgRVBFTDggaXNzdWVzCiBQYXRjaDMwMDogY2hyb21pdW0tOTkuMC40ODQ0LjUxLXJoZWw4LWZv cmNlLWRpc2FibGUtdXNlX2dub21lX2tleXJpbmcucGF0Y2gKQEAgLTEwMzQsMTAgKzEwMjcsOCBA QCB1ZGV2LgogIyBGZWF0dXJlIHNwZWNpZmljIHBhdGNoZXMKICVpZiAle3VzZV92YWFwaX0KICVw YXRjaDIwMiAtcDEgLWIgLmFjY2VsLW1qcGVnCi0laWZhcmNoIGk2ODYKLSVwYXRjaDIwMyAtcDEg LWIgLmk2ODZwZXJtaXNzaXZlCi0lZW5kaWYKICVwYXRjaDIwNSAtcDEgLWIgLnZhYXBpLWludGVs LWZpeAorJXBhdGNoMjA2IC1wMSAtYiAud2F5bGFuZC12YWFwaQogJWVuZGlmCiAKICVpZiAwJXs/ cmhlbH0gPj0gOApAQCAtMTI4Nyw5ICsxMjc4LDcgQEAgQ0hST01JVU1fQlJPV1NFUl9HTl9ERUZJ TkVTKz0nIHVzZV9hdXJhPXRydWUnCiBDSFJPTUlVTV9CUk9XU0VSX0dOX0RFRklORVMrPScgZW5h YmxlX3dpZGV2aW5lPXRydWUnCiAKICVpZiAle3VzZV92YWFwaX0KLSVpZiAwJXs/ZmVkb3JhfSA+ PSAyOAogQ0hST01JVU1fQlJPV1NFUl9HTl9ERUZJTkVTKz0nIHVzZV92YWFwaT10cnVlJwotJWVu ZGlmCiAlZWxzZQogQ0hST01JVU1fQlJPV1NFUl9HTl9ERUZJTkVTKz0nIHVzZV92YWFwaT1mYWxz ZScKICVlbmRpZgpAQCAtMTc1NSw2ICsxNzQ0LDkgQEAgZ2V0ZW50IGdyb3VwIGNocm9tZS1yZW1v dGUtZGVza3RvcCA+L2Rldi9udWxsIHx8IGdyb3VwYWRkIC1yIGNocm9tZS1yZW1vdGUtZGVza3QK ICV7Y2hyb21pdW1fcGF0aH0vY2hyb21lZHJpdmVyCiAKICVjaGFuZ2Vsb2cKKyogU3VuIEphbiAw OCAyMDIzIFRoYW4gTmdvIDx0aGFuQHJlZGhhdC5jb20+IC0gMTA4LjAuNTM1OS4xMjQtNAorLSB2 YWFwaSBzdXBwb3J0IGZvciB3YXlsYW5kCisKICogV2VkIEphbiAwNCAyMDIzIFRoYW4gTmdvIDx0 aGFuQHJlZGhhdC5jb20+IC0gMTA4LjAuNTM1OS4xMjQtMwogLSBidWlsZCB3aXRoIHN5c3RlbSBm Zm1wZWctZnJlZSBhbmQgc3lzdGVtIGxpYmFvbQogLSBmaXggd2lkZXdpbmUgZXh0ZW5zaW9uIGlz c3VlCg==