R2l0IGNvbW1pdCA3ZDY4ZjRhYjYwMTBlZDc0MjA5MTU4NzQ5OWM0NmM4OTM0ZWNiN2FjIGJ5IEJv dWRld2lqbiBSZW1wdC4KQ29tbWl0dGVkIG9uIDExLzAxLzIwMTYgYXQgMTA6NTkuClB1c2hlZCBi eSByZW1wdCBpbnRvIGJyYW5jaCAnbWFzdGVyJy4KCkZFQVRVUkU6IGFkZCBpbXBvcnQvZXhwb3J0 IG9mIEdCUiBhbmQgR0lIIGJydXNoIGZpbGVzCgpUaGUgaW1wb3J0L2V4cG9ydCBpcyBsaW1pdGVk IHRvIHdoYXQgS3JpdGEgYWxyZWFkeSBzdXBwb3J0ZWQgd2hlbgpjcmVhdGluZyBuZXcgYnJ1c2hl cywgaS5lLiwgbm90IHRoZSB3aG9sZSBHSUggc3BlYyBpcyBpbXBsZW1lbnRlZC4KCkNDTUFJTDpr aW1hZ2VzaG9wQGtkZS5vcmcKSW1wbGVtZW50cyBUMTI1CgpNICArNCAgICAtMSAgICBrcml0YS9k YXRhL0NNYWtlTGlzdHMudHh0CkEgICs3ICAgIC0wICAgIGtyaXRhL2RhdGEveC1naW1wLWJydXNo LWFuaW1hdGVkLnhtbApBICArOCAgICAtMCAgICBrcml0YS9kYXRhL3gtZ2ltcC1icnVzaC54bWwK TSAgKzEgICAgLTEgICAga3JpdGEvbGliYnJ1c2gvQ01ha2VMaXN0cy50eHQKTSAgKzEgICAgLTIg ICAga3JpdGEvbGliYnJ1c2gva2lzX2JydXNoLmgKTSAgKzEgICAgLTEgICAga3JpdGEvbGliYnJ1 c2gva2lzX2JydXNoZXNfcGlwZS5oCk0gICsyNiAgIC0xMSAgIGtyaXRhL2xpYmJydXNoL2tpc19p bWFnZXBpcGVfYnJ1c2guY3BwCk0gICs5ICAgIC0yICAgIGtyaXRhL2xpYmJydXNoL2tpc19pbWFn ZXBpcGVfYnJ1c2guaApSICArNyAgICAtMSAgICBrcml0YS9saWJicnVzaC9raXNfcGlwZWJydXNo X3BhcmFzaXRlLmNwcCBbZnJvbToga3JpdGEvbGliYnJ1c2gva2lzX2ltYWdlcGlwZV9icnVzaF9w LmNwcCAtIDA5NyUgc2ltaWxhcml0eV0KUiAgKzMgICAgLTIgICAga3JpdGEvbGliYnJ1c2gva2lz X3BpcGVicnVzaF9wYXJhc2l0ZS5oIFtmcm9tOiBrcml0YS9saWJicnVzaC9raXNfaW1hZ2VwaXBl X2JydXNoX3AuaCAtIDA5NyUgc2ltaWxhcml0eV0KTSAgKzQgICAgLTQgICAga3JpdGEvbGliYnJ1 c2gvdGVzdHMva2lzX2ltYWdlcGlwZV9icnVzaF90ZXN0LmNwcApNICArMSAgICAtNiAgICBrcml0 YS9wbHVnaW5zL2V4dGVuc2lvbnMvZG9ja2Vycy9wYWxldHRlZG9ja2VyL0NNYWtlTGlzdHMudHh0 Ck0gICs0ICAgIC00ICAgIGtyaXRhL3BsdWdpbnMvZXh0ZW5zaW9ucy9kb2NrZXJzL3BhbGV0dGVk b2NrZXIvcGFsZXR0ZWRvY2tlcl9kb2NrLmNwcApNICArNCAgICAtNCAgICBrcml0YS9wbHVnaW5z L2V4dGVuc2lvbnMvZG9ja2Vycy9wYWxldHRlZG9ja2VyL3BhbGV0dGVkb2NrZXJfZG9jay5oCk0g ICsxICAgIC0wICAgIGtyaXRhL3BsdWdpbnMvZm9ybWF0cy9DTWFrZUxpc3RzLnR4dApBICArMjYg ICAtMCAgICBrcml0YS9wbHVnaW5zL2Zvcm1hdHMvYnJ1c2gvQ01ha2VMaXN0cy50eHQKQSAgKzM2 ICAgLTAgICAga3JpdGEvcGx1Z2lucy9mb3JtYXRzL2JydXNoL0tpc0FuaW1hdGVkQnJ1c2hBbm5v dGF0aW9uLmNwcCAgICAgW0xpY2Vuc2U6IEdQTCAodjIrKV0KQSAgKzMzICAgLTAgICAga3JpdGEv cGx1Z2lucy9mb3JtYXRzL2JydXNoL0tpc0FuaW1hdGVkQnJ1c2hBbm5vdGF0aW9uLmggICAgIFtM aWNlbnNlOiBHUEwgKHYyKyldCkEgICsyMTQgIC0wICAgIGtyaXRhL3BsdWdpbnMvZm9ybWF0cy9i cnVzaC9raXNfYnJ1c2hfZXhwb3J0LmNwcCAgICAgW0xpY2Vuc2U6IEdQTCAodjIrKV0KQSAgKzM3 ICAgLTAgICAga3JpdGEvcGx1Z2lucy9mb3JtYXRzL2JydXNoL2tpc19icnVzaF9leHBvcnQuaCAg ICAgW0xpY2Vuc2U6IEdQTCAodjIrKV0KQSAgKzE0OSAgLTAgICAga3JpdGEvcGx1Z2lucy9mb3Jt YXRzL2JydXNoL2tpc19icnVzaF9pbXBvcnQuY3BwICAgICBbTGljZW5zZTogR1BMICh2MispXQpB ICArMzcgICAtMCAgICBrcml0YS9wbHVnaW5zL2Zvcm1hdHMvYnJ1c2gva2lzX2JydXNoX2ltcG9y dC5oICAgICBbTGljZW5zZTogR1BMICh2MispXQpBICArNzIgICAtMCAgICBrcml0YS9wbHVnaW5z L2Zvcm1hdHMvYnJ1c2gva3JpdGFfYnJ1c2guZGVza3RvcApBICArMTEgICAtMCAgICBrcml0YS9w bHVnaW5zL2Zvcm1hdHMvYnJ1c2gva3JpdGFfYnJ1c2hfZXhwb3J0Lmpzb24KQSAgKzExICAgLTAg ICAga3JpdGEvcGx1Z2lucy9mb3JtYXRzL2JydXNoL2tyaXRhX2JydXNoX2ltcG9ydC5qc29uCkEg ICsyMDUgIC0wICAgIGtyaXRhL3BsdWdpbnMvZm9ybWF0cy9icnVzaC93ZGdfZXhwb3J0X2dpaC51 aQpNICArMiAgICAtMSAgICBrcml0YS9wbHVnaW5zL3BhaW50b3BzL2xpYnBhaW50b3Ava2lzX3Nw YWNpbmdfc2VsZWN0aW9uX3dpZGdldC5oCk0gICsxNyAgIC0wICAgIGtyaXRhL3BsdWdpbnMvdG9v bHMvc2VsZWN0aW9udG9vbHMva2lzX3NlbGVjdGlvbl9tb2RpZmllcl9tYXBwZXIuY2MKTSAgKzMg ICAgLTAgICAga3JpdGEvdWkvQ01ha2VMaXN0cy50eHQKUiAgKzUgICAgLTUgICAga3JpdGEvdWkv S2lzQ29sb3JzZXRDaG9vc2VyLmNwcCBbZnJvbToga3JpdGEvcGx1Z2lucy9leHRlbnNpb25zL2Rv Y2tlcnMvcGFsZXR0ZWRvY2tlci9jb2xvcnNldGNob29zZXIuY3BwIC0gMDk1JSBzaW1pbGFyaXR5 XQpSICArOCAgICAtNSAgICBrcml0YS91aS9LaXNDb2xvcnNldENob29zZXIuaCBbZnJvbToga3Jp dGEvcGx1Z2lucy9leHRlbnNpb25zL2RvY2tlcnMvcGFsZXR0ZWRvY2tlci9jb2xvcnNldGNob29z ZXIuaCAtIDA4NSUgc2ltaWxhcml0eV0KTSAgKzEgICAgLTAgICAga3JpdGEvdWkvS2lzRG9jdW1l bnQuY3BwClIgICsxMSAgIC0xMSAgIGtyaXRhL3VpL0tpc1BhbGV0dGVNb2RlbC5jcHAgW2Zyb206 IGtyaXRhL3BsdWdpbnMvZXh0ZW5zaW9ucy9kb2NrZXJzL3BhbGV0dGVkb2NrZXIvcGFsZXR0ZW1v ZGVsLmNwcCAtIDA3OSUgc2ltaWxhcml0eV0KUiAgKzcgICAgLTYgICAga3JpdGEvdWkvS2lzUGFs ZXR0ZU1vZGVsLmggW2Zyb206IGtyaXRhL3BsdWdpbnMvZXh0ZW5zaW9ucy9kb2NrZXJzL3BhbGV0 dGVkb2NrZXIvcGFsZXR0ZW1vZGVsLmggLSAwODglIHNpbWlsYXJpdHldCgpodHRwOi8vY29tbWl0 cy5rZGUub3JnL2tyaXRhLzdkNjhmNGFiNjAxMGVkNzQyMDkxNTg3NDk5YzQ2Yzg5MzRlY2I3YWMK CmRpZmYgLS1naXQgYS9rcml0YS9kYXRhL0NNYWtlTGlzdHMudHh0IGIva3JpdGEvZGF0YS9DTWFr ZUxpc3RzLnR4dAppbmRleCBmZGIxOTRlLi5iODcyMmQzIDEwMDY0NAotLS0gYS9rcml0YS9kYXRh L0NNYWtlTGlzdHMudHh0CisrKyBiL2tyaXRhL2RhdGEvQ01ha2VMaXN0cy50eHQKQEAgLTIyLDcg KzIyLDEwIEBAIGluc3RhbGwoIEZJTEVTCiAKIGluc3RhbGwoIEZJTEVTCiAgICAga3JpdGEueG1s Ci0gICAgREVTVElOQVRJT04gJHtYREdfTUlNRV9JTlNUQUxMX0RJUn0pCisgICAgeC1naW1wLWJy dXNoLWFuaW1hdGVkLnhtbAorICAgIHgtZ2ltcC1icnVzaC54bWwKKyAgICBERVNUSU5BVElPTiAk e1hER19NSU1FX0lOU1RBTExfRElSfQorKQogaWYgKFNIQVJFRF9NSU1FX0lORk9fRk9VTkQpCiAg ICAgdXBkYXRlX3hkZ19taW1ldHlwZXMoJHtYREdfTUlNRV9JTlNUQUxMX0RJUn0pCiBlbmRpZigp CmRpZmYgLS1naXQgYS9rcml0YS9kYXRhL3gtZ2ltcC1icnVzaC1hbmltYXRlZC54bWwgYi9rcml0 YS9kYXRhL3gtZ2ltcC1icnVzaC1hbmltYXRlZC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uZGZhMTkwMQotLS0gL2Rldi9udWxsCisrKyBiL2tyaXRhL2RhdGEveC1naW1w LWJydXNoLWFuaW1hdGVkLnhtbApAQCAtMCwwICsxLDcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIg ZW5jb2Rpbmc9InV0Zi04Ij8+Cis8bWltZS1pbmZvIHhtbG5zPSJodHRwOi8vd3d3LmZyZWVkZXNr dG9wLm9yZy9zdGFuZGFyZHMvc2hhcmVkLW1pbWUtaW5mbyI+CisgIDxtaW1lLXR5cGUgdHlwZT0i aW1hZ2UveC1naW1wLWJydXNoLWFuaW1hdGVkIj4KKyAgICA8Y29tbWVudD5HaW1wIEltYWdlIEhv c2UgQnJ1c2g8L2NvbW1lbnQ+CisgICAgPGdsb2IgcGF0dGVybj0iKi5naWgiLz4KKyAgPC9taW1l LXR5cGU+Cis8L21pbWUtaW5mbz4KZGlmZiAtLWdpdCBhL2tyaXRhL2RhdGEveC1naW1wLWJydXNo LnhtbCBiL2tyaXRhL2RhdGEveC1naW1wLWJydXNoLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi44YmJiOWM2Ci0tLSAvZGV2L251bGwKKysrIGIva3JpdGEvZGF0YS94LWdp bXAtYnJ1c2gueG1sCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGlu Zz0idXRmLTgiPz4KKzxtaW1lLWluZm8geG1sbnM9Imh0dHA6Ly93d3cuZnJlZWRlc2t0b3Aub3Jn L3N0YW5kYXJkcy9zaGFyZWQtbWltZS1pbmZvIj4KKyAgPG1pbWUtdHlwZSB0eXBlPSJpbWFnZS94 LWdpbXAtYnJ1c2giPgorICAgIDxjb21tZW50PkdpbXAgQnJ1c2g8L2NvbW1lbnQ+CisgICAgPGds b2IgcGF0dGVybj0iKi5nYnIiLz4KKyAgICA8Z2xvYiBwYXR0ZXJuPSIqLnZiciIvPgorICA8L21p bWUtdHlwZT4KKzwvbWltZS1pbmZvPgpkaWZmIC0tZ2l0IGEva3JpdGEvbGliYnJ1c2gvQ01ha2VM aXN0cy50eHQgYi9rcml0YS9saWJicnVzaC9DTWFrZUxpc3RzLnR4dAppbmRleCA5OWM5N2MxLi5i NzgzNTdmIDEwMDY0NAotLS0gYS9rcml0YS9saWJicnVzaC9DTWFrZUxpc3RzLnR4dAorKysgYi9r cml0YS9saWJicnVzaC9DTWFrZUxpc3RzLnR4dApAQCAtMTEsNyArMTEsNyBAQCBzZXQoa3JpdGFs aWJicnVzaF9MSUJfU1JDUwogICAgIGtpc19hYnJfYnJ1c2guY3BwCiAgICAga2lzX2Ficl9icnVz aF9jb2xsZWN0aW9uLmNwcAogICAgIGtpc19pbWFnZXBpcGVfYnJ1c2guY3BwCi0gICAga2lzX2lt YWdlcGlwZV9icnVzaF9wLmNwcAorICAgIGtpc19waXBlYnJ1c2hfcGFyYXNpdGUuY3BwCiAgICAg a2lzX3BuZ19icnVzaC5jcHAKICAgICBraXNfc3ZnX2JydXNoLmNwcAogICAgIGtpc19xaW1hZ2Vf cHlyYW1pZC5jcHAKZGlmZiAtLWdpdCBhL2tyaXRhL2xpYmJydXNoL2tpc19icnVzaC5oIGIva3Jp dGEvbGliYnJ1c2gva2lzX2JydXNoLmgKaW5kZXggZjgwZTIwYS4uMWNhNzY4NCAxMDA2NDQKLS0t IGEva3JpdGEvbGliYnJ1c2gva2lzX2JydXNoLmgKKysrIGIva3JpdGEvbGliYnJ1c2gva2lzX2Jy dXNoLmgKQEAgLTQ1LDggKzQ1LDcgQEAgZW51bSBlbnVtQnJ1c2hUeXBlIHsKICAgICBNQVNLLAog ICAgIElNQUdFLAogICAgIFBJUEVfTUFTSywKLSAgICBQSVBFX0lNQUdFLAotICAgIEFJUkJSVVNI CisgICAgUElQRV9JTUFHRQogfTsKIAogc3RhdGljIGNvbnN0IHFyZWFsIERFRkFVTFRfU09GVE5F U1NfRkFDVE9SID0gMS4wOwpkaWZmIC0tZ2l0IGEva3JpdGEvbGliYnJ1c2gva2lzX2JydXNoZXNf cGlwZS5oIGIva3JpdGEvbGliYnJ1c2gva2lzX2JydXNoZXNfcGlwZS5oCmluZGV4IGU4YjhlNTAu Ljk3ZTIwMzEgMTAwNjQ0Ci0tLSBhL2tyaXRhL2xpYmJydXNoL2tpc19icnVzaGVzX3BpcGUuaAor KysgYi9rcml0YS9saWJicnVzaC9raXNfYnJ1c2hlc19waXBlLmgKQEAgLTEyNyw3ICsxMjcsNyBA QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBkZXZpY2U7CiAgICAgfQogCi0gICAgUVZlY3RvcjxC cnVzaFR5cGUqPiB0ZXN0aW5nR2V0QnJ1c2hlcygpIHsKKyAgICBRVmVjdG9yPEJydXNoVHlwZSo+ IGJydXNoZXMoKSB7CiAgICAgICAgIHJldHVybiBtX2JydXNoZXM7CiAgICAgfQogCmRpZmYgLS1n aXQgYS9rcml0YS9saWJicnVzaC9raXNfaW1hZ2VwaXBlX2JydXNoLmNwcCBiL2tyaXRhL2xpYmJy dXNoL2tpc19pbWFnZXBpcGVfYnJ1c2guY3BwCmluZGV4IGZkZDZkZmQuLmY2ZjczMWUgMTAwNjQ0 Ci0tLSBhL2tyaXRhL2xpYmJydXNoL2tpc19pbWFnZXBpcGVfYnJ1c2guY3BwCisrKyBiL2tyaXRh L2xpYmJydXNoL2tpc19pbWFnZXBpcGVfYnJ1c2guY3BwCkBAIC0xNyw3ICsxNyw3IEBACiAgKiAg Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9u LCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8KICNpbmNsdWRlICJraXNfaW1hZ2VwaXBlX2JydXNo LmgiCi0jaW5jbHVkZSAia2lzX2ltYWdlcGlwZV9icnVzaF9wLmgiCisjaW5jbHVkZSAia2lzX3Bp cGVicnVzaF9wYXJhc2l0ZS5oIgogI2luY2x1ZGUgImtpc19icnVzaGVzX3BpcGUuaCIKIAogCkBA IC0yMDYsMTEgKzIwNiw4IEBAIEtpc0ltYWdlUGlwZUJydXNoOjpLaXNJbWFnZVBpcGVCcnVzaChj b25zdCBRU3RyaW5nJiBuYW1lLCBpbnQgdywgaW50IGgsCiAKICAgICBwYXJhc2l0ZS5zZXRCcnVz aGVzQ291bnQoKTsKIAotICAgIG1fZC0+YnJ1c2hlc1BpcGUuc2V0UGFyYXNpdGUocGFyYXNpdGUp OwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGV2aWNlcy5hdCgwKS5jb3VudCgpOyBpKyspIHsK LSAgICAgICAgbV9kLT5icnVzaGVzUGlwZS5hZGRCcnVzaChuZXcgS2lzR2JyQnJ1c2goZGV2aWNl cy5hdCgwKS5hdChpKSwgMCwgMCwgdywgaCkpOwotICAgIH0KLQorICAgIHNldFBhcmFzaXRlKHBh cmFzaXRlKTsKKyAgICBzZXREZXZpY2VzKGRldmljZXMsIHcsIGgpOwogICAgIHNldEJydXNoVGlw SW1hZ2UobV9kLT5icnVzaGVzUGlwZS5maXJzdEJydXNoKCktPmJydXNoVGlwSW1hZ2UoKSk7CiB9 CiAKQEAgLTM2Myw2ICszNjAsMTEgQEAgdm9pZCBLaXNJbWFnZVBpcGVCcnVzaDo6Z2VuZXJhdGVN YXNrQW5kQXBwbHlNYXNrT3JDcmVhdGVEYWIoS2lzRml4ZWRQYWludERldmljZVMKICAgICBtX2Qt PmJydXNoZXNQaXBlLmdlbmVyYXRlTWFza0FuZEFwcGx5TWFza09yQ3JlYXRlRGFiKGRzdCwgY29s b3JpbmdJbmZvcm1hdGlvbiwgc2NhbGVYLCBzY2FsZVksIGFuZ2xlLCBpbmZvLCBzdWJQaXhlbFgs IHN1YlBpeGVsWSwgc29mdG5lc3NGYWN0b3IpOwogfQogCitRVmVjdG9yPEtpc0dickJydXNoICo+ IEtpc0ltYWdlUGlwZUJydXNoOjpicnVzaGVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9kLT5i cnVzaGVzUGlwZS5icnVzaGVzKCk7Cit9CisKIEtpc0ZpeGVkUGFpbnREZXZpY2VTUCBLaXNJbWFn ZVBpcGVCcnVzaDo6cGFpbnREZXZpY2UoY29uc3QgS29Db2xvclNwYWNlICogY29sb3JTcGFjZSwg ZG91YmxlIHNjYWxlLCBkb3VibGUgYW5nbGUsIGNvbnN0IEtpc1BhaW50SW5mb3JtYXRpb24mIGlu Zm8sIGRvdWJsZSBzdWJQaXhlbFgsIGRvdWJsZSBzdWJQaXhlbFkpIGNvbnN0CiB7CiAgICAgcmV0 dXJuIG1fZC0+YnJ1c2hlc1BpcGUucGFpbnREZXZpY2UoY29sb3JTcGFjZSwgc2NhbGUsIGFuZ2xl LCBpbmZvLCBzdWJQaXhlbFgsIHN1YlBpeGVsWSk7CkBAIC00NTAsNyArNDUyLDcgQEAgdm9pZCBL aXNJbWFnZVBpcGVCcnVzaDo6c2V0QnJ1c2hUeXBlKGVudW1CcnVzaFR5cGUgdHlwZSkKIHsKICAg ICBRX1VOVVNFRCh0eXBlKTsKICAgICBxRmF0YWwoIkZBVEFMOiBwcm90ZWN0ZWQgbWVtYmVyIHNl dEJydXNoVHlwZSBoYXMgbm8gbWVhbmluZyBmb3IgS2lzSW1hZ2VQaXBlQnJ1c2giKTsKLSAgICAv LyBicnVzaFR5cGUoKSBpcyBhIGZpbmN0aW9uIG9mIGhhc0NvbG9yKCkgYW5kIHVzZUNvbG9yQXNN YXNrKCkKKyAgICAvLyBicnVzaFR5cGUoKSBpcyBhIGZ1bmN0aW9uIG9mIGhhc0NvbG9yKCkgYW5k IHVzZUNvbG9yQXNNYXNrKCkKIH0KIAogdm9pZCBLaXNJbWFnZVBpcGVCcnVzaDo6c2V0SGFzQ29s b3IoYm9vbCBoYXNDb2xvcikKQEAgLTQ2NSwxMiArNDY3LDI1IEBAIEtpc0dickJydXNoKiBLaXNJ bWFnZVBpcGVCcnVzaDo6dGVzdGluZ0dldEN1cnJlbnRCcnVzaChjb25zdCBLaXNQYWludEluZm9y bWF0aW9uCiAgICAgcmV0dXJuIG1fZC0+YnJ1c2hlc1BpcGUuY3VycmVudEJydXNoKGluZm8pOwog fQogCi1RVmVjdG9yPEtpc0dickJydXNoKj4gS2lzSW1hZ2VQaXBlQnJ1c2g6OnRlc3RpbmdHZXRC cnVzaGVzKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9kLT5icnVzaGVzUGlwZS50ZXN0aW5nR2V0 QnJ1c2hlcygpOwotfQogCiB2b2lkIEtpc0ltYWdlUGlwZUJydXNoOjp0ZXN0aW5nU2VsZWN0TmV4 dEJydXNoKGNvbnN0IEtpc1BhaW50SW5mb3JtYXRpb24mIGluZm8pIGNvbnN0CiB7CiAgICAgcmV0 dXJuIG1fZC0+YnJ1c2hlc1BpcGUudGVzdGluZ1NlbGVjdE5leHRCcnVzaChpbmZvKTsKIH0KKwor Y29uc3QgS2lzUGlwZUJydXNoUGFyYXNpdGUmIEtpc0ltYWdlUGlwZUJydXNoOjpwYXJhc2l0ZSgp IGNvbnN0IHsKKyAgICByZXR1cm4gbV9kLT5icnVzaGVzUGlwZS5wYXJhc2l0ZSgpOworfQorCit2 b2lkIEtpc0ltYWdlUGlwZUJydXNoOjpzZXRQYXJhc2l0ZShjb25zdCBLaXNQaXBlQnJ1c2hQYXJh c2l0ZSAmcGFyYXNpdGUpCit7CisgICAgbV9kLT5icnVzaGVzUGlwZS5zZXRQYXJhc2l0ZShwYXJh c2l0ZSk7Cit9CisKK3ZvaWQgS2lzSW1hZ2VQaXBlQnJ1c2g6OnNldERldmljZXMoUVZlY3RvcjxR VmVjdG9yPEtpc1BhaW50RGV2aWNlICo+ID4gZGV2aWNlcywgaW50IHcsIGludCBoKQoreworCisg ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkZXZpY2VzLmF0KDApLmNvdW50KCk7IGkrKykgeworICAg ICAgICBtX2QtPmJydXNoZXNQaXBlLmFkZEJydXNoKG5ldyBLaXNHYnJCcnVzaChkZXZpY2VzLmF0 KDApLmF0KGkpLCAwLCAwLCB3LCBoKSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEva3JpdGEvbGli YnJ1c2gva2lzX2ltYWdlcGlwZV9icnVzaC5oIGIva3JpdGEvbGliYnJ1c2gva2lzX2ltYWdlcGlw ZV9icnVzaC5oCmluZGV4IGI4NWFhNGUuLjc1MTZjNzAgMTAwNjQ0Ci0tLSBhL2tyaXRhL2xpYmJy dXNoL2tpc19pbWFnZXBpcGVfYnJ1c2guaAorKysgYi9rcml0YS9saWJicnVzaC9raXNfaW1hZ2Vw aXBlX2JydXNoLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJraXNfZ2JyX2JydXNoLmgi CiAjaW5jbHVkZSAia2lzX2dsb2JhbC5oIgogCitjbGFzcyBLaXNQaXBlQnJ1c2hQYXJhc2l0ZTsK IAogLyoqCiAgKiBWZWxvY2l0eSB3b24ndCBiZSBzdXBwb3J0ZWQsIGF0bSBUaWx0IGlzbid0IGVp dGhlciwKQEAgLTEwNSw2ICsxMDYsMTMgQEAgcHVibGljOgogICAgICAgICAgICAgZG91YmxlIHN1 YlBpeGVsWCA9IDAsIGRvdWJsZSBzdWJQaXhlbFkgPSAwLCBxcmVhbCBzb2Z0bmVzc0ZhY3RvciA9 IERFRkFVTFRfU09GVE5FU1NfRkFDVE9SKSBjb25zdDsKIAogCisgICAgUVZlY3RvcjxLaXNHYnJC cnVzaCo+IGJydXNoZXMoKSBjb25zdDsKKworCisgICAgY29uc3QgS2lzUGlwZUJydXNoUGFyYXNp dGUgJnBhcmFzaXRlKCkgY29uc3Q7CisKKyAgICB2b2lkIHNldFBhcmFzaXRlKGNvbnN0IEtpc1Bp cGVCcnVzaFBhcmFzaXRlJiBwYXJhc2l0ZSk7CisgICAgdm9pZCBzZXREZXZpY2VzKFFWZWN0b3I8 IFFWZWN0b3I8S2lzUGFpbnREZXZpY2UqPiA+IGRldmljZXMsIGludCB3LCBpbnQgaCk7CiAKIHBy b3RlY3RlZDoKICAgICB2b2lkIHNldEJydXNoVHlwZShlbnVtQnJ1c2hUeXBlIHR5cGUpOwpAQCAt MTE5LDExICsxMjcsMTAgQEAgcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgS2lzSW1hZ2VQaXBl QnJ1c2hUZXN0OwogCiAgICAgS2lzR2JyQnJ1c2gqIHRlc3RpbmdHZXRDdXJyZW50QnJ1c2goY29u c3QgS2lzUGFpbnRJbmZvcm1hdGlvbiYgaW5mbykgY29uc3Q7Ci0gICAgUVZlY3RvcjxLaXNHYnJC cnVzaCo+IHRlc3RpbmdHZXRCcnVzaGVzKCkgY29uc3Q7CiAgICAgdm9pZCB0ZXN0aW5nU2VsZWN0 TmV4dEJydXNoKGNvbnN0IEtpc1BhaW50SW5mb3JtYXRpb24mIGluZm8pIGNvbnN0OwogCiAgICAg Ym9vbCBpbml0RnJvbURhdGEoY29uc3QgUUJ5dGVBcnJheSAmZGF0YSk7Ci0gICAgdm9pZCBzYW5p dGl6ZSgpOyAvLyBGb3JjZSBzb21lIGRlZmF1bHQgdmFsdWVzIGluIGNhc2UgdGhlIG9uZXMgcmVh ZCBpbiBkb24ndCBtYWtlIHNlbnNlCisKIHByaXZhdGU6CiAgICAgc3RydWN0IFByaXZhdGU7CiAg ICAgUHJpdmF0ZSAqIGNvbnN0IG1fZDsKZGlmZiAtLWdpdCBhL2tyaXRhL2xpYmJydXNoL2tpc19p bWFnZXBpcGVfYnJ1c2hfcC5jcHAgYi9rcml0YS9saWJicnVzaC9raXNfcGlwZWJydXNoX3BhcmFz aXRlLmNwcApzaW1pbGFyaXR5IGluZGV4IDk3JQpyZW5hbWUgZnJvbSBrcml0YS9saWJicnVzaC9r aXNfaW1hZ2VwaXBlX2JydXNoX3AuY3BwCnJlbmFtZSB0byBrcml0YS9saWJicnVzaC9raXNfcGlw ZWJydXNoX3BhcmFzaXRlLmNwcAppbmRleCA3OGYxMTY5Li4xZmY3OGQxIDEwMDY0NAotLS0gYS9r cml0YS9saWJicnVzaC9raXNfaW1hZ2VwaXBlX2JydXNoX3AuY3BwCisrKyBiL2tyaXRhL2xpYmJy dXNoL2tpc19waXBlYnJ1c2hfcGFyYXNpdGUuY3BwCkBAIC0xNiw3ICsxNiw3IEBACiAgKiAgYWxv bmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK ICAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBC b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwotI2luY2x1ZGUgImtpc19pbWFnZXBpcGVf YnJ1c2hfcC5oIgorI2luY2x1ZGUgImtpc19waXBlYnJ1c2hfcGFyYXNpdGUuaCIKIAogS2lzUGlw ZUJydXNoUGFyYXNpdGU6Oktpc1BpcGVCcnVzaFBhcmFzaXRlKGNvbnN0IFFTdHJpbmcmIHNvdXJj ZSkKIHsKQEAgLTE2OSwzICsxNjksOSBAQCBib29sIEtpc1BpcGVCcnVzaFBhcmFzaXRlOjpzYXZl VG9EZXZpY2UoUUlPRGV2aWNlKiBkZXYpIGNvbnN0CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KKwor Ym9vbCBsb2FkRnJvbURldmljZShRSU9EZXZpY2UgKmRldikKK3sKKyAgICAvLyBYWFg6IGltcGxl bWVudC4uLgorICAgIHJldHVybiB0cnVlOzsKK30KZGlmZiAtLWdpdCBhL2tyaXRhL2xpYmJydXNo L2tpc19pbWFnZXBpcGVfYnJ1c2hfcC5oIGIva3JpdGEvbGliYnJ1c2gva2lzX3BpcGVicnVzaF9w YXJhc2l0ZS5oCnNpbWlsYXJpdHkgaW5kZXggOTclCnJlbmFtZSBmcm9tIGtyaXRhL2xpYmJydXNo L2tpc19pbWFnZXBpcGVfYnJ1c2hfcC5oCnJlbmFtZSB0byBrcml0YS9saWJicnVzaC9raXNfcGlw ZWJydXNoX3BhcmFzaXRlLmgKaW5kZXggN2Y3OGYyMC4uYTNiZmZiMyAxMDA2NDQKLS0tIGEva3Jp dGEvbGliYnJ1c2gva2lzX2ltYWdlcGlwZV9icnVzaF9wLmgKKysrIGIva3JpdGEvbGliYnJ1c2gv a2lzX3BpcGVicnVzaF9wYXJhc2l0ZS5oCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAia2lz X3BhaW50X2RldmljZS5oIgogI2luY2x1ZGUgImtpc19sYXllci5oIgogCisjaW5jbHVkZSAia3Jp dGFicnVzaF9leHBvcnQuaCIKIAogLyoqCiAgKiBUaGUgcGFyYXNpdGUgaW5mbyB0aGF0IGdldHMg bG9hZGVkIGZyb20gdGhlIHRlcnJpYmx5IGRvY3VtZW50ZWQgZ2ltcCBwaXBlIGJydXNoIHBhcmFz aXRlLgpAQCAtNjIsNyArNjMsNyBAQAogICogdW50aWwgd2UgaGF2ZSByZWFjaGVkIGRpbWVuc2lv biBkaW0uIE9yIGF0IGxlYXN0LCB0aGF0IGlzIGhvdyBpdCBsb29rcyBsaWtlLCB3ZSdsbCBrbm93 CiAgKiBmb3Igc3VyZSB3aGVuIHdlIGNhbiB0ZXN0IGl0IGJldHRlciB3aXRoID4xIGRpbSBicnVz aGVzIGFuZCBBbmd1bGFyIHNlbGVjdGlvbk1vZGUuCiAgKiovCi1jbGFzcyBLaXNQaXBlQnJ1c2hQ YXJhc2l0ZQorY2xhc3MgQlJVU0hfRVhQT1JUIEtpc1BpcGVCcnVzaFBhcmFzaXRlCiB7CiBwdWJs aWM6CiAgICAgLy8vIFNldCBzb21lIGRlZmF1bHQgdmFsdWVzCkBAIC04Niw3ICs4Nyw3IEBAIHB1 YmxpYzoKICAgICAgKiBTYXZlcyBhIEdJTVAtY29tcGF0aWJsZSByZXByZXNlbnRhdGlvbiBvZiB0 aGlzIHBhcmFzaXRlIHRvIHRoZSBkZXZpY2UuIEFsc28gd3JpdGVzIHRoZQogICAgICAqIG51bWJl ciBvZiBicnVzaGVzICg9PSBuY2VsbHMpIChubyB0cmFpbGluZyAnXG4nKSAqLwogICAgIGJvb2wg c2F2ZVRvRGV2aWNlKFFJT0RldmljZSogZGV2KSBjb25zdDsKLQorICAgIGJvb2wgbG9hZEZyb21E ZXZpY2UoUUlPRGV2aWNlICpkZXYpOwogCiAgICAgZW51bSBQbGFjZW1lbnQgeyBEZWZhdWx0UGxh Y2VtZW50LCBDb25zdGFudFBsYWNlbWVudCwgUmFuZG9tUGxhY2VtZW50IH07CiAKZGlmZiAtLWdp dCBhL2tyaXRhL2xpYmJydXNoL3Rlc3RzL2tpc19pbWFnZXBpcGVfYnJ1c2hfdGVzdC5jcHAgYi9r cml0YS9saWJicnVzaC90ZXN0cy9raXNfaW1hZ2VwaXBlX2JydXNoX3Rlc3QuY3BwCmluZGV4IDVj NDAzZDIuLjk2Yjk4NmIgMTAwNjQ0Ci0tLSBhL2tyaXRhL2xpYmJydXNoL3Rlc3RzL2tpc19pbWFn ZXBpcGVfYnJ1c2hfdGVzdC5jcHAKKysrIGIva3JpdGEvbGliYnJ1c2gvdGVzdHMva2lzX2ltYWdl cGlwZV9icnVzaF90ZXN0LmNwcApAQCAtMzMsMTEgKzMzLDExIEBACiAjaW5jbHVkZSA8a2lzX3Bh aW50ZXIuaD4KIAogI2RlZmluZSBDT01QQVJFX0FMTChicnVzaCwgbWV0aG9kKSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFFfRk9SRUFDSCAoS2lzR2JyQnJ1c2gg KmNoaWxkLCBicnVzaC0+dGVzdGluZ0dldEJydXNoZXMoKSkgeyAgICAgICAgICAgXAorICAgIFFf Rk9SRUFDSCAoS2lzR2JyQnJ1c2ggKmNoaWxkLCBicnVzaC0+YnJ1c2hlcygpKSB7ICAgICAgICAg ICBcCiAgICAgICAgIGlmKGJydXNoLT5tZXRob2QoKSAhPSBjaGlsZC0+bWV0aG9kKCkpIHsgICAg ICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICBkYmdLcml0YSA8PCAiRmFpbGluZyBt ZXRob2Q6IiA8PCAjbWV0aG9kICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAg ICAgICA8PCAiYnJ1c2ggaW5kZXg6IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc Ci0gICAgICAgICAgICAgICAgICAgICA8PCBicnVzaC0+dGVzdGluZ0dldEJydXNoZXMoKS5pbmRl eE9mKGNoaWxkKTsgICAgICBcCisgICAgICAgICAgICAgICAgICAgICA8PCBicnVzaC0+YnJ1c2hl cygpLmluZGV4T2YoY2hpbGQpOyAgICAgIFwKICAgICAgICAgICAgIFFDT01QQVJFKGJydXNoLT5t ZXRob2QoKSwgY2hpbGQtPm1ldGhvZCgpKTsgICAgICAgICAgICAgICAgIFwKICAgICAgICAgfSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKICAgICB9CkBAIC00NSw3ICs0NSw3IEBACiBpbmxpbmUgdm9pZCBLaXNJbWFnZVBpcGVC cnVzaFRlc3Q6OmNoZWNrQ29uc2lzdGVuY3koS2lzSW1hZ2VQaXBlQnJ1c2ggKmJydXNoKQogewog ICAgIHFyZWFsIHNjYWxlID0gMC41OyBRX1VOVVNFRChzY2FsZSk7Ci0gICAgS2lzR2JyQnJ1c2gg KmZpcnN0QnJ1c2ggPSBicnVzaC0+dGVzdGluZ0dldEJydXNoZXMoKS5maXJzdCgpOworICAgIEtp c0dickJydXNoICpmaXJzdEJydXNoID0gYnJ1c2gtPmJydXNoZXMoKS5maXJzdCgpOwogCiAgICAg LyoqCiAgICAgICogVGhpcyBzZXQgb2YgdmFsdWVzIGlzIHN1cHBvc2VkIHRvIGJlIGNvbnN0YW50 LCBzbwpAQCAtMjE2LDcgKzIxNiw3IEBAIHZvaWQgS2lzSW1hZ2VQaXBlQnJ1c2hUZXN0Ojp0ZXN0 Q29sb3JlZERhYldhc2goKQogICAgIEtpc1BhaW50ZXIgcGFpbnRlcihsYXllcik7CiAgICAgcGFp bnRlci5zZXRDb21wb3NpdGVPcChDT01QT1NJVEVfQUxQSEFfREFSS0VOKTsKIAotICAgIGNvbnN0 IFFWZWN0b3I8S2lzR2JyQnJ1c2gqPiBnYnJzID0gYnJ1c2gtPnRlc3RpbmdHZXRCcnVzaGVzKCk7 CisgICAgY29uc3QgUVZlY3RvcjxLaXNHYnJCcnVzaCo+IGdicnMgPSBicnVzaC0+YnJ1c2hlcygp OwogCiAgICAgS2lzRml4ZWRQYWludERldmljZVNQIGRhYiA9IGdicnMuYXQoMCktPnBhaW50RGV2 aWNlKGNzLCAyLjAsIDAuMCwgaW5mbyk7CiAgICAgcGFpbnRlci5ibHRGaXhlZCgwLCAwLCBkYWIs IDAsIDAsIGRhYi0+Ym91bmRzKCkud2lkdGgoKSwgZGFiLT5ib3VuZHMoKS5oZWlnaHQoKSk7CmRp ZmYgLS1naXQgYS9rcml0YS9wbHVnaW5zL2V4dGVuc2lvbnMvZG9ja2Vycy9wYWxldHRlZG9ja2Vy L0NNYWtlTGlzdHMudHh0IGIva3JpdGEvcGx1Z2lucy9leHRlbnNpb25zL2RvY2tlcnMvcGFsZXR0 ZWRvY2tlci9DTWFrZUxpc3RzLnR4dAppbmRleCBmMjBlZTk5Li5lZmMwMDE5IDEwMDY0NAotLS0g YS9rcml0YS9wbHVnaW5zL2V4dGVuc2lvbnMvZG9ja2Vycy9wYWxldHRlZG9ja2VyL0NNYWtlTGlz dHMudHh0CisrKyBiL2tyaXRhL3BsdWdpbnMvZXh0ZW5zaW9ucy9kb2NrZXJzL3BhbGV0dGVkb2Nr ZXIvQ01ha2VMaXN0cy50eHQKQEAgLTEsOSArMSw0IEBACi1zZXQoS1JJVEFfUEFMRVRURURPQ0tF Ul9TT1VSQ0VTIAotICAgIGNvbG9yc2V0Y2hvb3Nlci5jcHAgCi0gICAgcGFsZXR0ZW1vZGVsLmNw cCAKLSAgICBwYWxldHRlZG9ja2VyLmNwcCAKLSAgICBwYWxldHRlZG9ja2VyX2RvY2suY3BwIAot KQorc2V0KEtSSVRBX1BBTEVUVEVET0NLRVJfU09VUkNFUyBwYWxldHRlZG9ja2VyLmNwcCBwYWxl dHRlZG9ja2VyX2RvY2suY3BwICkKIAoga2kxOG5fd3JhcF91aShLUklUQV9QQUxFVFRFRE9DS0VS X1NPVVJDRVMKICAgICB3ZGdwYWxldHRlZG9jay51aQpkaWZmIC0tZ2l0IGEva3JpdGEvcGx1Z2lu cy9leHRlbnNpb25zL2RvY2tlcnMvcGFsZXR0ZWRvY2tlci9wYWxldHRlZG9ja2VyX2RvY2suY3Bw IGIva3JpdGEvcGx1Z2lucy9leHRlbnNpb25zL2RvY2tlcnMvcGFsZXR0ZWRvY2tlci9wYWxldHRl ZG9ja2VyX2RvY2suY3BwCmluZGV4IDMyMWQ0YWIuLmJlM2JhNzkgMTAwNjQ0Ci0tLSBhL2tyaXRh L3BsdWdpbnMvZXh0ZW5zaW9ucy9kb2NrZXJzL3BhbGV0dGVkb2NrZXIvcGFsZXR0ZWRvY2tlcl9k b2NrLmNwcAorKysgYi9rcml0YS9wbHVnaW5zL2V4dGVuc2lvbnMvZG9ja2Vycy9wYWxldHRlZG9j a2VyL3BhbGV0dGVkb2NrZXJfZG9jay5jcHAKQEAgLTQzLDggKzQzLDggQEAKICNpbmNsdWRlIDxr aXNfZGlzcGxheV9jb2xvcl9jb252ZXJ0ZXIuaD4KICNpbmNsdWRlIDxraXNfY2FudmFzMi5oPgog Ci0jaW5jbHVkZSAicGFsZXR0ZW1vZGVsLmgiCi0jaW5jbHVkZSAiY29sb3JzZXRjaG9vc2VyLmgi CisjaW5jbHVkZSAiS2lzUGFsZXR0ZU1vZGVsLmgiCisjaW5jbHVkZSAiS2lzQ29sb3JzZXRDaG9v c2VyLmgiCiAjaW5jbHVkZSAidWlfd2RncGFsZXR0ZWRvY2suaCIKIAogLy8vIFRoZSByZXNvdXJj ZSBpdGVtIGRlbGVnYXRlIGZvciByZW5kZXJpbmcgdGhlIHJlc291cmNlIHByZXZpZXcKQEAgLTEz Nyw3ICsxMzcsNyBAQCBQYWxldHRlRG9ja2VyRG9jazo6UGFsZXR0ZURvY2tlckRvY2soICkKICAg ICBjb25uZWN0KG1fd2RnUGFsZXR0ZURvY2stPmJuQWRkRGlhbG9nLCBTSUdOQUwoY2xpY2tlZChi b29sKSksIHRoaXMsIFNMT1QoYWRkQ29sb3IoKSkpOwogICAgIGNvbm5lY3QobV93ZGdQYWxldHRl RG9jay0+Ym5SZW1vdmUsIFNJR05BTChjbGlja2VkKGJvb2wpKSwgdGhpcywgU0xPVChyZW1vdmVD b2xvcigpKSk7CiAKLSAgICBtX21vZGVsID0gbmV3IFBhbGV0dGVNb2RlbCh0aGlzKTsKKyAgICBt X21vZGVsID0gbmV3IEtpc1BhbGV0dGVNb2RlbCh0aGlzKTsKICAgICBtX3dkZ1BhbGV0dGVEb2Nr LT5wYWxldHRlVmlldy0+c2V0TW9kZWwobV9tb2RlbCk7CiAgICAgbV93ZGdQYWxldHRlRG9jay0+ cGFsZXR0ZVZpZXctPnNldFNob3dHcmlkKGZhbHNlKTsKICAgICBtX3dkZ1BhbGV0dGVEb2NrLT5w YWxldHRlVmlldy0+aG9yaXpvbnRhbEhlYWRlcigpLT5zZXRWaXNpYmxlKGZhbHNlKTsKQEAgLTE1 OSw3ICsxNTksNyBAQCBQYWxldHRlRG9ja2VyRG9jazo6UGFsZXR0ZURvY2tlckRvY2soICkKICAg ICBtX3NlcnZlckFkYXB0ZXItPmNvbm5lY3RUb1Jlc291cmNlU2VydmVyKCk7CiAgICAgclNlcnZl ci0+YWRkT2JzZXJ2ZXIodGhpcyk7CiAKLSAgICBtX2NvbG9yU2V0Q2hvb3NlciA9IG5ldyBDb2xv clNldENob29zZXIodGhpcyk7CisgICAgbV9jb2xvclNldENob29zZXIgPSBuZXcgS2lzQ29sb3Jz ZXRDaG9vc2VyKHRoaXMpOwogICAgIGNvbm5lY3QobV9jb2xvclNldENob29zZXIsIFNJR05BTChw YWxldHRlU2VsZWN0ZWQoS29Db2xvclNldCopKSwgdGhpcywgU0xPVChzZXRDb2xvclNldChLb0Nv bG9yU2V0KikpKTsKIAogICAgIG1fd2RnUGFsZXR0ZURvY2stPmJuQ29sb3JTZXRzLT5zZXRJY29u KEtpc0ljb25VdGlsczo6bG9hZEljb24oImhpMTYtcGFsZXR0ZV9saWJyYXJ5IikpOwpkaWZmIC0t Z2l0IGEva3JpdGEvcGx1Z2lucy9leHRlbnNpb25zL2RvY2tlcnMvcGFsZXR0ZWRvY2tlci9wYWxl dHRlZG9ja2VyX2RvY2suaCBiL2tyaXRhL3BsdWdpbnMvZXh0ZW5zaW9ucy9kb2NrZXJzL3BhbGV0 dGVkb2NrZXIvcGFsZXR0ZWRvY2tlcl9kb2NrLmgKaW5kZXggMTBhMDdiYi4uYzBmOGViYiAxMDA2 NDQKLS0tIGEva3JpdGEvcGx1Z2lucy9leHRlbnNpb25zL2RvY2tlcnMvcGFsZXR0ZWRvY2tlci9w YWxldHRlZG9ja2VyX2RvY2suaAorKysgYi9rcml0YS9wbHVnaW5zL2V4dGVuc2lvbnMvZG9ja2Vy cy9wYWxldHRlZG9ja2VyL3BhbGV0dGVkb2NrZXJfZG9jay5oCkBAIC0zMyw4ICszMyw4IEBAIGNs YXNzIEtpc1ZpZXdNYW5hZ2VyOwogY2xhc3MgS2lzQ2FudmFzUmVzb3VyY2VQcm92aWRlcjsKIGNs YXNzIEtpc0NhbnZhczI7CiBjbGFzcyBLaXNXb3Jrc3BhY2VSZXNvdXJjZTsKLWNsYXNzIENvbG9y U2V0Q2hvb3NlcjsKLWNsYXNzIFBhbGV0dGVNb2RlbDsKK2NsYXNzIEtpc0NvbG9yc2V0Q2hvb3Nl cjsKK2NsYXNzIEtpc1BhbGV0dGVNb2RlbDsKIGNsYXNzIFVpX1dkZ1BhbGV0dGVEb2NrOwogCiAK QEAgLTcyLDEwICs3MiwxMCBAQCBwcml2YXRlIFFfU0xPVFM6CiAKIHByaXZhdGU6ICAgIAogICAg IFVpX1dkZ1BhbGV0dGVEb2NrKiBtX3dkZ1BhbGV0dGVEb2NrOwotICAgIFBhbGV0dGVNb2RlbCAq bV9tb2RlbDsKKyAgICBLaXNQYWxldHRlTW9kZWwgKm1fbW9kZWw7CiAgICAgUVNoYXJlZFBvaW50 ZXI8S29BYnN0cmFjdFJlc291cmNlU2VydmVyQWRhcHRlcj4gbV9zZXJ2ZXJBZGFwdGVyOwogICAg IEtvQ29sb3JTZXQgKm1fY3VycmVudENvbG9yU2V0OwotICAgIENvbG9yU2V0Q2hvb3NlciAqbV9j b2xvclNldENob29zZXI7CisgICAgS2lzQ29sb3JzZXRDaG9vc2VyICptX2NvbG9yU2V0Q2hvb3Nl cjsKICAgICBLaXNDYW52YXNSZXNvdXJjZVByb3ZpZGVyICptX3Jlc291cmNlUHJvdmlkZXI7CiAg ICAgS2lzQ2FudmFzMiAqbV9jYW52YXM7CiB9OwpkaWZmIC0tZ2l0IGEva3JpdGEvcGx1Z2lucy9m b3JtYXRzL0NNYWtlTGlzdHMudHh0IGIva3JpdGEvcGx1Z2lucy9mb3JtYXRzL0NNYWtlTGlzdHMu dHh0CmluZGV4IDk1OTI3MjguLjI5ZjlkYzggMTAwNjQ0Ci0tLSBhL2tyaXRhL3BsdWdpbnMvZm9y bWF0cy9DTWFrZUxpc3RzLnR4dAorKysgYi9rcml0YS9wbHVnaW5zL2Zvcm1hdHMvQ01ha2VMaXN0 cy50eHQKQEAgLTQxLDMgKzQxLDQgQEAgYWRkX3N1YmRpcmVjdG9yeShvZGcpCiBhZGRfc3ViZGly ZWN0b3J5KHFtbCkKIGFkZF9zdWJkaXJlY3RvcnkodGdhKQogYWRkX3N1YmRpcmVjdG9yeShoZWln aHRtYXApCithZGRfc3ViZGlyZWN0b3J5KGJydXNoKQpkaWZmIC0tZ2l0IGEva3JpdGEvcGx1Z2lu cy9mb3JtYXRzL2JydXNoL0NNYWtlTGlzdHMudHh0IGIva3JpdGEvcGx1Z2lucy9mb3JtYXRzL2Jy dXNoL0NNYWtlTGlzdHMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYx NmViNmYKLS0tIC9kZXYvbnVsbAorKysgYi9rcml0YS9wbHVnaW5zL2Zvcm1hdHMvYnJ1c2gvQ01h a2VMaXN0cy50eHQKQEAgLTAsMCArMSwyNiBAQAorc2V0KGtyaXRhYnJ1c2hleHBvcnRfUEFSVF9T UkNTCisgICAga2lzX2JydXNoX2V4cG9ydC5jcHAKKyAgICBLaXNBbmltYXRlZEJydXNoQW5ub3Rh dGlvbi5jcHAKKyAgICApCisKK2tpMThuX3dyYXBfdWkoa3JpdGFicnVzaGV4cG9ydF9QQVJUX1NS Q1MgIHdkZ19leHBvcnRfZ2loLnVpKQorCithZGRfbGlicmFyeShrcml0YWJydXNoZXhwb3J0IE1P RFVMRSAke2tyaXRhYnJ1c2hleHBvcnRfUEFSVF9TUkNTfSkKKwordGFyZ2V0X2xpbmtfbGlicmFy aWVzKGtyaXRhYnJ1c2hleHBvcnQga3JpdGFsaWJicnVzaCBrcml0YWxpYnBhaW50b3Aga3JpdGF1 aSkKKworaW5zdGFsbChUQVJHRVRTIGtyaXRhYnJ1c2hleHBvcnQgIERFU1RJTkFUSU9OICR7Q0FM TElHUkFfUExVR0lOX0lOU1RBTExfRElSfSkKKworc2V0KGtyaXRhYnJ1c2hpbXBvcnRfUEFSVF9T UkNTCisgICAga2lzX2JydXNoX2ltcG9ydC5jcHAKKyAgICBLaXNBbmltYXRlZEJydXNoQW5ub3Rh dGlvbi5jcHAKKyAgICApCisKK2tpMThuX3dyYXBfdWkoa3JpdGFicnVzaGltcG9ydF9QQVJUX1NS Q1MgKQorCithZGRfbGlicmFyeShrcml0YWJydXNoaW1wb3J0IE1PRFVMRSAke2tyaXRhYnJ1c2hp bXBvcnRfUEFSVF9TUkNTfSkKKwordGFyZ2V0X2xpbmtfbGlicmFyaWVzKGtyaXRhYnJ1c2hpbXBv cnQga3JpdGFsaWJicnVzaCBrcml0YXVpKQorCitpbnN0YWxsKFRBUkdFVFMga3JpdGFicnVzaGlt cG9ydCAgREVTVElOQVRJT04gJHtDQUxMSUdSQV9QTFVHSU5fSU5TVEFMTF9ESVJ9KQoraW5zdGFs bCggUFJPR1JBTVMgIGtyaXRhX2JydXNoLmRlc2t0b3AgIERFU1RJTkFUSU9OICR7WERHX0FQUFNf SU5TVEFMTF9ESVJ9KQpkaWZmIC0tZ2l0IGEva3JpdGEvcGx1Z2lucy9mb3JtYXRzL2JydXNoL0tp c0FuaW1hdGVkQnJ1c2hBbm5vdGF0aW9uLmNwcCBiL2tyaXRhL3BsdWdpbnMvZm9ybWF0cy9icnVz aC9LaXNBbmltYXRlZEJydXNoQW5ub3RhdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uMGY4YWU4MAotLS0gL2Rldi9udWxsCisrKyBiL2tyaXRhL3BsdWdpbnMvZm9y bWF0cy9icnVzaC9LaXNBbmltYXRlZEJydXNoQW5ub3RhdGlvbi5jcHAKQEAgLTAsMCArMSwzNiBA QAorLyoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAorICoKKyAqIENv cHlyaWdodCAoYykgMjAxNSBCb3VkZXdpam4gUmVtcHQgPGJvdWRAdmFsZHlhcy5vcmc+CisgKgor ICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg dGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0 byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry ZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKyNpbmNs dWRlICJLaXNBbmltYXRlZEJydXNoQW5ub3RhdGlvbi5oIgorCisjaW5jbHVkZSA8UUJ5dGVBcnJh eT4KKyNpbmNsdWRlIDxRQnVmZmVyPgorCisjaW5jbHVkZSA8a2lzX3BpcGVicnVzaF9wYXJhc2l0 ZS5oPgorCitLaXNBbmltYXRlZEJydXNoQW5ub3RhdGlvbjo6S2lzQW5pbWF0ZWRCcnVzaEFubm90 YXRpb24oY29uc3QgS2lzUGlwZUJydXNoUGFyYXNpdGUgJnBhcmFzaXRlKQorICAgIDogS2lzQW5u b3RhdGlvbigiSW1hZ2VQaXBlIFBhcmFzaXRlIiwKKyAgICAgICAgICAgICAgICAgICAgaTE4bigi QnJ1c2ggc2VsZWN0aW9uIGluZm9ybWF0aW9uIGZvciBhbmltYXRlZCBicnVzaGVzIiksCisgICAg ICAgICAgICAgICAgICAgIFFCeXRlQXJyYXkoKSkKK3sKKyAgICBRQnVmZmVyIGJ1ZigmbV9hbm5v dGF0aW9uKTsKKyAgICBidWYub3BlbihRQnVmZmVyOjpXcml0ZU9ubHkpOworICAgIHBhcmFzaXRl LnNhdmVUb0RldmljZSgmYnVmKTsKKyAgICBidWYuY2xvc2UoKTsKK30KZGlmZiAtLWdpdCBhL2ty aXRhL3BsdWdpbnMvZm9ybWF0cy9icnVzaC9LaXNBbmltYXRlZEJydXNoQW5ub3RhdGlvbi5oIGIv a3JpdGEvcGx1Z2lucy9mb3JtYXRzL2JydXNoL0tpc0FuaW1hdGVkQnJ1c2hBbm5vdGF0aW9uLmgK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjRmYTVjZAotLS0gL2Rldi9udWxs CisrKyBiL2tyaXRhL3BsdWdpbnMvZm9ybWF0cy9icnVzaC9LaXNBbmltYXRlZEJydXNoQW5ub3Rh dGlvbi5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUg S0RFIHByb2plY3QKKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMTUgQm91ZGV3aWpuIFJlbXB0IDxi b3VkQHZhbGR5YXMub3JnPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICog dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGlj ZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICog VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHBy b2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24s IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAt MTMwMSwgVVNBLgorICovCisjaWZuZGVmIEtJU0FOSU1BVEVEQlJVU0hBTk5PVEFUSU9OX0gKKyNk ZWZpbmUgS0lTQU5JTUFURURCUlVTSEFOTk9UQVRJT05fSAorCisjaW5jbHVkZSA8a2lzX2Fubm90 YXRpb24uaD4KKworY2xhc3MgS2lzUGlwZUJydXNoUGFyYXNpdGU7CisKK2NsYXNzIEtpc0FuaW1h dGVkQnJ1c2hBbm5vdGF0aW9uIDogcHVibGljIEtpc0Fubm90YXRpb24KK3sKK3B1YmxpYzoKKyAg ICBLaXNBbmltYXRlZEJydXNoQW5ub3RhdGlvbihjb25zdCBLaXNQaXBlQnJ1c2hQYXJhc2l0ZSAm cGFyYXNpdGUpOworfTsKKworI2VuZGlmIC8vIEtJU0FOSU1BVEVEQlJVU0hBTk5PVEFUSU9OX0gK ZGlmZiAtLWdpdCBhL2tyaXRhL3BsdWdpbnMvZm9ybWF0cy9icnVzaC9raXNfYnJ1c2hfZXhwb3J0 LmNwcCBiL2tyaXRhL3BsdWdpbnMvZm9ybWF0cy9icnVzaC9raXNfYnJ1c2hfZXhwb3J0LmNwcApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Y2FjYmRhCi0tLSAvZGV2L251bGwK KysrIGIva3JpdGEvcGx1Z2lucy9mb3JtYXRzL2JydXNoL2tpc19icnVzaF9leHBvcnQuY3BwCkBA IC0wLDAgKzEsMjE0IEBACisvKgorICogIENvcHlyaWdodCAoYykgMjAxNiBCb3VkZXdpam4gUmVt cHQgPGJvdWRAdmFsZHlhcy5vcmc+CisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAgaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQg YnkKKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9m IHRoZSBMaWNlbnNlLCBvcgorICogIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u CisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxv bmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK KyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAor ICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImtpc19icnVz aF9leHBvcnQuaCIKKworI2luY2x1ZGUgPFFDaGVja0JveD4KKyNpbmNsdWRlIDxRU2xpZGVyPgor I2luY2x1ZGUgPFFCdWZmZXI+CisKKyNpbmNsdWRlIDxLb1Byb3BlcnRpZXMuaD4KKyNpbmNsdWRl IDxLb0RpYWxvZy5oPgorI2luY2x1ZGUgPGtwbHVnaW5mYWN0b3J5Lmg+CisjaW5jbHVkZSA8UVVy bD4KKworI2luY2x1ZGUgPEtpc0ZpbHRlckNoYWluLmg+CisKKyNpbmNsdWRlIDxraXNfcGFpbnRf ZGV2aWNlLmg+CisjaW5jbHVkZSA8S2lzRG9jdW1lbnQuaD4KKyNpbmNsdWRlIDxraXNfaW1hZ2Uu aD4KKyNpbmNsdWRlIDxraXNfcGFpbnRfbGF5ZXIuaD4KKyNpbmNsdWRlIDxraXNfc3BhY2luZ19z ZWxlY3Rpb25fd2lkZ2V0Lmg+CisjaW5jbHVkZSA8a2lzX2dicl9icnVzaC5oPgorI2luY2x1ZGUg PGtpc19pbWFnZXBpcGVfYnJ1c2guaD4KKyNpbmNsdWRlIDxraXNfcGlwZWJydXNoX3BhcmFzaXRl Lmg+CisjaW5jbHVkZSA8S2lzQW5pbWF0ZWRCcnVzaEFubm90YXRpb24uaD4KKyNpbmNsdWRlIDxL aXNJbXBvcnRFeHBvcnRNYW5hZ2VyLmg+CisKKyNpbmNsdWRlIDx1aV93ZGdfZXhwb3J0X2dpaC5o PgorCitzdHJ1Y3QgS2lzQnJ1c2hFeHBvcnRPcHRpb25zIHsKKyAgICBxcmVhbCBzcGFjaW5nOwor ICAgIGJvb2wgbWFzazsKKyAgICBpbnQgYnJ1c2hTdHlsZTsKKyAgICBpbnQgc2VsZWN0aW9uTW9k ZTsKKyAgICBRU3RyaW5nIG5hbWU7Cit9OworCisKK0tfUExVR0lOX0ZBQ1RPUllfV0lUSF9KU09O KEtpc0JydXNoRXhwb3J0RmFjdG9yeSwgImtyaXRhX2JydXNoX2V4cG9ydC5qc29uIiwgcmVnaXN0 ZXJQbHVnaW48S2lzQnJ1c2hFeHBvcnQ+KCk7KQorCitLaXNCcnVzaEV4cG9ydDo6S2lzQnJ1c2hF eHBvcnQoUU9iamVjdCAqcGFyZW50LCBjb25zdCBRVmFyaWFudExpc3QgJikgOiBLaXNJbXBvcnRF eHBvcnRGaWx0ZXIocGFyZW50KQoreworfQorCitLaXNCcnVzaEV4cG9ydDo6fktpc0JydXNoRXhw b3J0KCkKK3sKK30KKworS2lzSW1wb3J0RXhwb3J0RmlsdGVyOjpDb252ZXJzaW9uU3RhdHVzIEtp c0JydXNoRXhwb3J0Ojpjb252ZXJ0KGNvbnN0IFFCeXRlQXJyYXkmIGZyb20sIGNvbnN0IFFCeXRl QXJyYXkmIHRvKQoreworICAgIEtpc0RvY3VtZW50ICppbnB1dCA9IG1fY2hhaW4tPmlucHV0RG9j dW1lbnQoKTsKKyAgICBRU3RyaW5nIGZpbGVuYW1lID0gbV9jaGFpbi0+b3V0cHV0RmlsZSgpOwor CisgICAgaWYgKCFpbnB1dCkKKyAgICAgICAgcmV0dXJuIEtpc0ltcG9ydEV4cG9ydEZpbHRlcjo6 Tm9Eb2N1bWVudENyZWF0ZWQ7CisKKyAgICBpZiAoZmlsZW5hbWUuaXNFbXB0eSgpKSByZXR1cm4g S2lzSW1wb3J0RXhwb3J0RmlsdGVyOjpGaWxlTm90Rm91bmQ7CisKKyAgICBpZiAoZnJvbSAhPSAi YXBwbGljYXRpb24veC1rcml0YSIpCisgICAgICAgIHJldHVybiBLaXNJbXBvcnRFeHBvcnRGaWx0 ZXI6Ok5vdEltcGxlbWVudGVkOworCisgICAgS2lzQW5ub3RhdGlvblNQIGFubm90YXRpb24gPSBp bnB1dC0+aW1hZ2UoKS0+YW5ub3RhdGlvbigiSW1hZ2VQaXBlIFBhcmFzaXRlIik7CisgICAgS2lz UGlwZUJydXNoUGFyYXNpdGUgcGFyYXNpdGU7CisgICAgaWYgKGFubm90YXRpb24pIHsKKyAgICAg ICAgUUJ1ZmZlciBidWYoY29uc3RfY2FzdDxRQnl0ZUFycmF5Kj4oJmFubm90YXRpb24tPmFubm90 YXRpb24oKSkpOworICAgICAgICBidWYub3BlbihRQnVmZmVyOjpSZWFkT25seSk7CisgICAgICAg IC8vcGFyYXNpdGUubG9hZEZyb21EZXZpY2UoJmJ1Zik7CisgICAgICAgIGJ1Zi5jbG9zZSgpOwor ICAgIH0KKworICAgIEtpc0JydXNoRXhwb3J0T3B0aW9ucyBleHBvcnRPcHRpb25zOworICAgIGV4 cG9ydE9wdGlvbnMuc3BhY2luZyA9IDEuMDsKKyAgICBleHBvcnRPcHRpb25zLm5hbWUgPSBpbnB1 dC0+aW1hZ2UoKS0+b2JqZWN0TmFtZSgpOworICAgIGV4cG9ydE9wdGlvbnMubWFzayA9IHRydWU7 CisgICAgZXhwb3J0T3B0aW9ucy5zZWxlY3Rpb25Nb2RlID0gMDsKKyAgICBleHBvcnRPcHRpb25z LmJydXNoU3R5bGUgPSAwOworCisKKyAgICBpZiAoaW5wdXQtPmltYWdlKCktPmR5bmFtaWNQcm9w ZXJ0eU5hbWVzKCkuY29udGFpbnMoImJydXNoc3BhY2luZyIpKSB7CisgICAgICAgIGV4cG9ydE9w dGlvbnMuc3BhY2luZyA9IGlucHV0LT5pbWFnZSgpLT5wcm9wZXJ0eSgiYnJ1c2hzcGFjaW5nIiku dG9GbG9hdCgpOworICAgIH0KKyAgICBLaXNHYnJCcnVzaCAqYnJ1c2g7CisKKyAgICBpZiAoIW1f Y2hhaW4tPm1hbmFnZXIoKS0+Z2V0QmF0Y2hNb2RlKCkpIHsKKworICAgICAgICBLb0RpYWxvZyog ZGxnQnJ1c2hFeHBvcnRPcHRpb25zID0gbmV3IEtvRGlhbG9nKDApOworICAgICAgICBkbGdCcnVz aEV4cG9ydE9wdGlvbnMtPnNldFdpbmRvd1RpdGxlKGkxOG4oIkJydXNoIFRpcCBFeHBvcnQgT3B0 aW9ucyIpKTsKKyAgICAgICAgZGxnQnJ1c2hFeHBvcnRPcHRpb25zLT5zZXRCdXR0b25zKEtvRGlh bG9nOjpPayB8IEtvRGlhbG9nOjpDYW5jZWwpOworCisgICAgICAgIFVpOjpXZGdFeHBvcnRHaWgg d2RnVWk7CisgICAgICAgIFFXaWRnZXQqIHdkZyA9IG5ldyBRV2lkZ2V0KGRsZ0JydXNoRXhwb3J0 T3B0aW9ucyk7CisgICAgICAgIHdkZ1VpLnNldHVwVWkod2RnKTsKKyAgICAgICAgd2RnVWkuc3Bh Y2luZ1dpZGdldC0+c2V0U3BhY2luZyhmYWxzZSwgZXhwb3J0T3B0aW9ucy5zcGFjaW5nKTsKKyAg ICAgICAgd2RnVWkubmFtZUxpbmVFZGl0LT5zZXRUZXh0KGV4cG9ydE9wdGlvbnMubmFtZSk7Cisg ICAgICAgIGRsZ0JydXNoRXhwb3J0T3B0aW9ucy0+c2V0TWFpbldpZGdldCh3ZGcpOworCisKKyAg ICAgICAgaWYgKHRvID09ICJpbWFnZS94LWdpbXAtYnJ1c2giKSB7CisgICAgICAgICAgICBicnVz aCA9IG5ldyBLaXNHYnJCcnVzaChmaWxlbmFtZSk7CisgICAgICAgICAgICB3ZGdVaS5ncm91cEJv eC0+c2V0VmlzaWJsZShmYWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAodG8gPT0g ImltYWdlL3gtZ2ltcC1icnVzaC1hbmltYXRlZCIpIHsKKyAgICAgICAgICAgIGJydXNoID0gbmV3 IEtpc0ltYWdlUGlwZUJydXNoKGZpbGVuYW1lKTsKKyAgICAgICAgICAgIHdkZ1VpLmdyb3VwQm94 LT5zZXRWaXNpYmxlKHRydWUpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAg ICAgZGVsZXRlIGRsZ0JydXNoRXhwb3J0T3B0aW9uczsKKyAgICAgICAgICAgIHJldHVybiBLaXNJ bXBvcnRFeHBvcnRGaWx0ZXI6OkJhZE1pbWVUeXBlOworICAgICAgICB9CisKKyAgICAgICAgaWYg KGRsZ0JydXNoRXhwb3J0T3B0aW9ucy0+ZXhlYygpID09IFFEaWFsb2c6OlJlamVjdGVkKSB7Cisg ICAgICAgICAgICBkZWxldGUgZGxnQnJ1c2hFeHBvcnRPcHRpb25zOworICAgICAgICAgICAgcmV0 dXJuIEtpc0ltcG9ydEV4cG9ydEZpbHRlcjo6VXNlckNhbmNlbGxlZDsKKyAgICAgICAgfQorICAg ICAgICBlbHNlIHsKKyAgICAgICAgICAgIGV4cG9ydE9wdGlvbnMuc3BhY2luZyA9IHdkZ1VpLnNw YWNpbmdXaWRnZXQtPnNwYWNpbmcoKTsKKyAgICAgICAgICAgIGV4cG9ydE9wdGlvbnMubmFtZSA9 IHdkZ1VpLmJydXNoTmFtZUxibC0+dGV4dCgpOworICAgICAgICAgICAgZXhwb3J0T3B0aW9ucy5t YXNrID0gd2RnVWkuY29sb3JBc01hc2stPmlzQ2hlY2tlZCgpOworICAgICAgICAgICAgZXhwb3J0 T3B0aW9ucy5icnVzaFN0eWxlID0gd2RnVWkuYnJ1c2hTdHlsZS0+Y3VycmVudEluZGV4KCk7Cisg ICAgICAgICAgICBleHBvcnRPcHRpb25zLnNlbGVjdGlvbk1vZGUgPSB3ZGdVaS5jbWJTZWxlY3Rp b25Nb2RlLT5jdXJyZW50SW5kZXgoKTsKKyAgICAgICAgICAgIGRlbGV0ZSBkbGdCcnVzaEV4cG9y dE9wdGlvbnM7CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHFBcHAtPnBy b2Nlc3NFdmVudHMoKTsgLy8gRm9yIHZlY3RvciBsYXllcnMgdG8gYmUgdXBkYXRlZAorICAgIH0K KworCisgICAgaW5wdXQtPmltYWdlKCktPndhaXRGb3JEb25lKCk7CisgICAgUVJlY3QgcmMgPSBp bnB1dC0+aW1hZ2UoKS0+Ym91bmRzKCk7CisgICAgaW5wdXQtPmltYWdlKCktPnJlZnJlc2hHcmFw aCgpOworICAgIGlucHV0LT5pbWFnZSgpLT5sb2NrKCk7CisKKyAgICBicnVzaC0+c2V0TmFtZShl eHBvcnRPcHRpb25zLm5hbWUpOworICAgIGJydXNoLT5zZXRTcGFjaW5nKGV4cG9ydE9wdGlvbnMu c3BhY2luZyk7CisgICAgYnJ1c2gtPnNldFVzZUNvbG9yQXNNYXNrKGV4cG9ydE9wdGlvbnMubWFz ayk7CisKKyAgICBpbnQgdyA9IGlucHV0LT5pbWFnZSgpLT53aWR0aCgpOworICAgIGludCBoID0g aW5wdXQtPmltYWdlKCktPmhlaWdodCgpOworCisgICAgS2lzSW1hZ2VQaXBlQnJ1c2ggKnBpcGVC cnVzaCA9IGR5bmFtaWNfY2FzdDxLaXNJbWFnZVBpcGVCcnVzaCo+KGJydXNoKTsKKyAgICBpZiAo cGlwZUJydXNoKSB7CisgICAgICAgIC8vIENyZWF0ZSBwYXJhc2l0ZS4gWFhYOiBzaGFyZSB3aXRo IEtpc0N1c3RvbUJydXNoV2lkZ2V0CisgICAgICAgIFFWZWN0b3I8IFFWZWN0b3I8S2lzUGFpbnRE ZXZpY2UqPiA+IGRldmljZXM7CisgICAgICAgIGRldmljZXMucHVzaF9iYWNrKFFWZWN0b3I8S2lz UGFpbnREZXZpY2UqPigpKTsKKworICAgICAgICBLb1Byb3BlcnRpZXMgcHJvcGVydGllczsKKyAg ICAgICAgcHJvcGVydGllcy5zZXRQcm9wZXJ0eSgidmlzaWJsZSIsIHRydWUpOworICAgICAgICBR TGlzdDxLaXNOb2RlU1A+IGxheWVycyA9IGlucHV0LT5pbWFnZSgpLT5yb290KCktPmNoaWxkTm9k ZXMoUVN0cmluZ0xpc3QoIktpc0xheWVyIiksIHByb3BlcnRpZXMpOworICAgICAgICBLaXNOb2Rl U1Agbm9kZTsKKyAgICAgICAgUV9GT1JFQUNIIChLaXNOb2RlU1Agbm9kZSwgbGF5ZXJzKSB7Cisg ICAgICAgICAgICBkZXZpY2VzWzBdLnB1c2hfYmFjayhub2RlLT5wcm9qZWN0aW9uKCkuZGF0YSgp KTsKKyAgICAgICAgfQorCisKKyAgICAgICAgUVZlY3RvcjxLaXNQYXJhc2l0ZTo6U2VsZWN0aW9u TW9kZSA+IG1vZGVzOworICAgICAgICBzd2l0Y2ggKGV4cG9ydE9wdGlvbnMuc2VsZWN0aW9uTW9k ZSkgeworICAgICAgICBjYXNlIDA6IG1vZGVzLnB1c2hfYmFjayhLaXNQYXJhc2l0ZTo6Q29uc3Rh bnQpOyBicmVhazsKKyAgICAgICAgY2FzZSAxOiBtb2Rlcy5wdXNoX2JhY2soS2lzUGFyYXNpdGU6 OlJhbmRvbSk7IGJyZWFrOworICAgICAgICBjYXNlIDI6IG1vZGVzLnB1c2hfYmFjayhLaXNQYXJh c2l0ZTo6SW5jcmVtZW50YWwpOyBicmVhazsKKyAgICAgICAgY2FzZSAzOiBtb2Rlcy5wdXNoX2Jh Y2soS2lzUGFyYXNpdGU6OlByZXNzdXJlKTsgYnJlYWs7CisgICAgICAgIGNhc2UgNDogbW9kZXMu cHVzaF9iYWNrKEtpc1BhcmFzaXRlOjpBbmd1bGFyKTsgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6 IG1vZGVzLnB1c2hfYmFjayhLaXNQYXJhc2l0ZTo6SW5jcmVtZW50YWwpOworICAgICAgICB9CisK KyAgICAgICAgS2lzUGlwZUJydXNoUGFyYXNpdGUgcGFyYXNpdGU7CisKKyAgICAgICAgLy8gWFhY OiBzaGFyZSBjb2RlIHdpdGggS2lzSW1hZ2VQaXBlQnJ1c2gsIHdoZW4gd2UgZmlndXJlIG91dCBo b3cgdG8gc3VwcG9ydCBtb3JlIGdpaCBmZWF0dXJlcworICAgICAgICBwYXJhc2l0ZS5kaW0gPSBk ZXZpY2VzLmNvdW50KCk7CisgICAgICAgIC8vIFhYWCBDaGFuZ2UgZm9yIG11bHRpZGltISA6Cisg ICAgICAgIHBhcmFzaXRlLm5jZWxscyA9IGRldmljZXMuYXQoMCkuY291bnQoKTsKKyAgICAgICAg cGFyYXNpdGUucmFua1swXSA9IHBhcmFzaXRlLm5jZWxsczsgLy8gIyMjIFRoaXMgY2FuIG1hc2sg c29tZSBidWdzLCBiZSBjYXJlZnVsIGhlcmUgaW4gdGhlIGZ1dHVyZQorICAgICAgICBwYXJhc2l0 ZS5zZWxlY3Rpb25bMF0gPSBtb2Rlcy5hdCgwKTsKKyAgICAgICAgLy8gWFhYIG5lZWRzbW92ZW1l bnQhCisgICAgICAgIHBhcmFzaXRlLnNldEJydXNoZXNDb3VudCgpOworICAgICAgICBwaXBlQnJ1 c2gtPnNldFBhcmFzaXRlKHBhcmFzaXRlKTsKKyAgICAgICAgcGlwZUJydXNoLT5zZXREZXZpY2Vz KGRldmljZXMsIHcsIGgpOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgUUltYWdlIGltYWdl ID0gaW5wdXQtPmltYWdlKCktPnByb2plY3Rpb24oKS0+Y29udmVydFRvUUltYWdlKDAsIDAsIDAs IHJjLndpZHRoKCksIHJjLmhlaWdodCgpLCBLb0NvbG9yQ29udmVyc2lvblRyYW5zZm9ybWF0aW9u OjppbnRlcm5hbFJlbmRlcmluZ0ludGVudCgpLCBLb0NvbG9yQ29udmVyc2lvblRyYW5zZm9ybWF0 aW9uOjppbnRlcm5hbENvbnZlcnNpb25GbGFncygpKTsKKyAgICAgICAgYnJ1c2gtPnNldEltYWdl KGltYWdlKTsKKyAgICB9CisKKyAgICBicnVzaC0+c2V0V2lkdGgodyk7CisgICAgYnJ1c2gtPnNl dEhlaWdodChoKTsKKworICAgIGlucHV0LT5pbWFnZSgpLT51bmxvY2soKTsKKworICAgIFFGaWxl IGYoZmlsZW5hbWUpOworICAgIGYub3BlbihRSU9EZXZpY2U6OldyaXRlT25seSk7CisgICAgYnJ1 c2gtPnNhdmVUb0RldmljZSgmZik7CisgICAgZi5jbG9zZSgpOworCisgICAgcmV0dXJuIEtpc0lt cG9ydEV4cG9ydEZpbHRlcjo6T0s7Cit9CisKKyNpbmNsdWRlICJraXNfYnJ1c2hfZXhwb3J0Lm1v YyIKKwpkaWZmIC0tZ2l0IGEva3JpdGEvcGx1Z2lucy9mb3JtYXRzL2JydXNoL2tpc19icnVzaF9l eHBvcnQuaCBiL2tyaXRhL3BsdWdpbnMvZm9ybWF0cy9icnVzaC9raXNfYnJ1c2hfZXhwb3J0LmgK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjY5MzM4NwotLS0gL2Rldi9udWxs CisrKyBiL2tyaXRhL3BsdWdpbnMvZm9ybWF0cy9icnVzaC9raXNfYnJ1c2hfZXhwb3J0LmgKQEAg LTAsMCArMSwzNyBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDIwMTYgQm91ZGV3aWpuIFJlbXB0 IDxib3VkQHZhbGR5YXMub3JnPgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogIGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 CisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0 aGUgTGljZW5zZSwgb3IKKyAqICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor ICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqICBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25n IHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisg KiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgX0tJU19CcnVzaF9F WFBPUlRfSF8KKyNkZWZpbmUgX0tJU19CcnVzaF9FWFBPUlRfSF8KKworI2luY2x1ZGUgPFFWYXJp YW50PgorCisjaW5jbHVkZSA8S2lzSW1wb3J0RXhwb3J0RmlsdGVyLmg+CisKK2NsYXNzIEtpc0Jy dXNoRXhwb3J0IDogcHVibGljIEtpc0ltcG9ydEV4cG9ydEZpbHRlcgoreworICAgIFFfT0JKRUNU CitwdWJsaWM6CisgICAgS2lzQnJ1c2hFeHBvcnQoUU9iamVjdCAqcGFyZW50LCBjb25zdCBRVmFy aWFudExpc3QgJik7CisgICAgdmlydHVhbCB+S2lzQnJ1c2hFeHBvcnQoKTsKK3B1YmxpYzoKKyAg ICB2aXJ0dWFsIEtpc0ltcG9ydEV4cG9ydEZpbHRlcjo6Q29udmVyc2lvblN0YXR1cyBjb252ZXJ0 KGNvbnN0IFFCeXRlQXJyYXkmIGZyb20sIGNvbnN0IFFCeXRlQXJyYXkmIHRvKTsKK307CisKKyNl bmRpZgpkaWZmIC0tZ2l0IGEva3JpdGEvcGx1Z2lucy9mb3JtYXRzL2JydXNoL2tpc19icnVzaF9p bXBvcnQuY3BwIGIva3JpdGEvcGx1Z2lucy9mb3JtYXRzL2JydXNoL2tpc19icnVzaF9pbXBvcnQu Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwODA1NGYKLS0tIC9kZXYv bnVsbAorKysgYi9rcml0YS9wbHVnaW5zL2Zvcm1hdHMvYnJ1c2gva2lzX2JydXNoX2ltcG9ydC5j cHAKQEAgLTAsMCArMSwxNDkgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDE2IEJvdWRld2lq biBSZW1wdCA8Ym91ZEB2YWxkeWFzLm9yZz4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQorICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9u IDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiAgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAq ICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0 d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv b3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAia2lz X2JydXNoX2ltcG9ydC5oIgorCisjaW5jbHVkZSA8UUNoZWNrQm94PgorI2luY2x1ZGUgPFFCdWZm ZXI+CisjaW5jbHVkZSA8UVNsaWRlcj4KKyNpbmNsdWRlIDxRQXBwbGljYXRpb24+CisKKyNpbmNs dWRlIDxrcGx1Z2luZmFjdG9yeS5oPgorI2luY2x1ZGUgPFFVcmw+CisKKyNpbmNsdWRlIDxLb0Nv bG9yU3BhY2UuaD4KKyNpbmNsdWRlIDxLb0NvbG9yU3BhY2VSZWdpc3RyeS5oPgorI2luY2x1ZGUg PEtvQ29sb3JNb2RlbFN0YW5kYXJkSWRzLmg+CisKKyNpbmNsdWRlIDxLaXNGaWx0ZXJDaGFpbi5o PgorI2luY2x1ZGUgPEtpc0RvY3VtZW50Lmg+CisKKyNpbmNsdWRlIDxraXNfdHJhbnNhY3Rpb24u aD4KKyNpbmNsdWRlIDxraXNfcGFpbnRfZGV2aWNlLmg+CisjaW5jbHVkZSA8a2lzX2ltYWdlLmg+ CisjaW5jbHVkZSA8a2lzX3BhaW50X2xheWVyLmg+CisjaW5jbHVkZSA8a2lzX25vZGUuaD4KKyNp bmNsdWRlIDxraXNfZ3JvdXBfbGF5ZXIuaD4KKworI2luY2x1ZGUgPGtpc19nYnJfYnJ1c2guaD4K KyNpbmNsdWRlIDxraXNfaW1hZ2VwaXBlX2JydXNoLmg+CisjaW5jbHVkZSA8S2lzQW5pbWF0ZWRC cnVzaEFubm90YXRpb24uaD4KKworS19QTFVHSU5fRkFDVE9SWV9XSVRIX0pTT04oS2lzQnJ1c2hJ bXBvcnRGYWN0b3J5LCAia3JpdGFfYnJ1c2hfaW1wb3J0Lmpzb24iLCByZWdpc3RlclBsdWdpbjxL aXNCcnVzaEltcG9ydD4oKTspCisKK0tpc0JydXNoSW1wb3J0OjpLaXNCcnVzaEltcG9ydChRT2Jq ZWN0ICpwYXJlbnQsIGNvbnN0IFFWYXJpYW50TGlzdCAmKSA6IEtpc0ltcG9ydEV4cG9ydEZpbHRl cihwYXJlbnQpCit7Cit9CisKK0tpc0JydXNoSW1wb3J0Ojp+S2lzQnJ1c2hJbXBvcnQoKQorewor fQorCisKK0tpc0ltcG9ydEV4cG9ydEZpbHRlcjo6Q29udmVyc2lvblN0YXR1cyBLaXNCcnVzaElt cG9ydDo6Y29udmVydChjb25zdCBRQnl0ZUFycmF5JiBmcm9tLCBjb25zdCBRQnl0ZUFycmF5JiB0 bykKK3sKKyAgICBpZiAodG8gIT0gImFwcGxpY2F0aW9uL3gta3JpdGEiKQorICAgICAgICByZXR1 cm4gS2lzSW1wb3J0RXhwb3J0RmlsdGVyOjpCYWRNaW1lVHlwZTsKKworICAgIFFTdHJpbmcgZmls ZW5hbWUgPSBtX2NoYWluLT5pbnB1dEZpbGUoKTsKKworICAgIGlmICghZmlsZW5hbWUuaXNFbXB0 eSgpKSB7CisKKyAgICAgICAgaWYgKCFRRmlsZShmaWxlbmFtZSkuZXhpc3RzKCkpIHsKKyAgICAg ICAgICAgIHJldHVybiBLaXNJbXBvcnRFeHBvcnRGaWx0ZXI6OkZpbGVOb3RGb3VuZDsKKyAgICAg ICAgfQorCisKKyAgICAgICAgS2lzQnJ1c2ggKmJydXNoOworCisgICAgICAgIGlmIChmcm9tID09 ICJpbWFnZS94LWdpbXAtYnJ1c2giKSB7CisgICAgICAgICAgICBicnVzaCA9IG5ldyBLaXNHYnJC cnVzaChmaWxlbmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoZnJvbSA9PSAiaW1h Z2UveC1naW1wLWJydXNoLWFuaW1hdGVkIikgeworICAgICAgICAgICAgYnJ1c2ggPSBuZXcgS2lz SW1hZ2VQaXBlQnJ1c2goZmlsZW5hbWUpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAg ICAgICAgICAgcmV0dXJuIEtpc0ltcG9ydEV4cG9ydEZpbHRlcjo6QmFkTWltZVR5cGU7CisgICAg ICAgIH0KKworCisgICAgICAgIGlmICghYnJ1c2gtPmxvYWQoKSkgeworICAgICAgICAgICAgZGVs ZXRlIGJydXNoOworICAgICAgICAgICAgcmV0dXJuIEtpc0ltcG9ydEV4cG9ydEZpbHRlcjo6SW52 YWxpZEZvcm1hdDsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghYnJ1c2gtPnZhbGlkKCkpIHsK KyAgICAgICAgICAgIGRlbGV0ZSBicnVzaDsKKyAgICAgICAgICAgIHJldHVybiBLaXNJbXBvcnRF eHBvcnRGaWx0ZXI6OkludmFsaWRGb3JtYXQ7CisgICAgICAgIH0KKworICAgICAgICBLaXNEb2N1 bWVudCAqIGRvYyA9IG1fY2hhaW4tPm91dHB1dERvY3VtZW50KCk7CisKKyAgICAgICAgaWYgKCFk b2MpIHsKKyAgICAgICAgICAgIGRlbGV0ZSBicnVzaDsKKyAgICAgICAgICAgIHJldHVybiBLaXNJ bXBvcnRFeHBvcnRGaWx0ZXI6Ok5vRG9jdW1lbnRDcmVhdGVkOworICAgICAgICB9CisKKyAgICAg ICAgZG9jLT5wcmVwYXJlRm9ySW1wb3J0KCk7CisKKyAgICAgICAgY29uc3QgS29Db2xvclNwYWNl ICpjb2xvclNwYWNlID0gMDsKKyAgICAgICAgaWYgKGJydXNoLT5oYXNDb2xvcigpKSB7CisgICAg ICAgICAgICBjb2xvclNwYWNlID0gS29Db2xvclNwYWNlUmVnaXN0cnk6Omluc3RhbmNlKCktPnJn YjgoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGNvbG9yU3BhY2Ug PSBLb0NvbG9yU3BhY2VSZWdpc3RyeTo6aW5zdGFuY2UoKS0+Y29sb3JTcGFjZShHcmF5QUNvbG9y TW9kZWxJRC5pZCgpLCBJbnRlZ2VyOEJpdHNDb2xvckRlcHRoSUQuaWQoKSwgIiIpOworICAgICAg ICB9CisKKyAgICAgICAgS2lzSW1hZ2VXU1AgaW1hZ2UgPSBuZXcgS2lzSW1hZ2UoZG9jLT5jcmVh dGVVbmRvU3RvcmUoKSwgYnJ1c2gtPndpZHRoKCksIGJydXNoLT5oZWlnaHQoKSwgY29sb3JTcGFj ZSwgYnJ1c2gtPm5hbWUoKSk7CisgICAgICAgIGltYWdlLT5zZXRQcm9wZXJ0eSgiYnJ1c2hzcGFj aW5nIiwgYnJ1c2gtPnNwYWNpbmcoKSk7CisKKyAgICAgICAgS2lzSW1hZ2VQaXBlQnJ1c2ggKnBp cGVCcnVzaCA9IGR5bmFtaWNfY2FzdDxLaXNJbWFnZVBpcGVCcnVzaCo+KGJydXNoKTsKKyAgICAg ICAgaWYgKHBpcGVCcnVzaCkgeworICAgICAgICAgICAgUVZlY3RvcjxLaXNHYnJCcnVzaCo+IGJy dXNoZXMgPSBwaXBlQnJ1c2gtPmJydXNoZXMoKTsKKyAgICAgICAgICAgIGZvcihpbnQgaSA9IGJy dXNoZXMuc2l6ZSgpOyBpID4gMDsgaS0tKSB7CisgICAgICAgICAgICAgICAgS2lzR2JyQnJ1c2gg KnN1YmJydXNoID0gYnJ1c2hlcy5hdChpIC0gMSk7CisgICAgICAgICAgICAgICAgY29uc3QgS29D b2xvclNwYWNlICpzdWJDb2xvclNwYWNlID0gMDsKKyAgICAgICAgICAgICAgICBpZiAoYnJ1c2gt Pmhhc0NvbG9yKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgc3ViQ29sb3JTcGFjZSA9IEtvQ29s b3JTcGFjZVJlZ2lzdHJ5OjppbnN0YW5jZSgpLT5yZ2I4KCk7CisgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBzdWJDb2xvclNwYWNl ID0gS29Db2xvclNwYWNlUmVnaXN0cnk6Omluc3RhbmNlKCktPmNvbG9yU3BhY2UoR3JheUFDb2xv ck1vZGVsSUQuaWQoKSwgSW50ZWdlcjhCaXRzQ29sb3JEZXB0aElELmlkKCksICIiKTsKKyAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgS2lzUGFpbnRMYXllclNQIGxheWVyID0gbmV3 IEtpc1BhaW50TGF5ZXIoaW1hZ2UsIGltYWdlLT5uZXh0TGF5ZXJOYW1lKCksIDI1NSwgc3ViQ29s b3JTcGFjZSk7CisgICAgICAgICAgICAgICAgbGF5ZXItPnBhaW50RGV2aWNlKCktPmNvbnZlcnRG cm9tUUltYWdlKHN1YmJydXNoLT5icnVzaFRpcEltYWdlKCksIDAsIDAsIDApOworICAgICAgICAg ICAgICAgIGltYWdlLT5hZGROb2RlKGxheWVyLCBpbWFnZS0+cm9vdExheWVyKCkpOworICAgICAg ICAgICAgfQorICAgICAgICAgICAgS2lzQW5ub3RhdGlvblNQIGFubiA9IG5ldyBLaXNBbmltYXRl ZEJydXNoQW5ub3RhdGlvbihwaXBlQnJ1c2gtPnBhcmFzaXRlKCkpOworICAgICAgICAgICAgaW1h Z2UtPmFkZEFubm90YXRpb24oYW5uKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAg ICAgICAgIEtpc1BhaW50TGF5ZXJTUCBsYXllciA9IG5ldyBLaXNQYWludExheWVyKGltYWdlLCBp bWFnZS0+bmV4dExheWVyTmFtZSgpLCAyNTUsIGNvbG9yU3BhY2UpOworICAgICAgICAgICAgbGF5 ZXItPnBhaW50RGV2aWNlKCktPmNvbnZlcnRGcm9tUUltYWdlKGJydXNoLT5icnVzaFRpcEltYWdl KCksIDAsIDAsIDApOworICAgICAgICAgICAgaW1hZ2UtPmFkZE5vZGUobGF5ZXIsIGltYWdlLT5y b290TGF5ZXIoKSwgMCk7CisgICAgICAgIH0KKworICAgICAgICBkb2MtPnNldEN1cnJlbnRJbWFn ZShpbWFnZSk7CisgICAgICAgIGRlbGV0ZSBicnVzaDsKKyAgICAgICAgcmV0dXJuIEtpc0ltcG9y dEV4cG9ydEZpbHRlcjo6T0s7CisgICAgfQorCisgICAgcmV0dXJuIEtpc0ltcG9ydEV4cG9ydEZp bHRlcjo6U3RvcmFnZUNyZWF0aW9uRXJyb3I7CisKK30KKyNpbmNsdWRlICJraXNfYnJ1c2hfaW1w b3J0Lm1vYyIKZGlmZiAtLWdpdCBhL2tyaXRhL3BsdWdpbnMvZm9ybWF0cy9icnVzaC9raXNfYnJ1 c2hfaW1wb3J0LmggYi9rcml0YS9wbHVnaW5zL2Zvcm1hdHMvYnJ1c2gva2lzX2JydXNoX2ltcG9y dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ2Yjg1ZWMKLS0tIC9kZXYv bnVsbAorKysgYi9rcml0YS9wbHVnaW5zL2Zvcm1hdHMvYnJ1c2gva2lzX2JydXNoX2ltcG9ydC5o CkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDE2IEJvdWRld2lqbiBS ZW1wdCA8Ym91ZEB2YWxkeWFzLm9yZz4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieQorICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIg b2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiAgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBh bG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2Fy ZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is CisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIF9LSVNfQnJ1 c2hfSU1QT1JUX0hfCisjZGVmaW5lIF9LSVNfQnJ1c2hfSU1QT1JUX0hfCisKKyNpbmNsdWRlIDxR VmFyaWFudD4KKworI2luY2x1ZGUgPEtpc0ltcG9ydEV4cG9ydEZpbHRlci5oPgorCitjbGFzcyBL aXNCcnVzaEltcG9ydCA6IHB1YmxpYyBLaXNJbXBvcnRFeHBvcnRGaWx0ZXIKK3sKKyAgICBRX09C SkVDVAorcHVibGljOgorICAgIEtpc0JydXNoSW1wb3J0KFFPYmplY3QgKnBhcmVudCwgY29uc3Qg UVZhcmlhbnRMaXN0ICYpOworICAgIHZpcnR1YWwgfktpc0JydXNoSW1wb3J0KCk7CitwdWJsaWM6 CisgICAgdmlydHVhbCBLaXNJbXBvcnRFeHBvcnRGaWx0ZXI6OkNvbnZlcnNpb25TdGF0dXMgY29u dmVydChjb25zdCBRQnl0ZUFycmF5JiBmcm9tLCBjb25zdCBRQnl0ZUFycmF5JiB0byk7Cit9Owor CisjZW5kaWYKZGlmZiAtLWdpdCBhL2tyaXRhL3BsdWdpbnMvZm9ybWF0cy9icnVzaC9rcml0YV9i cnVzaC5kZXNrdG9wIGIva3JpdGEvcGx1Z2lucy9mb3JtYXRzL2JydXNoL2tyaXRhX2JydXNoLmRl c2t0b3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDcxODMxMwotLS0gL2Rl di9udWxsCisrKyBiL2tyaXRhL3BsdWdpbnMvZm9ybWF0cy9icnVzaC9rcml0YV9icnVzaC5kZXNr dG9wCkBAIC0wLDAgKzEsNzIgQEAKK1tEZXNrdG9wIEVudHJ5XQorTmFtZT1Lcml0YQorTmFtZVth Zl09S3JpdGEKK05hbWVbYmddPUtyaXRhCitOYW1lW2JyXT1Lcml0YQorTmFtZVtic109S3JpdGEK K05hbWVbY2FdPUtyaXRhCitOYW1lW2NhQHZhbGVuY2lhXT1Lcml0YQorTmFtZVtjeV09S3JpdGEK K05hbWVbZGFdPUtyaXRhCitOYW1lW2RlXT1Lcml0YQorTmFtZVtlbF09S3JpdGEKK05hbWVbZW5f R0JdPUtyaXRhCitOYW1lW2VvXT1Lcml0YQorTmFtZVtlc109S3JpdGEKK05hbWVbZXRdPUtyaXRh CitOYW1lW2V1XT1Lcml0YQorTmFtZVtmaV09S3JpdGEKK05hbWVbZnJdPUtyaXRhCitOYW1lW2Z5 XT1Lcml0YQorTmFtZVtnYV09S3JpdGEKK05hbWVbZ2xdPUtyaXRhCitOYW1lW2hlXT1Lcml0YQor TmFtZVtoaV094KSV4KWH4KSw4KS/4KSk4KS+CitOYW1lW2huZV094KSV4KWH4KSw4KS/4KSk4KS+ CitOYW1lW2hyXT1Lcml0YQorTmFtZVtodV09S3JpdGEKK05hbWVbaWFdPUtyaXRhCitOYW1lW2lz XT1Lcml0YQorTmFtZVtpdF09S3JpdGEKK05hbWVba2tdPUtyaXRhCitOYW1lW2tvXT1Lcml0YQor TmFtZVtsdF09S3JpdGEKK05hbWVbbHZdPUtyaXRhCitOYW1lW21yXT3gpJXgpY3gpLDgpL/gpJ/g pL4KK05hbWVbbXNdPUtyaXRhCitOYW1lW25iXT1Lcml0YQorTmFtZVtuZHNdPUtyaXRhCitOYW1l W25lXT3gpJXgpY3gpLDgpL/gpKTgpL4KK05hbWVbbmxdPUtyaXRhCitOYW1lW3BsXT1Lcml0YQor TmFtZVtwdF09S3JpdGEKK05hbWVbcHRfQlJdPUtyaXRhCitOYW1lW3JvXT1Lcml0YQorTmFtZVty dV09S3JpdGEKK05hbWVbc2VdPUtyaXRhCitOYW1lW3NrXT1Lcml0YQorTmFtZVtzbF09S3JpdGEK K05hbWVbc3ZdPUtyaXRhCitOYW1lW3RhXT3grpXgrr/grrDgrr/grp/gr43grp/grr4KK05hbWVb dGddPUtyaXRhCitOYW1lW3RyXT1Lcml0YQorTmFtZVt1Z109S3JpdGEKK05hbWVbdWtdPUtyaXRh CitOYW1lW3V6XT1Lcml0YQorTmFtZVt1ekBjeXJpbGxpY109S3JpdGEKK05hbWVbd2FdPUtyaXRh CitOYW1lW3hoXT1Lcml0YQorTmFtZVt4LXRlc3RdPXh4S3JpdGF4eAorTmFtZVt6aF9DTl09S3Jp dGEKK05hbWVbemhfVFddPee5quWcll9Lcml0YQorRXhlYz1rcml0YSAldQorTWltZVR5cGU9aW1h Z2UveC10Z2E7CitUeXBlPUFwcGxpY2F0aW9uCitJY29uPWNhbGxpZ3Jha3JpdGEKK0NhdGVnb3Jp ZXM9UXQ7S0RFO09mZmljZTtHcmFwaGljczsKK1N0YXJ0dXBOb3RpZnk9dHJ1ZQorWC1LREUtU2Vy dmljZVR5cGVzPUNhbGxpZ3JhL0FwcGxpY2F0aW9uCitYLUNhbGxpZ3JhLURlZmF1bHRNaW1lVHlw ZXM9aW1hZ2UveC1naW1wLWJydXNoLGltYWdlL3gtZ2ltcC1icnVzaC1hbmltYXRlZAorWC1EQlVT LVN0YXJ0dXBUeXBlPU11bHRpCitYLURCVVMtU2VydmljZU5hbWU9b3JnLmtyaXRhLmtyaXRhCitO b0Rpc3BsYXk9dHJ1ZQpkaWZmIC0tZ2l0IGEva3JpdGEvcGx1Z2lucy9mb3JtYXRzL2JydXNoL2ty aXRhX2JydXNoX2V4cG9ydC5qc29uIGIva3JpdGEvcGx1Z2lucy9mb3JtYXRzL2JydXNoL2tyaXRh X2JydXNoX2V4cG9ydC5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNj Y2ExNGUKLS0tIC9kZXYvbnVsbAorKysgYi9rcml0YS9wbHVnaW5zL2Zvcm1hdHMvYnJ1c2gva3Jp dGFfYnJ1c2hfZXhwb3J0Lmpzb24KQEAgLTAsMCArMSwxMSBAQAoreworICAgICJJZCI6ICJLcml0 YSBCcnVzaCBFeHBvcnQgRmlsdGVyIiwKKyAgICAiWC1LREUtU2VydmljZVR5cGVzIjogWworICAg ICAgICAiS3JpdGEvRmlsZUZpbHRlciIKKyAgICBdLAorICAgICJOb0Rpc3BsYXkiOiAidHJ1ZSIs CisgICAgIlgtS0RFLUV4cG9ydCI6ICJpbWFnZS94LWdpbXAtYnJ1c2gsaW1hZ2UveC1naW1wLWJy dXNoLWFuaW1hdGVkIiwKKyAgICAiWC1LREUtSW1wb3J0IjogImFwcGxpY2F0aW9uL3gta3JpdGEi LAorICAgICJYLUtERS1XZWlnaHQiOiAiMSIsCisgICAgIlgtS0RFLUV4dGVuc2lvbnMiIDogImdp aCxnYnIiCit9CmRpZmYgLS1naXQgYS9rcml0YS9wbHVnaW5zL2Zvcm1hdHMvYnJ1c2gva3JpdGFf YnJ1c2hfaW1wb3J0Lmpzb24gYi9rcml0YS9wbHVnaW5zL2Zvcm1hdHMvYnJ1c2gva3JpdGFfYnJ1 c2hfaW1wb3J0Lmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDVhYzY0 MQotLS0gL2Rldi9udWxsCisrKyBiL2tyaXRhL3BsdWdpbnMvZm9ybWF0cy9icnVzaC9rcml0YV9i cnVzaF9pbXBvcnQuanNvbgpAQCAtMCwwICsxLDExIEBACit7CisgICAgIklkIjogIktyaXRhIEJy dXNoIEltcG9ydCBGaWx0ZXIiLAorICAgICJYLUtERS1TZXJ2aWNlVHlwZXMiOiBbCisgICAgICAg ICJLcml0YS9GaWxlRmlsdGVyIgorICAgIF0sCisgICAgIk5vRGlzcGxheSI6ICJ0cnVlIiwKKyAg ICAiWC1LREUtRXhwb3J0IjogImFwcGxpY2F0aW9uL3gta3JpdGEiLAorICAgICJYLUtERS1JbXBv cnQiOiAiaW1hZ2UveC1naW1wLWJydXNoLGltYWdlL3gtZ2ltcC1icnVzaC1hbmltYXRlZCIsCisg ICAgIlgtS0RFLVdlaWdodCI6ICIxIiwKKyAgICAiWC1LREUtRXh0ZW5zaW9ucyIgOiAiZ2loLGdi ciIKK30KZGlmZiAtLWdpdCBhL2tyaXRhL3BsdWdpbnMvZm9ybWF0cy9icnVzaC93ZGdfZXhwb3J0 X2dpaC51aSBiL2tyaXRhL3BsdWdpbnMvZm9ybWF0cy9icnVzaC93ZGdfZXhwb3J0X2dpaC51aQpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjhkZTZiCi0tLSAvZGV2L251bGwK KysrIGIva3JpdGEvcGx1Z2lucy9mb3JtYXRzL2JydXNoL3dkZ19leHBvcnRfZ2loLnVpCkBAIC0w LDAgKzEsMjA1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHVp IHZlcnNpb249IjQuMCI+CisgPGNsYXNzPldkZ0V4cG9ydEdpaDwvY2xhc3M+CisgPHdpZGdldCBj bGFzcz0iUVdpZGdldCIgbmFtZT0iV2RnRXhwb3J0R2loIj4KKyAgPHByb3BlcnR5IG5hbWU9Imdl b21ldHJ5Ij4KKyAgIDxyZWN0PgorICAgIDx4PjA8L3g+CisgICAgPHk+MDwveT4KKyAgICA8d2lk dGg+NDY4PC93aWR0aD4KKyAgICA8aGVpZ2h0PjMxODwvaGVpZ2h0PgorICAgPC9yZWN0PgorICA8 L3Byb3BlcnR5PgorICA8cHJvcGVydHkgbmFtZT0id2luZG93VGl0bGUiPgorICAgPHN0cmluZz5G b3JtPC9zdHJpbmc+CisgIDwvcHJvcGVydHk+CisgIDxsYXlvdXQgY2xhc3M9IlFHcmlkTGF5b3V0 IiBuYW1lPSJncmlkTGF5b3V0XzMiPgorICAgPGl0ZW0gcm93PSIwIiBjb2x1bW49IjAiPgorICAg IDxsYXlvdXQgY2xhc3M9IlFWQm94TGF5b3V0IiBuYW1lPSJ2ZXJ0aWNhbExheW91dCI+CisgICAg IDxpdGVtPgorICAgICAgPGxheW91dCBjbGFzcz0iUUdyaWRMYXlvdXQiIG5hbWU9ImdyaWRMYXlv dXQiPgorICAgICAgIDxpdGVtIHJvdz0iMCIgY29sdW1uPSIxIj4KKyAgICAgICAgPHdpZGdldCBj bGFzcz0iUUxpbmVFZGl0IiBuYW1lPSJuYW1lTGluZUVkaXQiLz4KKyAgICAgICA8L2l0ZW0+Cisg ICAgICAgPGl0ZW0gcm93PSIxIiBjb2x1bW49IjEiPgorICAgICAgICA8d2lkZ2V0IGNsYXNzPSJL aXNTcGFjaW5nU2VsZWN0aW9uV2lkZ2V0IiBuYW1lPSJzcGFjaW5nV2lkZ2V0IiBuYXRpdmU9InRy dWUiLz4KKyAgICAgICA8L2l0ZW0+CisgICAgICAgPGl0ZW0gcm93PSIxIiBjb2x1bW49IjAiPgor ICAgICAgICA8d2lkZ2V0IGNsYXNzPSJRTGFiZWwiIG5hbWU9InNwYWNpbmdMYmwiPgorICAgICAg ICAgPHByb3BlcnR5IG5hbWU9InRleHQiPgorICAgICAgICAgIDxzdHJpbmc+U3BhY2luZzo8L3N0 cmluZz4KKyAgICAgICAgIDwvcHJvcGVydHk+CisgICAgICAgICA8cHJvcGVydHkgbmFtZT0iYWxp Z25tZW50Ij4KKyAgICAgICAgICA8c2V0PlF0OjpBbGlnblJpZ2h0fFF0OjpBbGlnblRyYWlsaW5n fFF0OjpBbGlnblZDZW50ZXI8L3NldD4KKyAgICAgICAgIDwvcHJvcGVydHk+CisgICAgICAgIDwv d2lkZ2V0PgorICAgICAgIDwvaXRlbT4KKyAgICAgICA8aXRlbSByb3c9IjAiIGNvbHVtbj0iMCI+ CisgICAgICAgIDx3aWRnZXQgY2xhc3M9IlFMYWJlbCIgbmFtZT0iYnJ1c2hOYW1lTGJsIj4KKyAg ICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ0ZXh0Ij4KKyAgICAgICAgICA8c3RyaW5nPk5hbWU6PC9z dHJpbmc+CisgICAgICAgICA8L3Byb3BlcnR5PgorICAgICAgICAgPHByb3BlcnR5IG5hbWU9ImFs aWdubWVudCI+CisgICAgICAgICAgPHNldD5RdDo6QWxpZ25SaWdodHxRdDo6QWxpZ25UcmFpbGlu Z3xRdDo6QWxpZ25WQ2VudGVyPC9zZXQ+CisgICAgICAgICA8L3Byb3BlcnR5PgorICAgICAgICA8 L3dpZGdldD4KKyAgICAgICA8L2l0ZW0+CisgICAgICAgPGl0ZW0gcm93PSIyIiBjb2x1bW49IjEi PgorICAgICAgICA8d2lkZ2V0IGNsYXNzPSJRQ2hlY2tCb3giIG5hbWU9ImNvbG9yQXNNYXNrIj4K KyAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ0ZXh0Ij4KKyAgICAgICAgICA8c3RyaW5nPkNyZWF0 ZSBtYXNrIGZyb20gY29sb3I8L3N0cmluZz4KKyAgICAgICAgIDwvcHJvcGVydHk+CisgICAgICAg IDwvd2lkZ2V0PgorICAgICAgIDwvaXRlbT4KKyAgICAgIDwvbGF5b3V0PgorICAgICA8L2l0ZW0+ CisgICAgIDxpdGVtPgorICAgICAgPHdpZGdldCBjbGFzcz0iUUdyb3VwQm94IiBuYW1lPSJncm91 cEJveCI+CisgICAgICAgPHByb3BlcnR5IG5hbWU9Im1pbmltdW1TaXplIj4KKyAgICAgICAgPHNp emU+CisgICAgICAgICA8d2lkdGg+MDwvd2lkdGg+CisgICAgICAgICA8aGVpZ2h0PjExMDwvaGVp Z2h0PgorICAgICAgICA8L3NpemU+CisgICAgICAgPC9wcm9wZXJ0eT4KKyAgICAgICA8cHJvcGVy dHkgbmFtZT0idGl0bGUiPgorICAgICAgICA8c3RyaW5nPkJydXNoIFN0eWxlPC9zdHJpbmc+Cisg ICAgICAgPC9wcm9wZXJ0eT4KKyAgICAgICA8cHJvcGVydHkgbmFtZT0iY2hlY2thYmxlIj4KKyAg ICAgICAgPGJvb2w+ZmFsc2U8L2Jvb2w+CisgICAgICAgPC9wcm9wZXJ0eT4KKyAgICAgICA8bGF5 b3V0IGNsYXNzPSJRR3JpZExheW91dCIgbmFtZT0iZ3JpZExheW91dF80Ij4KKyAgICAgICAgPGl0 ZW0gcm93PSIwIiBjb2x1bW49IjAiPgorICAgICAgICAgPGxheW91dCBjbGFzcz0iUUdyaWRMYXlv dXQiIG5hbWU9ImdyaWRMYXlvdXRfMiI+CisgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InNwYWNp bmciPgorICAgICAgICAgICA8bnVtYmVyPjM8L251bWJlcj4KKyAgICAgICAgICA8L3Byb3BlcnR5 PgorICAgICAgICAgIDxpdGVtIHJvdz0iMCIgY29sdW1uPSIwIj4KKyAgICAgICAgICAgPHdpZGdl dCBjbGFzcz0iUUxhYmVsIiBuYW1lPSJ0ZXh0TGFiZWwyIj4KKyAgICAgICAgICAgIDxwcm9wZXJ0 eSBuYW1lPSJzaXplUG9saWN5Ij4KKyAgICAgICAgICAgICA8c2l6ZXBvbGljeSBoc2l6ZXR5cGU9 IkZpeGVkIiB2c2l6ZXR5cGU9IlByZWZlcnJlZCI+CisgICAgICAgICAgICAgIDxob3JzdHJldGNo PjA8L2hvcnN0cmV0Y2g+CisgICAgICAgICAgICAgIDx2ZXJzdHJldGNoPjA8L3ZlcnN0cmV0Y2g+ CisgICAgICAgICAgICAgPC9zaXplcG9saWN5PgorICAgICAgICAgICAgPC9wcm9wZXJ0eT4KKyAg ICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ0ZXh0Ij4KKyAgICAgICAgICAgICA8c3RyaW5nPlN0 eWxlOjwvc3RyaW5nPgorICAgICAgICAgICAgPC9wcm9wZXJ0eT4KKyAgICAgICAgICAgIDxwcm9w ZXJ0eSBuYW1lPSJhbGlnbm1lbnQiPgorICAgICAgICAgICAgIDxzZXQ+UXQ6OkFsaWduUmlnaHR8 UXQ6OkFsaWduVHJhaWxpbmd8UXQ6OkFsaWduVkNlbnRlcjwvc2V0PgorICAgICAgICAgICAgPC9w cm9wZXJ0eT4KKyAgICAgICAgICAgPC93aWRnZXQ+CisgICAgICAgICAgPC9pdGVtPgorICAgICAg ICAgIDxpdGVtIHJvdz0iMCIgY29sdW1uPSIxIj4KKyAgICAgICAgICAgPHdpZGdldCBjbGFzcz0i UUNvbWJvQm94IiBuYW1lPSJicnVzaFN0eWxlIj4KKyAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1l PSJzaXplUG9saWN5Ij4KKyAgICAgICAgICAgICA8c2l6ZXBvbGljeSBoc2l6ZXR5cGU9Ik1pbmlt dW1FeHBhbmRpbmciIHZzaXpldHlwZT0iRml4ZWQiPgorICAgICAgICAgICAgICA8aG9yc3RyZXRj aD4wPC9ob3JzdHJldGNoPgorICAgICAgICAgICAgICA8dmVyc3RyZXRjaD4wPC92ZXJzdHJldGNo PgorICAgICAgICAgICAgIDwvc2l6ZXBvbGljeT4KKyAgICAgICAgICAgIDwvcHJvcGVydHk+Cisg ICAgICAgICAgICA8aXRlbT4KKyAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0idGV4dCI+Cisg ICAgICAgICAgICAgIDxzdHJpbmc+UmVndWxhcjwvc3RyaW5nPgorICAgICAgICAgICAgIDwvcHJv cGVydHk+CisgICAgICAgICAgICA8L2l0ZW0+CisgICAgICAgICAgICA8aXRlbT4KKyAgICAgICAg ICAgICA8cHJvcGVydHkgbmFtZT0idGV4dCI+CisgICAgICAgICAgICAgIDxzdHJpbmc+QW5pbWF0 ZWQ8L3N0cmluZz4KKyAgICAgICAgICAgICA8L3Byb3BlcnR5PgorICAgICAgICAgICAgPC9pdGVt PgorICAgICAgICAgICA8L3dpZGdldD4KKyAgICAgICAgICA8L2l0ZW0+CisgICAgICAgICAgPGl0 ZW0gcm93PSIxIiBjb2x1bW49IjAiPgorICAgICAgICAgICA8d2lkZ2V0IGNsYXNzPSJRTGFiZWwi IG5hbWU9InRleHRMYWJlbDMiPgorICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InNpemVQb2xp Y3kiPgorICAgICAgICAgICAgIDxzaXplcG9saWN5IGhzaXpldHlwZT0iRml4ZWQiIHZzaXpldHlw ZT0iUHJlZmVycmVkIj4KKyAgICAgICAgICAgICAgPGhvcnN0cmV0Y2g+MDwvaG9yc3RyZXRjaD4K KyAgICAgICAgICAgICAgPHZlcnN0cmV0Y2g+MDwvdmVyc3RyZXRjaD4KKyAgICAgICAgICAgICA8 L3NpemVwb2xpY3k+CisgICAgICAgICAgICA8L3Byb3BlcnR5PgorICAgICAgICAgICAgPHByb3Bl cnR5IG5hbWU9InRleHQiPgorICAgICAgICAgICAgIDxzdHJpbmc+U2VsZWN0aW9uIG1vZGU6PC9z dHJpbmc+CisgICAgICAgICAgICA8L3Byb3BlcnR5PgorICAgICAgICAgICAgPHByb3BlcnR5IG5h bWU9ImFsaWdubWVudCI+CisgICAgICAgICAgICAgPHNldD5RdDo6QWxpZ25SaWdodHxRdDo6QWxp Z25UcmFpbGluZ3xRdDo6QWxpZ25WQ2VudGVyPC9zZXQ+CisgICAgICAgICAgICA8L3Byb3BlcnR5 PgorICAgICAgICAgICA8L3dpZGdldD4KKyAgICAgICAgICA8L2l0ZW0+CisgICAgICAgICAgPGl0 ZW0gcm93PSIxIiBjb2x1bW49IjEiPgorICAgICAgICAgICA8d2lkZ2V0IGNsYXNzPSJRQ29tYm9C b3giIG5hbWU9ImNtYlNlbGVjdGlvbk1vZGUiPgorICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9 ImVuYWJsZWQiPgorICAgICAgICAgICAgIDxib29sPmZhbHNlPC9ib29sPgorICAgICAgICAgICAg PC9wcm9wZXJ0eT4KKyAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJzaXplUG9saWN5Ij4KKyAg ICAgICAgICAgICA8c2l6ZXBvbGljeSBoc2l6ZXR5cGU9Ik1pbmltdW1FeHBhbmRpbmciIHZzaXpl dHlwZT0iRml4ZWQiPgorICAgICAgICAgICAgICA8aG9yc3RyZXRjaD4wPC9ob3JzdHJldGNoPgor ICAgICAgICAgICAgICA8dmVyc3RyZXRjaD4wPC92ZXJzdHJldGNoPgorICAgICAgICAgICAgIDwv c2l6ZXBvbGljeT4KKyAgICAgICAgICAgIDwvcHJvcGVydHk+CisgICAgICAgICAgICA8cHJvcGVy dHkgbmFtZT0iY3VycmVudEluZGV4Ij4KKyAgICAgICAgICAgICA8bnVtYmVyPjI8L251bWJlcj4K KyAgICAgICAgICAgIDwvcHJvcGVydHk+CisgICAgICAgICAgICA8aXRlbT4KKyAgICAgICAgICAg ICA8cHJvcGVydHkgbmFtZT0idGV4dCI+CisgICAgICAgICAgICAgIDxzdHJpbmc+Q29uc3RhbnQ8 L3N0cmluZz4KKyAgICAgICAgICAgICA8L3Byb3BlcnR5PgorICAgICAgICAgICAgPC9pdGVtPgor ICAgICAgICAgICAgPGl0ZW0+CisgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InRleHQiPgor ICAgICAgICAgICAgICA8c3RyaW5nPlJhbmRvbTwvc3RyaW5nPgorICAgICAgICAgICAgIDwvcHJv cGVydHk+CisgICAgICAgICAgICA8L2l0ZW0+CisgICAgICAgICAgICA8aXRlbT4KKyAgICAgICAg ICAgICA8cHJvcGVydHkgbmFtZT0idGV4dCI+CisgICAgICAgICAgICAgIDxzdHJpbmc+SW5jcmVt ZW50YWw8L3N0cmluZz4KKyAgICAgICAgICAgICA8L3Byb3BlcnR5PgorICAgICAgICAgICAgPC9p dGVtPgorICAgICAgICAgICAgPGl0ZW0+CisgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InRl eHQiPgorICAgICAgICAgICAgICA8c3RyaW5nPlByZXNzdXJlPC9zdHJpbmc+CisgICAgICAgICAg ICAgPC9wcm9wZXJ0eT4KKyAgICAgICAgICAgIDwvaXRlbT4KKyAgICAgICAgICAgIDxpdGVtPgor ICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ0ZXh0Ij4KKyAgICAgICAgICAgICAgPHN0cmlu Zz5Bbmd1bGFyPC9zdHJpbmc+CisgICAgICAgICAgICAgPC9wcm9wZXJ0eT4KKyAgICAgICAgICAg IDwvaXRlbT4KKyAgICAgICAgICAgPC93aWRnZXQ+CisgICAgICAgICAgPC9pdGVtPgorICAgICAg ICAgPC9sYXlvdXQ+CisgICAgICAgIDwvaXRlbT4KKyAgICAgICA8L2xheW91dD4KKyAgICAgIDwv d2lkZ2V0PgorICAgICA8L2l0ZW0+CisgICAgIDxpdGVtPgorICAgICAgPGxheW91dCBjbGFzcz0i UUhCb3hMYXlvdXQiIG5hbWU9Imhvcml6b250YWxMYXlvdXQiPgorICAgICAgIDxpdGVtPgorICAg ICAgICA8c3BhY2VyIG5hbWU9InZlcnRpY2FsU3BhY2VyIj4KKyAgICAgICAgIDxwcm9wZXJ0eSBu YW1lPSJvcmllbnRhdGlvbiI+CisgICAgICAgICAgPGVudW0+UXQ6OlZlcnRpY2FsPC9lbnVtPgor ICAgICAgICAgPC9wcm9wZXJ0eT4KKyAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJzaXplSGludCIg c3Rkc2V0PSIwIj4KKyAgICAgICAgICA8c2l6ZT4KKyAgICAgICAgICAgPHdpZHRoPjIwPC93aWR0 aD4KKyAgICAgICAgICAgPGhlaWdodD40MDwvaGVpZ2h0PgorICAgICAgICAgIDwvc2l6ZT4KKyAg ICAgICAgIDwvcHJvcGVydHk+CisgICAgICAgIDwvc3BhY2VyPgorICAgICAgIDwvaXRlbT4KKyAg ICAgIDwvbGF5b3V0PgorICAgICA8L2l0ZW0+CisgICAgPC9sYXlvdXQ+CisgICA8L2l0ZW0+Cisg IDwvbGF5b3V0PgorIDwvd2lkZ2V0PgorIDxjdXN0b213aWRnZXRzPgorICA8Y3VzdG9td2lkZ2V0 PgorICAgPGNsYXNzPktpc1NwYWNpbmdTZWxlY3Rpb25XaWRnZXQ8L2NsYXNzPgorICAgPGV4dGVu ZHM+UVdpZGdldDwvZXh0ZW5kcz4KKyAgIDxoZWFkZXI+a2lzX3NwYWNpbmdfc2VsZWN0aW9uX3dp ZGdldC5oPC9oZWFkZXI+CisgICA8Y29udGFpbmVyPjE8L2NvbnRhaW5lcj4KKyAgPC9jdXN0b213 aWRnZXQ+CisgPC9jdXN0b213aWRnZXRzPgorIDxyZXNvdXJjZXMvPgorIDxjb25uZWN0aW9ucy8+ Cis8L3VpPgpkaWZmIC0tZ2l0IGEva3JpdGEvcGx1Z2lucy9wYWludG9wcy9saWJwYWludG9wL2tp c19zcGFjaW5nX3NlbGVjdGlvbl93aWRnZXQuaCBiL2tyaXRhL3BsdWdpbnMvcGFpbnRvcHMvbGli cGFpbnRvcC9raXNfc3BhY2luZ19zZWxlY3Rpb25fd2lkZ2V0LmgKaW5kZXggNzYyNTE3MC4uOGY2 YTY4ZiAxMDA2NDQKLS0tIGEva3JpdGEvcGx1Z2lucy9wYWludG9wcy9saWJwYWludG9wL2tpc19z cGFjaW5nX3NlbGVjdGlvbl93aWRnZXQuaAorKysgYi9rcml0YS9wbHVnaW5zL3BhaW50b3BzL2xp YnBhaW50b3Ava2lzX3NwYWNpbmdfc2VsZWN0aW9uX3dpZGdldC5oCkBAIC0yMiw4ICsyMiw5IEBA CiAjaW5jbHVkZSA8UVdpZGdldD4KICNpbmNsdWRlIDxRU2NvcGVkUG9pbnRlcj4KIAorI2luY2x1 ZGUgPGtyaXRhcGFpbnRvcF9leHBvcnQuaD4KIAotY2xhc3MgS2lzU3BhY2luZ1NlbGVjdGlvbldp ZGdldCA6IHB1YmxpYyBRV2lkZ2V0CitjbGFzcyBQQUlOVE9QX0VYUE9SVCBLaXNTcGFjaW5nU2Vs ZWN0aW9uV2lkZ2V0IDogcHVibGljIFFXaWRnZXQKIHsKICAgICBRX09CSkVDVAogcHVibGljOgpk aWZmIC0tZ2l0IGEva3JpdGEvcGx1Z2lucy90b29scy9zZWxlY3Rpb250b29scy9raXNfc2VsZWN0 aW9uX21vZGlmaWVyX21hcHBlci5jYyBiL2tyaXRhL3BsdWdpbnMvdG9vbHMvc2VsZWN0aW9udG9v bHMva2lzX3NlbGVjdGlvbl9tb2RpZmllcl9tYXBwZXIuY2MKaW5kZXggZjgzZjMzYS4uZjMxNGE4 ZSAxMDA2NDQKLS0tIGEva3JpdGEvcGx1Z2lucy90b29scy9zZWxlY3Rpb250b29scy9raXNfc2Vs ZWN0aW9uX21vZGlmaWVyX21hcHBlci5jYworKysgYi9rcml0YS9wbHVnaW5zL3Rvb2xzL3NlbGVj dGlvbnRvb2xzL2tpc19zZWxlY3Rpb25fbW9kaWZpZXJfbWFwcGVyLmNjCkBAIC0xNyw2ICsxNywy MyBAQAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8KIAorLyoqCisgKiBUaGlz IGlzIGEgYmFzaWMgdGVtcGxhdGUgdG8gY3JlYXRlIHNlbGVjdGlvbiB0b29scyBmcm9tIGJhc2lj IHBhdGggYmFzZWQgZHJhd2luZyB0b29scy4KKyAqIFRoZSB0ZW1wbGF0ZSBvdmVycmlkZXMgdGhl IGFiaWxpdHkgdG8gZXhlY3V0ZSBhbHRlcm5hdGUgYWN0aW9ucyBjb3JyZWN0bHkuCisgKiBNb2Rp ZmllciBrZXlzIGFyZSBvdmVycmlkZGVuIHdpdGggdGhlIGZvbGxvd2luZyBiZWhhdmlvcjoKKyAq CisgKiBTaGlmdDogYWRkIHRvIHNlbGVjdGlvbgorICogQWx0OiBzdWJ0cmFjdCBmcm9tIHNlbGVj dGlvbgorICogU2hpZnQrQWx0OiBpbnRlcnNlY3QgY3VycmVudCBzZWxlY3Rpb24KKyAqIEN0cmw6 IHJlcGxhY2Ugc2VsZWN0aW9uCisgKgorICogQ2VydGFpbiB0b29scyBhbHNvIHVzZSBtb2RpZmll ciBrZXlzIHRvIGFsdGVyIHRoZWlyIGJlaGF2aW9yLCBlLmcuIGZvcmNpbmcgc3F1YXJlIHByb3Bv cnRpb25zIHdpdGggdGhlIHJlY3RhbmdsZSB0b29sLgorICogVGhlIHRlbXBsYXRlIGVuYWJsZXMg dGhlIGZvbGxvd2luZyBydWxlcyBmb3IgZm9yd2FyZGluZyBrZXlzOgorICogMSkgQW55IG1vZGlm aWVyIGtleXMgaGVsZCAqd2hlbiB0aGUgdG9vbCBpcyBmaXJzdCBhY3RpdmF0ZWQqIHdpbGwgZGV0 ZXJtaW5lIHRoZSBuZXcgc2VsZWN0aW9uIG1ldGhvZC4KKyAqIDIpIElmIHRoZSB1bmRlcmx5aW5n IHRvb2wgKmRvZXMgbm90IHRha2UgbW9kaWZpZXIga2V5cyosIHByZXNzaW5nIG1vZGlmaWVyIGtl eXMgaW4gdGhlIG1pZGRsZSBvZiBhIHN0cm9rZSB3aWxsIGNoYW5nZSB0aGUgc2VsZWN0aW9uIG1l dGhvZC4gIFRoaXMgYXBwbGllcyB0byB0aGUgbGFzc28gdG9vbCBhbmQgcG9seWdvbiB0b29sLgor ICogMykgSWYgdGhlIHVuZGVybHlpbmcgdG9vbCAqdGFrZXMgbW9kaWZpZXIga2V5cywqIHRoZXkg d2lsbCBhbHdheXMgYmUgZm9yd2FyZGVkIHRvIHRoZSB1bmRlcmx5aW5nIHRvb2wsIGFuZCBpdCBp cyBub3QgcG9zc2libGUgdG8gY2hhbmdlIHRoZSBzZWxlY3Rpb24gbWV0aG9kIGluIHRoZSBtaWRk bGUgb2YgYSBzdHJva2UuCisgKi8KKwogI2luY2x1ZGUgImtpc19zZWxlY3Rpb24uaCIKICNpbmNs dWRlICJraXNfc2VsZWN0aW9uX21vZGlmaWVyX21hcHBlci5oIgogI2luY2x1ZGUgImtpc19jb25m aWdfbm90aWZpZXIuaCIKZGlmZiAtLWdpdCBhL2tyaXRhL3VpL0NNYWtlTGlzdHMudHh0IGIva3Jp dGEvdWkvQ01ha2VMaXN0cy50eHQKaW5kZXggZWMxYjFlZC4uM2VkMjM5MCAxMDA2NDQKLS0tIGEv a3JpdGEvdWkvQ01ha2VMaXN0cy50eHQKKysrIGIva3JpdGEvdWkvQ01ha2VMaXN0cy50eHQKQEAg LTMzNyw2ICszMzcsOSBAQCBzZXQoa3JpdGF1aV9MSUJfU1JDUwogICAgIEtpc05ldHdvcmtBY2Nl c3NNYW5hZ2VyLmNwcAogICAgIEtpc1dlbGNvbWVTY3JlZW4uY3BwCiAgICAgS2lzTXVsdGlGZWVk UlNTTW9kZWwuY3BwCisKKyAgICBLaXNQYWxldHRlTW9kZWwuY3BwCisgICAgS2lzQ29sb3JzZXRD aG9vc2VyLmNwcAogKQogCiBpZihXSU4zMikKZGlmZiAtLWdpdCBhL2tyaXRhL3BsdWdpbnMvZXh0 ZW5zaW9ucy9kb2NrZXJzL3BhbGV0dGVkb2NrZXIvY29sb3JzZXRjaG9vc2VyLmNwcCBiL2tyaXRh L3VpL0tpc0NvbG9yc2V0Q2hvb3Nlci5jcHAKc2ltaWxhcml0eSBpbmRleCA5NSUKcmVuYW1lIGZy b20ga3JpdGEvcGx1Z2lucy9leHRlbnNpb25zL2RvY2tlcnMvcGFsZXR0ZWRvY2tlci9jb2xvcnNl dGNob29zZXIuY3BwCnJlbmFtZSB0byBrcml0YS91aS9LaXNDb2xvcnNldENob29zZXIuY3BwCmlu ZGV4IGY3ZTA4MjcuLjJiNThjYTQgMTAwNjQ0Ci0tLSBhL2tyaXRhL3BsdWdpbnMvZXh0ZW5zaW9u cy9kb2NrZXJzL3BhbGV0dGVkb2NrZXIvY29sb3JzZXRjaG9vc2VyLmNwcAorKysgYi9rcml0YS91 aS9LaXNDb2xvcnNldENob29zZXIuY3BwCkBAIC0xNyw3ICsxNyw3IEBACiAgKiBCb3N0b24sIE1B IDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCi0jaW5jbHVkZSAiY29sb3JzZXRjaG9vc2VyLmgiCisj aW5jbHVkZSAiS2lzQ29sb3JzZXRDaG9vc2VyLmgiCiAKICNpbmNsdWRlIDxRVkJveExheW91dD4K ICNpbmNsdWRlIDxRQWJzdHJhY3RJdGVtRGVsZWdhdGU+CkBAIC04Miw3ICs4Miw3IEBAIHZvaWQg Q29sb3JTZXREZWxlZ2F0ZTo6cGFpbnQoUVBhaW50ZXIgKiBwYWludGVyLCBjb25zdCBRU3R5bGVP cHRpb25WaWV3SXRlbSAmIG9wCiAgICAgcGFpbnRlci0+cmVzdG9yZSgpOwogfQogCi1Db2xvclNl dENob29zZXI6OkNvbG9yU2V0Q2hvb3NlcihRV2lkZ2V0KiBwYXJlbnQpOiBRV2lkZ2V0KHBhcmVu dCkKK0tpc0NvbG9yc2V0Q2hvb3Nlcjo6S2lzQ29sb3JzZXRDaG9vc2VyKFFXaWRnZXQqIHBhcmVu dCk6IFFXaWRnZXQocGFyZW50KQogewogICAgIEtvUmVzb3VyY2VTZXJ2ZXI8S29Db2xvclNldD4g KiByc2VydmVyID0gS29SZXNvdXJjZVNlcnZlclByb3ZpZGVyOjppbnN0YW5jZSgpLT5wYWxldHRl U2VydmVyKGZhbHNlKTsKICAgICBRU2hhcmVkUG9pbnRlcjxLb0Fic3RyYWN0UmVzb3VyY2VTZXJ2 ZXJBZGFwdGVyPiBhZGFwdGVyKG5ldyBLb1Jlc291cmNlU2VydmVyQWRhcHRlcjxLb0NvbG9yU2V0 Pihyc2VydmVyKSk7CkBAIC0xMTUsMTYgKzExNSwxNiBAQCBDb2xvclNldENob29zZXI6OkNvbG9y U2V0Q2hvb3NlcihRV2lkZ2V0KiBwYXJlbnQpOiBRV2lkZ2V0KHBhcmVudCkKICAgICBsYXlvdXQt PnNldENvbHVtblN0cmV0Y2goMSwgMSk7CiB9CiAKLUNvbG9yU2V0Q2hvb3Nlcjo6fkNvbG9yU2V0 Q2hvb3NlcigpCitLaXNDb2xvcnNldENob29zZXI6On5LaXNDb2xvcnNldENob29zZXIoKQogewog fQogCi12b2lkIENvbG9yU2V0Q2hvb3Nlcjo6cmVzb3VyY2VTZWxlY3RlZChLb1Jlc291cmNlKiBy ZXNvdXJjZSkKK3ZvaWQgS2lzQ29sb3JzZXRDaG9vc2VyOjpyZXNvdXJjZVNlbGVjdGVkKEtvUmVz b3VyY2UqIHJlc291cmNlKQogewogICAgIGVtaXQgcGFsZXR0ZVNlbGVjdGVkKHN0YXRpY19jYXN0 PEtvQ29sb3JTZXQqPihyZXNvdXJjZSkpOwogfQogCi12b2lkIENvbG9yU2V0Q2hvb3Nlcjo6c2xv dFNhdmUoKQordm9pZCBLaXNDb2xvcnNldENob29zZXI6OnNsb3RTYXZlKCkKIHsKICAgICBLb1Jl c291cmNlU2VydmVyPEtvQ29sb3JTZXQ+ICogcnNlcnZlciA9IEtvUmVzb3VyY2VTZXJ2ZXJQcm92 aWRlcjo6aW5zdGFuY2UoKS0+cGFsZXR0ZVNlcnZlcigpOwogCmRpZmYgLS1naXQgYS9rcml0YS9w bHVnaW5zL2V4dGVuc2lvbnMvZG9ja2Vycy9wYWxldHRlZG9ja2VyL2NvbG9yc2V0Y2hvb3Nlci5o IGIva3JpdGEvdWkvS2lzQ29sb3JzZXRDaG9vc2VyLmgKc2ltaWxhcml0eSBpbmRleCA4NSUKcmVu YW1lIGZyb20ga3JpdGEvcGx1Z2lucy9leHRlbnNpb25zL2RvY2tlcnMvcGFsZXR0ZWRvY2tlci9j b2xvcnNldGNob29zZXIuaApyZW5hbWUgdG8ga3JpdGEvdWkvS2lzQ29sb3JzZXRDaG9vc2VyLmgK aW5kZXggNjE3NDFhYy4uZGNhMGNmMyAxMDA2NDQKLS0tIGEva3JpdGEvcGx1Z2lucy9leHRlbnNp b25zL2RvY2tlcnMvcGFsZXR0ZWRvY2tlci9jb2xvcnNldGNob29zZXIuaAorKysgYi9rcml0YS91 aS9LaXNDb2xvcnNldENob29zZXIuaApAQCAtMTgsOCArMTgsOCBAQAogICovCiAKIAotI2lmbmRl ZiBDT0xPUlNFVF9DSE9PU0VSX0gKLSNkZWZpbmUgQ09MT1JTRVRfQ0hPT1NFUl9ICisjaWZuZGVm IEtJU19DT0xPUlNFVF9DSE9PU0VSX0gKKyNkZWZpbmUgS0lTX0NPTE9SU0VUX0NIT09TRVJfSAog CiAjaW5jbHVkZSA8UVdpZGdldD4KIApAQCAtMjksMTIgKzI5LDE1IEBAIGNsYXNzIFFMaW5lRWRp dDsKIGNsYXNzIEtvUmVzb3VyY2VJdGVtQ2hvb3NlcjsKIGNsYXNzIEtvUmVzb3VyY2U7CiAKLWNs YXNzIENvbG9yU2V0Q2hvb3NlciA6IHB1YmxpYyBRV2lkZ2V0CisjaW5jbHVkZSAia3JpdGF1aV9l eHBvcnQuaCIKKworCitjbGFzcyBLUklUQVVJX0VYUE9SVCBLaXNDb2xvcnNldENob29zZXIgOiBw dWJsaWMgUVdpZGdldAogewogICAgIFFfT0JKRUNUCiBwdWJsaWM6Ci0gICAgQ29sb3JTZXRDaG9v c2VyKFFXaWRnZXQqIHBhcmVudCA9IDApOwotICAgIHZpcnR1YWwgfkNvbG9yU2V0Q2hvb3Nlcigp OworICAgIEtpc0NvbG9yc2V0Q2hvb3NlcihRV2lkZ2V0KiBwYXJlbnQgPSAwKTsKKyAgICB2aXJ0 dWFsIH5LaXNDb2xvcnNldENob29zZXIoKTsKIAogUV9TSUdOQUxTOgogICAgIHZvaWQgcGFsZXR0 ZVNlbGVjdGVkKEtvQ29sb3JTZXQqIGNvbG9yU2V0KTsKZGlmZiAtLWdpdCBhL2tyaXRhL3VpL0tp c0RvY3VtZW50LmNwcCBiL2tyaXRhL3VpL0tpc0RvY3VtZW50LmNwcAppbmRleCBiMzMzYTI3Li4y ZTI0ZDgzIDEwMDY0NAotLS0gYS9rcml0YS91aS9LaXNEb2N1bWVudC5jcHAKKysrIGIva3JpdGEv dWkvS2lzRG9jdW1lbnQuY3BwCkBAIC05MjEsNiArOTIxLDcgQEAgUVN0cmluZyBLaXNEb2N1bWVu dDo6Y2hlY2tJbWFnZU1pbWVUeXBlcyhjb25zdCBRU3RyaW5nICZtaW1lVHlwZSwgY29uc3QgUVVy bCAmdXIKICAgICAgICAgICAgICAgICAgICA8PCAiaW1hZ2UvcG5nIgogICAgICAgICAgICAgICAg ICAgIDw8ICJpbWFnZS9ibXAiIDw8ICJpbWFnZS94LXhwaXhtYXAiIDw8ICJpbWFnZS9naWYiIDw8 ICJpbWFnZS94LXhiaXRtYXAiCiAgICAgICAgICAgICAgICAgICAgPDwgImltYWdlL3RpZmYiCisg ICAgICAgICAgICAgICAgICAgPDwgImltYWdlL3gtZ2ltcC1icnVzaCIgPDwgImltYWdlL3gtZ2lt cC1icnVzaC1hbmltYXRlZCIKICAgICAgICAgICAgICAgICAgICA8PCAiaW1hZ2UvanAyIjsKIAog ICAgIGlmICghaW1hZ2VNaW1lVHlwZXMuY29udGFpbnMobWltZVR5cGUpKSByZXR1cm4gbWltZVR5 cGU7CmRpZmYgLS1naXQgYS9rcml0YS9wbHVnaW5zL2V4dGVuc2lvbnMvZG9ja2Vycy9wYWxldHRl ZG9ja2VyL3BhbGV0dGVtb2RlbC5jcHAgYi9rcml0YS91aS9LaXNQYWxldHRlTW9kZWwuY3BwCnNp bWlsYXJpdHkgaW5kZXggNzklCnJlbmFtZSBmcm9tIGtyaXRhL3BsdWdpbnMvZXh0ZW5zaW9ucy9k b2NrZXJzL3BhbGV0dGVkb2NrZXIvcGFsZXR0ZW1vZGVsLmNwcApyZW5hbWUgdG8ga3JpdGEvdWkv S2lzUGFsZXR0ZU1vZGVsLmNwcAppbmRleCA1ZWEyODBkLi4zMmNiZDVlIDEwMDY0NAotLS0gYS9r cml0YS9wbHVnaW5zL2V4dGVuc2lvbnMvZG9ja2Vycy9wYWxldHRlZG9ja2VyL3BhbGV0dGVtb2Rl bC5jcHAKKysrIGIva3JpdGEvdWkvS2lzUGFsZXR0ZU1vZGVsLmNwcApAQCAtMTYsNyArMTYsNyBA QAogICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKLSNpbmNsdWRlICJwYWxldHRlbW9k ZWwuaCIKKyNpbmNsdWRlICJLaXNQYWxldHRlTW9kZWwuaCIKIAogI2luY2x1ZGUgPFFCcnVzaD4K IApAQCAtMjcsMTggKzI3LDE4IEBACiAjaW5jbHVkZSA8a2lzX2xheWVyLmg+CiAjaW5jbHVkZSA8 a2lzX3BhaW50X2xheWVyLmg+CiAKLVBhbGV0dGVNb2RlbDo6UGFsZXR0ZU1vZGVsKFFPYmplY3Qq IHBhcmVudCkKK0tpc1BhbGV0dGVNb2RlbDo6S2lzUGFsZXR0ZU1vZGVsKFFPYmplY3QqIHBhcmVu dCkKICAgICA6IFFBYnN0cmFjdFRhYmxlTW9kZWwocGFyZW50KSwKICAgICAgIG1fY29sb3JTZXQo MCksCiAgICAgICBtX2Rpc3BsYXlSZW5kZXJlcihLb0R1bWJDb2xvckRpc3BsYXlSZW5kZXJlcjo6 aW5zdGFuY2UoKSkKIHsKIH0KIAotUGFsZXR0ZU1vZGVsOjp+UGFsZXR0ZU1vZGVsKCkKK0tpc1Bh bGV0dGVNb2RlbDo6fktpc1BhbGV0dGVNb2RlbCgpCiB7CiB9CiAKLXZvaWQgUGFsZXR0ZU1vZGVs OjpzZXREaXNwbGF5UmVuZGVyZXIoS29Db2xvckRpc3BsYXlSZW5kZXJlckludGVyZmFjZSAqZGlz cGxheVJlbmRlcmVyKQordm9pZCBLaXNQYWxldHRlTW9kZWw6OnNldERpc3BsYXlSZW5kZXJlcihL b0NvbG9yRGlzcGxheVJlbmRlcmVySW50ZXJmYWNlICpkaXNwbGF5UmVuZGVyZXIpCiB7CiAgICAg aWYgKGRpc3BsYXlSZW5kZXJlcikgewogICAgICAgICBpZiAobV9kaXNwbGF5UmVuZGVyZXIpIHsK QEAgLTUyLDEyICs1MiwxMiBAQCB2b2lkIFBhbGV0dGVNb2RlbDo6c2V0RGlzcGxheVJlbmRlcmVy KEtvQ29sb3JEaXNwbGF5UmVuZGVyZXJJbnRlcmZhY2UgKmRpc3BsYXlSZQogICAgIH0KIH0KIAot dm9pZCBQYWxldHRlTW9kZWw6OnNsb3REaXNwbGF5Q29uZmlndXJhdGlvbkNoYW5nZWQoKQordm9p ZCBLaXNQYWxldHRlTW9kZWw6OnNsb3REaXNwbGF5Q29uZmlndXJhdGlvbkNoYW5nZWQoKQogewog ICAgIHJlc2V0KCk7CiB9CiAKLVFWYXJpYW50IFBhbGV0dGVNb2RlbDo6ZGF0YShjb25zdCBRTW9k ZWxJbmRleCYgaW5kZXgsIGludCByb2xlKSBjb25zdAorUVZhcmlhbnQgS2lzUGFsZXR0ZU1vZGVs OjpkYXRhKGNvbnN0IFFNb2RlbEluZGV4JiBpbmRleCwgaW50IHJvbGUpIGNvbnN0CiB7CiAgICAg aWYgKG1fY29sb3JTZXQpIHsKICAgICAgICAgaW50IGkgPSBpbmRleC5yb3coKSpjb2x1bW5Db3Vu dCgpK2luZGV4LmNvbHVtbigpOwpAQCAtNzQsNyArNzQsNyBAQCBRVmFyaWFudCBQYWxldHRlTW9k ZWw6OmRhdGEoY29uc3QgUU1vZGVsSW5kZXgmIGluZGV4LCBpbnQgcm9sZSkgY29uc3QKICAgICBy ZXR1cm4gUVZhcmlhbnQoKTsKIH0KIAotaW50IFBhbGV0dGVNb2RlbDo6cm93Q291bnQoY29uc3Qg UU1vZGVsSW5kZXgmIC8qcGFyZW50Ki8pIGNvbnN0CitpbnQgS2lzUGFsZXR0ZU1vZGVsOjpyb3dD b3VudChjb25zdCBRTW9kZWxJbmRleCYgLypwYXJlbnQqLykgY29uc3QKIHsKICAgICBpZiAoIW1f Y29sb3JTZXQpIHsKICAgICAgICAgcmV0dXJuIDA7CkBAIC04NSw3ICs4NSw3IEBAIGludCBQYWxl dHRlTW9kZWw6OnJvd0NvdW50KGNvbnN0IFFNb2RlbEluZGV4JiAvKnBhcmVudCovKSBjb25zdAog ICAgIHJldHVybiBtX2NvbG9yU2V0LT5uQ29sb3JzKCkvMTUgKyAxOwogfQogCi1pbnQgUGFsZXR0 ZU1vZGVsOjpjb2x1bW5Db3VudChjb25zdCBRTW9kZWxJbmRleCYgLypwYXJlbnQqLykgY29uc3QK K2ludCBLaXNQYWxldHRlTW9kZWw6OmNvbHVtbkNvdW50KGNvbnN0IFFNb2RlbEluZGV4JiAvKnBh cmVudCovKSBjb25zdAogewogICAgIGlmIChtX2NvbG9yU2V0ICYmIG1fY29sb3JTZXQtPmNvbHVt bkNvdW50KCkgPiAwKSB7CiAgICAgICAgIHJldHVybiBtX2NvbG9yU2V0LT5jb2x1bW5Db3VudCgp OwpAQCAtOTMsMTMgKzkzLDEzIEBAIGludCBQYWxldHRlTW9kZWw6OmNvbHVtbkNvdW50KGNvbnN0 IFFNb2RlbEluZGV4JiAvKnBhcmVudCovKSBjb25zdAogICAgIHJldHVybiAxNTsKIH0KIAotUXQ6 Okl0ZW1GbGFncyBQYWxldHRlTW9kZWw6OmZsYWdzKGNvbnN0IFFNb2RlbEluZGV4JiAvKmluZGV4 Ki8pIGNvbnN0CitRdDo6SXRlbUZsYWdzIEtpc1BhbGV0dGVNb2RlbDo6ZmxhZ3MoY29uc3QgUU1v ZGVsSW5kZXgmIC8qaW5kZXgqLykgY29uc3QKIHsKICAgICBRdDo6SXRlbUZsYWdzIGZsYWdzID0g UXQ6Okl0ZW1Jc1NlbGVjdGFibGUgfCBRdDo6SXRlbUlzRW5hYmxlZCB8IFF0OjpJdGVtSXNVc2Vy Q2hlY2thYmxlOwogICAgIHJldHVybiBmbGFnczsKIH0KIAotUU1vZGVsSW5kZXggUGFsZXR0ZU1v ZGVsOjppbmRleChpbnQgcm93LCBpbnQgY29sdW1uLCBjb25zdCBRTW9kZWxJbmRleCYgcGFyZW50 KSBjb25zdAorUU1vZGVsSW5kZXggS2lzUGFsZXR0ZU1vZGVsOjppbmRleChpbnQgcm93LCBpbnQg Y29sdW1uLCBjb25zdCBRTW9kZWxJbmRleCYgcGFyZW50KSBjb25zdAogewogICAgIGludCBpbmRl eCA9IHJvdypjb2x1bW5Db3VudCgpK2NvbHVtbjsKICAgICBpZiAobV9jb2xvclNldCAmJiBpbmRl eCA8IG1fY29sb3JTZXQtPm5Db2xvcnMoKSkgewpAQCAtMTA5LDcgKzEwOSw3IEBAIFFNb2RlbElu ZGV4IFBhbGV0dGVNb2RlbDo6aW5kZXgoaW50IHJvdywgaW50IGNvbHVtbiwgY29uc3QgUU1vZGVs SW5kZXgmIHBhcmVudCkKIH0KIAogCi12b2lkIFBhbGV0dGVNb2RlbDo6c2V0Q29sb3JTZXQoS29D b2xvclNldCogY29sb3JTZXQpCit2b2lkIEtpc1BhbGV0dGVNb2RlbDo6c2V0Q29sb3JTZXQoS29D b2xvclNldCogY29sb3JTZXQpCiB7CiAgICAgbV9jb2xvclNldCA9IGNvbG9yU2V0OwogICAgIHJl c2V0KCk7CmRpZmYgLS1naXQgYS9rcml0YS9wbHVnaW5zL2V4dGVuc2lvbnMvZG9ja2Vycy9wYWxl dHRlZG9ja2VyL3BhbGV0dGVtb2RlbC5oIGIva3JpdGEvdWkvS2lzUGFsZXR0ZU1vZGVsLmgKc2lt aWxhcml0eSBpbmRleCA4OCUKcmVuYW1lIGZyb20ga3JpdGEvcGx1Z2lucy9leHRlbnNpb25zL2Rv Y2tlcnMvcGFsZXR0ZWRvY2tlci9wYWxldHRlbW9kZWwuaApyZW5hbWUgdG8ga3JpdGEvdWkvS2lz UGFsZXR0ZU1vZGVsLmgKaW5kZXggZTM5MmI5Mi4uYmZiNDIwMSAxMDA2NDQKLS0tIGEva3JpdGEv cGx1Z2lucy9leHRlbnNpb25zL2RvY2tlcnMvcGFsZXR0ZWRvY2tlci9wYWxldHRlbW9kZWwuaAor KysgYi9rcml0YS91aS9LaXNQYWxldHRlTW9kZWwuaApAQCAtMTcsMjIgKzE3LDIzIEBACiAgKi8K IAogCi0jaWZuZGVmIFBBTEVUVEVNT0RFTF9ICi0jZGVmaW5lIFBBTEVUVEVNT0RFTF9ICisjaWZu ZGVmIEtJU19QQUxFVFRFTU9ERUxfSAorI2RlZmluZSBLSVNfUEFMRVRURU1PREVMX0gKIAogI2lu Y2x1ZGUgPFFNb2RlbEluZGV4PgogCiAjaW5jbHVkZSA8a2lzX3R5cGVzLmg+CisjaW5jbHVkZSAi a3JpdGF1aV9leHBvcnQuaCIKIAogY2xhc3MgS29Db2xvclNldDsKIGNsYXNzIEtvQ29sb3JEaXNw bGF5UmVuZGVyZXJJbnRlcmZhY2U7CiAKLWNsYXNzIFBhbGV0dGVNb2RlbCA6IHB1YmxpYyBRQWJz dHJhY3RUYWJsZU1vZGVsCitjbGFzcyBLUklUQVVJX0VYUE9SVCBLaXNQYWxldHRlTW9kZWwgOiBw dWJsaWMgUUFic3RyYWN0VGFibGVNb2RlbAogewogICAgIFFfT0JKRUNUCiBwdWJsaWM6Ci0gICAg UGFsZXR0ZU1vZGVsKFFPYmplY3QqIHBhcmVudCA9IDApOwotICAgIHZpcnR1YWwgflBhbGV0dGVN b2RlbCgpOworICAgIEtpc1BhbGV0dGVNb2RlbChRT2JqZWN0KiBwYXJlbnQgPSAwKTsKKyAgICB2 aXJ0dWFsIH5LaXNQYWxldHRlTW9kZWwoKTsKICAgICAKICAgICB2aXJ0dWFsIFFWYXJpYW50IGRh dGEoY29uc3QgUU1vZGVsSW5kZXgmIGluZGV4LCBpbnQgcm9sZSA9IFF0OjpEaXNwbGF5Um9sZSkg Y29uc3Q7CiAgICAgdmlydHVhbCBpbnQgcm93Q291bnQoY29uc3QgUU1vZGVsSW5kZXgmIHBhcmVu dCA9IFFNb2RlbEluZGV4KCkpIGNvbnN0OwpAQCAtNTcsNCArNTgsNCBAQCBwcml2YXRlOgogICAg IEtvQ29sb3JEaXNwbGF5UmVuZGVyZXJJbnRlcmZhY2UgKm1fZGlzcGxheVJlbmRlcmVyOwogfTsK IAotI2VuZGlmIC8vIFBBTEVUVEVNT0RFTF9ICisjZW5kaWYKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KS3JpdGEgbWFpbGluZyBsaXN0CmtpbWFnZXNob3BA a2RlLm9yZwpodHRwczovL21haWwua2RlLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2tpbWFnZXNob3AK